| 
					
				 | 
			
			
				@ -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,31 +356,63 @@ 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.setTitle(title); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reportItemDO.setContent(tmp.getReportContent()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reportItemDO.setBeginTime(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reportItemDO.setEndTime(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reportItemDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reportItemDO.setCreateUser(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reportItemDO.setCreateUserName(doctorDO.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tmp.setReportItemId(reportItemDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tmp.setReportItemName(title); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BaseDailyReportItemDO reportItemDO = reportItemDao.findOne(tmp.getReportItemId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (null!=reportItemDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (StringUtils.isBlank(reportItemDO.getAcBeginTime())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    reportItemDO.setAcBeginTime(DateUtil.getStringDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    reportItemDao.save(reportItemDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (detailDOList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            reportDetailDao.save(detailDOList); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -949,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.getTwoDay(endDate, startDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String day = DateUtil.getWorkDays(startDate, endDate)+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Integer doctorTotal = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Integer total=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Integer yishangbaoTotal=0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1542,7 +1562,7 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            startDate = DateUtil.getFristDayOfMonth(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            endDate = DateUtil.getLastDayOfMonth(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String day = DateUtil.getTwoDay(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 = ""; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1692,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.getTwoDay(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;//总人次 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1839,7 +1859,7 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 新增日报项目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public BaseDailyReportItemDO newReportItem(String user,String title,String content,String begin_time,String end_time,Integer member_type,String members) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public BaseDailyReportItemDO newReportItem(String user,String projectCode,String projectName,String title,String content,String begin_time,String end_time,Integer member_type,String members) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = " select * from base_doctor_role where doctor_code='"+user+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> userRoles = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (userRoles.size()==0){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1849,9 +1869,22 @@ 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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setProjectName(projectName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setTitle(title); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setContent(content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setBeginTime(begin_time); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1859,6 +1892,11 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setCreateUser(user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setCreateUserName(doctorDO.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null !=doctorHospitalDOs&&doctorHospitalDOs.size()!=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            reportItemDO.setDept(doctorHospitalDOs.get(0).getDeptCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            reportItemDO.setDeptName(doctorHospitalDOs.get(0).getDeptName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO = reportItemDao.save(reportItemDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDailyReportItemMembersDO> membersDOS = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (1==member_type){//指定成员 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1906,7 +1944,7 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 编辑日报项目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public BaseDailyReportItemDO modifyReportItem(String user,String item_id,String title,String content,Integer state,String begin_time,String end_time,String members) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public BaseDailyReportItemDO modifyReportItem(String user,String item_id,String projectCode,String projectName,String title,String content,Integer state,String begin_time,String end_time,String members) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = " select * from base_doctor_role where doctor_code='"+user+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> userRoles = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (userRoles.size()==0){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1916,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("日报项目不存在"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1923,8 +1967,16 @@ 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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setProjectName(projectName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setTitle(title); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setContent(content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setBeginTime(begin_time); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1932,6 +1984,11 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setUpdateUser(user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO.setUpdateUserName(doctorDO.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null !=doctorHospitalDOs&&doctorHospitalDOs.size()!=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            reportItemDO.setDept(doctorHospitalDOs.get(0).getDeptCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            reportItemDO.setDeptName(doctorHospitalDOs.get(0).getDeptName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDO = reportItemDao.save(reportItemDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemDao.save(reportItemDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDailyReportItemMembersDO> membersDOS = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reportItemMembersDao.deleteAllByReportItemId(reportItemDO.getId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2097,10 +2154,13 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 员工获取所有日报项目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<BaseDailyReportItemDO> findReportItemList(String user,String title,String content,Integer state,String begin_time,String end_time,String createUser,String createUserName) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<BaseDailyReportItemDO> findReportItemList(String user,String projectCode,String title,String content,Integer state,String begin_time,String end_time,String createUser,String createUserName) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "select i.* from base_daily_report_item i INNER JOIN base_daily_report_item_members mem on i.id = mem.report_item_id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "where i.del=1 and mem.del=1 and mem.user_id='"+user+"' " ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(projectCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and i.project_code='"+projectCode+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(title)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql +=" and i.title like '%"+title+"%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2134,20 +2194,61 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 管理员日报项目统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public PageEnvelop statisticReportItemList(String user, String title, String content, Integer state, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                               String begin_time, String end_time, String createUser,String createUserName, Integer page, Integer size) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<Map<String,Object>> statisticReportProjectList(String user, String projectCode,String startDate, String endDate) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = " select * from base_doctor_role where doctor_code='"+user+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> userRoles = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (userRoles.size()==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("您无权限操作"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sqlCondition = "  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(startDate)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlCondition += " and up.report_date>='"+startDate+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(endDate)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlCondition += " and up.report_date<='"+endDate+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(projectCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlCondition += " and i.project_code='"+projectCode+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sqlList = "  select dict.dict_code project_code,dict.dict_value projectName,IFNULL( A.completionHour,0) 'completionHour', " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " IFNULL(A.doctorTotal,0) 'doctorTotal' from wlyy_hospital_sys_dict dict " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " Left JOIN (" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " select i.project_code,CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " count(distinct up.doctor_id) as doctorTotal from base_daily_report_item i LEFT JOIN base_daily_report_detail de on i.id = de.report_item_id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id  where i.del=1 "+sqlCondition+" GROUP BY i.project_code )A " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "on A.project_code = dict.dict_code where dict.dict_name='daily_report_project' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(projectCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlList +=" and dict.dict_code='"+projectCode+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sqlList += "  order by completionHour desc "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return jdbcTemplate.queryForList(sqlList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 管理员日报项目统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public PageEnvelop statisticReportItemList(String user, String projectCode,String title, String content, Integer state, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                               String startDate, String endDate, String createUser,String createUserName, Integer page, Integer size) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        page = page>0?page-1:0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = " select * from base_doctor_role where doctor_code='"+user+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> userRoles = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (userRoles.size()==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("您无权限操作"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDailyReportItemDO> itemDOS = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> itemDOS = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sqlCondition = "  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sqlList = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String updateTimeSql=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(startDate)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            updateTimeSql += " and up.report_date>='"+startDate+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(endDate)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            updateTimeSql += " and up.report_date<='"+endDate+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sqlList = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,count(distinct up.doctor_id) as doctorTotal " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from base_daily_report_item i  LEFT JOIN base_daily_report_detail de on i.id = de.report_item_id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id where i.del=1 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  LEFT JOIN base_doctor_daily_report_upload up on up.id = de.report_id "+updateTimeSql+" where i.del=1 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sqlCount = " select count(distinct i.id) from base_daily_report_item i where i.del=1 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(title)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlCondition +=" and i.title like '%"+title+"%' "; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2158,20 +2259,18 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null!=state){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlCondition += " and i.state='"+state+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(begin_time)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlCondition += " and i.begin_time>='"+begin_time+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(end_time)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlCondition += " and i.end_time<='"+end_time+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(createUser)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlCondition += " and i.create_user = '"+createUser+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(createUserName)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlCondition += " and i.create_user_name like '%"+createUserName+"%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(projectCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlCondition += " and i.project_code='"+projectCode+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sqlList +=sqlCondition+ " group by i.id order by i.create_time,i.id desc limit "+page*size+","+size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        itemDOS = jdbcTemplate.query(sqlList,new BeanPropertyRowMapper<>(BaseDailyReportItemDO.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        itemDOS = jdbcTemplate.queryForList(sqlList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Long count = jdbcTemplate.queryForObject(sqlCount+sqlCondition,Long.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return PageEnvelop.getSuccessListWithPage("查询成功",itemDOS,page,size,count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2183,21 +2282,21 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("您无权限操作"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(1==type){//天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time', " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " count(distinct up.doctor_id) as doctorTotal from base_daily_report_item i LEFT JOIN base_daily_report_detail de " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "where 1=1 and i.id='"+item_id+"' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "group by i.id,DATE_FORMAT(de.create_time,'%Y-%m-%d') order by time asc "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (2==type){//按周 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time', " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " count(distinct up.doctor_id) as doctorTotal from base_daily_report_item i LEFT JOIN base_daily_report_detail de " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "where 1=1 and i.id='"+item_id+"' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "group by i.id,DATE_FORMAT(de.create_time,'%Y%v') order by time asc "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (3==type){//月 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m') as 'time', " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " count(distinct up.doctor_id) as doctorTotal from base_daily_report_item i LEFT JOIN base_daily_report_detail de " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id " + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2216,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; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2232,8 +2336,9 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            memberSql = " and up.doctor_id='"+member+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String searchTimeFormat = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String uploadTimeFormat = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(0==type){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time'," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'searchTime' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "from base_daily_report_item i LEFT JOIN base_daily_report_detail de " + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2241,34 +2346,38 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "where 1=1 and i.id='"+item_id+"' " +memberSql+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "group by i.id,up.doctor_id order by completionHour desc "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y-%m-%d') "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            uploadTimeFormat=" DATE_FORMAT(up.report_date,'%Y-%m-%d') "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else if(1==type){//天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time', " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'searchTime' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "from base_daily_report_item i LEFT JOIN base_daily_report_detail de " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "where 1=1 and i.id='"+item_id+"' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "group by i.id,up.doctor_id,DATE_FORMAT(de.create_time,'%Y-%m-%d') order by time asc "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "group by i.id,up.doctor_id  order by time asc "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y-%m-%d') "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            uploadTimeFormat=" DATE_FORMAT(up.report_date,'%Y-%m-%d') "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (2==type){//按周 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time', " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "DATE_FORMAT(de.create_time,'%Y%v') as 'searchTime' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "from base_daily_report_item i LEFT JOIN base_daily_report_detail de " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "where 1=1 and i.id='"+item_id+"' " +memberSql+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "group by i.id,up.doctor_id,DATE_FORMAT(de.create_time,'%Y%v') order by time asc "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "group by i.id,up.doctor_id  order by time asc "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y%v') "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            uploadTimeFormat=" DATE_FORMAT(up.report_date,'%Y-%m-%d') "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (3==type){//月 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m') as 'time', " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "DATE_FORMAT(de.create_time,'%Y-%m') as 'searchTime' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "from base_daily_report_item i LEFT JOIN base_daily_report_detail de " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "where 1=1 and i.id='"+item_id+"' " +memberSql+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "group by i.id,up.doctor_id,DATE_FORMAT(de.create_time,'%Y-%m') order by time asc "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "group by i.id,up.doctor_id  order by time asc "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y-%m') "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            uploadTimeFormat=" DATE_FORMAT(up.report_date,'%Y-%m') "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("查询失败,请检查传入参数"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2282,14 +2391,19 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tmp.put("avgValue",avgValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Double completionHour = Double.valueOf(tmp.get("completionHour").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tmp.put("timeRange",getRangeDouble(completionHour,totalHour)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String searchTime =tmp.get("searchTime").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String doctorId = tmp.get("doctor_id").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql = " select up.doctor_name,up.report_date,CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql = " select up.doctor_name,"+uploadTimeFormat+" as report_date ,CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        " from base_daily_report_detail de  INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        "where  de.report_item_id='"+item_id+"' and up.doctor_id='"+doctorId+"'  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        "and "+searchTimeFormat+"='"+searchTime+"' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        "GROUP BY up.report_date ORDER BY up.report_date asc "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        "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 = timeUseTmp.get("report_date").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String sunday = DateUtil.getSundayOfThisWeek(DateUtil.strToDate(time)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        timeUseTmp.put("report_date",sunday); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tmp.put("timeUseList",timeUseList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2335,7 +2449,7 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("导出失败,请检查传入参数"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //项目耗时情况 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql = " select it.title,it.content,sum(IFNULL(pd.actual_completion_hour,IFNULL(pd.completion_hour,0))) 'completion_hour' ," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql = " select CONCAT(it.title,'(',i.dept_name,')') title,it.content,sum(IFNULL(pd.actual_completion_hour,IFNULL(pd.completion_hour,0))) 'completion_hour' ," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " CASE it.state WHEN 1 THEN '已完成' ELSE '未完成' END as 'state',DATE_FORMAT(it.create_time,'%Y-%m-%d %H:%i:%S') create_time,it.create_user_name " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "from base_daily_report_item it LEFT JOIN base_daily_report_detail pd  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "on it.id = pd.report_item_id " + 
			 |