Explorar o código

日报代码修改

liubing %!s(int64=2) %!d(string=hai) anos
pai
achega
03025ef506

+ 2 - 0
business/base-service/src/main/java/com/yihu/jw/dailyReport/dao/BaseDailyReportItemDao.java

@ -6,4 +6,6 @@ import org.springframework.data.repository.PagingAndSortingRepository;
public interface BaseDailyReportItemDao extends PagingAndSortingRepository<BaseDailyReportItemDO,String>,
        JpaSpecificationExecutor<BaseDailyReportItemDO> {
    BaseDailyReportItemDO findByTitleAndDeptAndProjectCode(String title,String dept,String projectCode);
}

+ 3 - 0
business/base-service/src/main/java/com/yihu/jw/dailyReport/dao/BaseDailyReportItemMembersDao.java

@ -16,4 +16,7 @@ public interface BaseDailyReportItemMembersDao extends PagingAndSortingRepositor
    @Modifying
    void deleteAllByReportItemId(String reportItemId);
    @Query("select m from BaseDailyReportItemMembersDO m where m.del=1 and m.reportItemId=?1 and m.userId=?2 ")
    BaseDailyReportItemMembersDO findMembers(String itemId,String doctor);
}

+ 82 - 42
business/base-service/src/main/java/com/yihu/jw/dailyReport/service/DailyReportUploadService.java

