| 
					
				 | 
			
			
				@ -3423,7 +3423,7 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                startDateTmp = DateUtil.strToDate(startResult.get(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select min(begin_time) from base_daily_report_item where begin_time is not null  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = " select min(begin_time) from base_daily_report_item where  begin_time is not null and del=1  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNotBlank(projectCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql += "  and project_code='"+projectCode+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -3483,7 +3483,7 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " INNER JOIN base_doctor doc on up.doctor_id = doc.id and doc.del=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "Inner JOIN base_doctor_hospital dh on doc.id = dh.doctor_code and dh.del=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "LEFT JOIN base_daily_report_detail rd on up.id = rd.report_id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "inner join base_daily_report_item i on i.id = rd.report_item_id and i.del=1 where 1=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "LEFT join base_daily_report_item i on i.id = rd.report_item_id and i.del=1 where 1=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "and DATE_FORMAT(up.report_date,'%w') BETWEEN 1 and 5  "+sqlWhere; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //只计算出周一到周五上传的数量去求未上传 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -3514,7 +3514,7 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "INNER JOIN base_doctor doc on up.doctor_id = doc.id and doc.del=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "Inner JOIN base_doctor_hospital dh on doc.id = dh.doctor_code and dh.del=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "LEFT JOIN base_daily_report_detail rd on up.id = rd.report_id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " inner join base_daily_report_item i on i.id = rd.report_item_id and i.del=1  where 1=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " LEFT join base_daily_report_item i on i.id = rd.report_item_id and i.del=1  where 1=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " "+sqlWhere; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        acWorkHours = jdbcTemplate.queryForObject(acWorkHoursSql,Double.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -3523,7 +3523,7 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "INNER JOIN base_doctor doc on up.doctor_id = doc.id and doc.del=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "Inner JOIN base_doctor_hospital dh on doc.id = dh.doctor_code and dh.del=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "LEFT JOIN base_daily_report_detail rd on up.id = rd.report_id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "inner join base_daily_report_item i on i.id = rd.report_item_id and i.del=1 where 1=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "LEFT join base_daily_report_item i on i.id = rd.report_item_id and i.del=1 where 1=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " "+sqlWhere+" and rd.doubt_type is not null group by rd.doubt_type"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> doubtTypeList = jdbcTemplate.queryForList(doubtTypeSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (Map<String,Object>tmp:doubtTypeList){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -3558,7 +3558,7 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "INNER JOIN base_doctor doc on up.doctor_id = doc.id and doc.del=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "Inner JOIN base_doctor_hospital dh on doc.id = dh.doctor_code and dh.del=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "LEFT JOIN base_daily_report_detail rd on up.id = rd.report_id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "inner join base_daily_report_item i on i.id = rd.report_item_id and i.del=1 where 1=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "LEFT join base_daily_report_item i on i.id = rd.report_item_id and i.del=1 where 1=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " "+sqlWhere+" group by doctor_duty_code "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> doctorTypeHourList = jdbcTemplate.queryForList(doctorTypeSql); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -3794,7 +3794,7 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "DATE_FORMAT(rd.create_time,'%Y-%m-%d %H:%i:%S') create_time,DATE_FORMAT(rd.verification_time,'%Y-%m-%d %H:%i:%S') verification_time," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " CASE rd.state WHEN 1 THEN '已核实' ELSE '未核实' END as 'verification_state',rd.verification_user_name,CASE rd.doubt WHEN 1 THEN '存疑' ELSE '无存疑' END as 'doubt', " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " rd.doubt_type doubtType, rd.remark " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "from base_doctor_daily_report_upload up INNER JOIN base_doctor doc on up.doctor_id = doc.id and doc.del=1  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "from base_doctor_daily_report_upload up INNER JOIN base_doctor doc on up.doctor_id = doc.id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "INNER JOIN base_doctor_hospital dh on doc.id = dh.doctor_code and dh.del=1 LEFT JOIN  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "base_daily_report_detail rd on up.id = rd.report_id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "LEFT JOIN base_daily_report_item it on rd.report_item_id = it.id " + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -3853,7 +3853,7 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "DATE_FORMAT(rd.create_time,'%Y-%m-%d %H:%i:%S') create_time,DATE_FORMAT(rd.verification_time,'%Y-%m-%d %H:%i:%S') verification_time," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " CASE rd.state WHEN 1 THEN '已核实' ELSE '未核实' END as 'verification_state',rd.verification_user_name,CASE rd.doubt WHEN 1 THEN '存疑' ELSE '无存疑' END as 'doubt'," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " rd.doubt_type doubtType, rd.remark " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "from base_doctor_daily_report_upload up INNER JOIN base_doctor doc on up.doctor_id = doc.id and doc.del=1  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "from base_doctor_daily_report_upload up INNER JOIN base_doctor doc on up.doctor_id = doc.id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "INNER JOIN base_doctor_hospital dh on doc.id = dh.doctor_code and dh.del=1 LEFT JOIN  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "base_daily_report_detail rd on up.id = rd.report_id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "LEFT JOIN base_daily_report_item it on rd.report_item_id = it.id " + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -4023,7 +4023,77 @@ public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject tmp = JSONObject.parseObject(dictValues.get(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doubtTypeObj = tmp.getJSONObject("dailyReportDoubtTypeName"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Set<String> resultTimeList = new HashSet<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Date startDateTmp = DateUtil.strToDate(startDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Date endDateTmp = DateUtil.strToDate(endDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (;!startDateTmp.after(endDateTmp);){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultTimeList.add(DateUtil.dateToStr(startDateTmp,DateUtil.YYYY_MM_DD)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            startDateTmp = DateUtil.getNextDay1(startDateTmp,1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(userCompleteList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String doctorTmp = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String doctorNameTmp = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String deptNameTmp = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String jobTitleNameTmp = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Set searchTimeList = new HashSet(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String,Object>> notReportList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(Map<String,Object>tmp:userCompleteList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String doctorId = null==tmp.get("doctor_id")?"":tmp.get("doctor_id").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String reportDate = null==tmp.get("report_date")?"":tmp.get("report_date").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String doctorName = null==tmp.get("doctor_name")?"":tmp.get("doctor_name").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String deptName = null==tmp.get("dept_name")?"":tmp.get("dept_name").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String jobTitleName = null==tmp.get("job_title_name")?"":tmp.get("job_title_name").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(StringUtils.isBlank(doctorTmp)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doctorTmp = doctorId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doctorNameTmp = doctorName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    deptNameTmp = deptName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jobTitleNameTmp = jobTitleName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!doctorTmp.equals(doctorId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for (String tmpTime:resultTimeList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (!searchTimeList.contains(tmpTime)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            Map<String,Object> notReportObj = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            notReportObj.put("doctor_id",doctorTmp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            notReportObj.put("report_date",tmpTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            notReportObj.put("doctor_name",doctorNameTmp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            notReportObj.put("dept_name",deptNameTmp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            notReportObj.put("job_title_name",jobTitleNameTmp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            notReportObj.put("week_name",DateUtil.getWeekStr(tmpTime)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            System.out.println(tmpTime+":"+DateUtil.getWeekStr(tmpTime)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            notReportList.add(notReportObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    searchTimeList = new HashSet(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    searchTimeList.add(reportDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doctorTmp = doctorId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doctorNameTmp = doctorName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    deptNameTmp = deptName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jobTitleNameTmp = jobTitleName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    searchTimeList.add(reportDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (String tmpTime:resultTimeList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!searchTimeList.contains(tmpTime)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Map<String,Object> notReportObj = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    notReportObj.put("doctor_id",doctorTmp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    notReportObj.put("report_date",tmpTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    notReportObj.put("doctor_name",doctorNameTmp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    notReportObj.put("dept_name",deptNameTmp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    notReportObj.put("job_title_name",jobTitleNameTmp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    notReportObj.put("week_name",DateUtil.getWeekStr(tmpTime)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    System.out.println(DateUtil.getWeekStr(tmpTime)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    notReportList.add(notReportObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            userCompleteList.addAll(notReportList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        userCompleteList.sort(Comparator.comparing(e->((Map<String,Object>)e).get("dept_name").toString()).reversed().thenComparing(e->((Map<String,Object>)e).get("doctor_id").toString()).thenComparing(e->((Map<String,Object>)e).get("report_date").toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        WritableWorkbook wwb = jxl.Workbook.createWorkbook(os); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        WritableSheet sheet = wwb.createSheet("sheet", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String[] header = {"员工完成情况("+startDate+"至"+endDate+")","","","","","","","","","","","","","","","","","",""};// 
			 |