Browse Source

功能优化

hurugang 5 years ago
parent
commit
6dfe269edd

+ 4 - 138
src/main/java/cn/hnthyy/thmz/mq/ConsumerListener.java

@@ -1,155 +1,21 @@
 package cn.hnthyy.thmz.mq;
 
-import cn.hnthyy.thmz.common.Constants;
-import cn.hnthyy.thmz.entity.his.*;
-import cn.hnthyy.thmz.enums.OrderStatusEnum;
-import cn.hnthyy.thmz.enums.PayMarkEnum;
-import cn.hnthyy.thmz.pageDto.MzChargeDetailPageDto;
-import cn.hnthyy.thmz.service.his.*;
-import cn.hnthyy.thmz.service.thmz.HaiCiAdapterService;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.time.DateFormatUtils;
+import cn.hnthyy.thmz.service.thmz.OrderStatusChangeService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.stereotype.Component;
 
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-
 /**
  * MQ监听者
  */
 @Component
 public class ConsumerListener {
-    @Autowired
-    private HaiCiAdapterService haiCiAdapterService;
-    @Autowired
-    private MzPatientMiService mzPatientMiService;
-    @Autowired
-    private MzyReqrecService mzyReqrecService;
-    @Autowired
-    private ZdUnitCodeService zdUnitCodeService;
-    @Autowired
-    private EmployeeService employeeService;
-    @Autowired
-    private MzChargeDetailService mzChargeDetailService;
-    @Autowired
-    private MzYjReqService mzYjReqService;
-    //就诊状态通知开关
-    @Value("${sendNoticeToPatient}")
-    private boolean sendNoticeToPatient;
+   @Autowired
+   private OrderStatusChangeService orderStatusChangeService;
     // 使用JmsListener配置消费者监听的队列,其中text是接收到的消息
 
     @JmsListener(destination = "orderStatusChange")
     public void receiveQueue(String text) {
-        if(!sendNoticeToPatient){
-            return;
-        }
-        if (StringUtils.isBlank(text)) {
-            return;
-        }
-        String[] arr = text.split(",");
-        if (arr == null || arr.length == 0) {
-            return;
-        }
-        String [] patientInfo = arr[0].split("_");
-        if (patientInfo == null || patientInfo.length == 0) {
-            return;
-        }
-        MzPatientMi mzPatientMi=mzPatientMiService.queryByPatientId(patientInfo[0]);
-        if(mzPatientMi==null || StringUtils.isBlank(mzPatientMi.getIcCardNo())){
-            return;
-        }
-        String status = arr[1];
-        if(OrderStatusEnum.REGISTRATION_SUCCESS.code.equals(status)){
-            MzyReqrec mzyReqrec=mzyReqrecService.queryMzyReqrecByPatientIdAndTimes(patientInfo[0],Integer.valueOf(patientInfo[1]));
-            if(mzyReqrec==null){
-                return;
-            }
-            if(StringUtils.isBlank(mzyReqrec.getUnitCode())){
-                return;
-            }
-            ZdUnitCode zdUnitCode= zdUnitCodeService.queryByCode(mzyReqrec.getUnitCode());
-            if(zdUnitCode==null){
-                return;
-            }
-            String doctorName ="";
-            if(StringUtils.isNotBlank(mzyReqrec.getDoctorCode())){
-                Employee employee=employeeService.queryByUserCode(mzyReqrec.getDoctorCode());
-                if(employee!=null){
-                    doctorName= employee.getEmployeeName();
-                }
-            }
-            haiCiAdapterService.commonMessageNotice(mzPatientMi.getIcCardNo(),"{\"data\":{\"first\":{\"color\":\"#FF0000\",\"value\":\"您好,您已经挂号成功,请您及时前往医生诊室就诊,详情如下:\"},\"deptname\":{\"color\":\"#173177\",\"value\":\""+zdUnitCode.getName()+"\"},\"doctorname\":{\"color\":\"#173177\",\"value\":\""+doctorName+"\"},\"remark\":{\"color\":\"#FF0000\",\"value\":\"就诊地点 : "+zdUnitCode.getOfficePos()+"。\"}},\"miniprogram\":{\"appid\":\"\",\"pagepath\":\"\"},\"template_id\":\"ctMSV4jb3aHYJS0hOjTl8h9Nyrj-46XTLMnUFn6eWh8\",\"touser\":\"\",\"url\":\"\"}",new Date());
-            return;
-        }
-        if(OrderStatusEnum.SUCCESSFUL_PRESCRIPTION_PAYMENT.code.equals(status)){
-            MzChargeDetailPageDto mzChargeDetailPageDto = new MzChargeDetailPageDto();
-            MzChargeDetail mzChargeDetailParams = new MzChargeDetail(patientInfo[0],Integer.valueOf(patientInfo[1]));
-            mzChargeDetailParams.setReceiptNo(Integer.valueOf(patientInfo[2]));
-            mzChargeDetailParams.setPayMark(PayMarkEnum.CHARGED.code);
-            mzChargeDetailPageDto.setMzChargeDetail(mzChargeDetailParams);
-            List<MzChargeDetail> mzChargeDetailList=mzChargeDetailService.queryMzChargeDetailWithPage(mzChargeDetailPageDto);
-            if(mzChargeDetailList==null || mzChargeDetailList.size()==0){
-                return;
-            }
-            MzChargeDetail mzChargeDetail= mzChargeDetailList.get(0);
-            if(mzChargeDetail==null){
-                return;
-            }
-            if(StringUtils.isBlank(mzChargeDetail.getWarnDept())){
-                return;
-            }
-            ZdUnitCode zdUnitCode= zdUnitCodeService.queryByCode(mzChargeDetail.getWarnDept());
-            if(zdUnitCode==null){
-                return;
-            }
-            if (mzChargeDetail.getAmount() != null) {
-                mzChargeDetail.setAmount(mzChargeDetail.getAmount().setScale(1, BigDecimal.ROUND_HALF_UP));
-            }
-            String doctorName ="";
-            if(StringUtils.isNotBlank(mzChargeDetail.getDoctorCode())){
-                Employee employee=employeeService.queryByUserCode(mzChargeDetail.getDoctorCode());
-                if(employee!=null){
-                    doctorName= employee.getEmployeeName();
-                }
-            }
-            haiCiAdapterService.commonMessageNotice(mzPatientMi.getIcCardNo(),"{\"data\":{\"first\":{\"color\":\"#FF0000\",\"value\":\"您好,您本次缴费账单消息:\"},\"keynote1\":{\"color\":\"#173177\",\"value\":\""+mzChargeDetail.getName()+"\"},\"keynote2\":{\"color\":\"#173177\",\"value\":\""+arr[0]+"\"},\"keynote3\":{\"color\":\"#173177\",\"value\":\""+mzChargeDetail.getAmount()+"\"},\"keynote4\":{\"color\":\"#173177\",\"value\":\""+doctorName+"\"},\"keynote5\":{\"color\":\"#173177\",\"value\":\""+zdUnitCode.getName()+"\"},\"keynote6\":{\"color\":\"#173177\",\"value\":\"湖南泰和医院\"},\"keynote7\":{\"color\":\"#173177\",\"value\":\""+DateFormatUtils.format(mzChargeDetail.getChargeDate(), "yyyy-MM-dd HH:mm:ss")+"\"},\"remark\":{\"color\":\"#FF0000\",\"value\":\" 缴费已成功,湖南泰和医院祝您身体健康。\"}},\"miniprogram\":{\"appid\":\"\",\"pagepath\":\"\"},\"template_id\":\"IGc0AXcLvxD7TUvtjH4EA91xQppYMKBYObHXayBNd6A\",\"touser\":\"\",\"url\":\"\"}",new Date());
-            MzYjReq mzYjReq = new MzYjReq(patientInfo[0],Integer.valueOf(patientInfo[1]));
-            mzYjReq.setReceiptNo(Integer.valueOf(patientInfo[2]));
-            List<String> execDeps= mzYjReqService.queryExecDept(mzYjReq);
-            if(execDeps==null || execDeps.size()==0){
-                return;
-            }
-            for (String str :execDeps){
-                zdUnitCode= zdUnitCodeService.queryByCode(str);
-                if(zdUnitCode==null){
-                    continue;
-                }
-                if("2010000".equals(str)){
-                    //检验
-                    haiCiAdapterService.commonMessageNotice(mzPatientMi.getIcCardNo(),"{\"data\":{\"first\":{\"color\":\"#FF0000\",\"value\":\"您好,您已完成缴费,请到指定地点进行检验检查。\"},\"keyword1\":{\"color\":\"#173177\",\"value\":\""+zdUnitCode.getName()+"\"},\"keyword2\":{\"color\":\"#173177\",\"value\":\""+zdUnitCode.getOfficePos()+"\"},\"remark\":{\"color\":\"#FF0000\",\"value\":\" 抽血室在一楼急诊科,大小便标本在门诊大楼三楼医学检验科。\"}},\"miniprogram\":{\"appid\":\"\",\"pagepath\":\"\"},\"template_id\":\"amY5BinXb2IpwdXqcOyXxtZZ26XyQOIQ3j1ablSWxy0\",\"touser\":\"\",\"url\":\"\"}",new Date());
-                }else {
-                    //检查
-                    haiCiAdapterService.commonMessageNotice(mzPatientMi.getIcCardNo(),"{\"data\":{\"first\":{\"color\":\"#FF0000\",\"value\":\"您好,您已完成缴费,请到指定地点进行检验检查。\"},\"keyword1\":{\"color\":\"#173177\",\"value\":\""+zdUnitCode.getName()+"\"},\"keyword2\":{\"color\":\"#173177\",\"value\":\""+zdUnitCode.getOfficePos()+"\"},\"remark\":{\"color\":\"#FF0000\",\"value\":\" 感谢您的使用。\"}},\"miniprogram\":{\"appid\":\"\",\"pagepath\":\"\"},\"template_id\":\"amY5BinXb2IpwdXqcOyXxtZZ26XyQOIQ3j1ablSWxy0\",\"touser\":\"\",\"url\":\"\"}",new Date());
-                }
-
-            }
-            List<String> groupNos=mzChargeDetailService.queryGroupNo(mzChargeDetailParams);
-            if(groupNos==null || groupNos.size()==0){
-                return;
-            }
-            for (String str :groupNos){
-                if(Constants.XY_ZCY_GROUP_NO.equals(str)){
-                    haiCiAdapterService.commonMessageNotice(mzPatientMi.getIcCardNo(),"{\"data\":{\"first\":{\"color\":\"#FF0000\",\"value\":\"您好,您已完成缴费,请到指定地点取药。\"},\"keyword1\":{\"color\":\"#173177\",\"value\":\"门诊西药房\"},\"keyword2\":{\"color\":\"#173177\",\"value\":\"门诊大楼一楼\"},\"remark\":{\"color\":\"#FF0000\",\"value\":\" 感谢您的使用。\"}},\"miniprogram\":{\"appid\":\"\",\"pagepath\":\"\"},\"template_id\":\"amY5BinXb2IpwdXqcOyXxtZZ26XyQOIQ3j1ablSWxy0\",\"touser\":\"\",\"url\":\"\"}",new Date());
-                }else if(Constants.ZY_GROUP_NO.equals(str)){
-                    haiCiAdapterService.commonMessageNotice(mzPatientMi.getIcCardNo(),"{\"data\":{\"first\":{\"color\":\"#FF0000\",\"value\":\"您好,您已完成缴费,请到指定地点取药。\"},\"keyword1\":{\"color\":\"#173177\",\"value\":\"门诊中药房\"},\"keyword2\":{\"color\":\"#173177\",\"value\":\"门诊大楼一楼\"},\"remark\":{\"color\":\"#FF0000\",\"value\":\" 感谢您的使用。\"}},\"miniprogram\":{\"appid\":\"\",\"pagepath\":\"\"},\"template_id\":\"amY5BinXb2IpwdXqcOyXxtZZ26XyQOIQ3j1ablSWxy0\",\"touser\":\"\",\"url\":\"\"}",new Date());
-                }
-            }
-            return;
-        }
-        System.out.println("Consumer收到的报文为:" + text);
+        orderStatusChangeService.orderStatusChange(text);
     }
 }

