diff --git a/platform-common/src/main/java/com/lyms/platform/common/enums/WxTempleteIdEnums.java b/platform-common/src/main/java/com/lyms/platform/common/enums/WxTempleteIdEnums.java index 7f07039..c834866 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/enums/WxTempleteIdEnums.java +++ b/platform-common/src/main/java/com/lyms/platform/common/enums/WxTempleteIdEnums.java @@ -22,8 +22,8 @@ public enum WxTempleteIdEnums { CHAN_YI_BAN_ZHI_DAO("H2_ucLqVEbsZAv-EZcmUDpD1Zul5NGqMoJktHT0u4gw","产妇一般指导"),//产妇 BABY_YI_BAN_ZHI_DAO("dqvyESU8UXx1V3cIMQDqj4PLxI6T9-sgihQcs3ZGL9E","儿童一般指导"),//儿童 - YI_SHENG_ZHI_DAO("OggqiSHitLkCgSLCaCH72reCZzaw5NyG8iO56InQiQg","医生指导"),//指导 - WEI_JI_ZHI_DAO("fNkkLSp_gS-YWvzji6gwgdTddl4XBlk8SNP7FRksrfk","危急值提醒");//危急值提醒 + YI_SHENG_ZHI_DAO("OggqiSHitLkCgSLCaCH72reCZzaw5NyG8iO56InQiQg","医生指导");//指导 +// WEI_JI_ZHI_DAO("fNkkLSp_gS-YWvzji6gwgdTddl4XBlk8SNP7FRksrfk","危急值提醒");//危急值提醒 diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/MsgGenerateServiceImpl.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/MsgGenerateServiceImpl.java index 15656de..07f309d 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/MsgGenerateServiceImpl.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/MsgGenerateServiceImpl.java @@ -9,11 +9,15 @@ import com.lyms.platform.msg.worker.ChanAmsMsgGenerateWorker; import com.lyms.platform.msg.worker.TempleteMsgGenerateWorker; import com.lyms.platform.msg.worker.YunAmsMsgGenerateWorker; +import com.lyms.platform.permission.service.BabyPatientExtendEarFollowUpService; +import com.lyms.platform.permission.service.BabyPatientExtendEarHearingDiagnoseService; +import com.lyms.platform.permission.service.BabyPatientExtendEarScreenService; import com.lyms.platform.pojo.SmsConfigModel; import org.apache.commons.collections.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.stereotype.Service; import java.util.*; @@ -38,12 +42,24 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { private IBaseService baseService; @Autowired + private MongoTemplate mongoTemplate; + + @Autowired private YunBookbuildingService yunBookbuildingService; @Autowired private SmsTemplateService smsTemplateService; @Autowired + private BabyPatientExtendEarScreenService babyPatientExtendEarScreenService; + + @Autowired + private BabyPatientExtendEarHearingDiagnoseService hearingDiagnoseService; + + @Autowired + private BabyPatientExtendEarFollowUpService babyPatientExtendEarFollowUpService; + + @Autowired private HighRiskService highRiskService; @Autowired @@ -147,7 +163,15 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { end = configModels.size(); } TempleteMsgGenerateWorker worker = new TempleteMsgGenerateWorker(configModels.subList(i,end), - baseService,yunBookbuildingService,smsTemplateService,babyBookbuildingService,postReviewService); + baseService, + yunBookbuildingService, + smsTemplateService, + babyBookbuildingService, + postReviewService, + mongoTemplate, + babyPatientExtendEarScreenService, + hearingDiagnoseService, + babyPatientExtendEarFollowUpService); pool.execute(worker); } diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/TempleteMsgGenerateWorker.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/TempleteMsgGenerateWorker.java index 1fb9abf..a2fca3d 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/TempleteMsgGenerateWorker.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/TempleteMsgGenerateWorker.java @@ -8,11 +8,19 @@ import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.msg.service.IBaseService; import com.lyms.platform.msg.utils.DateUtils; import com.lyms.platform.msg.utils.HelperUtils; +import com.lyms.platform.permission.model.*; +import com.lyms.platform.permission.service.BabyPatientExtendEarFollowUpService; +import com.lyms.platform.permission.service.BabyPatientExtendEarHearingDiagnoseService; +import com.lyms.platform.permission.service.BabyPatientExtendEarScreenService; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; import org.apache.commons.collections.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; import java.util.*; import java.util.concurrent.ExecutorService; @@ -33,18 +41,29 @@ public class TempleteMsgGenerateWorker implements Runnable { private YunBookbuildingService yunBookbuildingService; + private MongoTemplate mongoTemplate; private SmsTemplateService smsTemplateService; private BabyBookbuildingService babyBookbuildingService; + private BabyPatientExtendEarScreenService babyPatientExtendEarScreenService; + + private BabyPatientExtendEarHearingDiagnoseService hearingDiagnoseService; + + private BabyPatientExtendEarFollowUpService babyPatientExtendEarFollowUpService; + private PostReviewService postReviewService; public TempleteMsgGenerateWorker(List configs, IBaseService baseService, YunBookbuildingService yunBookbuildingService, SmsTemplateService smsTemplateService, BabyBookbuildingService babyBookbuildingService, - PostReviewService postReviewService) + PostReviewService postReviewService, + MongoTemplate mongoTemplate, + BabyPatientExtendEarScreenService babyPatientExtendEarScreenService, + BabyPatientExtendEarHearingDiagnoseService hearingDiagnoseService, + BabyPatientExtendEarFollowUpService babyPatientExtendEarFollowUpService) { this.configs = configs; this.baseService = baseService; @@ -52,6 +71,10 @@ public class TempleteMsgGenerateWorker implements Runnable { this.smsTemplateService = smsTemplateService; this.babyBookbuildingService = babyBookbuildingService; this.postReviewService = postReviewService; + this.mongoTemplate = mongoTemplate; + this.babyPatientExtendEarScreenService = babyPatientExtendEarScreenService; + this.hearingDiagnoseService = hearingDiagnoseService; + this.babyPatientExtendEarFollowUpService = babyPatientExtendEarFollowUpService; } @Override @@ -538,6 +561,223 @@ public class TempleteMsgGenerateWorker implements Runnable { } } } + //儿童眼保键预约提醒 + else if (smsType == SmsServiceEnums.YBYYTX.getId()) + { + //发送短信集合 + MsgListRequest list = new MsgListRequest(); + List messages = new ArrayList<>(); + + Date orderDate = DateUtils.addDay(new Date(), sendTimeType); + orderDate = DateUtils.formatDate(orderDate,DateUtils.Y_M_D); + + List checkModels = mongoTemplate.find(Query.query(Criteria.where("nextCheckTime").is(orderDate) + .and("yn").ne("0").and("hospitalId").is(tempHid)), BabyEyeCheck.class); + if (CollectionUtils.isNotEmpty(checkModels)) + { + for(BabyEyeCheck eyecheck : checkModels) + { + + BabyModelQuery query = new BabyModelQuery(); + query.setYn(YnEnums.YES.getId()); + query.setId(eyecheck.getBabyId()); + + //查询符合条件儿童 + List babyModels = babyBookbuildingService.queryBabyBuildByCond(query); + if (CollectionUtils.isNotEmpty(babyModels)) + { + for (BabyModel model : babyModels) + { + //短信前缀 + String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId()); + String messageContent = "【"+messagePrefix+"】"+template.getContent(); + messageContent = HelperUtils.replaceEL(model.getName(), orderDate, messageContent); + + String itemName = "儿童保健"; + String nextCheckTime = DateUtils.getDateStr(orderDate,DateUtils.Y_M_D); + + MsgRequest request = HelperUtils.getMessageRequest(messageContent, model.getMphone(), + ServiceObjEnums.BABYOBJ.getId(), template.getSmsType(), + model.getHospitalId(), template.getId(), model.getId(), itemName, nextCheckTime, "", + WxTempleteIdEnums.ER_TONG_TI_XING.getId(),service); + + messages.add(request); + } + } + } + } + + list.setMessages(messages); + HelperUtils.sendMsg(list); + } + //儿童听力筛查预约提醒 + else if (smsType == SmsServiceEnums.TSYYTX.getId()) + { + //发送短信集合 + MsgListRequest list = new MsgListRequest(); + List messages = new ArrayList<>(); + + Date orderDate = DateUtils.addDay(new Date(), sendTimeType); + orderDate = DateUtils.formatDate(orderDate,DateUtils.Y_M_D); + + + BabyPatientExtendEarScreenQuery screenQuery = new BabyPatientExtendEarScreenQuery(); + screenQuery.setNextStartTime(DateUtils.getDateStr(orderDate, DateUtils.Y_M_D)); + screenQuery.setNextEndTime(DateUtils.getDateStr(orderDate,DateUtils.Y_M_D)); + screenQuery.setCheckHospitalId(tempHid); + screenQuery.setStatus(0); + screenQuery.setSort("screen_date"); + screenQuery.setNeed("y"); + + List babyPatientExtendEarScreens = babyPatientExtendEarScreenService.queryEarScreenList(screenQuery); + if (CollectionUtils.isNotEmpty(babyPatientExtendEarScreens)) + { + for(BabyPatientExtendEarScreen ear : babyPatientExtendEarScreens) + { + + BabyModelQuery query = new BabyModelQuery(); + query.setYn(YnEnums.YES.getId()); + query.setId(ear.getBabyId()); + + //查询符合条件儿童 + List babyModels = babyBookbuildingService.queryBabyBuildByCond(query); + if (CollectionUtils.isNotEmpty(babyModels)) + { + for (BabyModel model : babyModels) + { + //短信前缀 + String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId()); + String messageContent = "【"+messagePrefix+"】"+template.getContent(); + messageContent = HelperUtils.replaceEL(model.getName(), orderDate, messageContent); + + String itemName = "儿童保健"; + String nextCheckTime = DateUtils.getDateStr(orderDate,DateUtils.Y_M_D); + + MsgRequest request = HelperUtils.getMessageRequest(messageContent, model.getMphone(), + ServiceObjEnums.BABYOBJ.getId(), template.getSmsType(), + model.getHospitalId(), template.getId(), model.getId(), itemName, nextCheckTime, "", + WxTempleteIdEnums.ER_TONG_TI_XING.getId(),service); + + messages.add(request); + } + } + } + } + + list.setMessages(messages); + HelperUtils.sendMsg(list); + } + //儿童听力诊断预约提醒 + else if (smsType == SmsServiceEnums.TYZDYYTX.getId()) + { + //发送短信集合 + MsgListRequest list = new MsgListRequest(); + List messages = new ArrayList<>(); + + Date orderDate = DateUtils.addDay(new Date(), sendTimeType); + orderDate = DateUtils.formatDate(orderDate,DateUtils.Y_M_D); + + BabyPatientExtendEarHearingDiagnoseQuery diagnoseQuery = new BabyPatientExtendEarHearingDiagnoseQuery(); + diagnoseQuery.setDiagnNextStartTime(orderDate); + diagnoseQuery.setDiagnNextEndTime(orderDate); + diagnoseQuery.setHospitalId(tempHid); + diagnoseQuery.setSort("diagnose_time desc"); + + //已经诊断的数据 + List hearingDiagnoseList = hearingDiagnoseService.getHdAndScreen(diagnoseQuery); + if (CollectionUtils.isNotEmpty(hearingDiagnoseList)) + { + for(BabyPatientExtendEarHearingDiagnose diagnose : hearingDiagnoseList) + { + + BabyModelQuery query = new BabyModelQuery(); + query.setYn(YnEnums.YES.getId()); + query.setId(diagnose.getBabyId()); + + //查询符合条件儿童 + List babyModels = babyBookbuildingService.queryBabyBuildByCond(query); + if (CollectionUtils.isNotEmpty(babyModels)) + { + for (BabyModel model : babyModels) + { + //短信前缀 + String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId()); + String messageContent = "【"+messagePrefix+"】"+template.getContent(); + messageContent = HelperUtils.replaceEL(model.getName(), orderDate, messageContent); + + String itemName = "儿童保健"; + String nextCheckTime = DateUtils.getDateStr(orderDate,DateUtils.Y_M_D); + + MsgRequest request = HelperUtils.getMessageRequest(messageContent, model.getMphone(), + ServiceObjEnums.BABYOBJ.getId(), template.getSmsType(), + model.getHospitalId(), template.getId(), model.getId(), itemName, nextCheckTime, "", + WxTempleteIdEnums.ER_TONG_TI_XING.getId(),service); + + messages.add(request); + } + } + } + } + + list.setMessages(messages); + HelperUtils.sendMsg(list); + } + //儿童听力随访预约提醒 + else if (smsType == SmsServiceEnums.TLZDYYTX.getId()) + { + //发送短信集合 + MsgListRequest list = new MsgListRequest(); + List messages = new ArrayList<>(); + + Date orderDate = DateUtils.addDay(new Date(), sendTimeType); + orderDate = DateUtils.formatDate(orderDate,DateUtils.Y_M_D); + + + //查询条件 + BabyPatientExtendEarFollowUpQuery followUpQuery = new BabyPatientExtendEarFollowUpQuery(); + followUpQuery.setIfdel(0); + followUpQuery.setNextStartTime(DateUtils.getDateStr(orderDate,DateUtils.Y_M_D)); + followUpQuery.setNextEndTime(DateUtils.getDateStr(orderDate,DateUtils.Y_M_D)); + followUpQuery.setHospitalId(tempHid); + + List BabyPatientExtendEarFollowUpList = babyPatientExtendEarFollowUpService.queryBabyPatientExtendEarFollowUp(followUpQuery); + if (CollectionUtils.isNotEmpty(BabyPatientExtendEarFollowUpList)) + { + for(BabyPatientExtendEarFollowUp follow : BabyPatientExtendEarFollowUpList) + { + + BabyModelQuery query = new BabyModelQuery(); + query.setYn(YnEnums.YES.getId()); + query.setId(follow.getBabyId()); + + //查询符合条件儿童 + List babyModels = babyBookbuildingService.queryBabyBuildByCond(query); + if (CollectionUtils.isNotEmpty(babyModels)) + { + for (BabyModel model : babyModels) + { + //短信前缀 + String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId()); + String messageContent = "【"+messagePrefix+"】"+template.getContent(); + messageContent = HelperUtils.replaceEL(model.getName(), orderDate, messageContent); + + String itemName = "儿童保健"; + String nextCheckTime = DateUtils.getDateStr(orderDate,DateUtils.Y_M_D); + + MsgRequest request = HelperUtils.getMessageRequest(messageContent, model.getMphone(), + ServiceObjEnums.BABYOBJ.getId(), template.getSmsType(), + model.getHospitalId(), template.getId(), model.getId(), itemName, nextCheckTime, "", + WxTempleteIdEnums.ER_TONG_TI_XING.getId(),service); + + messages.add(request); + } + } + } + } + + list.setMessages(messages); + HelperUtils.sendMsg(list); + } }