|
@ -3,7 +3,6 @@ package com.yihu.jw.door.service;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.netflix.discovery.converters.Auto;
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorDao;
|
|
|
import com.yihu.jw.door.dao.*;
|
|
|
import com.yihu.jw.door.util.MessageUtil;
|
|
@ -118,8 +117,9 @@ public class DoorOrderService {
|
|
|
@Value("${wechat.id}")
|
|
|
private String wxId;
|
|
|
@Autowired
|
|
|
private BaseDoctorDao baseDoctorDao;
|
|
|
|
|
|
private BaseDoctorDao baseDoctorDao;
|
|
|
@Autowired
|
|
|
private WlyyDoorCommentDao doorCommentDao;
|
|
|
/**
|
|
|
* 顶部状态栏订单各分类总条数
|
|
|
* @param doctor
|
|
@ -490,17 +490,17 @@ public class DoorOrderService {
|
|
|
// 获取微信模板
|
|
|
ConsultDo consult = consultDao.queryByRelationCode(orderId);
|
|
|
try {
|
|
|
|
|
|
String patientName=patient.getName()==null?"":patient.getName();
|
|
|
String doctorName=doorServiceOrder.getDoctorName()!=null? doorServiceOrder.getDoctorName() : "";
|
|
|
String first = patientName+",您好!您的上门预约服务已由"+doctorName+"医生接单了";
|
|
|
String contentMsg = "";
|
|
|
String remark = "您可点击消息查看详情。";
|
|
|
String url ="appoint_service/html/appoint-serviceDetail.html";
|
|
|
if ("xm_xzzx_wx".equalsIgnoreCase(wxId)){
|
|
|
String responseMsg =messageUtil.sendWXMes(wxId,patient.getId(),patient.getIdcard(),first,contentMsg,remark,url);
|
|
|
}else if ("xm_zsyy_wx".equalsIgnoreCase(wxId)) {
|
|
|
String responseMsg =messageUtil.ehospitalNotice(patient.getName(),patient.getIdcard(),patient.getMobile(),first,contentMsg,remark,url);
|
|
|
if(consult != null) {
|
|
|
String consultStr = consult.getId();
|
|
|
}
|
|
|
String first = patientName+",您好!您的上门预约服务已由【"+doctorName+"】医生接单了";
|
|
|
logger.info("上门服务已接单推送前");
|
|
|
//url + json.getString("url") + "?openid=" + openid + "&consult=" + json.getString("consult")
|
|
|
messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","smyyyjjd",patient.getOpenid(),first,null,null,DateUtil.dateToStrShort(new Date()),"上门服务已接单");
|
|
|
logger.info("上门服务已接单推送前");
|
|
|
}catch (Exception e){
|
|
|
logger.error(e.getMessage());
|
|
|
}
|
|
@ -515,7 +515,7 @@ public class DoorOrderService {
|
|
|
BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doorServiceOrder.getDispatcher());//·
|
|
|
String msg=doorServiceOrder.getDispatcherName() + "接受了服务工单"+ doorServiceOrder.getNumber();
|
|
|
messageUtil.saveSystemMessage(message.getId(),message.getRelationCode(),"医生接单","434",doorServiceOrder.getDoctor(),doorServiceOrder.getDoctorName(),
|
|
|
doorServiceOrder.getDispatcher(),doorServiceOrder.getDispatcherName(),baseDoctorDO.getIdcard(),msg,message.getOver());
|
|
|
doorServiceOrder.getDispatcher(),doorServiceOrder.getDispatcherName(),null,msg,message.getOver());
|
|
|
}
|
|
|
else{
|
|
|
message.setOver("0");
|
|
@ -524,26 +524,6 @@ public class DoorOrderService {
|
|
|
|
|
|
});
|
|
|
}
|
|
|
/* List<Message> messages = messageDao.queryByRelationCodeAndTypeIn(orderId,new Integer[]{403,407});
|
|
|
if(CollectionUtils.isEmpty(messages)){
|
|
|
logger.error("当前工单没有医生待接单消息!orderId:" + orderId);
|
|
|
} else {
|
|
|
messages.forEach(
|
|
|
message -> {
|
|
|
if (message.getType() == 403) {
|
|
|
message.setTitle("医生接单");
|
|
|
message.setContent(doorServiceOrder.getDispatcherName() + "接受了服务工单"+ doorServiceOrder.getNumber());
|
|
|
message.setType(434);
|
|
|
message.setReceiver(doorServiceOrder.getDispatcher());
|
|
|
message.setSender(doorServiceOrder.getDoctor());
|
|
|
message.setCreateTime(new Date());
|
|
|
}else{
|
|
|
message.setOver("0");
|
|
|
}
|
|
|
messageDao.save(message);
|
|
|
}
|
|
|
);
|
|
|
}*/
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -560,12 +540,12 @@ public class DoorOrderService {
|
|
|
//给代预约医生发消息
|
|
|
if (doorServiceOrder.getType() != null && doorServiceOrder.getType() == 3) {
|
|
|
BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doorServiceOrder.getProxyPatient());//·
|
|
|
this.createMessage("代预约服务工单重新派单","403","system","system", doorServiceOrder.getId(), doorServiceOrder.getProxyPatient(),baseDoctorDO.getName() ,baseDoctorDO.getIdcard(), doorServiceOrder.getPatientName() + "的代预约服务工单需重新派单,请您前往处理");
|
|
|
this.createMessage("代预约服务工单重新派单","403","system","system", doorServiceOrder.getId(), doorServiceOrder.getProxyPatient(),baseDoctorDO.getName() ,null, doorServiceOrder.getPatientName() + "的代预约服务工单需重新派单,请您前往处理");
|
|
|
} else {
|
|
|
messageUtil.orderMessageDel(null,orderId,"407",doorServiceOrder.getDoctor());
|
|
|
if(StringUtils.isNotBlank(doorServiceOrder.getDispatcher())){
|
|
|
BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doorServiceOrder.getDispatcher());//·
|
|
|
this.createMessage("服务工单拒单待重新派单","404","system","system", doorServiceOrder.getId(), doorServiceOrder.getDispatcher(),baseDoctorDO.getName() , baseDoctorDO.getIdcard(),doorServiceOrder.getDoctorName() + "拒绝了" + doorServiceOrder.getProxyPatientName() + "的服务预约申请,请重新派单");
|
|
|
this.createMessage("服务工单拒单待重新派单","404","system","system", doorServiceOrder.getId(), doorServiceOrder.getDispatcher(),baseDoctorDO.getName() , null,doorServiceOrder.getDoctorName() + "拒绝了" + doorServiceOrder.getProxyPatientName() + "的服务预约申请,请重新派单");
|
|
|
// 调度员-派单-实时工单消息:435 医生拒单-- 王五拒绝了服务工单12345678
|
|
|
List<SystemMessageDO> messages = messageUtil.findSystemMesage(orderId,"431,433");
|
|
|
if (CollectionUtils.isEmpty(messages)) {
|
|
@ -575,29 +555,9 @@ public class DoorOrderService {
|
|
|
messageUtil.orderMessageDel(message.getId(),message.getRelationCode(),message.getType(),message.getReceiver());
|
|
|
String msg=doorServiceOrder.getDoctorName() + "拒绝了服务工单" + doorServiceOrder.getNumber() + ", 请重新派单";
|
|
|
messageUtil.saveSystemMessage(message.getId(),message.getRelationCode(),"医生拒单","435",doorServiceOrder.getDoctor(),doorServiceOrder.getDoctorName(),
|
|
|
doorServiceOrder.getDispatcher(),doorServiceOrder.getDispatcherName(),baseDoctorDO.getIdcard(),msg,message.getOver());
|
|
|
doorServiceOrder.getDispatcher(),doorServiceOrder.getDispatcherName(),null,msg,message.getOver());
|
|
|
}
|
|
|
}
|
|
|
/* this.messageDao.orderMessageDel(doorServiceOrder.getDoctor(),orderId);
|
|
|
if(StringUtils.isNotBlank(doorServiceOrder.getDispatcher())){
|
|
|
// 派单消息
|
|
|
this.createMessage(doorServiceOrder.getId(), "system", doorServiceOrder.getDispatcher(), 404, "服务工单拒单待重新派单", doorServiceOrder.getDoctorName() + "拒绝了" + doorServiceOrder.getProxyPatientName() + "的服务预约申请,请重新派单");
|
|
|
|
|
|
// 调度员-派单-实时工单消息:435 医生拒单-- 王五拒绝了服务工单12345678
|
|
|
List<Message> messages = messageDao.queryByRelationCodeAndTypeIn(orderId, new Integer[]{431, 433});
|
|
|
if (CollectionUtils.isEmpty(messages)) {
|
|
|
logger.error("当前工单没有医生待接单消息!orderId:" + orderId);
|
|
|
} else {
|
|
|
Message message = messages.get(0);
|
|
|
message.setTitle("医生拒单");
|
|
|
message.setContent(doorServiceOrder.getDoctorName() + "拒绝了服务工单" + doorServiceOrder.getNumber() + ", 请重新派单");
|
|
|
message.setType(435);
|
|
|
message.setReceiver(doorServiceOrder.getDispatcher());
|
|
|
message.setSender(doorServiceOrder.getDoctor());
|
|
|
message.setCreateTime(new Date());
|
|
|
messageDao.save(message);
|
|
|
}
|
|
|
}*/
|
|
|
}
|
|
|
doorServiceOrder.setDoctor(null);
|
|
|
doorServiceOrder.setDoctorName(null);
|
|
@ -611,10 +571,10 @@ public class DoorOrderService {
|
|
|
/**
|
|
|
* 添加【工单派单,转单】等系统消息
|
|
|
*/
|
|
|
public void createMessage(String title,String type,String sender,String senderName,String relationCode,String Receiver,String ReceiverName,String idCard,String msg) throws Exception {
|
|
|
public void createMessage(String title,String type,String sender,String senderName,String relationCode,String Receiver,String ReceiverName,String idCard,String msg){
|
|
|
SystemMessageDO messageDO = new SystemMessageDO();
|
|
|
messageDO.setTitle(title);
|
|
|
messageDO.setType(type);
|
|
|
messageDO.setType(type);//401为资质申请审核
|
|
|
messageDO.setSender(sender);
|
|
|
messageDO.setSenderName(senderName);
|
|
|
messageDO.setRelationCode(relationCode);
|
|
@ -623,7 +583,11 @@ public class DoorOrderService {
|
|
|
net.sf.json.JSONObject data = new net.sf.json.JSONObject();
|
|
|
data.put("name", ReceiverName);
|
|
|
data.put("age", IdCardUtil.getAgeForIdcard(idCard));
|
|
|
data.put("gender", IdCardUtil.getSexForIdcard(idCard));
|
|
|
try {
|
|
|
data.put("gender", IdCardUtil.getSexForIdcard(idCard));
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
data.put("msg", msg);
|
|
|
messageDO.setData(msg);
|
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
@ -631,22 +595,6 @@ public class DoorOrderService {
|
|
|
String dateTime=format.format(date);
|
|
|
messageDO.setCreateTime(date);
|
|
|
messageUtil.saveSystemMessage(messageDO);
|
|
|
///* Message message= new Message();
|
|
|
// message.setCzrq(new Date());
|
|
|
// message.setCreateTime(new Date());
|
|
|
// message.setRead(1);
|
|
|
// message.setState(1);
|
|
|
// message.setRelationCode(orderId);
|
|
|
// message.setOver("1");
|
|
|
// message.setReceiver(receiver);
|
|
|
// message.setSender(sender);
|
|
|
// message.setCode(getCode());
|
|
|
// message.setTitle(title);
|
|
|
// message.setContent(Content);
|
|
|
// //消息类型:401为资质申请审核
|
|
|
// message.setType(type);
|
|
|
// message.setDel("1");
|
|
|
// messageDao.save(message);*/
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -1022,6 +970,20 @@ public class DoorOrderService {
|
|
|
// 获取微信模板 smfwdwk-上门服务待付款
|
|
|
ConsultDo consult = consultDao.queryByRelationCode(orderId);
|
|
|
try {//·
|
|
|
String first = "key1预约上门服务医生已完成服务。为提高服务质量,诚邀您对本次服务医生进行评分";
|
|
|
first = first.replace("key1", DateUtil.dateToStr(new Date(), "yyyy-MM-dd HH:mm"));
|
|
|
first = first .replace("key2", null != one.getDoctorName() ? one.getDoctorName() : "");
|
|
|
WlyyDoorCommentDO wlyyDoorCommentDO = doorCommentDao.selectCommentDoctor(patient.getId(),orderId);
|
|
|
String finish="";
|
|
|
if(wlyyDoorCommentDO!=null){
|
|
|
finish = "0";
|
|
|
|
|
|
}else {
|
|
|
finish = "1";
|
|
|
|
|
|
}
|
|
|
//url:url + json.getString("url")+"?openid=" + openid + "&id=" + json.getString("id")+ "&finish=" + finish)
|
|
|
messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","fwyspf",patient.getOpenid(),first,null,null,DateUtil.dateToStrShort(new Date()),"服务医生评分");
|
|
|
/* WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_process_feedback","fwyspf");
|
|
|
String first = templateConfig.getFirst();
|
|
|
first = first.replace("key1", DateUtil.dateToStr(new Date(), "yyyy-MM-dd HH:mm"));
|
|
@ -1085,13 +1047,31 @@ public class DoorOrderService {
|
|
|
doorServiceOrderDao.save(one);
|
|
|
// 更新居民签约服务包服务项次数
|
|
|
this.reduceServiceItemTimes(serverPackagePriceByOrderId(orderId), one.getPatient());
|
|
|
|
|
|
// 发送微信消息通知--用户评价//·
|
|
|
/* BasePatientDO patient = patientInfoService.findById(one.getPatient());
|
|
|
BasePatientDO patient = patientInfoService.findById(one.getPatient());
|
|
|
// 获取微信模板 fwyspf-服务医生评分
|
|
|
ConsultDo consult = consultDao.queryByRelationCode(orderId);
|
|
|
try {
|
|
|
WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_process_feedback","fwyspf");
|
|
|
String first = "key1预约上门服务医生已完成服务。为提高服务质量,诚邀您对本次服务医生进行评分";
|
|
|
first = first.replace("key1", DateUtil.dateToStr(new Date(), "yyyy-MM-dd HH:mm"));
|
|
|
first = first .replace("key2", null != one.getDoctorName() ? one.getDoctorName() : "");
|
|
|
WlyyDoorCommentDO wlyyDoorCommentDO = doorCommentDao.selectCommentDoctor(patient.getId(),orderId);
|
|
|
String finish="";
|
|
|
if(wlyyDoorCommentDO!=null){
|
|
|
finish = "0";
|
|
|
|
|
|
}else {
|
|
|
finish = "1";
|
|
|
|
|
|
}
|
|
|
//url:url + json.getString("url")+"?openid=" + openid + "&id=" + json.getString("id")+ "&finish=" + finish)
|
|
|
messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","fwyspf",patient.getOpenid(),first,null,null,DateUtil.dateToStrShort(new Date()),"服务医生评分");
|
|
|
}catch (Exception e){
|
|
|
logger.error(e.getMessage());
|
|
|
}
|
|
|
|
|
|
/* try {
|
|
|
WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_process_feedback","fwyspf");
|
|
|
String first = templateConfig.getFirst();
|
|
|
first = first.replace("key1", DateUtil.dateToStr(new Date(), "yyyy-MM-dd HH:mm"));
|
|
|
first = first .replace("key2", null != one.getDoctorName() ? one.getDoctorName() : "");
|
|
@ -1431,12 +1411,18 @@ public class DoorOrderService {
|
|
|
wlyyDoorServiceOrderService.orderWithPackageItemFeeAdd(new JSONObject(), jsonObjectParam, order);
|
|
|
|
|
|
// 发送微信模板消息,通知居民服务项目已经变更(smyyyjjd-服务项目变更通知)
|
|
|
/* BasePatientDO patient = patientInfoService.findById(order.getProxyPatient());//·
|
|
|
BasePatientDO patient = patientInfoService.findById(order.getProxyPatient());//·
|
|
|
ConsultDo consult = consultDao.queryByRelationCode(orderId);
|
|
|
Integer status = 0;
|
|
|
try{
|
|
|
String first = "您的预约服务的服务项目已变更,请及时确认";
|
|
|
first = first.replace("key1",(patient.getName()==null?"":patient.getName()));
|
|
|
first = first .replace("key2", null != order.getDoctorName() ? order.getDoctorName() : "");
|
|
|
String consultStr = consult.getId();
|
|
|
// url1 + json.getString("url")+"?openid=" + openid + "&consult=" + json.getString("consult") + "&status=" + json.getInt("status")
|
|
|
// messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","fwyspf",patient.getOpenid(),first,null,null,DateUtil.dateToStrShort(new Date()),"服务项目变更确认");
|
|
|
|
|
|
WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_process_feedback","fwxmbgtz");
|
|
|
/* WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_process_feedback","fwxmbgtz");
|
|
|
String first = templateConfig.getFirst();
|
|
|
first = first.replace("key1",(patient.getName()==null?"":patient.getName()));
|
|
|
first = first .replace("key2", null != order.getDoctorName() ? order.getDoctorName() : "");
|
|
@ -1449,10 +1435,11 @@ public class DoorOrderService {
|
|
|
json.put("remark", templateConfig.getRemark());
|
|
|
json.put("consult",consult.getCode());
|
|
|
json.put("status",status);
|
|
|
// pushMsgTask.putWxMsg(tokenUtils.getAccessToken(), 32, patient.getOpenid(), patient.getName(), json);
|
|
|
|
|
|
// pushMsgTask.putWxMsg(tokenUtils.getAccessToken(), 32, patient.getOpenid(), patient.getName(), json);*/
|
|
|
}catch (Exception e) {
|
|
|
logger.error(e.getMessage());
|
|
|
}*/
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|