| 
					
				 | 
			
			
				@ -34,6 +34,7 @@ import com.yihu.jw.patient.dao.BasePatientDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.patient.dao.BasePatientMedicareCardDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.base.dict.DictHospitalDeptVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.base.org.BaseOrgVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.hospital.consult.WlyyHospitalSysDictVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.hospital.doctor.WlyyDoctorWorkTimeVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.hospital.prescription.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.MixEnvelop; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -547,7 +548,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        waitingRoom.setHospital(outpatientDO.getHospital()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        waitingRoom.setHospitalName(outpatientDO.getHospitalName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        waitingRoom.setConsultType(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        waitingRoom.setPatientId(outpatientDO.getPatient()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        waitingRoom.setPatientName(outpatientDO.getPatientName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        waitingRoom.setReservationTime(reservationTime); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -701,7 +701,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取医生列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取医生列表带排班 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param orgCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param dept 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -734,7 +734,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.introduce," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.job_title_code AS jobTitleCode, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.job_title_name AS jobTitleName," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.charge_type AS chargeType" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.charge_type AS chargeType," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " h.dept_code AS deptCode," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " h.dept_Name AS deptName" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " base_doctor d " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " JOIN base_doctor_hospital h ON h.doctor_code = d.id " + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -766,6 +768,77 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查询医生列表带月份排班状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param orgCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param dept 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param chargeType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param date 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param page 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param size 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MixEnvelop findDoctorWithMouthWork(String orgCode,String dept,String chargeType,String date,Integer page,Integer size){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String totalSql ="SELECT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " count(1) AS total " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " base_doctor d " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " JOIN base_doctor_hospital h ON h.doctor_code = d.id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " WHERE  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " h.org_code = '"+orgCode+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(chargeType)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            totalSql+=" AND d.charge_type ='"+chargeType+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(dept)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            totalSql+= " AND h.dept_code = '"+dept+"' " ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Long count = 0L; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (rstotal != null && rstotal.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            count = (Long) rstotal.get(0).get("total"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql ="SELECT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.id, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.photo, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.`name`, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.expertise," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.introduce," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.job_title_code AS jobTitleCode, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.job_title_name AS jobTitleName," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.charge_type AS chargeType," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " h.dept_code AS deptCode," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " h.dept_Name AS deptName" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " base_doctor d " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " JOIN base_doctor_hospital h ON h.doctor_code = d.id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " WHERE  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " h.org_code = '"+orgCode+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(chargeType)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql+=" AND d.charge_type ='"+chargeType+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(dept)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql+= " AND h.dept_code = '"+dept+"' " ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql += " LIMIT " + (page - 1) * size + "," + size + ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(list!=null&&list.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //获取排班 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(Map<String,Object> doctor :list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String id = (String)doctor.get("id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<WlyyDoctorWorkTimeDO> workTimeDOs = doctorWorkTimeDao.findDoctorWorkTimeByMonth(id,"%"+date+"%"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(workTimeDOs!=null&&workTimeDOs.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doctor.put("isScheduling",true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doctor.put("isScheduling",false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 挂号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1753,4 +1826,165 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return  list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查询排班规则 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<WlyyHospitalSysDictVO> findWorkRule(String dictName,String hospital){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyHospitalSysDictDO> list = sysDictDao.findByHospitalAndDictName(hospital,dictName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyHospitalSysDictVO> vos = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return convertToModels(list,vos,WlyyHospitalSysDictVO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 保存排班规则 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param workRoleJsons 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Boolean updateWorkRule(String workRoleJsons){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyHospitalSysDictDO> sysDicts = (List<WlyyHospitalSysDictDO>) com.alibaba.fastjson.JSONArray.parseArray(workRoleJsons, WlyyHospitalSysDictDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyHospitalSysDictDO> list = sysDictDao.findByHospitalAndDictName(sysDicts.get(0).getHospital(),sysDicts.get(0).getDictName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sysDictDao.delete(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sysDictDao.save(sysDicts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param codes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param workTimeJson 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Boolean saveDoctorWorkTimeJson(String type,String codes,String workTimeJson)throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyDoctorWorkTimeDO> wlyyDoctorWorkTimeDOs = (List<WlyyDoctorWorkTimeDO>) com.alibaba.fastjson.JSONArray.parseArray(workTimeJson, WlyyDoctorWorkTimeDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //全院医生 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if("1".equals(type)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String sql ="SELECT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " DISTINCT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " d.id, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " d.`name`, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.org_code, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.org_name, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.dept_code, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.dept_name " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " base_doctor d " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " JOIN base_doctor_hospital h ON d.id= h.doctor_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " WHERE  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.org_code ='"+codes+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String,Object>> doctors = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<WlyyDoctorWorkTimeDO> workTimeDOs =makeDoctorWorkTimeDOList(doctors,wlyyDoctorWorkTimeDOs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            saveDoctorWorkTime(workTimeDOs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //科室 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if("2".equals(type)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String sql ="SELECT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " DISTINCT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " d.id, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " d.`name`, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.org_code, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.org_name, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.dept_code, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.dept_name " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " base_doctor d " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " JOIN base_doctor_hospital h ON d.id= h.doctor_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " WHERE  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.dept_code in ("+sqlCode(codes)+")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String,Object>> doctors = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<WlyyDoctorWorkTimeDO> workTimeDOs =makeDoctorWorkTimeDOList(doctors,wlyyDoctorWorkTimeDOs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            saveDoctorWorkTime(workTimeDOs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //医生批量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if("3".equals(type)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String sql ="SELECT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " DISTINCT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " d.id, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " d.`name`, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.org_code, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.org_name, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.dept_code, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " h.dept_name " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " base_doctor d " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " JOIN base_doctor_hospital h ON d.id= h.doctor_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " WHERE  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " d.id in ("+sqlCode(codes)+")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String,Object>> doctors = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<WlyyDoctorWorkTimeDO> workTimeDOs =makeDoctorWorkTimeDOList(doctors,wlyyDoctorWorkTimeDOs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            saveDoctorWorkTime(workTimeDOs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String sqlCode(String codes){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String code[] = codes.split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String rs = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(String c:code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs+="'"+c+"',"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        rs = rs.substring(0,rs.length()-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return rs; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<WlyyDoctorWorkTimeDO> makeDoctorWorkTimeDOList(List<Map<String,Object>> doctors,List<WlyyDoctorWorkTimeDO> wlyyDoctorWorkTimeDOs){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyDoctorWorkTimeDO> rs = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(doctors!=null&&doctors.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //构建医生排班 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(Map<String,Object> doctor:doctors){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for(WlyyDoctorWorkTimeDO time:wlyyDoctorWorkTimeDOs){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    time.setDoctor((String)doctor.get("id")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    time.setDoctorName((String)doctor.get("name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    time.setDept((String)doctor.get("dept_code")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    time.setDeptName((String)doctor.get("dept_name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    time.setHospital((String)doctor.get("org_code")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    time.setHospitalName((String)doctor.get("org_name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    time.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    rs.add(time); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return rs; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 批量更新医生多月份排班数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param workTimeDOs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Boolean saveDoctorWorkTime(List<WlyyDoctorWorkTimeDO> workTimeDOs){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(workTimeDOs!=null&&workTimeDOs.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //按月按医生分组标记排班数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<String> workMonths = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(WlyyDoctorWorkTimeDO time : workTimeDOs){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //医生工作月份 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String workMonth = time.getDoctor()+","+time.getDate().substring(0,6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //判断是否是首次插入医生月份数据,如果是首次,则删除该医生当前月份排班数据数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(!workMonths.contains(workMonth)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    workMonths.add(workMonth); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    List<WlyyDoctorWorkTimeDO> oldTimes = doctorWorkTimeDao.findDoctorWorkTimeByMonth(time.getDoctor(),"%"+time.getDate().substring(0,6)+"%"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doctorWorkTimeDao.delete(oldTimes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doctorWorkTimeDao.save(workTimeDOs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查询某个医生某个月份排班记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param date 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<WlyyDoctorWorkTimeVO> findDoctorWorkTimeByMonth(String doctor,String date){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyDoctorWorkTimeDO> times = doctorWorkTimeDao.findDoctorWorkTimeByMonth(doctor,"%"+date+"%"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyDoctorWorkTimeVO> timeVOs = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return convertToModels(times,timeVOs,WlyyDoctorWorkTimeVO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |