From 5a70cab91a54e7b30aabefcae1a07299e3dd499d Mon Sep 17 00:00:00 2001 From: liquanyu Date: Tue, 26 Dec 2017 11:45:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BB=BA=E6=A1=A3=E7=9F=AD=E4=BF=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/web/facade/BabyBookbuildingFacade.java | 266 ++++++++++++--------- .../operate/web/facade/BookbuildingFacade.java | 47 ++-- .../operate/web/facade/SmsConfigFacade.java | 45 ++++ 3 files changed, 218 insertions(+), 140 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java index f91e064..56ba9d6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java @@ -726,19 +726,31 @@ public class BabyBookbuildingFacade { operateLogFacade.addAddOptLog(userId, Integer.valueOf(request.getHospitalId()), model, OptActionEnums.ADD.getId(), "儿童建档"); model = babyBookbuildingService.addBabyBookbuilding(model); - if (model == null || model.getId() == null) { + + final String bId = model.getId(); + if (model == null || bId == null) { br.setErrorcode(ErrorCodeConstants.SYSTEM_ERROR); br.setErrormsg("保存失败"); return br; } - //创建建档短信 - //createBuildSms(model); - - createBuildMsg(model); - + //创建建档短信、推送/业务推广 + new Thread(new Runnable() { + @Override + public void run() { + BabyModelQuery babyQuery = new BabyModelQuery(); + babyQuery.setYn(YnEnums.YES.getId()); + babyQuery.setId(bId); + List list = babyBookbuildingService.queryBabyBuildByCond(babyQuery); + if (CollectionUtils.isNotEmpty(list)) + { + createBuildMsg(list.get(0)); + createExtensionMsg(list.get(0)); + } + } + }); br.setErrorcode(ErrorCodeConstants.SUCCESS); br.setErrormsg("成功"); - br.setData(model.getId()); + br.setData(bId); } catch (Exception e) { @@ -756,13 +768,12 @@ public class BabyBookbuildingFacade { //判断医院是否启动和对应的服务项是否启用 SmsConfigModel configModel = new SmsConfigModel(); + // 1 推送服务, 2 推送和短信服务 3短信服务, int startType = smsConfigFacade.hospitalIsStart(babyModel.getHospitalId(), configModel, SmsServiceEnums.FWKT.getId()); if (startType == 0) { return; } - ExceptionUtils.catchException("The child build config is started.;" + babyModel.getMphone() + ";name=" + babyModel.getName()); - SmsTemplateQuery query = new SmsTemplateQuery(); query.setYn(YnEnums.YES.getId()); query.setStatus(1); @@ -770,134 +781,161 @@ public class BabyBookbuildingFacade { query.setServiceObj(ServiceObjEnums.BABYOBJ.getId()); query.setSpecialDateType(SpecialDateEnums.JD.getId()); + //获取建档的模板(包括推送模板、短信模板) + List temps = smsTemplateService.querySmsTemplates(query); + Integer serviceType = babyModel.getServiceType(); Integer serviceStatus = babyModel.getServiceStatus(); - List sendList = new ArrayList<>(); - List temps = smsTemplateService.querySmsTemplates(query); - if (CollectionUtils.isNotEmpty(temps)) { - for (SmsTemplateModel temp : temps) { - if (temp.getServiceType() == serviceType && temp.getServiceStatus() == serviceStatus) { - sendList.add(temp); - break; - } - } + //根据服务状态和服务类型获取可以发送的模板 + List sendList = smsConfigFacade.getSendTemplateByServiceStatus(temps,serviceType,serviceStatus); - for (SmsTemplateModel temp : temps) { - if (temp.getServiceStatus() == ServiceStatusEnums.STANDARD_ALL.getId()) { - if (serviceStatus == ServiceStatusEnums.STANDARD_OPEN.getId() || serviceStatus == ServiceStatusEnums.NO_OPEN.getId() || serviceStatus == ServiceStatusEnums.STANDARD_OVERDUE.getId()) { - sendList.add(temp); - break; + if (CollectionUtils.isNotEmpty(sendList)) { + //短信前缀 + String messagePrefix = smsConfigFacade.getMsgPrefix(configModel, babyModel.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId()); + for (SmsTemplateModel templateModel : sendList) { + //推送类型模板 + if (templateModel.getTemplateType() == null || templateModel.getTemplateType() == 0) + { + //发送推送类模板建档 + if (startType == 3) + { + continue; } } - } + //发送短信类模板建档 + else if(templateModel.getTemplateType() == 1 && startType == 1) + { + continue; + } - for (SmsTemplateModel temp : temps) { - if (temp.getServiceStatus() == ServiceStatusEnums.ADD_ALL.getId()) { - if (serviceStatus == ServiceStatusEnums.ADD_OPEN.getId() || serviceStatus == ServiceStatusEnums.UNSUBSCRIBE.getId() - || serviceStatus == ServiceStatusEnums.ADD_OVERDUE.getId() || serviceStatus == ServiceStatusEnums.SUSPEND.getId()) { - sendList.add(temp); - break; + MsgListRequest smsList = new MsgListRequest(); + List messages = new ArrayList<>(); + MsgRequest mr = new MsgRequest(); + + String content = "【" + messagePrefix + "】" + templateModel.getContent(); + + mr.setFirst(StringUtils.replaceBaby(babyModel.getName(), babyModel.getBirth(), content)); + mr.setObjType(ServiceObjEnums.BABYOBJ.getId()); + mr.setPhone(babyModel.getMphone()); + mr.setTypeId(ProjectTypeEnums.YNXT.getId()); + mr.setPlanTime(DateUtil.getyyyy_MM_dd_hms(new Date())); + mr.setSubTypeId(SmsServiceEnums.FWKT.getId()); + mr.setStatus(SmsStatusEnums.WFS.getId()); + mr.setTimeType(SmsTimeTypeEnums.ONTIME.getId()); + + mr.setHospitalId(babyModel.getHospitalId()); + mr.setTempId(templateModel.getId()); + mr.setPatientId(babyModel.getId()); + + mr.setKeyword1(babyModel.getName()); + mr.setKeyword2(DateUtil.getyyyy_MM_dd(babyModel.getBirth())); + mr.setRemark(""); + mr.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date())); + mr.setSmsStatus(SmsStatusEnums.WFS.getId()); + mr.setServiceType(startType); + + mr.setWxTempId(WxTempleteIdEnums.ER_TONG_OPEN.getId()); + messages.add(mr); + if (CollectionUtils.isNotEmpty(messages)) { + smsList.setTypeId(ProjectTypeEnums.YNXT.getId()); + smsList.setMessages(messages); + if ("4".equals(HIS_VERSION) || "20".equals(HIS_VERSION)) + { + //秦皇岛、威县建档 + if (syncDataService.savePostMsg(JsonUtil.obj2JsonString(smsList), babyModel.getHospitalId())) { + ExceptionUtils.catchException("The child build is saved.;" + babyModel.getMphone() + ";name=" + babyModel.getName()); + } + } + else + { + //线上 + MessageCenterService.saveMsgCenter(smsList); + ExceptionUtils.catchException("The child build is saved." + babyModel.getMphone() + ";name=" + babyModel.getName()); } } } + } + } - for (SmsTemplateModel temp : temps) { - if (temp.getServiceStatus() == ServiceStatusEnums.ALL_OPEN.getId()) { - if (serviceStatus == ServiceStatusEnums.STANDARD_OPEN.getId() || serviceStatus == ServiceStatusEnums.ADD_OPEN.getId()) { - sendList.add(temp); - break; - } - } - } + /** + * 创建业务推广短信 + */ + private void createExtensionMsg(BabyModel babyModel) { - for (SmsTemplateModel temp : temps) { - if (temp.getServiceStatus() == ServiceStatusEnums.ALL_NO_OPEN.getId()) { - if (serviceStatus == ServiceStatusEnums.NO_OPEN.getId() || serviceStatus == ServiceStatusEnums.UNSUBSCRIBE.getId()) { - sendList.add(temp); - break; - } - } - } + //判断医院是否启动和对应的服务项是否启用 + SmsConfigModel configModel = new SmsConfigModel(); + int startType = smsConfigFacade.hospitalIsStart(babyModel.getHospitalId(), configModel, SmsServiceEnums.YWTG.getId()); + if (startType == 0) { + return; + } + SmsTemplateQuery query = new SmsTemplateQuery(); + query.setYn(YnEnums.YES.getId()); + query.setStatus(1); + query.setHospitalId(babyModel.getHospitalId()); + query.setServiceObj(ServiceObjEnums.BABYOBJ.getId()); + query.setSpecialDateType(SpecialDateEnums.ETFWTG.getId()); - for (SmsTemplateModel temp : temps) { - if (temp.getServiceStatus() == ServiceStatusEnums.ALL_OVERDUE.getId()) { - if (serviceStatus == ServiceStatusEnums.STANDARD_OVERDUE.getId() || serviceStatus == ServiceStatusEnums.ADD_OVERDUE.getId()) { - sendList.add(temp); - break; - } - } - } + Integer serviceType = babyModel.getServiceType(); + Integer serviceStatus = babyModel.getServiceStatus(); + List temps = smsTemplateService.querySmsTemplates(query); + List sendList =smsConfigFacade.getSendTemplateByServiceStatus(temps,serviceType,serviceStatus); + + if (CollectionUtils.isNotEmpty(sendList)) { + //短信前缀 + String messagePrefix = smsConfigFacade.getMsgPrefix(configModel, babyModel.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId()); + for (SmsTemplateModel templateModel : sendList) { + if (templateModel != null && templateModel.getStatus() == 1) { + ExceptionUtils.catchException("The child build status is opened.;" + babyModel.getMphone() + ";name=" + babyModel.getName()); + MsgListRequest smsList = new MsgListRequest(); + List messages = new ArrayList<>(); + MsgRequest mr = new MsgRequest(); + String content = "【" + messagePrefix + "】" + templateModel.getContent(); - for (SmsTemplateModel temp : temps) { - if (temp.getServiceType() == ServiceTypeEnums.ALL_SERVICE.getId() && temp.getServiceStatus() == ServiceStatusEnums.ALL.getId()) { - sendList.add(temp); - break; - } - } - if (CollectionUtils.isNotEmpty(sendList)) { - //短信前缀 - String messagePrefix = smsConfigFacade.getMsgPrefix(configModel, babyModel.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId()); - for (SmsTemplateModel templateModel : sendList) { - if (templateModel != null && templateModel.getStatus() == 1) { - ExceptionUtils.catchException("The child build status is opened.;" + babyModel.getMphone() + ";name=" + babyModel.getName()); - MsgListRequest smsList = new MsgListRequest(); - List messages = new ArrayList<>(); - MsgRequest mr = new MsgRequest(); - String content = "【" + messagePrefix + "】" + templateModel.getContent(); - - - mr.setFirst(StringUtils.replaceBaby(babyModel.getName(), babyModel.getBirth(), content)); - mr.setObjType(ServiceObjEnums.BABYOBJ.getId()); - mr.setPhone(babyModel.getMphone()); - mr.setTypeId(ProjectTypeEnums.YNXT.getId()); - mr.setPlanTime(DateUtil.getyyyy_MM_dd_hms(new Date())); - mr.setSubTypeId(SmsServiceEnums.FWKT.getId()); - mr.setStatus(SmsStatusEnums.WFS.getId()); - mr.setTimeType(SmsTimeTypeEnums.ONTIME.getId()); - - mr.setHospitalId(babyModel.getHospitalId()); - mr.setTempId(templateModel.getId()); - mr.setPatientId(babyModel.getId()); - - mr.setKeyword1(babyModel.getName()); - mr.setKeyword2(DateUtil.getyyyy_MM_dd(babyModel.getBirth())); - mr.setRemark(""); - mr.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date())); - mr.setSmsStatus(SmsStatusEnums.WFS.getId()); - mr.setServiceType(startType); - - - mr.setWxTempId(WxTempleteIdEnums.ER_TONG_OPEN.getId()); - messages.add(mr); - - if (CollectionUtils.isNotEmpty(messages)) { - smsList.setTypeId(ProjectTypeEnums.YNXT.getId()); - smsList.setMessages(messages); - if ("4".equals(HIS_VERSION) || "20".equals(HIS_VERSION)) - { - //秦皇岛、威县建档 - if (syncDataService.savePostMsg(JsonUtil.obj2JsonString(smsList), babyModel.getHospitalId())) { - ExceptionUtils.catchException("The child build is saved.;" + babyModel.getMphone() + ";name=" + babyModel.getName()); - } - } - else - { - //线上 - MessageCenterService.saveMsgCenter(smsList); - ExceptionUtils.catchException("The child build is saved." + babyModel.getMphone() + ";name=" + babyModel.getName()); - } + mr.setFirst(StringUtils.replaceBaby(babyModel.getName(), babyModel.getBirth(), content)); + mr.setObjType(ServiceObjEnums.BABYOBJ.getId()); + mr.setPhone(babyModel.getMphone()); + mr.setTypeId(ProjectTypeEnums.YNXT.getId()); + mr.setPlanTime(DateUtil.getyyyy_MM_dd_hms(new Date())); + mr.setSubTypeId(SmsServiceEnums.YWTG.getId()); //业务推广 + mr.setStatus(SmsStatusEnums.WFS.getId()); + mr.setTimeType(SmsTimeTypeEnums.ONTIME.getId()); + + mr.setHospitalId(babyModel.getHospitalId()); + mr.setTempId(templateModel.getId()); + mr.setPatientId(babyModel.getId()); + + mr.setKeyword1(babyModel.getName()); + mr.setKeyword2(DateUtil.getyyyy_MM_dd(babyModel.getBirth())); + mr.setRemark(""); + mr.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date())); + mr.setSmsStatus(SmsStatusEnums.WFS.getId()); + mr.setServiceType(startType); + + mr.setWxTempId(WxTempleteIdEnums.ER_TONG_OPEN.getId()); + messages.add(mr); + + if (CollectionUtils.isNotEmpty(messages)) { + smsList.setTypeId(ProjectTypeEnums.YNXT.getId()); + smsList.setMessages(messages); + if ("4".equals(HIS_VERSION) || "20".equals(HIS_VERSION)) + { + //秦皇岛、威县建档 + syncDataService.savePostMsg(JsonUtil.obj2JsonString(smsList), babyModel.getHospitalId()); + } + else + { + //线上 + MessageCenterService.saveMsgCenter(smsList); } } } } - - } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java index 17f42c3..1061c8f 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java @@ -576,43 +576,38 @@ public class BookbuildingFacade { query.setServiceObj(ServiceObjEnums.YUNOBJ.getId()); query.setSpecialDateType(SpecialDateEnums.JD.getId()); + List temps = smsTemplateService.querySmsTemplates(query); + Integer serviceType = patient.getServiceType(); Integer serviceStatus = patient.getServiceStatus(); - List sendList = new ArrayList<>(); + //根据服务状态和服务类型获取可以发送的模板 + List sendList = smsConfigFacade.getSendTemplateByServiceStatus(temps, serviceType, serviceStatus); - List temps = smsTemplateService.querySmsTemplates(query); if (CollectionUtils.isNotEmpty(temps)) { - - for (SmsTemplateModel temp : temps) { - if (temp.getServiceType() == serviceType && temp.getServiceStatus() == serviceStatus) { - sendList.add(temp); - } else if (temp.getServiceType() == serviceType && temp.getServiceStatus() == serviceStatus) { - sendList.add(temp); - } else if (temp.getServiceStatus() == ServiceStatusEnums.ADD_ALL.getId()) { - if (serviceStatus == ServiceStatusEnums.ADD_OPEN.getId() || serviceStatus == ServiceStatusEnums.UNSUBSCRIBE.getId() - || serviceStatus == ServiceStatusEnums.ADD_OVERDUE.getId() || serviceStatus == ServiceStatusEnums.SUSPEND.getId()) { - sendList.add(temp); - } - } else if (temp.getServiceStatus() == ServiceStatusEnums.ALL_OPEN.getId()) { - if (serviceStatus == ServiceStatusEnums.STANDARD_OPEN.getId() || serviceStatus == ServiceStatusEnums.ADD_OPEN.getId()) { - sendList.add(temp); - } - } else if (temp.getServiceStatus() == ServiceStatusEnums.ALL_OVERDUE.getId()) { - if (serviceStatus == ServiceStatusEnums.STANDARD_OVERDUE.getId() || serviceStatus == ServiceStatusEnums.ADD_OVERDUE.getId()) { - sendList.add(temp); - } - } else if (temp.getServiceType() == ServiceTypeEnums.ALL_SERVICE.getId() && temp.getServiceStatus() == ServiceStatusEnums.ALL.getId()) { - sendList.add(temp); - } - } - if (CollectionUtils.isNotEmpty(sendList)) { //短信前缀 String messagePrefix = smsConfigFacade.getMsgPrefix(configModel, patient.getBookbuildingDoctor(), 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; + } + + MsgListRequest smsList = new MsgListRequest(); List messages = new ArrayList<>(); MsgRequest mr = new MsgRequest(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmsConfigFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmsConfigFacade.java index 169b50a..896c422 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmsConfigFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmsConfigFacade.java @@ -825,6 +825,51 @@ public class SmsConfigFacade { } /** + * 根据服务状态和服务类型获取可以发送的模板 + * @param temps + * @param serviceType + * @param serviceStatus + * @return + */ + public List getSendTemplateByServiceStatus(List temps,Integer serviceType,Integer serviceStatus) + { + List sendList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(temps)) { + for (SmsTemplateModel temp : temps) { + if (temp.getServiceType() == serviceType && temp.getServiceStatus() == serviceStatus) { + sendList.add(temp); + } else if (temp.getServiceStatus() == ServiceStatusEnums.STANDARD_ALL.getId()) { + if (serviceStatus == ServiceStatusEnums.STANDARD_OPEN.getId() || serviceStatus == ServiceStatusEnums.NO_OPEN.getId() + || serviceStatus == ServiceStatusEnums.STANDARD_OVERDUE.getId()) { + sendList.add(temp); + } + } else if (temp.getServiceStatus() == ServiceStatusEnums.ADD_ALL.getId()) { + if (serviceStatus == ServiceStatusEnums.ADD_OPEN.getId() || serviceStatus == ServiceStatusEnums.UNSUBSCRIBE.getId() + || serviceStatus == ServiceStatusEnums.ADD_OVERDUE.getId() || serviceStatus == ServiceStatusEnums.SUSPEND.getId()) { + sendList.add(temp); + } + } else if (temp.getServiceStatus() == ServiceStatusEnums.ALL_OPEN.getId()) { + if (serviceStatus == ServiceStatusEnums.STANDARD_OPEN.getId() || serviceStatus == ServiceStatusEnums.ADD_OPEN.getId()) { + sendList.add(temp); + } + } else if (temp.getServiceStatus() == ServiceStatusEnums.ALL_NO_OPEN.getId()) { + if (serviceStatus == ServiceStatusEnums.NO_OPEN.getId() || serviceStatus == ServiceStatusEnums.UNSUBSCRIBE.getId()) { + sendList.add(temp); + } + } else if (temp.getServiceStatus() == ServiceStatusEnums.ALL_OVERDUE.getId()) { + if (serviceStatus == ServiceStatusEnums.STANDARD_OVERDUE.getId() || serviceStatus == ServiceStatusEnums.ADD_OVERDUE.getId()) { + sendList.add(temp); + } + } else if (temp.getServiceType() == ServiceTypeEnums.ALL_SERVICE.getId() && temp.getServiceStatus() == ServiceStatusEnums.ALL.getId()) { + sendList.add(temp); + } + } + } + return sendList; + } + + + /** * 判断对应服务是否启动 * return 1 推送服务, 2 推送和短信服务 3短信服务, */ -- 1.8.3.1