+ 3 - 3
src/main/java/cn/hnthyy/thmz/service/impl/his/MzChargeDetailServiceImpl.java

@@ -12,7 +12,7 @@ import cn.hnthyy.thmz.mapper.his.*;
 import cn.hnthyy.thmz.mapper.thmz.WindowsMapper;
 import cn.hnthyy.thmz.pageDto.MzChargeDetailPageDto;
 import cn.hnthyy.thmz.service.his.*;
-import cn.hnthyy.thmz.service.thmz.MqService;
+import cn.hnthyy.thmz.service.thmz.OrderStatusChangeService;
 import cn.hnthyy.thmz.vo.MzDepositFileVo;
 import cn.hnthyy.thmz.vo.MzPrescriptionVo;
 import cn.hnthyy.thmz.vo.ThmzmxsrParamsVo;
@@ -69,7 +69,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
     @Autowired
     private YpZdDictService ypZdDictService;
     @Autowired
-    private MqService mqService;
+    private OrderStatusChangeService orderStatusChangeService;
     @SuppressWarnings("all")
     @Autowired
     private MzDepositFileMapper mzDepositFileMapper;
@@ -420,7 +420,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
             mzChargeDetailMapper.updateNameByPatientIdAndTimes(mzPatientMi.getName(), mzDepositFileVo.getPatientId(), mzDepositFileVo.getTimes());
         }
         //发送挂号成功MQ
