From fd920c93121094e965e599dd7ac47c90fa001dd8 Mon Sep 17 00:00:00 2001 From: jiangjiazhi Date: Thu, 26 Jul 2018 09:32:40 +0800 Subject: [PATCH] 1 --- .../web/controller/SmsConfigController.java | 6 +- .../web/facade/AntenatalExaminationFacade.java | 120 ++++++++++++++++++++- 2 files changed, 123 insertions(+), 3 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmsConfigController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmsConfigController.java index e0eea77..af8508d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmsConfigController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmsConfigController.java @@ -414,8 +414,10 @@ public class SmsConfigController extends BaseController { @RequestMapping(value = "/sms/build/send", method = RequestMethod.GET) @ResponseBody - public String querySmsConfAndTemplate(@RequestParam("patientId")String patientId){ - examinationFacade.createSendMsg(patientId); + public String querySmsConfAndTemplate(@RequestParam("patientId")String patientId, + @RequestParam("hospitalId")String hospitalId, + @RequestParam("doctorId")String doctorId){ + examinationFacade.createdSengMsg1(hospitalId,patientId,doctorId); return "0"; } @Autowired diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java index 7b494fd..5a07fe2 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java @@ -363,7 +363,7 @@ public class AntenatalExaminationFacade { //发送推送消息 patients.setSendMsgTime(new Date()); } - if(antExamModel.getSendMsg() != null || StringUtils.isNotEmpty(antExAddRequest.getVcCardNo())){ + if (antExamModel.getSendMsg() != null || StringUtils.isNotEmpty(antExAddRequest.getVcCardNo())) { patientsService.updatePatient(patients); } } @@ -684,6 +684,124 @@ public class AntenatalExaminationFacade { } /** + * + * @param hospitalId 院内系统的医院id + * @param patientId + * @param doctorId + */ + public void createdSengMsg1(String hospitalId,String patientId,String doctorId){ + Patients patient = patientsService.findOnePatientById(patientId); + //判断医院是否启动和对应的服务项是否启用 + SmsConfigModel configModel = new SmsConfigModel(); + int startType = smsConfigFacade.hospitalIsStart(hospitalId, configModel, SmsServiceEnums.FWDGTX.getId()); + if (startType == 0) { + return; + } + boolean isHightRisk = false; + if (patient.getRiskScore() != null) { + if (patient.getRiskScore() > 0) {//高危评分大于0 + if (CollectionUtils.isNotEmpty(patient.getRiskFactorId())) { + if (!"d42eec03-aa86-45b8-a4e0-78a0ff365fb6".equals(patient.getRiskFactorId().get(0))) { + isHightRisk = true; + } + } + } + } + SmsTemplateQuery query = new SmsTemplateQuery(); + query.setYn(YnEnums.YES.getId()); + query.setStatus(1); + query.setHospitalId(patient.getHospitalId()); + query.setServiceObj(ServiceObjEnums.YUNOBJ.getId()); + + //健康类型 0健康 1高危 + if (isHightRisk) {//高危孕妇 + query.setHealthType(1); + } else {//健康 + query.setHealthType(0); + } + + List temps = smsTemplateService.querySmsTemplates(query); + + Integer serviceType = 0; + Integer serviceStatus = 0; + //根据服务状态和服务类型获取可以发送的模板 + List sendList = smsConfigFacade.getSendTemplateByServiceStatus(temps, serviceType, serviceStatus); + + if (CollectionUtils.isNotEmpty(temps)) { + if (CollectionUtils.isNotEmpty(sendList)) { + //短信前缀 + String messagePrefix = smsConfigFacade.getMsgPrefix(configModel, doctorId, ServiceObjEnums.YUNOBJ.getId()); + for (SmsTemplateModel templateModel : sendList) { + if (templateModel != null && templateModel.getStatus() == 1) { + + //推送类型模板 + if (templateModel.getTemplateType() == null || templateModel.getTemplateType() == 0) { + //发送推送类模板建档 + if (startType == 3) { + continue; + } + } + //发送短信类模板建档 + else if (templateModel.getTemplateType() == 1 && startType == 1) { + continue; + } + + List messages = new ArrayList<>(); + MsgRequest mr = new MsgRequest(); + + String doctorName = ""; + try { + Users users = usersService.getUsers(Integer.parseInt(doctorId)); + if (users != null && users.getYn() == YnEnums.YES.getId()) { + doctorName = users.getName(); + mr.setKeyword1(doctorName); + } + } catch (Exception e) { + System.out.print(e + doctorId); + } + + String content = ""; + if (isHightRisk) { + //风险名称 + String riskNmae = queryRiskNameStr(patient.getRiskFactorId()); + content = com.lyms.platform.common.utils.StringUtils.replaceNameRisk(patient.getUsername(), riskNmae, templateModel.getContent(), doctorName); + } else { + content = com.lyms.platform.common.utils.StringUtils.replaceName(patient.getUsername(), templateModel.getContent(), doctorName); + } + + mr.setFirst("【" + messagePrefix + "】" + content); + mr.setObjType(ServiceObjEnums.YUNOBJ.getId()); + mr.setPhone(patient.getPhone()); + mr.setTimeType(SmsTimeTypeEnums.ONTIME.getId()); + mr.setPlanTime(DateUtil.getyyyy_MM_dd_hms(new Date())); + mr.setSubTypeId(SmsServiceEnums.FWDGTX.getId()); + mr.setStatus(SmsStatusEnums.WFS.getId()); + mr.setHospitalId(hospitalId); + mr.setTempId(templateModel.getId()); + mr.setPatientId(patient.getId()); + mr.setSmsStatus(SmsStatusEnums.WFS.getId()); + mr.setServiceType((templateModel.getTemplateType() == null || templateModel.getTemplateType() == 0) ? 1 : 3); //判断发送类型 + + mr.setTypeId(templateModel.getHealthType()); + System.out.println("patient.getLastCheckEmployeeId()=" +doctorId); + + + mr.setKeyword2(DateUtil.getymd()); + mr.setRemark(doctorId); + mr.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date())); + + mr.setWxTempId(WxTempleteIdEnums.FU_WU_DING_GOU_TX.getId()); + messages.add(mr); + if (CollectionUtils.isNotEmpty(messages)) { + smsConfigFacade.saveMsg(messages, hospitalId); + } + } + } + } + } + } + + /** * 产检生成推送消息:只针对标准服务的用户 */ public void createSendMsg(String patientId) { -- 1.8.3.1