@ -2,7 +2,6 @@ package com.yihu.jw.dailyReport.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
import com.yihu.jw.dailyReport.dao.*;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
@ -10,9 +9,6 @@ import com.yihu.jw.doctor.dao.BaseDoctorRoleDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.entity.base.wx.WxAccessTokenDO;
import com.yihu.jw.entity.base.wx.WxPushLogDO;
import com.yihu.jw.entity.base.wx.WxTemplateConfigDO;
import com.yihu.jw.entity.dailyReport.*;
import com.yihu.jw.entity.healthUpload.BaseDoctorMemberDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
@ -31,20 +27,12 @@ import com.yihu.jw.wechat.dao.WxTemplateConfigDao;
import com.yihu.jw.wechat.enterprise.EnterpriseService;
import com.yihu.jw.wechat.enterprise.dao.WxEnterpriseUserDao;
import com.yihu.jw.wechat.service.WxAccessTokenService;
import jxl.Workbook;
import jxl.write.*;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.util.WorkbookUtil;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@ -368,35 +356,53 @@ public class DailyReportUploadService {
        dailyReportUploadDO.setLeaveHour(leaveHour);
        dailyReportUploadDO.setTotalHour(totalHour);
        dailyReportUploadDO = dailyReportUploadDao.save(dailyReportUploadDO);
        if (doctorHospitalDOS != null && doctorHospitalDOS.size() != 0) {
        }else {
            throw new Exception("您不是部门人员,无法上传日报信息");
        }
        for (BaseDailyReportDetailDO tmp :detailDOList){
            tmp.setReportId(dailyReportUploadDO.getId());
            if (tmp.isReportItemFlag()==true){//新则自建关联项目
                String title = tmp.getReportItemTitle();
                BaseDailyReportItemDO reportItemDO = new BaseDailyReportItemDO();
                reportItemDO.setState(0);
                reportItemDO.setDel(1);
                reportItemDO.setProjectCode(tmp.getProjectCode());
                reportItemDO.setProjectName(tmp.getProjectName());
                reportItemDO.setTitle(title);
                reportItemDO.setContent(tmp.getReportContent());
                reportItemDO.setBeginTime(null);
                reportItemDO.setEndTime(null);
                reportItemDO.setCreateTime(new Date());
                reportItemDO.setCreateUser(doctorId);
                reportItemDO.setCreateUserName(doctorDO.getName());
                if (doctorHospitalDOS != null && doctorHospitalDOS.size() != 0) {
                    reportItemDO.setDept(doctorHospitalDOS.get(0).getDeptCode());
                    reportItemDO.setDeptName(doctorHospitalDOS.get(0).getDeptName());
                BaseDailyReportItemDO reportItemDO = reportItemDao.findByTitleAndDeptAndProjectCode(title,doctorHospitalDOS.get(0).getDeptCode(),tmp.getProjectCode());
                if (null!=reportItemDO){
                    BaseDailyReportItemMembersDO membersDOTmp = reportItemMembersDao.findMembers(reportItemDO.getId(),doctorId);
                    if (null==membersDOTmp){
                        membersDOTmp = new BaseDailyReportItemMembersDO();
                        membersDOTmp.setReportItemId(reportItemDO.getId());
                        membersDOTmp.setUserId(doctorId);
                        membersDOTmp.setUserName(doctorDO.getName());
                        membersDOTmp.setDel(1);
                        reportItemMembersDao.save(membersDOTmp);
                    }
                }else {
                    reportItemDO = new BaseDailyReportItemDO();
                    reportItemDO.setState(0);
                    reportItemDO.setDel(1);
                    reportItemDO.setProjectCode(tmp.getProjectCode());
                    reportItemDO.setProjectName(tmp.getProjectName());
                    reportItemDO.setTitle(title);
                    reportItemDO.setContent(tmp.getReportContent());
                    reportItemDO.setBeginTime(null);
                    reportItemDO.setEndTime(null);
                    reportItemDO.setCreateTime(new Date());
                    reportItemDO.setCreateUser(doctorId);
                    reportItemDO.setCreateUserName(doctorDO.getName());
                    if (doctorHospitalDOS != null && doctorHospitalDOS.size() != 0) {
                        reportItemDO.setDept(doctorHospitalDOS.get(0).getDeptCode());
                        reportItemDO.setDeptName(doctorHospitalDOS.get(0).getDeptName());
                    }
                    reportItemDO = reportItemDao.save(reportItemDO);
                    BaseDailyReportItemMembersDO membersDOTmp = new BaseDailyReportItemMembersDO();
                    membersDOTmp.setReportItemId(reportItemDO.getId());
                    membersDOTmp.setUserId(doctorId);
                    membersDOTmp.setUserName(doctorDO.getName());
                    membersDOTmp.setDel(1);
                    reportItemMembersDao.save(membersDOTmp);
                }
                reportItemDO = reportItemDao.save(reportItemDO);
                BaseDailyReportItemMembersDO membersDOTmp = new BaseDailyReportItemMembersDO();
                membersDOTmp.setReportItemId(reportItemDO.getId());
                membersDOTmp.setUserId(doctorId);
                membersDOTmp.setUserName(doctorDO.getName());
                membersDOTmp.setDel(1);
                reportItemMembersDao.save(membersDOTmp);
                tmp.setReportItemId(reportItemDO.getId());
                tmp.setReportItemName(title);
            }
@ -963,7 +969,7 @@ public class DailyReportUploadService {
        logger.info("deptSql=="+deptSql);
        List<Map<String, Object>> mapList = jdbcTemplate.queryForList(deptSql);
        for (Map<String,Object> deptMap:mapList){
            String day = DateUtil.getWorkDays(endDate, startDate)+"";
            String day = DateUtil.getWorkDays(startDate, endDate)+"";
            Integer doctorTotal = 0;
            Integer total=0;
            Integer yishangbaoTotal=0;
@ -1556,7 +1562,7 @@ public class DailyReportUploadService {
            startDate = DateUtil.getFristDayOfMonth();
            endDate = DateUtil.getLastDayOfMonth();
        }
        String day = DateUtil.getWorkDays(endDate, startDate)+"";
        String day = DateUtil.getWorkDays(startDate, endDate)+"";
        String doctorSql = " select COUNT(1) as 'total' from base_doctor d where d.del=1 and d.identity=0  ";
        Integer total = 0;//总人次
        String sqlCondition = "";
@ -1706,7 +1712,7 @@ public class DailyReportUploadService {
     */
    public JSONObject selectHeaderTotal(String dept, String idType, String status, String state, String startDate, String endDate, String name) {
        JSONObject object = new JSONObject();
        String day = DateUtil.getWorkDays(endDate, startDate)+"";
        String day = DateUtil.getWorkDays(startDate, endDate)+"";
        String doctorSql = " select COUNT(1) as \"total\" from base_doctor d where d.del=1 and d.identity=0 ";
        Integer total = 0;//总人次
@ -1863,7 +1869,18 @@ public class DailyReportUploadService {
        if (null==doctorDO){
            throw new Exception("用户不存在无权操作");
        }
        BaseDailyReportItemDO reportItemDO = new BaseDailyReportItemDO();
        List<BaseDoctorHospitalDO> doctorHospitalDOs = baseDoctorHospitalDao.findByDoctorCode(user);
        if (null !=doctorHospitalDOs&&doctorHospitalDOs.size()!=0){
        }else {
            throw new Exception("您不是部门人员,无法创建");
        }
        BaseDailyReportItemDO reportItemDO = reportItemDao.findByTitleAndDeptAndProjectCode(title,doctorHospitalDOs.get(0).getDeptCode(),projectCode);
        if (reportItemDO!=null){
            throw new Exception("该项目已存在,不可创建");
        }else {
             reportItemDO = new BaseDailyReportItemDO();
        }
        reportItemDO.setState(0);
        reportItemDO.setDel(1);
        reportItemDO.setProjectCode(projectCode);
@ -1875,7 +1892,7 @@ public class DailyReportUploadService {
        reportItemDO.setCreateTime(new Date());
        reportItemDO.setCreateUser(user);
        reportItemDO.setCreateUserName(doctorDO.getName());
        List<BaseDoctorHospitalDO> doctorHospitalDOs = baseDoctorHospitalDao.findByDoctorCode(user);
        if (null !=doctorHospitalDOs&&doctorHospitalDOs.size()!=0){
            reportItemDO.setDept(doctorHospitalDOs.get(0).getDeptCode());
            reportItemDO.setDeptName(doctorHospitalDOs.get(0).getDeptName());
@ -1937,6 +1954,12 @@ public class DailyReportUploadService {
        if (null==doctorDO){
            throw new Exception("用户不存在无权操作");
        }
        List<BaseDoctorHospitalDO> doctorHospitalDOs = baseDoctorHospitalDao.findByDoctorCode(user);
        if (null !=doctorHospitalDOs&&doctorHospitalDOs.size()!=0){
        }else {
            throw new Exception("您不是部门人员,无法创建");
        }
        BaseDailyReportItemDO reportItemDO = reportItemDao.findOne(item_id);
        if (null==reportItemDO){
            throw new Exception("日报项目不存在");
@ -1944,6 +1967,12 @@ public class DailyReportUploadService {
        if (1==reportItemDO.getState()){
            throw new Exception("日报项目已完成无法修改");
        }
        sql = " select id from base_daily_report_item where title='"+title+"' and dept='"+doctorHospitalDOs.get(0).getDeptCode()+"' " +
                " and project_code='"+projectCode+"' and id<>'"+item_id+"' ";
        List<String> existList = jdbcTemplate.queryForList(sql,String.class);
        if(existList.size()>0){
            throw new Exception("该项目已存在,修改失败");
        }
        reportItemDO.setState(state);
        reportItemDO.setDel(1);
        reportItemDO.setProjectCode(projectCode);
@ -1955,7 +1984,6 @@ public class DailyReportUploadService {
        reportItemDO.setUpdateTime(new Date());
        reportItemDO.setUpdateUser(user);
        reportItemDO.setUpdateUserName(doctorDO.getName());
        List<BaseDoctorHospitalDO> doctorHospitalDOs = baseDoctorHospitalDao.findByDoctorCode(user);
        if (null !=doctorHospitalDOs&&doctorHospitalDOs.size()!=0){
            reportItemDO.setDept(doctorHospitalDOs.get(0).getDeptCode());
            reportItemDO.setDeptName(doctorHospitalDOs.get(0).getDeptName());
@ -2287,6 +2315,11 @@ public class DailyReportUploadService {
                tmp.put("avgValue",avgValue);
                Double completionHour = Double.valueOf(tmp.get("completionHour").toString());
                tmp.put("timeRange",getRangeDouble(completionHour,totalHour));
                if(2==type){//获取周的最后一天
                    String time = tmp.get("time").toString();
                    String sunday = DateUtil.getSundayOfThisWeek(DateUtil.strToDate(time));
                    tmp.put("time",sunday);
                }
            }
        }
        return list;
@ -2364,6 +2397,13 @@ public class DailyReportUploadService {
                        "where  de.report_item_id='"+item_id+"' and up.doctor_id='"+doctorId+"' " +
                        "GROUP BY "+searchTimeFormat+" ORDER BY report_date asc ";
                List<Map<String,Object>> timeUseList = jdbcTemplate.queryForList(sql);
                if(2==type){//获取周的最后一天
                    for (Map<String,Object>timeUseTmp :timeUseList){
                        String time = tmp.get("report_date").toString();
                        String sunday = DateUtil.getSundayOfThisWeek(DateUtil.strToDate(time));
                        timeUseTmp.put("report_date",sunday);
                    }
                }
                tmp.put("timeUseList",timeUseList);
            }