-        mqService.sendOrderStatusChangeMessage(mzDepositFileVo.getPatientId()+"_"+mzDepositFileVo.getTimes()+"_"+receiptNo,OrderStatusEnum.SUCCESSFUL_PRESCRIPTION_PAYMENT.code);
+        orderStatusChangeService.orderStatusChange(mzDepositFileVo.getPatientId()+"_"+mzDepositFileVo.getTimes()+"_"+receiptNo+","+OrderStatusEnum.SUCCESSFUL_PRESCRIPTION_PAYMENT.code);
         return receiptNo;
     }
 

+ 49 - 45
src/main/java/cn/hnthyy/thmz/service/impl/his/MzyReqrecServiceImpl.java

@@ -15,7 +15,7 @@ import cn.hnthyy.thmz.service.his.*;
 import cn.hnthyy.thmz.pageDto.MzyReqrecPageDto;
 import cn.hnthyy.thmz.service.thmz.ConfigService;
 import cn.hnthyy.thmz.service.thmz.MessageService;
-import cn.hnthyy.thmz.service.thmz.MqService;
+import cn.hnthyy.thmz.service.thmz.OrderStatusChangeService;
 import cn.hnthyy.thmz.vo.ThmzmxsrParamsVo;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -82,7 +82,7 @@ public class MzyReqrecServiceImpl implements MzyReqrecService {
     @Autowired
     private MzyZdChargeTypeService mzyZdChargeTypeService;
     @Autowired
-    private MqService mqService;
+    private OrderStatusChangeService orderStatusChangeService;
 
     @Override
     @Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.DEFAULT,timeout=36000,rollbackFor=Exception.class)
