|
@ -1,5 +1,7 @@
|
|
|
package com.yihu.jw.hospital.prescription.service;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorDao;
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
|
|
@ -64,13 +66,26 @@ public class WorkTimeService {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public WlyyHospitalWorkRuleDO saveWorkTimeRule(String workTimeRuleJson)throws Exception{
|
|
|
public WlyyHospitalWorkRuleDO saveWorkTimeRule(String workTimeRuleJson,String isDoctorWork) throws Exception{
|
|
|
WlyyHospitalWorkRuleDO ruleDO = objectMapper.readValue(workTimeRuleJson,WlyyHospitalWorkRuleDO.class);
|
|
|
List<WlyyHospitalWorkRuleDO> orgRules = wlyyHospitalWorkRuleDao.findByHospital(ruleDO.getHospital());
|
|
|
if(orgRules!=null&&orgRules.size()>0){
|
|
|
wlyyHospitalWorkRuleDao.delete(orgRules);
|
|
|
}
|
|
|
wlyyHospitalWorkRuleDao.save(ruleDO);
|
|
|
if (StringUtils.isNoneBlank(isDoctorWork)){
|
|
|
JSONArray jsonArray = JSONArray.parseArray(isDoctorWork);
|
|
|
if (jsonArray!=null&&jsonArray.size()>0){
|
|
|
for(int i=0;i<jsonArray.size();i++){
|
|
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
|
|
WlyyHospitalSysDictDO wlyyHospitalSysDictDO = wlyyHospitalSysDictDao.findById(jsonObject.getString("id"));
|
|
|
if (wlyyHospitalSysDictDO!=null&&StringUtils.isNoneBlank(jsonObject.get("value")==null?"":jsonObject.getString("value"))){
|
|
|
wlyyHospitalSysDictDO.setDictValue(jsonObject.getString("value"));
|
|
|
wlyyHospitalSysDictDao.save(wlyyHospitalSysDictDO);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return ruleDO;
|
|
|
}
|
|
|
|
|
@ -95,44 +110,89 @@ public class WorkTimeService {
|
|
|
public Boolean checkDoctorWork(String doctor,String ywCode){
|
|
|
logger.info("当前判断的业务Code:"+ywCode);
|
|
|
if (StringUtils.isNoneBlank(ywCode)){
|
|
|
WlyyHospitalSysDictDO wlyyHospitalSysDictDO = wlyyHospitalSysDictDao.findById(ywCode);
|
|
|
String isCheckDoctorWork = "1";
|
|
|
if (wlyyHospitalSysDictDO!=null){
|
|
|
isCheckDoctorWork = wlyyHospitalSysDictDO.getDictValue();
|
|
|
}
|
|
|
if ("1".equalsIgnoreCase(isCheckDoctorWork)){
|
|
|
String sql = "SELECT " +
|
|
|
" d.id " +
|
|
|
" FROM " +
|
|
|
" base_doctor d " +
|
|
|
" WHERE " +
|
|
|
" d.id =:doctor " +
|
|
|
" AND ( " +
|
|
|
" EXISTS ( " +
|
|
|
" SELECT " +
|
|
|
" t.id " +
|
|
|
" FROM " +
|
|
|
" wlyy_doctor_work_time t " +
|
|
|
" WHERE " +
|
|
|
" t.doctor = d.id " +
|
|
|
" AND t.start_time <=:startTime " +
|
|
|
" AND t.end_time >=:endTime" +
|
|
|
" ) " +
|
|
|
" OR d.consult_status = '1' " +
|
|
|
")";
|
|
|
Map<String,Object> params = new HashedMap();
|
|
|
params.put("doctor",doctor);
|
|
|
Date date = new Date();
|
|
|
params.put("startTime",date);
|
|
|
params.put("endTime",date);
|
|
|
List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,params);
|
|
|
if(list!=null&&list.size()>0){
|
|
|
return true;
|
|
|
}else {
|
|
|
return false;
|
|
|
if (ywCode.contains(",")){
|
|
|
String[] split = ywCode.split(",");
|
|
|
for (int i = 0;i<split.length;i++){
|
|
|
WlyyHospitalSysDictDO wlyyHospitalSysDictDO = wlyyHospitalSysDictDao.findById(split[i]);
|
|
|
String isCheckDoctorWork = "1";
|
|
|
if (wlyyHospitalSysDictDO!=null){
|
|
|
isCheckDoctorWork = wlyyHospitalSysDictDO.getDictValue();
|
|
|
}
|
|
|
if ("1".equalsIgnoreCase(isCheckDoctorWork)){
|
|
|
String sql = "SELECT " +
|
|
|
" d.id " +
|
|
|
" FROM " +
|
|
|
" base_doctor d " +
|
|
|
" WHERE " +
|
|
|
" d.id =:doctor " +
|
|
|
" AND ( " +
|
|
|
" EXISTS ( " +
|
|
|
" SELECT " +
|
|
|
" t.id " +
|
|
|
" FROM " +
|
|
|
" wlyy_doctor_work_time t " +
|
|
|
" WHERE " +
|
|
|
" t.doctor = d.id " +
|
|
|
" AND t.start_time <=:startTime " +
|
|
|
" AND t.end_time >=:endTime" +
|
|
|
" ) " +
|
|
|
" OR d.consult_status = '1' " +
|
|
|
")";
|
|
|
Map<String,Object> params = new HashedMap();
|
|
|
params.put("doctor",doctor);
|
|
|
Date date = new Date();
|
|
|
params.put("startTime",date);
|
|
|
params.put("endTime",date);
|
|
|
List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,params);
|
|
|
if(list!=null&&list.size()>0){
|
|
|
return true;
|
|
|
}else {
|
|
|
return false;
|
|
|
}
|
|
|
}else {
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
}else {
|
|
|
return true;
|
|
|
WlyyHospitalSysDictDO wlyyHospitalSysDictDO = wlyyHospitalSysDictDao.findById(ywCode);
|
|
|
String isCheckDoctorWork = "1";
|
|
|
if (wlyyHospitalSysDictDO!=null){
|
|
|
isCheckDoctorWork = wlyyHospitalSysDictDO.getDictValue();
|
|
|
}
|
|
|
if ("1".equalsIgnoreCase(isCheckDoctorWork)){
|
|
|
String sql = "SELECT " +
|
|
|
" d.id " +
|
|
|
" FROM " +
|
|
|
" base_doctor d " +
|
|
|
" WHERE " +
|
|
|
" d.id =:doctor " +
|
|
|
" AND ( " +
|
|
|
" EXISTS ( " +
|
|
|
" SELECT " +
|
|
|
" t.id " +
|
|
|
" FROM " +
|
|
|
" wlyy_doctor_work_time t " +
|
|
|
" WHERE " +
|
|
|
" t.doctor = d.id " +
|
|
|
" AND t.start_time <=:startTime " +
|
|
|
" AND t.end_time >=:endTime" +
|
|
|
" ) " +
|
|
|
" OR d.consult_status = '1' " +
|
|
|
")";
|
|
|
Map<String,Object> params = new HashedMap();
|
|
|
params.put("doctor",doctor);
|
|
|
Date date = new Date();
|
|
|
params.put("startTime",date);
|
|
|
params.put("endTime",date);
|
|
|
List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,params);
|
|
|
if(list!=null&&list.size()>0){
|
|
|
return true;
|
|
|
}else {
|
|
|
return false;
|
|
|
}
|
|
|
}else {
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
}else {
|
|
|
String sql = "SELECT " +
|