|
@ -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
|