|
@ -101,9 +101,10 @@ public class TimeoutOverDueService {
|
|
|
try {
|
|
|
consultCode = imService.getConsultCodeByOutpatientId(outPatientId);
|
|
|
logger.info("consultCode"+consultCode);
|
|
|
if(StringUtils.isNoneBlank(consultCode)){
|
|
|
imService.finish(consultCode,"admin",2);
|
|
|
//医生未回复可以退费
|
|
|
if(StringUtils.isNoneBlank(consultCode)) {
|
|
|
imService.cancelRevisit(consultCode, "admin", 2);
|
|
|
}
|
|
|
/*//医生未回复可以退费
|
|
|
businessOrderService.consultRefund(consultCode,wechatId);
|
|
|
wlyyOutpatientDO.setDoctorCancelRemark(cancelRemark);
|
|
|
wlyyOutpatientDO.setDoctorCancelType("6");
|
|
@ -111,90 +112,89 @@ public class TimeoutOverDueService {
|
|
|
wlyyOutpatientDO.setEndTime(new Date());
|
|
|
wlyyOutpatientDO.setOperator("system");
|
|
|
outpatientDao.save(wlyyOutpatientDO);
|
|
|
logger.info(wlyyOutpatientDO.getId()+"的门诊记录设置为取消");
|
|
|
}else{
|
|
|
//判断医生是否接诊
|
|
|
List<WlyyHospitalWaitingRoomDO> roomDOs = hospitalWaitingRoomDao.findByOutpatientId(outPatientId);
|
|
|
if (roomDOs != null && roomDOs.size() > 0) {
|
|
|
for (WlyyHospitalWaitingRoomDO roomDO : roomDOs) {
|
|
|
if (roomDO.getVisitStatus() == 2) {
|
|
|
logger.info("id为:"+outPatientId+"的门诊已被医生接诊");
|
|
|
} else {
|
|
|
roomDO.setVisitStatus(-1);
|
|
|
logger.info("修改候诊室状态,将候诊病人移除候诊室");
|
|
|
hospitalWaitingRoomDao.save(roomDO);
|
|
|
}
|
|
|
logger.info(wlyyOutpatientDO.getId()+"的门诊记录设置为取消");*/
|
|
|
//判断医生是否接诊
|
|
|
List<WlyyHospitalWaitingRoomDO> roomDOs = hospitalWaitingRoomDao.findByOutpatientId(outPatientId);
|
|
|
if (roomDOs != null && roomDOs.size() > 0) {
|
|
|
for (WlyyHospitalWaitingRoomDO roomDO : roomDOs) {
|
|
|
if (roomDO.getVisitStatus() == 2) {
|
|
|
logger.info("id为:"+outPatientId+"的门诊已被医生接诊");
|
|
|
} else {
|
|
|
roomDO.setVisitStatus(-1);
|
|
|
logger.info("修改候诊室状态,将候诊病人移除候诊室");
|
|
|
hospitalWaitingRoomDao.save(roomDO);
|
|
|
}
|
|
|
}
|
|
|
//更改门诊状态
|
|
|
wlyyOutpatientDO.setStatus("-1");
|
|
|
String description = null;
|
|
|
wlyyOutpatientDO.setDoctorCancelRemark(cancelRemark);
|
|
|
wlyyOutpatientDO.setDoctorCancelType("6");
|
|
|
wlyyOutpatientDO.setDoctorCancelValue(cancelValue);
|
|
|
wlyyOutpatientDO.setEndTime(new Date());
|
|
|
wlyyOutpatientDO.setOperator("system");
|
|
|
description = cancelValue;
|
|
|
//系统消息
|
|
|
SystemMessageDO messageDO = new SystemMessageDO();
|
|
|
messageDO.setTitle("超时订单系统自动取消");
|
|
|
messageDO.setType("13");
|
|
|
messageDO.setSender(wlyyOutpatientDO.getDoctor());
|
|
|
messageDO.setSenderName(wlyyOutpatientDO.getDoctorName());
|
|
|
messageDO.setRelationCode(wlyyOutpatientDO.getId());
|
|
|
messageDO.setReceiver(wlyyOutpatientDO.getPatient());
|
|
|
messageDO.setReceiverName(wlyyOutpatientDO.getPatientName());
|
|
|
net.sf.json.JSONObject data = new net.sf.json.JSONObject();
|
|
|
data.put("name", wlyyOutpatientDO.getPatientName());
|
|
|
data.put("age", IdCardUtil.getAgeForIdcard(wlyyOutpatientDO.getIdcard()));
|
|
|
data.put("gender", IdCardUtil.getSexForIdcard(wlyyOutpatientDO.getIdcard()));
|
|
|
data.put("question", wlyyOutpatientDO.getIcd10Name());
|
|
|
String msg = "";
|
|
|
if ("1".equalsIgnoreCase(wlyyOutpatientDO.getType())) {
|
|
|
data.put("type", "9");
|
|
|
msg += wlyyOutpatientDO.getPatientName() + ",您好! 您有一个图文复诊已被系统取消,取消原因:" + cancelValue + "。取消说明:" + cancelRemark + "。";
|
|
|
prescriptionService.sendWxTemplateMsg(wechatId, wlyyOutpatientDO.getId(),null, "9", "systemCancelRemind", cancelRemark);
|
|
|
}
|
|
|
if ("2".equalsIgnoreCase(wlyyOutpatientDO.getType())) {
|
|
|
data.put("type", "16");
|
|
|
msg += wlyyOutpatientDO.getPatientName() + ",您好! 您有一个视频复诊已被系统取消,取消原因:" + cancelValue + "。取消说明:" + cancelRemark + "。";
|
|
|
prescriptionService.sendWxTemplateMsg(wechatId, wlyyOutpatientDO.getId(),null, "16", "systemCancelRemind", cancelRemark);
|
|
|
}
|
|
|
data.put("msg", msg);
|
|
|
messageDO.setData(data.toString());
|
|
|
systemMessageService.saveMessage(messageDO);
|
|
|
//推送消息到眼科通
|
|
|
BasePatientDO patient = basePatientDao.findById(wlyyOutpatientDO.getPatient());
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)) {
|
|
|
logger.info("推送消息到眼科通");
|
|
|
ykyyService.pushNotificationToYktPatient(patient.getYktId(), messageDO.getTitle(), data.get("msg").toString());
|
|
|
}
|
|
|
//删除门诊号源
|
|
|
List<WlyyPatientRegisterTimeDO> list = patientRegisterTimeDao.findByOutpatientId(wlyyOutpatientDO.getId());
|
|
|
if (list != null && list.size() > 0) {
|
|
|
patientRegisterTimeDao.delete(list);
|
|
|
}
|
|
|
BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outPatientId);
|
|
|
if (wechatId.equalsIgnoreCase("xm_ykyy_wx")) {
|
|
|
businessOrderService.orderRefund(wechatId, wlyyOutpatientDO.getConsumer(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
|
|
|
//眼科接诊时更新眼科通状态
|
|
|
if (businessOrderDO!=null){
|
|
|
ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(),"2");
|
|
|
}
|
|
|
} else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")) {
|
|
|
/*
|
|
|
businessOrderService.ylzOrderRefund(wechatId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
|
|
|
*/
|
|
|
}
|
|
|
//更改门诊状态
|
|
|
wlyyOutpatientDO.setStatus("-1");
|
|
|
String description = null;
|
|
|
wlyyOutpatientDO.setDoctorCancelRemark(cancelRemark);
|
|
|
wlyyOutpatientDO.setDoctorCancelType("6");
|
|
|
wlyyOutpatientDO.setDoctorCancelValue(cancelValue);
|
|
|
wlyyOutpatientDO.setEndTime(new Date());
|
|
|
wlyyOutpatientDO.setOperator("system");
|
|
|
description = cancelValue;
|
|
|
//系统消息
|
|
|
SystemMessageDO messageDO = new SystemMessageDO();
|
|
|
messageDO.setTitle("超时订单系统自动取消");
|
|
|
messageDO.setType("13");
|
|
|
messageDO.setSender(wlyyOutpatientDO.getDoctor());
|
|
|
messageDO.setSenderName(wlyyOutpatientDO.getDoctorName());
|
|
|
messageDO.setRelationCode(wlyyOutpatientDO.getId());
|
|
|
messageDO.setReceiver(wlyyOutpatientDO.getPatient());
|
|
|
messageDO.setReceiverName(wlyyOutpatientDO.getPatientName());
|
|
|
net.sf.json.JSONObject data = new net.sf.json.JSONObject();
|
|
|
data.put("name", wlyyOutpatientDO.getPatientName());
|
|
|
data.put("age", IdCardUtil.getAgeForIdcard(wlyyOutpatientDO.getIdcard()));
|
|
|
data.put("gender", IdCardUtil.getSexForIdcard(wlyyOutpatientDO.getIdcard()));
|
|
|
data.put("question", wlyyOutpatientDO.getIcd10Name());
|
|
|
String msg = "";
|
|
|
if ("1".equalsIgnoreCase(wlyyOutpatientDO.getType())) {
|
|
|
data.put("type", "9");
|
|
|
msg += wlyyOutpatientDO.getPatientName() + ",您好! 您有一个图文复诊已被系统取消,取消原因:" + cancelValue + "。取消说明:" + cancelRemark + "。";
|
|
|
prescriptionService.sendWxTemplateMsg(wechatId, wlyyOutpatientDO.getId(),null, "9", "systemCancelRemind", cancelRemark);
|
|
|
}
|
|
|
if ("2".equalsIgnoreCase(wlyyOutpatientDO.getType())) {
|
|
|
data.put("type", "16");
|
|
|
msg += wlyyOutpatientDO.getPatientName() + ",您好! 您有一个视频复诊已被系统取消,取消原因:" + cancelValue + "。取消说明:" + cancelRemark + "。";
|
|
|
prescriptionService.sendWxTemplateMsg(wechatId, wlyyOutpatientDO.getId(),null, "16", "systemCancelRemind", cancelRemark);
|
|
|
}
|
|
|
data.put("msg", msg);
|
|
|
messageDO.setData(data.toString());
|
|
|
systemMessageService.saveMessage(messageDO);
|
|
|
//推送消息到眼科通
|
|
|
BasePatientDO patient = basePatientDao.findById(wlyyOutpatientDO.getPatient());
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)) {
|
|
|
logger.info("推送消息到眼科通");
|
|
|
ykyyService.pushNotificationToYktPatient(patient.getYktId(), messageDO.getTitle(), data.get("msg").toString());
|
|
|
}
|
|
|
//删除门诊号源
|
|
|
List<WlyyPatientRegisterTimeDO> list = patientRegisterTimeDao.findByOutpatientId(wlyyOutpatientDO.getId());
|
|
|
if (list != null && list.size() > 0) {
|
|
|
patientRegisterTimeDao.delete(list);
|
|
|
}
|
|
|
BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outPatientId);
|
|
|
if (wechatId.equalsIgnoreCase("xm_ykyy_wx")) {
|
|
|
businessOrderService.orderRefund(wechatId, wlyyOutpatientDO.getConsumer(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
|
|
|
//眼科接诊时更新眼科通状态
|
|
|
if (businessOrderDO!=null){
|
|
|
ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(),"2");
|
|
|
}
|
|
|
outpatientDao.save(wlyyOutpatientDO);
|
|
|
logger.info(wlyyOutpatientDO.getId()+"的门诊记录设置为取消");
|
|
|
} else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")) {
|
|
|
/*
|
|
|
businessOrderService.ylzOrderRefund(wechatId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
|
|
|
*/
|
|
|
}
|
|
|
}catch(Exception e) {
|
|
|
e.printStackTrace();
|
|
|
logger.info("自动结束咨询报错 consultCode: "+consultCode);
|
|
|
}
|
|
|
outpatientDao.save(wlyyOutpatientDO);
|
|
|
logger.info(wlyyOutpatientDO.getId()+"的门诊记录设置为取消");
|
|
|
|
|
|
}
|
|
|
}catch(Exception e) {
|
|
|
e.printStackTrace();
|
|
|
logger.info("自动结束咨询报错 consultCode: "+consultCode);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
logger.info(wlyyOutpatientDO.getId()+"的门诊记录取消失败");
|