@@ -127,7 +127,7 @@ public class MzyReqrecServiceImpl implements MzyReqrecService {
         ReqrecRequestRelation reqrecRequestRelation = new ReqrecRequestRelation(mzyRequest.getId(),serialNo);
         reqrecRequestRelationMapper.insertReqrecRequestRelation(reqrecRequestRelation);
         //发送挂号成功MQ
-        mqService.sendOrderStatusChangeMessage(mzyReqrec.getPatientId()+"_"+mzyReqrec.getTimes(),OrderStatusEnum.REGISTRATION_SUCCESS.code);
+        orderStatusChangeService.orderStatusChange(mzyReqrec.getPatientId()+"_"+mzyReqrec.getTimes()+","+OrderStatusEnum.REGISTRATION_SUCCESS.code);
         if (sendAlarmMessage(mzyRequest)) return 1;
         return 1;
     }
@@ -137,58 +137,62 @@ public class MzyReqrecServiceImpl implements MzyReqrecService {
      * @return
      */
     private boolean sendAlarmMessage(MzyRequest mzyRequest) {
-        Config config=configService.queryUserByKey(Constants.ALARM_NUM_KEY);
-        if(config==null){
-            return true;
-        }
-        if(mzyRequest.getLeftNum()<=Integer.valueOf(config.getConfigValue())){
-            config=configService.queryUserByKey(Constants.ALARM_USER_KEY);
-            if(config==null || StringUtils.isBlank(config.getConfigValue())){
-                return true;
-            }
-            String [] arr = config.getConfigValue().split(",");
-            if(arr==null || arr.length==0){
-                return true;
-            }
-            List<Employee> employees= employeeService.queryByCodes(Arrays.asList(arr));
-            if(employees==null || employees.size()==0){
+        try {
+            Config config=configService.queryUserByKey(Constants.ALARM_NUM_KEY);
+            if(config==null){
                 return true;
             }
-            String codes=null;
-            for (Employee employee:employees){
-                if(codes==null){
-                    codes= employee.getCodeRs();
-                }else {
-                    codes+=","+employee.getCodeRs();
+            if(mzyRequest.getLeftNum()<=Integer.valueOf(config.getConfigValue())){
+                config=configService.queryUserByKey(Constants.ALARM_USER_KEY);
+                if(config==null || StringUtils.isBlank(config.getConfigValue())){
+                    return true;
                 }
-            }
-            if(codes!=null){
-                StringBuffer sbf = new StringBuffer("警告:日期【");
-                sbf.append(DateUtil.fomart(mzyRequest.getRequestDay(),"yyyy-MM-dd")).append("】");
-                sbf.append("科室【").append(zdUnitCodeService.queryDeptNameByIdInCache(mzyRequest.getUnitCode())).append("】");
-                if(StringUtils.isNotBlank(mzyRequest.getDoctorCode())){
-                    Employee employee= employeeService.queryByUserCode(mzyRequest.getDoctorCode());
-                    if(employee!=null){
-                        sbf.append("医生【").append(employee.getEmployeeName()).append("】");
-                    }
+                String [] arr = config.getConfigValue().split(",");
+                if(arr==null || arr.length==0){
+                    return true;
+                }
+                List<Employee> employees= employeeService.queryByCodes(Arrays.asList(arr));
+                if(employees==null || employees.size()==0){
+                    return true;
                 }
-                if(StringUtils.isNotBlank(mzyRequest.getAmpm())){
-                    MzZdWorkTime mzZdWorkTime= mzZdWorkTimeMapper.selectMzZdWorkTimeByCode(mzyRequest.getAmpm());
-                    if(mzZdWorkTime!=null){
-                        sbf.append("号段【").append(mzZdWorkTime.getName()).append("】");
+                String codes=null;
+                for (Employee employee:employees){
+                    if(codes==null){
+                        codes= employee.getCodeRs();
+                    }else {
+                        codes+=","+employee.getCodeRs();
                     }
                 }
-                if(StringUtils.isNotBlank(mzyRequest.getChargeType())){
-                    MzyZdChargeType mzyZdChargeType1=mzyZdChargeTypeService.queryByCode(mzyRequest.getChargeType());
-                    if(mzyZdChargeType1!=null){
-                        sbf.append("号别【").append(mzyZdChargeType1.getName()).append("】");
+                if(codes!=null){
+                    StringBuffer sbf = new StringBuffer("警告:日期【");
+                    sbf.append(DateUtil.fomart(mzyRequest.getRequestDay(),"yyyy-MM-dd")).append("】");
+                    sbf.append("科室【").append(zdUnitCodeService.queryDeptNameByIdInCache(mzyRequest.getUnitCode())).append("】");
+                    if(StringUtils.isNotBlank(mzyRequest.getDoctorCode())){
+                        Employee employee= employeeService.queryByUserCode(mzyRequest.getDoctorCode());
+                        if(employee!=null){
+                            sbf.append("医生【").append(employee.getEmployeeName()).append("】");
+                        }
                     }
+                    if(StringUtils.isNotBlank(mzyRequest.getAmpm())){
+                        MzZdWorkTime mzZdWorkTime= mzZdWorkTimeMapper.selectMzZdWorkTimeByCode(mzyRequest.getAmpm());
+                        if(mzZdWorkTime!=null){
+                            sbf.append("号段【").append(mzZdWorkTime.getName()).append("】");
+                        }
+                    }
+                    if(StringUtils.isNotBlank(mzyRequest.getChargeType())){
+                        MzyZdChargeType mzyZdChargeType1=mzyZdChargeTypeService.queryByCode(mzyRequest.getChargeType());
+                        if(mzyZdChargeType1!=null){
+                            sbf.append("号别【").append(mzyZdChargeType1.getName()).append("】");
+                        }
+                    }
+                    sbf.append("剩余号数").append(mzyRequest.getLeftNum()).append("低于预警值,请及时关注处理!");
+                    messageService.sendWxMessage(codes, sbf.toString());
                 }
-                sbf.append("剩余号数").append(mzyRequest.getLeftNum()).append("低于预警值,请及时关注处理!");
-                messageService.sendWxMessage(codes, sbf.toString());
             }
+            return false;
+        }catch (Exception e){
+            return true;
         }
-        return false;
     }
 
 

+ 155 - 0
src/main/java/cn/hnthyy/thmz/service/impl/thmz/OrderStatusChangeServiceImpl.java

@@ -0,0 +1,155 @@
+package cn.hnthyy.thmz.service.impl.thmz;
+
+import cn.hnthyy.thmz.common.Constants;
+import cn.hnthyy.thmz.entity.his.*;
+import cn.hnthyy.thmz.enums.OrderStatusEnum;
+import cn.hnthyy.thmz.enums.PayMarkEnum;
+import cn.hnthyy.thmz.pageDto.MzChargeDetailPageDto;
+import cn.hnthyy.thmz.service.his.*;
+import cn.hnthyy.thmz.service.thmz.HaiCiAdapterService;
+import cn.hnthyy.thmz.service.thmz.OrderStatusChangeService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+@Slf4j
+@Service
+public class OrderStatusChangeServiceImpl implements OrderStatusChangeService {
+    @Autowired
+    private HaiCiAdapterService haiCiAdapterService;
+    @Autowired
+    private MzPatientMiService mzPatientMiService;
+    @Autowired
+    private MzyReqrecService mzyReqrecService;
+    @Autowired
+    private ZdUnitCodeService zdUnitCodeService;
+    @Autowired
+    private EmployeeService employeeService;
+    @Autowired
+    private MzChargeDetailService mzChargeDetailService;
+    @Autowired
+    private MzYjReqService mzYjReqService;
+    //就诊状态通知开关
+    @Value("${sendNoticeToPatient}")
+    private boolean sendNoticeToPatient;
+    @Override
+    public void orderStatusChange(String text) {
+       try {
+           if(!sendNoticeToPatient){
+               return;
+           }
+           if (StringUtils.isBlank(text)) {
+               return;
+           }
+           String[] arr = text.split(",");
+           if (arr == null || arr.length == 0) {
+               return;
+           }
+           String [] patientInfo = arr[0].split("_");
+           if (patientInfo == null || patientInfo.length == 0) {
+               return;
+           }
+           MzPatientMi mzPatientMi=mzPatientMiService.queryByPatientId(patientInfo[0]);
+           if(mzPatientMi==null || StringUtils.isBlank(mzPatientMi.getIcCardNo())){
+               return;
+           }
+           String status = arr[1];
+           if(OrderStatusEnum.REGISTRATION_SUCCESS.code.equals(status)){
+               MzyReqrec mzyReqrec=mzyReqrecService.queryMzyReqrecByPatientIdAndTimes(patientInfo[0],Integer.valueOf(patientInfo[1]));
+               if(mzyReqrec==null){
+                   return;
+               }
+               if(StringUtils.isBlank(mzyReqrec.getUnitCode())){
+                   return;
+               }
+               ZdUnitCode zdUnitCode= zdUnitCodeService.queryByCode(mzyReqrec.getUnitCode());
+               if(zdUnitCode==null){
+                   return;
+               }
+               String doctorName ="";
+               if(StringUtils.isNotBlank(mzyReqrec.getDoctorCode())){
+                   Employee employee=employeeService.queryByUserCode(mzyReqrec.getDoctorCode());
+                   if(employee!=null){
+                       doctorName= employee.getEmployeeName();
+                   }
+               }
+               haiCiAdapterService.commonMessageNotice(mzPatientMi.getIcCardNo(),"{\"data\":{\"first\":{\"color\":\"#FF0000\",\"value\":\"您好,您已经挂号成功,请您及时前往医生诊室就诊,详情如下:\"},\"deptname\":{\"color\":\"#173177\",\"value\":\""+zdUnitCode.getName()+"\"},\"doctorname\":{\"color\":\"#173177\",\"value\":\""+doctorName+"\"},\"remark\":{\"color\":\"#FF0000\",\"value\":\"就诊地点 : "+zdUnitCode.getOfficePos()+"。\"}},\"miniprogram\":{\"appid\":\"\",\"pagepath\":\"\"},\"template_id\":\"ctMSV4jb3aHYJS0hOjTl8h9Nyrj-46XTLMnUFn6eWh8\",\"touser\":\"\",\"url\":\"\"}",new Date());
+               return;
+           }
+           if(OrderStatusEnum.SUCCESSFUL_PRESCRIPTION_PAYMENT.code.equals(status)){
+               MzChargeDetailPageDto mzChargeDetailPageDto = new MzChargeDetailPageDto();
+               MzChargeDetail mzChargeDetailParams = new MzChargeDetail(patientInfo[0],Integer.valueOf(patientInfo[1]));
+               mzChargeDetailParams.setReceiptNo(Integer.valueOf(patientInfo[2]));
+               mzChargeDetailParams.setPayMark(PayMarkEnum.CHARGED.code);
+               mzChargeDetailPageDto.setMzChargeDetail(mzChargeDetailParams);
+               List<MzChargeDetail> mzChargeDetailList=mzChargeDetailService.queryMzChargeDetailWithPage(mzChargeDetailPageDto);
+               if(mzChargeDetailList==null || mzChargeDetailList.size()==0){
+                   return;
+               }
+               MzChargeDetail mzChargeDetail= mzChargeDetailList.get(0);
+               if(mzChargeDetail==null){
+                   return;
+               }
+               if(StringUtils.isBlank(mzChargeDetail.getWarnDept())){
+                   return;
+               }
+               ZdUnitCode zdUnitCode= zdUnitCodeService.queryByCode(mzChargeDetail.getWarnDept());
+               if(zdUnitCode==null){
+                   return;
+               }
+               if (mzChargeDetail.getAmount() != null) {
+                   mzChargeDetail.setAmount(mzChargeDetail.getAmount().setScale(1, BigDecimal.ROUND_HALF_UP));
+               }
+               String doctorName ="";
+               if(StringUtils.isNotBlank(mzChargeDetail.getDoctorCode())){
+                   Employee employee=employeeService.queryByUserCode(mzChargeDetail.getDoctorCode());
+                   if(employee!=null){
+                       doctorName= employee.getEmployeeName();
+                   }
+               }
+               haiCiAdapterService.commonMessageNotice(mzPatientMi.getIcCardNo(),"{\"data\":{\"first\":{\"color\":\"#FF0000\",\"value\":\"您好,您本次缴费账单消息:\"},\"keynote1\":{\"color\":\"#173177\",\"value\":\""+mzChargeDetail.getName()+"\"},\"keynote2\":{\"color\":\"#173177\",\"value\":\""+arr[0]+"\"},\"keynote3\":{\"color\":\"#173177\",\"value\":\""+mzChargeDetail.getAmount()+"\"},\"keynote4\":{\"color\":\"#173177\",\"value\":\""+doctorName+"\"},\"keynote5\":{\"color\":\"#173177\",\"value\":\""+zdUnitCode.getName()+"\"},\"keynote6\":{\"color\":\"#173177\",\"value\":\"湖南泰和医院\"},\"keynote7\":{\"color\":\"#173177\",\"value\":\""+DateFormatUtils.format(mzChargeDetail.getChargeDate(), "yyyy-MM-dd HH:mm:ss")+"\"},\"remark\":{\"color\":\"#FF0000\",\"value\":\" 缴费已成功,湖南泰和医院祝您身体健康。\"}},\"miniprogram\":{\"appid\":\"\",\"pagepath\":\"\"},\"template_id\":\"IGc0AXcLvxD7TUvtjH4EA91xQppYMKBYObHXayBNd6A\",\"touser\":\"\",\"url\":\"\"}",new Date());
+               MzYjReq mzYjReq = new MzYjReq(patientInfo[0],Integer.valueOf(patientInfo[1]));
+               mzYjReq.setReceiptNo(Integer.valueOf(patientInfo[2]));
+               List<String> execDeps= mzYjReqService.queryExecDept(mzYjReq);
+               if(execDeps==null || execDeps.size()==0){
+                   return;
+               }
+               for (String str :execDeps){
+                   zdUnitCode= zdUnitCodeService.queryByCode(str);
+                   if(zdUnitCode==null){
+                       continue;
+                   }
+                   if("2010000".equals(str)){
+                       //检验
+                       haiCiAdapterService.commonMessageNotice(mzPatientMi.getIcCardNo(),"{\"data\":{\"first\":{\"color\":\"#FF0000\",\"value\":\"您好,您已完成缴费,请到指定地点进行检验检查。\"},\"keyword1\":{\"color\":\"#173177\",\"value\":\""+zdUnitCode.getName()+"\"},\"keyword2\":{\"color\":\"#173177\",\"value\":\""+zdUnitCode.getOfficePos()+"\"},\"remark\":{\"color\":\"#FF0000\",\"value\":\" 抽血室在一楼急诊科,大小便标本在门诊大楼三楼医学检验科。\"}},\"miniprogram\":{\"appid\":\"\",\"pagepath\":\"\"},\"template_id\":\"amY5BinXb2IpwdXqcOyXxtZZ26XyQOIQ3j1ablSWxy0\",\"touser\":\"\",\"url\":\"\"}",new Date());
+                   }else {
+                       //检查
+                       haiCiAdapterService.commonMessageNotice(mzPatientMi.getIcCardNo(),"{\"data\":{\"first\":{\"color\":\"#FF0000\",\"value\":\"您好,您已完成缴费,请到指定地点进行检验检查。\"},\"keyword1\":{\"color\":\"#173177\",\"value\":\""+zdUnitCode.getName()+"\"},\"keyword2\":{\"color\":\"#173177\",\"value\":\""+zdUnitCode.getOfficePos()+"\"},\"remark\":{\"color\":\"#FF0000\",\"value\":\" 感谢您的使用。\"}},\"miniprogram\":{\"appid\":\"\",\"pagepath\":\"\"},\"template_id\":\"amY5BinXb2IpwdXqcOyXxtZZ26XyQOIQ3j1ablSWxy0\",\"touser\":\"\",\"url\":\"\"}",new Date());
+                   }
+
+               }
+               List<String> groupNos=mzChargeDetailService.queryGroupNo(mzChargeDetailParams);
+               if(groupNos==null || groupNos.size()==0){
+                   return;
+               }
+               for (String str :groupNos){
+                   if(Constants.XY_ZCY_GROUP_NO.equals(str)){
+                       haiCiAdapterService.commonMessageNotice(mzPatientMi.getIcCardNo(),"{\"data\":{\"first\":{\"color\":\"#FF0000\",\"value\":\"您好,您已完成缴费,请到指定地点取药。\"},\"keyword1\":{\"color\":\"#173177\",\"value\":\"门诊西药房\"},\"keyword2\":{\"color\":\"#173177\",\"value\":\"门诊大楼一楼\"},\"remark\":{\"color\":\"#FF0000\",\"value\":\" 感谢您的使用。\"}},\"miniprogram\":{\"appid\":\"\",\"pagepath\":\"\"},\"template_id\":\"amY5BinXb2IpwdXqcOyXxtZZ26XyQOIQ3j1ablSWxy0\",\"touser\":\"\",\"url\":\"\"}",new Date());
+                   }else if(Constants.ZY_GROUP_NO.equals(str)){
+                       haiCiAdapterService.commonMessageNotice(mzPatientMi.getIcCardNo(),"{\"data\":{\"first\":{\"color\":\"#FF0000\",\"value\":\"您好,您已完成缴费,请到指定地点取药。\"},\"keyword1\":{\"color\":\"#173177\",\"value\":\"门诊中药房\"},\"keyword2\":{\"color\":\"#173177\",\"value\":\"门诊大楼一楼\"},\"remark\":{\"color\":\"#FF0000\",\"value\":\" 感谢您的使用。\"}},\"miniprogram\":{\"appid\":\"\",\"pagepath\":\"\"},\"template_id\":\"amY5BinXb2IpwdXqcOyXxtZZ26XyQOIQ3j1ablSWxy0\",\"touser\":\"\",\"url\":\"\"}",new Date());
+                   }
+               }
+               return;
+           }
+       }catch (Exception e){
+           e.printStackTrace();
+           log.error("海慈消息调用失败",e.getMessage());
+       }
+    }
+
+}

+ 12 - 0
src/main/java/cn/hnthyy/thmz/service/thmz/OrderStatusChangeService.java

@@ -0,0 +1,12 @@
+package cn.hnthyy.thmz.service.thmz;
+
+/**
+ * 订单状态变更事件
+ */
+public interface OrderStatusChangeService {
+    /**
+     * 订单状态变更
+     * @param text
+     */
+    void orderStatusChange(String text);
+}