|
@ -516,16 +516,17 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
}
|
|
|
|
|
|
public List<Map<String,Object>> queryDispatcherInfoByHospital(String hospital){
|
|
|
String sql ="SELECT " +
|
|
|
" d.`code`, " +
|
|
|
" d.`name`, " +
|
|
|
" d.`hospital_name` as hospitalName " +
|
|
|
" FROM " +
|
|
|
" manage_role_user m " +
|
|
|
" JOIN manage_roles r ON m.role_id = r.id " +
|
|
|
" JOIN (select code,name,hospital_name from wlyy_doctor where hospital = '"+ hospital +"') as d ON m.user_code = d.code" +
|
|
|
" WHERE " +
|
|
|
" r.code = 'dispatcher'";
|
|
|
String sql =" SELECT" +
|
|
|
" d.`code`, " +
|
|
|
" d.`name`, " +
|
|
|
" d.`hospital_name` as hospitalName " +
|
|
|
" FROM " +
|
|
|
" base_doctor_role m " +
|
|
|
" JOIN base_doctor_role_dict r ON m.role_code = r.code " +
|
|
|
" JOIN (select a.id code,a.name,o.org_name hospital_name from base_doctor_hospital o,base_doctor a " +
|
|
|
" where a.id = o.doctor_code and o.del=1 and o.org_code = '"+hospital+"') as d ON m.doctor_code = d.code" +
|
|
|
" WHERE " +
|
|
|
" r.code = 'dispatcher'";
|
|
|
return jdbcTemplate.queryForList(sql);
|
|
|
}
|
|
|
|
|
@ -629,10 +630,26 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
//新增工单与服务项费用关联关系
|
|
|
if (orderWithPackageItemFeeAdd(result, jsonObjectParam, orderDO)) {return result;}
|
|
|
|
|
|
JSONObject dispatcherJson = queryDispatcherInfoByPatient(jsonObjectParam.getJSONObject("hospital").get("code").toString());
|
|
|
if (dispatcherJson.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
|
|
|
return dispatcherJson;
|
|
|
|
|
|
if ( StringUtils.isNotBlank(orderDO.getDoctor())) {
|
|
|
orderDO.setStatus(2);
|
|
|
/* orderDO.setDoctor(signFamily.getDoctor());
|
|
|
orderDO.setDoctorName(signFamily.getDoctorName());*/
|
|
|
this.save(orderDO);
|
|
|
WlyyDoorServiceOrderDO wlyyDoorServiceOrder = wlyyDoorServiceOrderDao.findOne(orderDO.getId());
|
|
|
//新增工单医生关联关系
|
|
|
if (orderWithDoctorAdd(result, jsonObjectParam, wlyyDoorServiceOrder)) {return result;}
|
|
|
// 给服务医生发接单消息
|
|
|
this.createMessage(orderDO.getId(),orderDO.getProxyPatient(),orderDO.getDoctor(),407,"服务工单待接单","您有新的服务工单,请前往处理");
|
|
|
//发送智能助手消息
|
|
|
sendWeixinMessage(4,orderDO.getDoctor(),orderDO.getPatient());
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.success);
|
|
|
result.put(ResponseContant.resultMsg, consultTeam);
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
JSONObject dispatcherJson = queryDispatcherInfoByPatient(jsonObjectParam.getJSONObject("hospital").get("code").toString());
|
|
|
|
|
|
List<Map<String,Object>> dispatcherInfoList = (List)dispatcherJson.get(ResponseContant.resultMsg);
|
|
|
for(Map<String,Object> map: dispatcherInfoList){
|
|
|
String dispatcher = map.get("code").toString();
|
|
@ -642,10 +659,14 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
this.createMessage(orderDO.getId(),"system",dispatcher,430,"居民提交工单申请",orderDO.getPatientName() + "提交了服务工单"+orderDO.getNumber()+"申请");
|
|
|
}
|
|
|
//给机构调度员发送医生助手消息
|
|
|
String dispatcherSql = "SELECT u.user_code FROM `manage_role_user` u ,wlyy_doctor d where u.role_id = 22 and u.user_code = d.`code` and d.hospital = '" +orderDO.getHospital() + "'";
|
|
|
String dispatcherSql = "SELECT m.doctor_code FROM base_doctor_role m " +
|
|
|
"JOIN base_doctor_role_dict r ON m.role_code = r.code " +
|
|
|
"JOIN base_doctor_hospital o ON m.doctor_code = o.doctor_code WHERE " +
|
|
|
" r.code = 'dispatcher' and o.del=1 and o.org_code = '"+orderDO.getHospital()+"'";
|
|
|
|
|
|
List<Map<String, Object>> dispatcherList = jdbcTemplate.queryForList(dispatcherSql);
|
|
|
for(Map<String, Object> map : dispatcherList) {
|
|
|
sendWeixinMessage(3, map.get("user_code") + "", orderDO.getPatient());
|
|
|
sendWeixinMessage(3, map.get("doctor_code") + "", orderDO.getPatient());
|
|
|
}
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.success);
|
|
|
result.put(ResponseContant.resultMsg, consultTeam);
|
|
@ -1117,8 +1138,8 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
String sql = "SELECT " +
|
|
|
" d.photo AS doctorPhoto, " +
|
|
|
" d.`name` AS doctorName, " +
|
|
|
" d.`job_name` AS doctorJobName, " +
|
|
|
" d.hospital_name AS hospitalName, " +
|
|
|
" d.job_title_name AS doctorJobName, " +
|
|
|
" dm.name AS hospitalName, " +
|
|
|
" d.mobile AS doctorPhone, " +
|
|
|
" o.id, " +
|
|
|
" o.number, " +
|
|
@ -1128,13 +1149,14 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
" o.`status` AS status, " +
|
|
|
" o.`pay_way` AS payWay, o.type," +
|
|
|
" ifnull(de.order_id,concat(rand(),'_notExist')) AS feeOrderId, " +
|
|
|
" dm.phone AS hospitalPhone, " +
|
|
|
" dm.mobile AS hospitalPhone, " +
|
|
|
" count(de.number) as itemCount " +
|
|
|
" FROM " +
|
|
|
" ( wlyy_door_service_order o " +
|
|
|
" LEFT JOIN wlyy_doctor d ON o.doctor = d.`code`) " +
|
|
|
" LEFT JOIN base_doctor d ON o.doctor = d.id " +
|
|
|
" LEFT JOIN base_doctor_hospital dh ON o.doctor = dh.doctor_code) " +
|
|
|
" LEFT JOIN wlyy_door_fee_detail de on o.id = de.order_id " +
|
|
|
" LEFT JOIN dm_hospital dm on o.hospital = dm.code " +
|
|
|
" LEFT JOIN base_org dm on o.hospital = dm.code " +
|
|
|
" WHERE " +
|
|
|
" (o.patient = '{patient}' " +
|
|
|
") " +
|
|
@ -1152,9 +1174,10 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
" count(DISTINCT o.id) " +
|
|
|
" FROM " +
|
|
|
" ( wlyy_door_service_order o " +
|
|
|
" LEFT JOIN wlyy_doctor d ON o.doctor = d.`code`) " +
|
|
|
" LEFT JOIN base_doctor d ON o.doctor = d.id " +
|
|
|
" LEFT JOIN base_doctor_hospital dh ON o.doctor = dh.doctor_code) " +
|
|
|
" LEFT JOIN wlyy_door_fee_detail de on o.id = de.order_id " +
|
|
|
" LEFT JOIN dm_hospital dm on o.hospital = dm.code " +
|
|
|
" LEFT JOIN base_org dm on o.hospital = dm.code " +
|
|
|
" WHERE " +
|
|
|
" (o.patient = '{patient}' or o.proxy_patient = '{patient}') " +
|
|
|
" AND (o.`status` = {status} or -100 = {status})";
|
|
@ -1737,11 +1760,11 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
" o.serve_lat as lat, " +
|
|
|
" o.`status` as status, " +
|
|
|
" o.`dispatcher_name` as dispatcherName, " +
|
|
|
" concat( o.patient,'_' ,c.`code`, '_',o.`number`,'_11' ) as sessionId, " +
|
|
|
" concat( o.patient,'_' ,c.id, '_',o.`number`,'_11' ) as sessionId, " +
|
|
|
" t1.`type` as patientType " +
|
|
|
" FROM " +
|
|
|
" ( wlyy_door_service_order o " +
|
|
|
"LEFT JOIN wlyy_patient p ON o.patient = p.`code` ) LEFT JOIN wlyy_consult c on o.id = c.relation_code" +
|
|
|
" LEFT JOIN base_patient p ON o.patient = p.id ) LEFT JOIN wlyy_consult c on o.id = c.relation_code" +
|
|
|
" JOIN ( " +
|
|
|
" select a.patient, group_concat(v.type) as type " +
|
|
|
" from wlyy_door_service_voucher v " +
|
|
@ -1769,7 +1792,7 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
" count(o.id) " +
|
|
|
" FROM " +
|
|
|
" wlyy_door_service_order o " +
|
|
|
" LEFT JOIN wlyy_patient p ON o.patient = p.`code` " +
|
|
|
" LEFT JOIN base_patient p ON o.patient = p.id " +
|
|
|
" JOIN ( " +
|
|
|
" select a.patient, group_concat(v.type) as type " +
|
|
|
" from wlyy_door_service_voucher v " +
|
|
@ -1867,21 +1890,21 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
" when 1 then '男' " +
|
|
|
" when 2 then '女' " +
|
|
|
" end as sex, " +
|
|
|
" d.`job_name` AS jobName, " +
|
|
|
" d.job_title_name AS jobName, " +
|
|
|
" d.mobile as phone, " +
|
|
|
" IFNULL(ds.`status`,5) as status," +
|
|
|
" 1 as sortFlag ,count(o.id) as count" +
|
|
|
" FROM " +
|
|
|
" base.base_doctor d " +
|
|
|
" base_doctor d " +
|
|
|
" LEFT JOIN wlyy_door_doctor_status ds ON d.id = ds.doctor " +
|
|
|
" LEFT JOIN wlyy_door_service_order o on o.doctor = d.id and o.`status` in (2,3,4) " +
|
|
|
" WHERE d.status = 1" +
|
|
|
" AND d.level <> 11" +
|
|
|
" AND d.hospital = '{hospital}' " +
|
|
|
" LEFT JOIN base_doctor_hospital dh on dh.doctor_code = d.id " +
|
|
|
" WHERE d.enabled = 1" +
|
|
|
" AND dh.org_code = '{hospital}' "+
|
|
|
" AND d.`name` like '%{doctorName}%' " +
|
|
|
" AND (ds.`status` in ({status}) or '-100' = '{status}')" +
|
|
|
" AND d.del=1 " +
|
|
|
" GROUP BY d.`code` ORDER BY ds.create_time DESC " +
|
|
|
" GROUP BY d.id ORDER BY ds.create_time DESC " +
|
|
|
" LIMIT {start},{end}";
|
|
|
|
|
|
String finalSql = sql.replace("{hospital}", hospital)
|
|
@ -1893,13 +1916,13 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
String countSql = "SELECT " +
|
|
|
" count(d.id) " +
|
|
|
" FROM " +
|
|
|
" base.base_doctor d " +
|
|
|
" base_doctor d " +
|
|
|
" LEFT JOIN wlyy_door_doctor_status ds ON d.id = ds.doctor " +
|
|
|
" WHERE d.status = 1" +
|
|
|
" AND d.level <> 4" +
|
|
|
" AND d.hospital = '{hospital}' "+
|
|
|
" LEFT JOIN base_doctor_hospital dh on dh.doctor_code = d.id " +
|
|
|
" WHERE d.enabled = 1" +
|
|
|
" AND dh.org_code = '{hospital}' "+
|
|
|
" AND d.`name` like '%{doctorName}%' " +
|
|
|
" AND d.del=1 and d.status=1 " +
|
|
|
" AND d.del=1 " +
|
|
|
" AND (ds.`status` in ({status}) or '-100' = '{status}')";
|
|
|
|
|
|
String finalCountSql = countSql.replace("{hospital}", hospital)
|
|
@ -1938,7 +1961,7 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
if(notFinish > 0 && StringUtils.isNotBlank(doctor)){
|
|
|
String notFinishSql ="select o.id,o.number,o.patient,o.patient_name,o.patient_phone,o.patient_expected_serve_time,o.`status`, CASE p.sex when 1 then '男' when 2 THEN '女' END as sex,p.idcard, " +
|
|
|
"year(now()) - ((CASE LENGTH(p.idcard) WHEN 18 THEN substring(p.idcard, 7, 4) WHEN 15 THEN CONCAT('19',substring(p.idcard, 7, 2)) END )) as age , p.photo,o.serve_lat AS lat,o.serve_lon AS lon,o.id AS orderId " +
|
|
|
"from wlyy_door_service_order o LEFT JOIN wlyy_patient p on o.patient = p.`code` and p.`status`=1 " +
|
|
|
"from wlyy_door_service_order o LEFT JOIN base_patient p on o.patient = p.id and p.patient_status=1 " +
|
|
|
"where o.doctor ='"+doctor + "' and o.status in (2,3,4)";
|
|
|
List<Map<String, Object>> notFinishList = jdbcTemplate.queryForList(notFinishSql);
|
|
|
map.put("notFinishList", notFinishList);
|
|
@ -2019,13 +2042,13 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
|
|
|
String sql = "select ds.doctor,d.name, d.job_name as jobName, 1 as sortFlag " +
|
|
|
" from wlyy_door_doctor_status ds " +
|
|
|
" JOIN (select * from wlyy_doctor where hospital = '" + hospital + "') d on ds.doctor = d.code " +
|
|
|
" JOIN (select b.* from base_doctor b,base_doctor_hospital dh where b.id=dh.doctor_code and dh.del = 1 and dh.org_code='" + hospital + "') d on ds.doctor = d.id " +
|
|
|
" where ds.status in (1,2,3,4)" +
|
|
|
" limit " + start + "," + end ;
|
|
|
|
|
|
String countSql = "select count(ds.id) " +
|
|
|
"from wlyy_door_doctor_status ds " +
|
|
|
" JOIN (select * from wlyy_doctor where hospital = '" + hospital + "') d on ds.doctor = d.code " +
|
|
|
" JOIN (select b.* from base_doctor b,base_doctor_hospital dh where b.id=dh.doctor_code and dh.del = 1 and dh.org_code= '" + hospital + "') d on ds.doctor = d.code " +
|
|
|
"where ds.status in (1,2,3,4)";
|
|
|
List<Map<String,Object>> doctorList = new ArrayList<>();
|
|
|
try {
|
|
@ -2548,7 +2571,7 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
sql += " union ";
|
|
|
}
|
|
|
|
|
|
sql += " SELECT s.patient,s.`name`,s.openid,s.idcard, s.mobile,h.town_code town,h.town_name townName, p.address,r.create_time createTime from wlyy_sign_family s, wlyy_door_service_order r ,base.base_org h,base.base_patient p " +
|
|
|
sql += " SELECT s.patient,s.`name`,s.openid,s.idcard, s.mobile,h.town_code town,h.town_name townName, p.address,r.create_time createTime from wlyy_sign_family s, wlyy_door_service_order r ,base_org h,base_patient p " +
|
|
|
"WHERE s.admin_team_code = " + teamCode + " AND ( s.doctor = '" + doctor + "' OR s.doctor_health = '" + doctor + "') and s.`status`= 1 and s.expenses_status=1 and s.doctor = '" + doctor + "' " +
|
|
|
"and r.patient = s.patient and s.hospital = h.code and s.patient = p.id and p.patient_status = 1 ";
|
|
|
if(StringUtils.isNotBlank(patientName)){
|
|
@ -2803,7 +2826,7 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
public List<Map<String,Object>> getProxyPatientList(String patient) {
|
|
|
//根据代理人code查代理预约对象
|
|
|
String sql = "SELECT o.patient,o.patient_name,o.patient_relation,p.photo, IFNULL(m.family_relation, -1) family_relation FROM `wlyy_door_service_order` o LEFT JOIN wlyy_patient_family_member m " +
|
|
|
"on o.proxy_patient = m.patient and o.patient = m.family_member JOIN wlyy_patient p on p.`code` = o.patient and p.`status` = 1 " +
|
|
|
"on o.proxy_patient = m.patient and o.patient = m.family_member JOIN base_patient p on p.id = o.patient and p.patient_status = 1 " +
|
|
|
"where o.proxy_patient = '" + patient + "' and o.type != 3 " +
|
|
|
" GROUP BY o.patient ORDER BY family_relation ";
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
@ -2866,26 +2889,6 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
|
|
|
wlyyDoorServiceOrder.setDoctorArrivingTime(jsonObjectParam.getString("doctorArrivingTime"));
|
|
|
}
|
|
|
|
|
|
// //添加居民同意状态
|
|
|
// wlyyDoorServiceOrder.setIsPatientConfirm(1);
|
|
|
// wlyyDoorServiceOrder.setPatientConfirmTime(new Date());
|
|
|
// wlyyDoorServiceOrder.setUpdateTime(new Date());
|
|
|
// this.save(wlyyDoorServiceOrder);
|
|
|
//
|
|
|
// //修改时有更改到关联关系,则先删除原有关联关系,再新增关联关系
|
|
|
// //删除工单原来医生的关联关系
|
|
|
// // 删除出诊医生或服务项
|
|
|
// this.orderWithFeeDelete(jsonObjectParam,wlyyDoorServiceOrder);
|
|
|
|
|
|
//新增工单医生关联关系
|
|
|
if (orderWithDoctorAdd(result, jsonObjectParam, wlyyDoorServiceOrder)) {return result;}
|
|
|
|
|
|
// //新增工单居民确认操作日志记录
|
|
|
// if (orderWithConfirmLogAdd(result, jsonObjectParam, wlyyDoorServiceOrder.getId())) {return result;}
|
|
|
|
|
|
//微信模板消息-反馈处理通知
|
|
|
// pushMsgTask.putWxMsg(tokenUtils.getAccessToken(),30,);
|
|
|
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.success);
|
|
|
result.put(ResponseContant.resultMsg, wlyyDoorServiceOrder);
|
|
|
return result;
|