|  | @ -3162,13 +3162,22 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //机构科室信息
 | 
	
		
			
				|  |  |             List<BaseDoctorHospitalDO> hospitalDOs =  baseDoctorHospitalDao.findByDoctorCode(doctorDO.getId());
 | 
	
		
			
				|  |  |             if(hospitalDOs!=null&&hospitalDOs.size()>0){
 | 
	
		
			
				|  |  |                 rs.put("hospital",hospitalDOs.get(0));
 | 
	
		
			
				|  |  |                 BaseOrgDO org = baseOrgDao.findByCode(hospitalDOs.get(0).getOrgCode());
 | 
	
		
			
				|  |  |             List<BaseDoctorHospitalDO> hospitalDOList = new ArrayList<>();
 | 
	
		
			
				|  |  |             for (BaseDoctorHospitalDO doctorHospitalDO:hospitalDOs){
 | 
	
		
			
				|  |  |                 String orgCode = doctorHospitalDO.getOrgCode();
 | 
	
		
			
				|  |  |                 BaseOrgDO org = baseOrgDao.findByCode(orgCode);
 | 
	
		
			
				|  |  |                 if (org!=null){
 | 
	
		
			
				|  |  |                     doctorHospitalDO.setWinNo(org.getWinNo());
 | 
	
		
			
				|  |  |                     hospitalDOList.add(doctorHospitalDO);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if(hospitalDOList!=null&&hospitalDOList.size()>0){
 | 
	
		
			
				|  |  |                 rs.put("hospital",hospitalDOList.get(0));
 | 
	
		
			
				|  |  |                 BaseOrgDO org = baseOrgDao.findByCode(hospitalDOList.get(0).getOrgCode());
 | 
	
		
			
				|  |  |                 if(org!=null){
 | 
	
		
			
				|  |  |                     rs.put("winNo",org.getWinNo());
 | 
	
		
			
				|  |  |                     rs.put("deptName",hospitalDOs.get(0).getDeptName());
 | 
	
		
			
				|  |  |                     rs.put("deptCode",hospitalDOs.get(0).getDeptCode());
 | 
	
		
			
				|  |  |                     rs.put("deptName",hospitalDOList.get(0).getDeptName());
 | 
	
		
			
				|  |  |                     rs.put("deptCode",hospitalDOList.get(0).getDeptCode());
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 rs.put("hospital",null);
 | 
	
	
		
			
				|  | @ -3177,8 +3186,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 rs.put("deptCode",null);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //多科室兼容
 | 
	
		
			
				|  |  |             rs.put("hospitalList",hospitalDOs);
 | 
	
		
			
				|  |  |             rs.put("hospitalList",hospitalDOList);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //医生角色
 | 
	
	
		
			
				|  | @ -4079,6 +4089,102 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         return true;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 医生自主保存排班
 | 
	
		
			
				|  |  |      * @param codes
 | 
	
		
			
				|  |  |      * @param workTimeJson
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Boolean doctorSaveWorkTimeJson(String codes,String workTimeJson,String date)throws Exception{
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         com.alibaba.fastjson.JSONArray works = JSON.parseArray(workTimeJson);
 | 
	
		
			
				|  |  |         List<WlyyDoctorWorkTimeDO> wlyyDoctorWorkTimeDOs = new ArrayList<>();
 | 
	
		
			
				|  |  |         for(int i=0;i<works.size();i++){
 | 
	
		
			
				|  |  |             com.alibaba.fastjson.JSONObject work = (com.alibaba.fastjson.JSONObject)works.get(i);
 | 
	
		
			
				|  |  |             WlyyDoctorWorkTimeDO timeDO = objectMapper.readValue(work.toJSONString(),WlyyDoctorWorkTimeDO.class);
 | 
	
		
			
				|  |  |             wlyyDoctorWorkTimeDOs.add(timeDO);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //医生自主排班
 | 
	
		
			
				|  |  |         String sql ="SELECT " +
 | 
	
		
			
				|  |  |                 " DISTINCT " +
 | 
	
		
			
				|  |  |                 " d.id AS \"id\", " +
 | 
	
		
			
				|  |  |                 " d.name AS \"name\", " +
 | 
	
		
			
				|  |  |                 " h.org_code AS \"org_code\", " +
 | 
	
		
			
				|  |  |                 " h.org_name AS \"org_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);
 | 
	
		
			
				|  |  |         doctorSaveWorkTime(workTimeDOs,date,doctors);
 | 
	
		
			
				|  |  |         return true;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 医生自主编辑排班
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param workTimeJson
 | 
	
		
			
				|  |  |      * @param codes
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Boolean doctorUpdateWorkTimeJson(String workTimeJson,String codes)throws Exception{
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         com.alibaba.fastjson.JSONArray works = JSON.parseArray(workTimeJson);
 | 
	
		
			
				|  |  |         List<WlyyDoctorWorkTimeDO> wlyyDoctorWorkTimeDOs = new ArrayList<>();
 | 
	
		
			
				|  |  |         for(int i=0;i<works.size();i++){
 | 
	
		
			
				|  |  |             com.alibaba.fastjson.JSONObject work = (com.alibaba.fastjson.JSONObject)works.get(i);
 | 
	
		
			
				|  |  |             WlyyDoctorWorkTimeDO timeDO = objectMapper.readValue(work.toJSONString(),WlyyDoctorWorkTimeDO.class);
 | 
	
		
			
				|  |  |             wlyyDoctorWorkTimeDOs.add(timeDO);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //医生自主排班
 | 
	
		
			
				|  |  |         String sql ="SELECT " +
 | 
	
		
			
				|  |  |                 " DISTINCT " +
 | 
	
		
			
				|  |  |                 " d.id AS \"id\", " +
 | 
	
		
			
				|  |  |                 " d.name AS \"name\", " +
 | 
	
		
			
				|  |  |                 " h.org_code AS \"org_code\", " +
 | 
	
		
			
				|  |  |                 " h.org_name AS \"org_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);
 | 
	
		
			
				|  |  |         for (WlyyDoctorWorkTimeDO workTimeDO:workTimeDOs){
 | 
	
		
			
				|  |  |             List<WlyyDoctorWorkTimeDO> workTimeDOList = doctorWorkTimeDao.findDoctorWorkTime(workTimeDO.getDoctor(),workTimeDO.getStartTime(),workTimeDO.getEndTime());
 | 
	
		
			
				|  |  |             if (workTimeDOList!=null&&workTimeDOList.size()!=0){
 | 
	
		
			
				|  |  |                 try {
 | 
	
		
			
				|  |  |                     throw new Exception("当前已排过班");
 | 
	
		
			
				|  |  |                 } catch (Exception e) {
 | 
	
		
			
				|  |  |                     e.printStackTrace();
 | 
	
		
			
				|  |  |                     return false;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 doctorWorkTimeDao.save(workTimeDO);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return true;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 医生自主删除排班
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param code
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Boolean deleteWorkTime(String code)throws Exception{
 | 
	
		
			
				|  |  |         doctorWorkTimeDao.delete(code);
 | 
	
		
			
				|  |  |         return true;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public String sqlCode(String codes){
 | 
	
		
			
				|  |  |         String code[] = codes.split(",");
 | 
	
		
			
				|  |  |         String rs = "";
 | 
	
	
		
			
				|  | @ -4113,6 +4219,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                     t.setSourceNumber(time.getSourceNumber());
 | 
	
		
			
				|  |  |                     t.setCreateUser(time.getCreateUser());
 | 
	
		
			
				|  |  |                     t.setCreateUserType(time.getCreateUserType());
 | 
	
		
			
				|  |  |                     t.setId(time.getId());
 | 
	
		
			
				|  |  |                     rs.add(t);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 logger.info(rs.size()+"");
 | 
	
	
		
			
				|  | @ -4158,6 +4265,29 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         return true;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 更新医生
 | 
	
		
			
				|  |  |      * @param workTimeDOs
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public boolean doctorSaveWorkTime(List<WlyyDoctorWorkTimeDO> workTimeDOs,String date,List<Map<String,Object>> doctors){
 | 
	
		
			
				|  |  |         for (WlyyDoctorWorkTimeDO workTimeDO:workTimeDOs){
 | 
	
		
			
				|  |  |             List<WlyyDoctorWorkTimeDO> workTimeDOList = doctorWorkTimeDao.findDoctorWorkTime(workTimeDO.getDoctor(),workTimeDO.getStartTime(),workTimeDO.getEndTime());
 | 
	
		
			
				|  |  |             if (workTimeDOList!=null&&workTimeDOList.size()!=0){
 | 
	
		
			
				|  |  |                 try {
 | 
	
		
			
				|  |  |                     throw new Exception("当前已排过班");
 | 
	
		
			
				|  |  |                 } catch (Exception e) {
 | 
	
		
			
				|  |  |                     e.printStackTrace();
 | 
	
		
			
				|  |  |                     return false;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 doctorWorkTimeDao.save(workTimeDO);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return true;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 查询某个医生某个月份排班记录
 | 
	
		
			
				|  |  |      * @param doctor
 |