From 64a48804f209d1b08176d08e9a134298424218ac Mon Sep 17 00:00:00 2001 From: yangfei Date: Mon, 21 May 2018 10:07:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A7=E6=A3=80=E8=BF=87=E6=9C=9F=E6=8F=90?= =?UTF-8?q?=E9=86=92=E5=92=8C=E5=84=BF=E7=AB=A5=E8=BA=AB=E9=AB=98=E6=9B=B2?= =?UTF-8?q?=E7=BA=BF=E5=9B=BE=E6=8E=A5=E5=8F=A3=E6=81=A2=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lyms/platform/common/enums/SendTimeEnums.java | 2 +- .../com/lyms/platform/query/PatientsQuery.java | 24 +- .../msg/worker/TempleteMsgGenerateWorker.java | 858 ++++++++++----------- .../operate/web/facade/BabyCheckFacade.java | 39 +- 4 files changed, 439 insertions(+), 484 deletions(-) diff --git a/platform-common/src/main/java/com/lyms/platform/common/enums/SendTimeEnums.java b/platform-common/src/main/java/com/lyms/platform/common/enums/SendTimeEnums.java index 425a7cc..e5eb742 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/enums/SendTimeEnums.java +++ b/platform-common/src/main/java/com/lyms/platform/common/enums/SendTimeEnums.java @@ -13,7 +13,7 @@ import java.util.Map; public enum SendTimeEnums { - DT(0,"当天"),QYT(1,"前一天"),QLT(2,"前两天"),QST(3,"前三天"); + DT(0,"当天"),QYT(1,"前一天"),QLT(2,"前两天"),QST(3,"前三天"),HYT(-1,"后一天"),HLT(-2,"后二天"),HST(-3,"后三天"); SendTimeEnums(int id, String name) { this.id = id; diff --git a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java index 4624e59..c341c5a 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java @@ -509,6 +509,7 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { private Date fmDateStart; private Date fmDateEnd; + private Date nextCheckTime; private Date nextCheckTimeStart; private Date nextCheckTimeEnd; @@ -555,7 +556,15 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { private String pcerteTypeId; - private String blNum; + private String blNum; + + public Date getNextCheckTime() { + return nextCheckTime; + } + + public void setNextCheckTime(Date nextCheckTime) { + this.nextCheckTime = nextCheckTime; + } public String getBlNum() { return blNum; @@ -1272,7 +1281,7 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { MongoCondition con3 = MongoCondition.newInstance("cardNo", pvc, MongoOper.IS); MongoCondition con5 = MongoCondition.newInstance("vcCardNo", pvc, MongoOper.IS); if (c1 != null) { - c1 = c1.andOperator(c.orCondition(new MongoCondition[]{con1, con3, con5}).getCriteria()); + c1 = c1.andOperator(c.orCondition(new MongoCondition[]{con1, con3, con5}).getCriteria()); } else { c1 = c.orCondition(new MongoCondition[]{con1, con3, con5}).getCriteria(); } @@ -1351,9 +1360,7 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { } else { c1 = Criteria.where("fmDate").gte(fmDateStart).lte(fmDateEnd); } - } - else if (fmDateStart != null) - { + } else if (fmDateStart != null) { if (null != c1) { c1 = c1.and("fmDate").gte(fmDateStart); } else { @@ -1406,7 +1413,7 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { condition = condition.and("riskFactorId", rFactorList, MongoOper.IN); } - if(isNullrFactor){ + if (isNullrFactor) { condition = condition.and("riskFactorId", new ArrayList(), MongoOper.IS); } @@ -1492,6 +1499,7 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { } } + if (null != nextCheckTimeEnd) { if (null != c1) { c1 = c1.lte(nextCheckTimeEnd); @@ -1647,6 +1655,10 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { } } + if (null != nextCheckTime) { + condition = condition.and("nextCheckTime", nextCheckTime, MongoOper.NE); + } + if (StringUtils.isNotEmpty(fmHospital)) { condition = condition.and("fmHospital", fmHospital, MongoOper.IS); } 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 601a3bf..2051c7f 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 @@ -4,7 +4,6 @@ import com.lyms.platform.beans.MsgListRequest; import com.lyms.platform.beans.MsgRequest; import com.lyms.platform.biz.service.*; import com.lyms.platform.common.enums.*; -import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.msg.service.IBaseService; import com.lyms.platform.msg.utils.DateUtils; @@ -14,11 +13,12 @@ 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 com.lyms.platform.query.BabyModelQuery; +import com.lyms.platform.query.PatientsQuery; +import com.lyms.platform.query.SmsTemplateQuery; 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; @@ -64,8 +64,7 @@ public class TempleteMsgGenerateWorker implements Runnable { MongoTemplate mongoTemplate, BabyPatientExtendEarScreenService babyPatientExtendEarScreenService, BabyPatientExtendEarHearingDiagnoseService hearingDiagnoseService, - BabyPatientExtendEarFollowUpService babyPatientExtendEarFollowUpService) - { + BabyPatientExtendEarFollowUpService babyPatientExtendEarFollowUpService) { this.configs = configs; this.baseService = baseService; this.yunBookbuildingService = yunBookbuildingService; @@ -81,25 +80,22 @@ public class TempleteMsgGenerateWorker implements Runnable { @Override public void run() { - if (CollectionUtils.isNotEmpty(configs)) - { + if (CollectionUtils.isNotEmpty(configs)) { //查询短信模板 SmsTemplateQuery tempQuery = new SmsTemplateQuery(); tempQuery.setYn(YnEnums.YES.getId()); //启用状态 0未启用 1启用 tempQuery.setStatus(1); - for(final SmsConfigModel config : configs) { + for (final SmsConfigModel config : configs) { String hospitalId = config.getHospitalId(); - logger.info("genernate tempplate hospital id = "+hospitalId); - if (StringUtils.isEmpty(hospitalId)) - { + logger.info("genernate tempplate hospital id = " + hospitalId); + if (StringUtils.isEmpty(hospitalId)) { continue; } //判断医院是否运行 - if (!baseService.isRunning(hospitalId)) - { + if (!baseService.isRunning(hospitalId)) { continue; } @@ -107,8 +103,7 @@ public class TempleteMsgGenerateWorker implements Runnable { tempQuery.setHospitalId(hospitalId); List templates = smsTemplateService.querySmsTemplates(tempQuery); - if (CollectionUtils.isEmpty(templates)) - { + if (CollectionUtils.isEmpty(templates)) { continue; } try { @@ -120,19 +115,17 @@ public class TempleteMsgGenerateWorker implements Runnable { if (end > templates.size()) { end = templates.size(); } - final List items = templates.subList(i, end); + final List items = templates.subList(i, end); pool.execute(new Runnable() { @Override public void run() { - if (CollectionUtils.isEmpty(items)) - { + if (CollectionUtils.isEmpty(items)) { return; } //循环每一个模板,根据模板条件查询到用户 发送短信 - for (SmsTemplateModel template : items) - { + for (SmsTemplateModel template : items) { try { //模板属于的医院id String tempHid = template.getHospitalId(); @@ -154,32 +147,26 @@ public class TempleteMsgGenerateWorker implements Runnable { } //判断模板是否发送 - boolean isSendTemplate = baseService.isSendTemplate(template.getTemplateType(),service); - if (!isSendTemplate) - { + boolean isSendTemplate = baseService.isSendTemplate(template.getTemplateType(), service); + if (!isSendTemplate) { continue; } service = (template.getTemplateType() == null || template.getTemplateType() == 0) ? 1 : 3; //孕妇 - if (serviceObj == ServiceObjEnums.YUNOBJ.getId()) - { - generateYunTempMsg(template,config,service); + if (serviceObj == ServiceObjEnums.YUNOBJ.getId()) { + generateYunTempMsg(template, config, service); } //儿童 - else if (serviceObj == ServiceObjEnums.BABYOBJ.getId()) - { - generateChildTempMsg(template, config,service); + else if (serviceObj == ServiceObjEnums.BABYOBJ.getId()) { + generateChildTempMsg(template, config, service); } //产妇 - else if (serviceObj == ServiceObjEnums.CHANOBJ.getId()) - { - generateChanTempMsg(template, config,service); + else if (serviceObj == ServiceObjEnums.CHANOBJ.getId()) { + generateChanTempMsg(template, config, service); } - } - catch (Exception e) - { + } catch (Exception e) { logger.error("genernate templete error. [" + template.toString() + "]", e); continue; } @@ -187,10 +174,8 @@ public class TempleteMsgGenerateWorker implements Runnable { } }); } - } - catch (Exception e) - { - logger.error("genernate config error.["+config.toString()+"]",e); + } catch (Exception e) { + logger.error("genernate config error.[" + config.toString() + "]", e); continue; } } @@ -199,11 +184,11 @@ public class TempleteMsgGenerateWorker implements Runnable { /** * 生成儿童模板消息 + * * @param template * @param config */ - private void generateChildTempMsg(SmsTemplateModel template, SmsConfigModel config,Integer service) - { + private void generateChildTempMsg(SmsTemplateModel template, SmsConfigModel config, Integer service) { //模板属于的医院id String tempHid = template.getHospitalId(); @@ -219,7 +204,7 @@ public class TempleteMsgGenerateWorker implements Runnable { Integer sendTimeType = template.getSendTimeType(); - logger.info("generateChildTempMsg info : serviceType = "+serviceType +";templateId="+template.getId()+";smsType="+smsType); + logger.info("generateChildTempMsg info : serviceType = " + serviceType + ";templateId=" + template.getId() + ";smsType=" + smsType); BabyModelQuery babyModelQuery = new BabyModelQuery(); babyModelQuery.setYn(YnEnums.YES.getId()); @@ -231,19 +216,16 @@ public class TempleteMsgGenerateWorker implements Runnable { babyModelQuery = HelperUtils.getServiceBabyQuery(serviceType, serviceStatus, babyModelQuery); //儿保预约提醒 - if (smsType == SmsServiceEnums.EBYYTX.getId()) - { + if (smsType == SmsServiceEnums.EBYYTX.getId()) { //发送短信集合 MsgListRequest list = new MsgListRequest(); List messages = new ArrayList<>(); Date yuYueDate = DateUtils.addDay(new Date(), sendTimeType); - yuYueDate = DateUtils.formatDate(yuYueDate,DateUtils.Y_M_D); + yuYueDate = DateUtils.formatDate(yuYueDate, DateUtils.Y_M_D); List checkModels = babyBookbuildingService.queryBabyYuYueRecord(yuYueDate, tempHid); - if (CollectionUtils.isNotEmpty(checkModels)) - { - for(BabyCheckModel checkModel : checkModels) - { + if (CollectionUtils.isNotEmpty(checkModels)) { + for (BabyCheckModel checkModel : checkModels) { BabyModelQuery query = new BabyModelQuery(); query.setYn(YnEnums.YES.getId()); @@ -251,22 +233,20 @@ public class TempleteMsgGenerateWorker implements Runnable { //查询符合条件儿童 List babyModels = babyBookbuildingService.queryBabyBuildByCond(query); - if (CollectionUtils.isNotEmpty(babyModels)) - { - for (BabyModel model : babyModels) - { + 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(), yuYueDate, messageContent); + String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(), ServiceObjEnums.BABYOBJ.getId()); + String messageContent = "【" + messagePrefix + "】" + template.getContent(); + messageContent = HelperUtils.replaceEL(model.getName(), yuYueDate, messageContent); - String itemName = "儿童保健"; - String nextCheckTime = DateUtils.getDateStr(yuYueDate,DateUtils.Y_M_D); + String itemName = "儿童保健"; + String nextCheckTime = DateUtils.getDateStr(yuYueDate, 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); + WxTempleteIdEnums.ER_TONG_TI_XING.getId(), service); messages.add(request); } @@ -278,26 +258,22 @@ public class TempleteMsgGenerateWorker implements Runnable { HelperUtils.sendMsg(list); } //儿保程序提醒 - else if (smsType == SmsServiceEnums.EBCXTX.getId()) - { + else if (smsType == SmsServiceEnums.EBCXTX.getId()) { //发送频次 Integer sendFreq = template.getSendFrequency(); - if (sendFreq == SendFrequencyEnums.ONCE.getId()) - { + if (sendFreq == SendFrequencyEnums.ONCE.getId()) { //GL(0,"公历","0,1,2","0,1,2,3"),NL(1,"农历","0,1,2","0,1,2,3"),TSRQ(2,"特殊日期","0,2","1,2,3"),SLRQ(3,"生理日期","0","1,2,3"); Integer sendDateType = template.getSendDateType(); - if (sendDateType == SendDateEnums.SLRQ.getId()) - { + if (sendDateType == SendDateEnums.SLRQ.getId()) { //时间类型 Integer specialDateType = template.getSpecialDateType(); //儿童天数 - if (specialDateType == SpecialDateEnums.ETTS.getId()) - { + if (specialDateType == SpecialDateEnums.ETTS.getId()) { //发送短信集合 MsgListRequest list = new MsgListRequest(); @@ -306,48 +282,42 @@ public class TempleteMsgGenerateWorker implements Runnable { Integer start = template.getStart(); Integer end = template.getEnd(); - if (start != null && end != null) - { - Date startDate = DateUtils.getNewDate(new Date(),-end, "天", sendTimeType); - Date endDate = DateUtils.getNewDate(new Date(),-start,"天",sendTimeType); + if (start != null && end != null) { + Date startDate = DateUtils.getNewDate(new Date(), -end, "天", sendTimeType); + Date endDate = DateUtils.getNewDate(new Date(), -start, "天", sendTimeType); startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D); - endDate = DateUtils.formatDate(endDate,DateUtils.Y_M_D); + endDate = DateUtils.formatDate(endDate, DateUtils.Y_M_D); babyModelQuery.setBirthStart(startDate); babyModelQuery.setBirthEnd(endDate); - List babyModels = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery); - if (CollectionUtils.isNotEmpty(babyModels)) - { - for (BabyModel model : babyModels) - { - if (model.getBirth() == null) - { + List babyModels = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery); + if (CollectionUtils.isNotEmpty(babyModels)) { + for (BabyModel model : babyModels) { + if (model.getBirth() == null) { continue; } - if (HelperUtils.isExistMsg(model.getId(), template.getId())) - { + if (HelperUtils.isExistMsg(model.getId(), template.getId())) { continue; } //如果有有效的预约短信就不发送 儿保检查提醒 - if (queryBabyOrder(model.getBirth(), start, tempHid, sendTimeType, model.getId(), "天")) - { + if (queryBabyOrder(model.getBirth(), start, tempHid, sendTimeType, model.getId(), "天")) { continue; } //短信前缀 - String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId()); - String messageContent = "【"+messagePrefix+"】"+template.getContent(); - messageContent = HelperUtils.replaceName(model.getName(), messageContent); + String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(), ServiceObjEnums.BABYOBJ.getId()); + String messageContent = "【" + messagePrefix + "】" + template.getContent(); + messageContent = HelperUtils.replaceName(model.getName(), messageContent); - String itemName = "儿童保健"; - String nextCheckTime = HelperUtils.getKeyword(start, end, "天"); + String itemName = "儿童保健"; + String nextCheckTime = HelperUtils.getKeyword(start, end, "天"); 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); + WxTempleteIdEnums.ER_TONG_TI_XING.getId(), service); messages.add(request); @@ -359,8 +329,7 @@ public class TempleteMsgGenerateWorker implements Runnable { HelperUtils.sendMsg(list); } //儿童月龄 - else if (specialDateType == SpecialDateEnums.ETYL.getId()) - { + else if (specialDateType == SpecialDateEnums.ETYL.getId()) { //发送短信集合 MsgListRequest list = new MsgListRequest(); @@ -369,47 +338,41 @@ public class TempleteMsgGenerateWorker implements Runnable { Integer start = template.getStart(); Integer end = template.getEnd(); - if (start != null && end != null) - { - Date startDate = DateUtils.getNewDate(new Date(),-end-1, "月", sendTimeType); - Date endDate = DateUtils.getNewDate(new Date(),-start,"月",sendTimeType); + if (start != null && end != null) { + Date startDate = DateUtils.getNewDate(new Date(), -end - 1, "月", sendTimeType); + Date endDate = DateUtils.getNewDate(new Date(), -start, "月", sendTimeType); startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D); - endDate = DateUtils.formatDate(endDate,DateUtils.Y_M_D); + endDate = DateUtils.formatDate(endDate, DateUtils.Y_M_D); babyModelQuery.setBirthStart(startDate); babyModelQuery.setBirthEnd(endDate); - List babyModels = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery); - if (CollectionUtils.isNotEmpty(babyModels)) - { - for (BabyModel model : babyModels) - { - if (model.getBirth() == null) - { + List babyModels = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery); + if (CollectionUtils.isNotEmpty(babyModels)) { + for (BabyModel model : babyModels) { + if (model.getBirth() == null) { continue; } - if (HelperUtils.isExistMsg(model.getId(),template.getId())) - { + if (HelperUtils.isExistMsg(model.getId(), template.getId())) { continue; } //如果有有效的预约短信就不发送 儿保检查提醒 - if (queryBabyOrder(model.getBirth(), start, tempHid, sendTimeType, model.getId(), "月")) - { + if (queryBabyOrder(model.getBirth(), start, tempHid, sendTimeType, model.getId(), "月")) { continue; } //短信前缀 - String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId()); - String messageContent = "【"+messagePrefix+"】"+template.getContent(); - messageContent = HelperUtils.replaceName(model.getName(), messageContent); - String itemName = "儿童保健"; - String nextCheckTime = HelperUtils.getKeyword(start, end, "月龄"); + String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(), ServiceObjEnums.BABYOBJ.getId()); + String messageContent = "【" + messagePrefix + "】" + template.getContent(); + messageContent = HelperUtils.replaceName(model.getName(), messageContent); + String itemName = "儿童保健"; + String nextCheckTime = HelperUtils.getKeyword(start, end, "月龄"); 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); + WxTempleteIdEnums.ER_TONG_TI_XING.getId(), service); messages.add(request); } @@ -423,25 +386,21 @@ public class TempleteMsgGenerateWorker implements Runnable { } } //疫苗接种提醒 - else if (smsType == SmsServiceEnums.EBYMTX.getId()) - { + else if (smsType == SmsServiceEnums.EBYMTX.getId()) { //发送频次 Integer sendFreq = template.getSendFrequency(); - if (sendFreq == SendFrequencyEnums.ONCE.getId()) - { + if (sendFreq == SendFrequencyEnums.ONCE.getId()) { //GL(0,"公历","0,1,2","0,1,2,3"),NL(1,"农历","0,1,2","0,1,2,3"),TSRQ(2,"特殊日期","0,2","1,2,3"),SLRQ(3,"生理日期","0","1,2,3"); Integer sendDateType = template.getSendDateType(); - if (sendDateType == SendDateEnums.SLRQ.getId()) - { + if (sendDateType == SendDateEnums.SLRQ.getId()) { //时间类型 Integer specialDateType = template.getSpecialDateType(); //儿童天数 - if (specialDateType == SpecialDateEnums.ETTS.getId()) - { + if (specialDateType == SpecialDateEnums.ETTS.getId()) { //发送短信集合 MsgListRequest list = new MsgListRequest(); @@ -450,36 +409,31 @@ public class TempleteMsgGenerateWorker implements Runnable { Integer start = template.getStart(); Integer end = template.getEnd(); - if (start != null && end != null) - { - Date startDate = DateUtils.getNewDate(new Date(),-end, "天", sendTimeType); - Date endDate = DateUtils.getNewDate(new Date(),-start,"天",sendTimeType); + if (start != null && end != null) { + Date startDate = DateUtils.getNewDate(new Date(), -end, "天", sendTimeType); + Date endDate = DateUtils.getNewDate(new Date(), -start, "天", sendTimeType); startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D); - endDate = DateUtils.formatDate(endDate,DateUtils.Y_M_D); + endDate = DateUtils.formatDate(endDate, DateUtils.Y_M_D); babyModelQuery.setBirthStart(startDate); babyModelQuery.setBirthEnd(endDate); - List babyModels = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery); - if (CollectionUtils.isNotEmpty(babyModels)) - { - for (BabyModel model : babyModels) - { - if (model.getBirth() == null) - { + List babyModels = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery); + if (CollectionUtils.isNotEmpty(babyModels)) { + for (BabyModel model : babyModels) { + if (model.getBirth() == null) { continue; } - if (HelperUtils.isExistMsg(model.getId(), template.getId())) - { + if (HelperUtils.isExistMsg(model.getId(), template.getId())) { continue; } //短信前缀 - String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId()); - String messageContent = "【"+messagePrefix+"】"+template.getContent(); - messageContent = HelperUtils.replaceName(model.getName(), messageContent); + String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(), ServiceObjEnums.BABYOBJ.getId()); + String messageContent = "【" + messagePrefix + "】" + template.getContent(); + messageContent = HelperUtils.replaceName(model.getName(), messageContent); //接种时间 - String vaccineTime = start+"天"; + String vaccineTime = start + "天"; //疫苗名称 String vaccineName = HelperUtils.getVaccineName(template.getContent()); //疫苗接种人 @@ -488,7 +442,7 @@ public class TempleteMsgGenerateWorker implements Runnable { MsgRequest request = HelperUtils.getMessageRequest(messageContent, model.getMphone(), ServiceObjEnums.BABYOBJ.getId(), template.getSmsType(), model.getHospitalId(), template.getId(), model.getId(), vaccineName, vaccinePerson, vaccineTime, - WxTempleteIdEnums.ER_TONG_YI_MIAO_TIXING.getId(),service); + WxTempleteIdEnums.ER_TONG_YI_MIAO_TIXING.getId(), service); messages.add(request); @@ -500,8 +454,7 @@ public class TempleteMsgGenerateWorker implements Runnable { HelperUtils.sendMsg(list); } //儿童月龄 - else if (specialDateType == SpecialDateEnums.ETYL.getId()) - { + else if (specialDateType == SpecialDateEnums.ETYL.getId()) { //发送短信集合 MsgListRequest list = new MsgListRequest(); @@ -510,48 +463,43 @@ public class TempleteMsgGenerateWorker implements Runnable { Integer start = template.getStart(); Integer end = template.getEnd(); - if (start != null && end != null) - { - Date startDate = DateUtils.getNewDate(new Date(),-end-1, "月", sendTimeType); - Date endDate = DateUtils.getNewDate(new Date(),-start,"月",sendTimeType+1); + if (start != null && end != null) { + Date startDate = DateUtils.getNewDate(new Date(), -end - 1, "月", sendTimeType); + Date endDate = DateUtils.getNewDate(new Date(), -start, "月", sendTimeType + 1); startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D); - endDate = DateUtils.formatDate(endDate,DateUtils.Y_M_D); + endDate = DateUtils.formatDate(endDate, DateUtils.Y_M_D); babyModelQuery.setBirthStart(startDate); babyModelQuery.setBirthEnd(endDate); System.out.println(DateUtils.getDateStr(startDate, DateUtils.Y_M_D)); - System.out.println(DateUtils.getDateStr(endDate,DateUtils.Y_M_D)); - List babyModels = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery); - if (CollectionUtils.isNotEmpty(babyModels)) - { - for (BabyModel model : babyModels) - { - if (model.getBirth() == null) - { + System.out.println(DateUtils.getDateStr(endDate, DateUtils.Y_M_D)); + List babyModels = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery); + if (CollectionUtils.isNotEmpty(babyModels)) { + for (BabyModel model : babyModels) { + if (model.getBirth() == null) { continue; } - if (HelperUtils.isExistMsg(model.getId(),template.getId())) - { + if (HelperUtils.isExistMsg(model.getId(), template.getId())) { continue; } //短信前缀 - String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId()); - String messageContent = "【"+messagePrefix+"】"+template.getContent(); - messageContent = HelperUtils.replaceName(model.getName(), messageContent); + String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(), ServiceObjEnums.BABYOBJ.getId()); + String messageContent = "【" + messagePrefix + "】" + template.getContent(); + messageContent = HelperUtils.replaceName(model.getName(), messageContent); //疫苗名称 String vaccineName = HelperUtils.getVaccineName(template.getContent()); //疫苗接种人 String vaccinePerson = model.getName(); //接种时间 - String vaccineTime = start+ "月龄"; + String vaccineTime = start + "月龄"; MsgRequest request = HelperUtils.getMessageRequest(messageContent, model.getMphone(), ServiceObjEnums.BABYOBJ.getId(), template.getSmsType(), model.getHospitalId(), template.getId(), model.getId(), vaccineName, vaccinePerson, vaccineTime, - WxTempleteIdEnums.ER_TONG_YI_MIAO_TIXING.getId(),service); + WxTempleteIdEnums.ER_TONG_YI_MIAO_TIXING.getId(), service); messages.add(request); } @@ -565,21 +513,18 @@ public class TempleteMsgGenerateWorker implements Runnable { } } //儿童眼保键预约提醒 - else if (smsType == SmsServiceEnums.YBYYTX.getId()) - { + 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); + orderDate = DateUtils.formatDate(orderDate, DateUtils.Y_M_D); - List checkModels = mongoTemplate.find(Query.query(Criteria.where("nextCheckTime").gte(orderDate).lt(DateUtils.addDay(orderDate, 1)) + List checkModels = mongoTemplate.find(Query.query(Criteria.where("nextCheckTime").gte(orderDate).lt(DateUtils.addDay(orderDate, 1)) .and("yn").is("1").and("hospitalId").is(tempHid)), BabyEyeCheck.class); - if (CollectionUtils.isNotEmpty(checkModels)) - { - for(BabyEyeCheck eyecheck : checkModels) - { + if (CollectionUtils.isNotEmpty(checkModels)) { + for (BabyEyeCheck eyecheck : checkModels) { BabyModelQuery query = new BabyModelQuery(); query.setYn(YnEnums.YES.getId()); @@ -587,22 +532,20 @@ public class TempleteMsgGenerateWorker implements Runnable { //查询符合条件儿童 List babyModels = babyBookbuildingService.queryBabyBuildByCond(query); - if (CollectionUtils.isNotEmpty(babyModels)) - { - for (BabyModel model : babyModels) - { + 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 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); + 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); + WxTempleteIdEnums.ER_TONG_TI_XING.getId(), service); messages.add(request); } @@ -614,14 +557,13 @@ public class TempleteMsgGenerateWorker implements Runnable { HelperUtils.sendMsg(list); } //儿童听力筛查预约提醒 - else if (smsType == SmsServiceEnums.TSYYTX.getId()) - { + 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); + orderDate = DateUtils.formatDate(orderDate, DateUtils.Y_M_D); BabyPatientExtendEarScreenQuery screenQuery = new BabyPatientExtendEarScreenQuery(); @@ -631,10 +573,8 @@ public class TempleteMsgGenerateWorker implements Runnable { screenQuery.setStatus(0); List babyPatientExtendEarScreens = babyPatientExtendEarScreenService.queryEarScreenList(screenQuery); - if (CollectionUtils.isNotEmpty(babyPatientExtendEarScreens)) - { - for(BabyPatientExtendEarScreen ear : babyPatientExtendEarScreens) - { + if (CollectionUtils.isNotEmpty(babyPatientExtendEarScreens)) { + for (BabyPatientExtendEarScreen ear : babyPatientExtendEarScreens) { BabyModelQuery query = new BabyModelQuery(); query.setYn(YnEnums.YES.getId()); @@ -642,22 +582,20 @@ public class TempleteMsgGenerateWorker implements Runnable { //查询符合条件儿童 List babyModels = babyBookbuildingService.queryBabyBuildByCond(query); - if (CollectionUtils.isNotEmpty(babyModels)) - { - for (BabyModel model : babyModels) - { + 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 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); + 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); + WxTempleteIdEnums.ER_TONG_TI_XING.getId(), service); messages.add(request); } @@ -669,14 +607,13 @@ public class TempleteMsgGenerateWorker implements Runnable { HelperUtils.sendMsg(list); } //儿童听力诊断预约提醒 - else if (smsType == SmsServiceEnums.TYZDYYTX.getId()) - { + 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); + orderDate = DateUtils.formatDate(orderDate, DateUtils.Y_M_D); BabyPatientExtendEarHearingDiagnoseQuery diagnoseQuery = new BabyPatientExtendEarHearingDiagnoseQuery(); // diagnoseQuery.setIfdel(0); @@ -686,10 +623,8 @@ public class TempleteMsgGenerateWorker implements Runnable { //已经诊断的数据 List hearingDiagnoseList = hearingDiagnoseService.getHdAndScreen(diagnoseQuery); - if (CollectionUtils.isNotEmpty(hearingDiagnoseList)) - { - for(BabyPatientExtendEarHearingDiagnose diagnose : hearingDiagnoseList) - { + if (CollectionUtils.isNotEmpty(hearingDiagnoseList)) { + for (BabyPatientExtendEarHearingDiagnose diagnose : hearingDiagnoseList) { BabyModelQuery query = new BabyModelQuery(); query.setYn(YnEnums.YES.getId()); @@ -697,22 +632,20 @@ public class TempleteMsgGenerateWorker implements Runnable { //查询符合条件儿童 List babyModels = babyBookbuildingService.queryBabyBuildByCond(query); - if (CollectionUtils.isNotEmpty(babyModels)) - { - for (BabyModel model : babyModels) - { + 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 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); + 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); + WxTempleteIdEnums.ER_TONG_TI_XING.getId(), service); messages.add(request); } @@ -724,28 +657,25 @@ public class TempleteMsgGenerateWorker implements Runnable { HelperUtils.sendMsg(list); } //儿童听力随访预约提醒 - else if (smsType == SmsServiceEnums.TLZDYYTX.getId()) - { + 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); + 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.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) - { + if (CollectionUtils.isNotEmpty(BabyPatientExtendEarFollowUpList)) { + for (BabyPatientExtendEarFollowUp follow : BabyPatientExtendEarFollowUpList) { BabyModelQuery query = new BabyModelQuery(); query.setYn(YnEnums.YES.getId()); @@ -753,22 +683,20 @@ public class TempleteMsgGenerateWorker implements Runnable { //查询符合条件儿童 List babyModels = babyBookbuildingService.queryBabyBuildByCond(query); - if (CollectionUtils.isNotEmpty(babyModels)) - { - for (BabyModel model : babyModels) - { + 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 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); + 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); + WxTempleteIdEnums.ER_TONG_TI_XING.getId(), service); messages.add(request); } @@ -784,6 +712,7 @@ public class TempleteMsgGenerateWorker implements Runnable { /** * 查询儿童有效的下次预约时间 + * * @param birth * @param start * @param tempHid @@ -792,19 +721,16 @@ public class TempleteMsgGenerateWorker implements Runnable { * @param type * @return */ - private boolean queryBabyOrder(Date birth, Integer start, String tempHid, Integer sendTimeType, String pid,String type) { + private boolean queryBabyOrder(Date birth, Integer start, String tempHid, Integer sendTimeType, String pid, String type) { Set idset = new HashSet<>(); Date startDate = DateUtils.getNewDate(birth, start, type, -sendTimeType); - if (startDate != null) - { + if (startDate != null) { //把时间格式化成 yyyy_MM_dd 的日期 - startDate = DateUtils.formatDate(startDate,DateUtils.Y_M_D); + startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D); } List models = babyBookbuildingService.queryBabyOrder(startDate, tempHid, pid); - if (CollectionUtils.isNotEmpty(models)) - { - for (BabyCheckModel model : models) - { + if (CollectionUtils.isNotEmpty(models)) { + for (BabyCheckModel model : models) { idset.add(model.getId()); } } @@ -813,10 +739,10 @@ public class TempleteMsgGenerateWorker implements Runnable { /** * 生成孕妇推送模板消息 + * * @param template 模板信息 */ - private void generateYunTempMsg(SmsTemplateModel template,SmsConfigModel config,Integer service) - { + private void generateYunTempMsg(SmsTemplateModel template, SmsConfigModel config, Integer service) { //模板属于的医院id String tempHid = template.getHospitalId(); @@ -827,11 +753,11 @@ public class TempleteMsgGenerateWorker implements Runnable { Integer serviceStatus = template.getServiceStatus(); //消息类型 Integer smsType = template.getSmsType(); - - //发送时间 SendTimeEnums DT(0,"当天"),QYT(1,"前一天"),QLT(2,"前两天"),QST(3,"前三天"); + //发送时间 SendTimeEnums DT(0,"当天"),QYT(1,"前一天"),QLT(2,"前两天"),QST(3,"前三天"), + // HYT(-1,"后一天"),HLT(-2,"后二天"),HST(-3,"后三天")/; Integer sendTimeType = template.getSendTimeType(); - logger.info("generateYunTempMsg info : serviceType = "+serviceType +";templateId="+template.getId()+";smsType="+smsType); + logger.info("generateYunTempMsg info : serviceType = " + serviceType + ";templateId=" + template.getId() + ";smsType=" + smsType); PatientsQuery patientsQuery = new PatientsQuery(); patientsQuery.setYn(YnEnums.YES.getId()); @@ -849,38 +775,34 @@ public class TempleteMsgGenerateWorker implements Runnable { HelperUtils.getServicePatientQuery(serviceType, serviceStatus, patientsQuery); - //孕妇预约短信 - if (smsType == SmsServiceEnums.CJYYTX.getId()) - { - //发送短信集合 - MsgListRequest list = new MsgListRequest(); - List messages = new ArrayList<>(); + //发送短信集合 + MsgListRequest list = new MsgListRequest(); + List messages = new ArrayList<>(); - Date yuYueDate = DateUtils.addDay(new Date(),sendTimeType); + //孕妇预约短信 + if (smsType == SmsServiceEnums.CJYYTX.getId()) { + Date yuYueDate = DateUtils.addDay(new Date(), sendTimeType); //得到孕妇的id - Set idset = baseService.getYuYuePatient(sendTimeType, tempHid); + Set idset = baseService.getYuYuePatient(sendTimeType, tempHid); - for (String id : idset) - { + for (String id : idset) { //查询符合条件的孕妇 patientsQuery.setId(id); - List patients = yunBookbuildingService.queryPregnantWithQuery(patientsQuery); - if (CollectionUtils.isNotEmpty(patients)) - { - for (Patients pat : patients) - { + List patients = yunBookbuildingService.queryPregnantWithQuery(patientsQuery); + if (CollectionUtils.isNotEmpty(patients)) { + for (Patients pat : patients) { //短信前缀 - String messagePrefix = baseService.getSmsPrefix(config, pat.getBookbuildingDoctor(),ServiceObjEnums.YUNOBJ.getId()); - String messageContent = "【"+messagePrefix+"】"+template.getContent(); - messageContent = HelperUtils.replaceEL(pat.getUsername(), yuYueDate, messageContent); + String messagePrefix = baseService.getSmsPrefix(config, pat.getBookbuildingDoctor(), ServiceObjEnums.YUNOBJ.getId()); + String messageContent = "【" + messagePrefix + "】" + template.getContent(); + messageContent = HelperUtils.replaceEL(pat.getUsername(), yuYueDate, messageContent); - String checkTimeStr = DateUtils.getDateStr(yuYueDate,DateUtils.Y_M_D); + String checkTimeStr = DateUtils.getDateStr(yuYueDate, DateUtils.Y_M_D); String checkName = "产前检查"; MsgRequest request = HelperUtils.getMessageRequest(messageContent, pat.getPhone(), ServiceObjEnums.YUNOBJ.getId(), template.getSmsType(), pat.getHospitalId(), template.getId(), pat.getId(), checkName, checkTimeStr, "", - WxTempleteIdEnums.CHAN_JIAN_TI_XING.getId(),service); + WxTempleteIdEnums.CHAN_JIAN_TI_XING.getId(), service); messages.add(request); } @@ -891,68 +813,55 @@ public class TempleteMsgGenerateWorker implements Runnable { HelperUtils.sendMsg(list); } //产检程序提醒 - else if (smsType == SmsServiceEnums.CJCXTX.getId()) - { - //发送短信集合 - MsgListRequest list = new MsgListRequest(); - List messages = new ArrayList<>(); - + else if (smsType == SmsServiceEnums.CJCXTX.getId()) { //发送频次 Integer sendFreq = template.getSendFrequency(); - if (sendFreq == SendFrequencyEnums.ONCE.getId()) - { + if (sendFreq == SendFrequencyEnums.ONCE.getId()) { //GL(0,"公历","0,1,2","0,1,2,3"),NL(1,"农历","0,1,2","0,1,2,3"),TSRQ(2,"特殊日期","0,2","1,2,3"),SLRQ(3,"生理日期","0","1,2,3"); Integer sendDateType = template.getSendDateType(); - if (sendDateType == SendDateEnums.SLRQ.getId()) - { + if (sendDateType == SendDateEnums.SLRQ.getId()) { //孕妇为孕周 Integer specialDateType = template.getSpecialDateType(); - if (specialDateType == SpecialDateEnums.YZ.getId()) - { + if (specialDateType == SpecialDateEnums.YZ.getId()) { Integer start = template.getStart(); Integer end = template.getEnd(); - if (start != null && end != null) - { - Date startDate = DateUtils.getNewDate(new Date(),-end-1,"周",sendTimeType+1); - Date endDate = DateUtils.getNewDate(new Date(),-start,"周",sendTimeType); - startDate = DateUtils.formatDate(startDate,DateUtils.Y_M_D); - endDate = DateUtils.formatDate(endDate,DateUtils.Y_M_D); + if (start != null && end != null) { + Date startDate = DateUtils.getNewDate(new Date(), -end - 1, "周", sendTimeType + 1); + Date endDate = DateUtils.getNewDate(new Date(), -start, "周", sendTimeType); + startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D); + endDate = DateUtils.formatDate(endDate, DateUtils.Y_M_D); patientsQuery.setLastMensesStart(startDate); patientsQuery.setLastMensesEnd(endDate); //查询符合条件的孕妇 - List patients = yunBookbuildingService.queryPregnantWithQuery(patientsQuery); - if (CollectionUtils.isNotEmpty(patients)) - { - for (Patients pat : patients) - { - if (HelperUtils.isExistMsg(pat.getId(),template.getId())) - { + List patients = yunBookbuildingService.queryPregnantWithQuery(patientsQuery); + if (CollectionUtils.isNotEmpty(patients)) { + for (Patients pat : patients) { + if (HelperUtils.isExistMsg(pat.getId(), template.getId())) { continue; } //如果有有效的预约短信就不发送产检程序提醒 boolean isOrder = baseService.queryYunIsOrder(sendTimeType, tempHid, pat.getId(), pat.getLastMenses(), start); - if (isOrder) - { + if (isOrder) { continue; } //短信前缀 - String messagePrefix = baseService.getSmsPrefix(config, pat.getBookbuildingDoctor(), ServiceObjEnums.YUNOBJ.getId()); - String messageContent = "【"+messagePrefix+"】"+template.getContent(); + String messagePrefix = baseService.getSmsPrefix(config, pat.getBookbuildingDoctor(), ServiceObjEnums.YUNOBJ.getId()); + String messageContent = "【" + messagePrefix + "】" + template.getContent(); - String checkWeekName = HelperUtils.getCheckTimeStr(start,end); + String checkWeekName = HelperUtils.getCheckTimeStr(start, end); String checkName = "产前检查"; - messageContent = HelperUtils.replaceName(pat.getUsername(), messageContent); + messageContent = HelperUtils.replaceName(pat.getUsername(), messageContent); - MsgRequest request = HelperUtils.getMessageRequest( messageContent,pat.getPhone(), + MsgRequest request = HelperUtils.getMessageRequest(messageContent, pat.getPhone(), ServiceObjEnums.YUNOBJ.getId(), template.getSmsType(), - pat.getHospitalId(),template.getId(),pat.getId(),checkName,checkWeekName,"", - WxTempleteIdEnums.CHAN_JIAN_TI_XING.getId(),service); + pat.getHospitalId(), template.getId(), pat.getId(), checkName, checkWeekName, "", + WxTempleteIdEnums.CHAN_JIAN_TI_XING.getId(), service); messages.add(request); } } @@ -962,195 +871,214 @@ public class TempleteMsgGenerateWorker implements Runnable { } list.setMessages(messages); HelperUtils.sendMsg(list); + } else if (smsType == SmsServiceEnums.CJGQTX.getId()) {//产检过期提醒 + //去产检冗余表,根据产检时间进行降序排列,取第一条的下次产检时间 + //查询产检冗余表的产检时间为昨天或前天,再根据patientId集合,查询产检冗余表,然后如果产检时间在规定范围内存在,则已经产检, + //如果范围内没有记录则发送推送或者短信 +//发送短信集合 + //该提醒的预约产检时间 + Date yuYueDate = DateUtils.addDay(new Date(), sendTimeType); + PatientsQuery patientQuery = new PatientsQuery(); + patientQuery.setNextCheckTimeStart(yuYueDate); + //查指定预约下次产检时间 + List patients = yunBookbuildingService.queryPregnantWithQuery(patientQuery); + + if (CollectionUtils.isNotEmpty(patients)) { + for (Patients pat : patients) { + //短信前缀 + String messagePrefix = baseService.getSmsPrefix(config, pat.getBookbuildingDoctor(), ServiceObjEnums.YUNOBJ.getId()); + String messageContent = "【" + messagePrefix + "】" + template.getContent(); + messageContent = HelperUtils.replaceEL(pat.getUsername(), yuYueDate, messageContent); + + String checkTimeStr = DateUtils.getDateStr(yuYueDate, DateUtils.Y_M_D); + String checkName = "产检日期过期提醒"; + + MsgRequest request = HelperUtils.getMessageRequest(messageContent, pat.getPhone(), + ServiceObjEnums.YUNOBJ.getId(), template.getSmsType(), + pat.getHospitalId(), template.getId(), pat.getId(), checkName, checkTimeStr, "", + WxTempleteIdEnums.CHAN_JIAN_TI_XING.getId(), service); + + messages.add(request); + } + list.setMessages(messages); + HelperUtils.sendMsg(list); + } } } - /** - * 产妇模板消息生成 - * @param template - * @param config - */ - private void generateChanTempMsg(SmsTemplateModel template, SmsConfigModel config,Integer service) { - - //模板属于的医院id - String tempHid = template.getHospitalId(); - - //服务类型 - Integer serviceType = template.getServiceType(); - //服务状态 - Integer serviceStatus = template.getServiceStatus(); - //消息类型 - Integer smsType = template.getSmsType(); - - //发送时间 SendTimeEnums DT(0,"当天"),QYT(1,"前一天"),QLT(2,"前两天"),QST(3,"前三天"); - Integer sendTimeType = template.getSendTimeType(); - - logger.info("generateYunTempMsg info : serviceType = "+serviceType +";templateId="+template.getId()+";smsType="+smsType); - - PatientsQuery patientsQuery = new PatientsQuery(); - patientsQuery.setYn(YnEnums.YES.getId()); - patientsQuery.setHospitalId(tempHid); - - List buildType = new ArrayList(); - buildType.add(0); - buildType.add(2); - patientsQuery.setSmsBuildTypeList(buildType); - //1孕妇 3产妇 - patientsQuery.setType(3); - //0未终止妊娠的产妇 - patientsQuery.setDueStatus(0); - - HelperUtils.getServicePatientQuery(serviceType, serviceStatus, patientsQuery); - - //产妇预约短信 - if (smsType == SmsServiceEnums.CHFCYUTX.getId()) - { - //发送短信集合 - MsgListRequest list = new MsgListRequest(); - List messages = new ArrayList<>(); - - //把时间格式成yyyy_MM_dd - Date actualSendDate = DateUtils.formatDate(DateUtils.addDay(new Date(), sendTimeType), DateUtils.Y_M_D); - - //查询出产妇预约 - List orderModels = postReviewService.queryPostOrder(actualSendDate, tempHid); - - if(CollectionUtils.isNotEmpty(orderModels)) - { - for(PostReviewModel orderModel : orderModels) - { - PatientsQuery query = new PatientsQuery(); - query.setYn(YnEnums.YES.getId()); - query.setId(orderModel.getId()); //id就是parentId - - //查询符合条件的产妇 - List patients = yunBookbuildingService.queryPregnantWithQuery(query); - if (CollectionUtils.isNotEmpty(patients)) - { - for (Patients pat : patients) - { - //短信前缀 - String messagePrefix = baseService.getSmsPrefix(config, pat.getBookbuildingDoctor(),ServiceObjEnums.CHANOBJ.getId()); - String messageContent = "【"+messagePrefix+"】"+template.getContent(); - String title = "产后复查"; - messageContent = HelperUtils.replaceEL(pat.getUsername(), actualSendDate, messageContent); - MsgRequest request = HelperUtils.getMessageRequest(messageContent, pat.getPhone(), - ServiceObjEnums.CHANOBJ.getId(), template.getSmsType(), - pat.getHospitalId(), template.getId(), pat.getId(), title, DateUtils.getDateStr(actualSendDate,DateUtils.Y_M_D), "", - WxTempleteIdEnums.CHAN_HOU_FU_CHA.getId(),service); + /** + * 产妇模板消息生成 + * + * @param template + * @param config + */ + private void generateChanTempMsg (SmsTemplateModel template, SmsConfigModel config, Integer service){ + + //模板属于的医院id + String tempHid = template.getHospitalId(); + + //服务类型 + Integer serviceType = template.getServiceType(); + //服务状态 + Integer serviceStatus = template.getServiceStatus(); + //消息类型 + Integer smsType = template.getSmsType(); + + //发送时间 SendTimeEnums DT(0,"当天"),QYT(1,"前一天"),QLT(2,"前两天"),QST(3,"前三天"); + Integer sendTimeType = template.getSendTimeType(); + + logger.info("generateYunTempMsg info : serviceType = " + serviceType + ";templateId=" + template.getId() + ";smsType=" + smsType); + + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setYn(YnEnums.YES.getId()); + patientsQuery.setHospitalId(tempHid); + + List buildType = new ArrayList(); + buildType.add(0); + buildType.add(2); + patientsQuery.setSmsBuildTypeList(buildType); + //1孕妇 3产妇 + patientsQuery.setType(3); + //0未终止妊娠的产妇 + patientsQuery.setDueStatus(0); + + HelperUtils.getServicePatientQuery(serviceType, serviceStatus, patientsQuery); + + //产妇预约短信 + if (smsType == SmsServiceEnums.CHFCYUTX.getId()) { + //发送短信集合 + MsgListRequest list = new MsgListRequest(); + List messages = new ArrayList<>(); + + //把时间格式成yyyy_MM_dd + Date actualSendDate = DateUtils.formatDate(DateUtils.addDay(new Date(), sendTimeType), DateUtils.Y_M_D); + + //查询出产妇预约 + List orderModels = postReviewService.queryPostOrder(actualSendDate, tempHid); + + if (CollectionUtils.isNotEmpty(orderModels)) { + for (PostReviewModel orderModel : orderModels) { + PatientsQuery query = new PatientsQuery(); + query.setYn(YnEnums.YES.getId()); + query.setId(orderModel.getId()); //id就是parentId + + //查询符合条件的产妇 + List patients = yunBookbuildingService.queryPregnantWithQuery(query); + if (CollectionUtils.isNotEmpty(patients)) { + for (Patients pat : patients) { + //短信前缀 + String messagePrefix = baseService.getSmsPrefix(config, pat.getBookbuildingDoctor(), ServiceObjEnums.CHANOBJ.getId()); + String messageContent = "【" + messagePrefix + "】" + template.getContent(); + String title = "产后复查"; + messageContent = HelperUtils.replaceEL(pat.getUsername(), actualSendDate, messageContent); + MsgRequest request = HelperUtils.getMessageRequest(messageContent, pat.getPhone(), + ServiceObjEnums.CHANOBJ.getId(), template.getSmsType(), + pat.getHospitalId(), template.getId(), pat.getId(), title, DateUtils.getDateStr(actualSendDate, DateUtils.Y_M_D), "", + WxTempleteIdEnums.CHAN_HOU_FU_CHA.getId(), service); - messages.add(request); + messages.add(request); + } } } } - } - - list.setMessages(messages); - HelperUtils.sendMsg(list); - } - //产后复查程序提醒 - else if (smsType == SmsServiceEnums.CHFCCXTX.getId()) - { - - //发送短信集合 - MsgListRequest list = new MsgListRequest(); - List messages = new ArrayList<>(); - //发送频次 - Integer sendFreq = template.getSendFrequency(); - - if (sendFreq == SendFrequencyEnums.ONCE.getId()) { - - //GL(0,"公历","0,1,2","0,1,2,3"),NL(1,"农历","0,1,2","0,1,2,3"),TSRQ(2,"特殊日期","0,2","1,2,3"),SLRQ(3,"生理日期","0","1,2,3"); - Integer sendDateType = template.getSendDateType(); - if (sendDateType == SendDateEnums.SLRQ.getId()) { - // - Integer specialDateType = template.getSpecialDateType(); + list.setMessages(messages); + HelperUtils.sendMsg(list); + } + //产后复查程序提醒 + else if (smsType == SmsServiceEnums.CHFCCXTX.getId()) { + + //发送短信集合 + MsgListRequest list = new MsgListRequest(); + List messages = new ArrayList<>(); + + //发送频次 + Integer sendFreq = template.getSendFrequency(); + + if (sendFreq == SendFrequencyEnums.ONCE.getId()) { + + //GL(0,"公历","0,1,2","0,1,2,3"),NL(1,"农历","0,1,2","0,1,2,3"),TSRQ(2,"特殊日期","0,2","1,2,3"),SLRQ(3,"生理日期","0","1,2,3"); + Integer sendDateType = template.getSendDateType(); + if (sendDateType == SendDateEnums.SLRQ.getId()) { + // + Integer specialDateType = template.getSpecialDateType(); + + //产后天数 + if (specialDateType == SpecialDateEnums.CHTS.getId()) { + Integer start = template.getStart(); + Integer end = template.getEnd(); + + if (start != null && end != null) { + Date startDate = DateUtils.getNewDate(new Date(), -end, "天", sendTimeType); + Date endDate = DateUtils.getNewDate(new Date(), -start, "天", sendTimeType); + startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D); + endDate = DateUtils.formatDate(endDate, DateUtils.Y_M_D); + patientsQuery.setFmDateStart(startDate); + patientsQuery.setFmDateEnd(endDate); + List patientses = yunBookbuildingService.queryPregnantWithQuery(patientsQuery); + for (Patients pat : patientses) { + if (pat.getDueDate() == null) { + continue; + } - //产后天数 - if (specialDateType == SpecialDateEnums.CHTS.getId()) { - Integer start = template.getStart(); - Integer end = template.getEnd(); + if (HelperUtils.isExistMsg(pat.getId(), template.getId())) { + continue; + } - if (start != null && end != null) { - Date startDate = DateUtils.getNewDate(new Date(),-end, "天", sendTimeType); - Date endDate = DateUtils.getNewDate(new Date(),-start, "天", sendTimeType); - startDate = DateUtils.formatDate(startDate,DateUtils.Y_M_D); - endDate = DateUtils.formatDate(endDate,DateUtils.Y_M_D); - patientsQuery.setFmDateStart(startDate); - patientsQuery.setFmDateEnd(endDate); - List patientses = yunBookbuildingService.queryPregnantWithQuery(patientsQuery); - for(Patients pat : patientses) - { - if (pat.getDueDate() == null) - { - continue; - } + if (queryPostOrder(pat.getDueDate(), start, tempHid, sendTimeType, pat.getId())) { + continue; + } + //短信前缀 + String messagePrefix = baseService.getSmsPrefix(config, pat.getBookbuildingDoctor(), ServiceObjEnums.CHANOBJ.getId()); + String messageContent = "【" + messagePrefix + "】" + template.getContent(); + messageContent = HelperUtils.replaceName(pat.getUsername(), messageContent); - if (HelperUtils.isExistMsg(pat.getId(),template.getId())) - { - continue; - } + String days = "产后" + HelperUtils.getKeyword(start, end, "天"); - if (queryPostOrder(pat.getDueDate(),start,tempHid,sendTimeType,pat.getId())) - { - continue; + String title = "产后复查"; + MsgRequest request = HelperUtils.getMessageRequest(messageContent, pat.getPhone(), + ServiceObjEnums.CHANOBJ.getId(), template.getSmsType(), + pat.getHospitalId(), template.getId(), pat.getId(), title, days, "", + WxTempleteIdEnums.CHAN_HOU_FU_CHA.getId(), service); + messages.add(request); } - //短信前缀 - String messagePrefix = baseService.getSmsPrefix(config, pat.getBookbuildingDoctor(),ServiceObjEnums.CHANOBJ.getId()); - String messageContent = "【"+messagePrefix+"】"+template.getContent(); - messageContent = HelperUtils.replaceName(pat.getUsername(), messageContent); - - String days = "产后"+HelperUtils.getKeyword(start,end,"天"); - - String title = "产后复查"; - MsgRequest request = HelperUtils.getMessageRequest(messageContent, pat.getPhone(), - ServiceObjEnums.CHANOBJ.getId(), template.getSmsType(), - pat.getHospitalId(), template.getId(), pat.getId(), title, days, "", - WxTempleteIdEnums.CHAN_HOU_FU_CHA.getId(),service); - messages.add(request); } } - } - //产妇服务结束 - else if (specialDateType == SpecialDateEnums.FWJS.getId()) - { + //产妇服务结束 + else if (specialDateType == SpecialDateEnums.FWJS.getId()) { + } } } + + list.setMessages(messages); + HelperUtils.sendMsg(list); } - list.setMessages(messages); - HelperUtils.sendMsg(list); } - } - - /** - * 查询出产妇有效的下次预约时间 - * @param tempHid - * @return - */ - private boolean queryPostOrder(Date dueDate,Integer start,String tempHid,Integer sendTimeType,String pid) - { - Set idset = new HashSet<>(); - Date startDate = DateUtils.getNewDate(dueDate, start, "周", -sendTimeType); - if (startDate != null) - { - //把时间格式化成 yyyy_MM_dd 的日期 - startDate = DateUtils.formatDate(startDate,DateUtils.Y_M_D); - } - List models = postReviewService.queryPostOrder(startDate, tempHid, pid); - if (CollectionUtils.isNotEmpty(models)) - { - for (PostReviewModel model : models) - { - idset.add(model.getId()); //这里的id就是parentid + /** + * 查询出产妇有效的下次预约时间 + * + * @param tempHid + * @return + */ + private boolean queryPostOrder (Date dueDate, Integer start, String tempHid, Integer sendTimeType, String pid){ + Set idset = new HashSet<>(); + Date startDate = DateUtils.getNewDate(dueDate, start, "周", -sendTimeType); + if (startDate != null) { + //把时间格式化成 yyyy_MM_dd 的日期 + startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D); + } + List models = postReviewService.queryPostOrder(startDate, tempHid, pid); + if (CollectionUtils.isNotEmpty(models)) { + for (PostReviewModel model : models) { + idset.add(model.getId()); //这里的id就是parentid + } } - } - return idset.size() > 0; + return idset.size() > 0; + } } -} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java index 56ab4e9..5c6635e 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java @@ -1678,19 +1678,22 @@ public class BabyCheckFacade { Map map = new HashMap<>(); - List weightTitles = new LinkedList<>(); + List weightTitles = new LinkedList<>(); List weightValues = new LinkedList<>(); - List heightTitles = new LinkedList<>(); + List heightTitles = new LinkedList<>(); List heightValues = new LinkedList<>(); - List> tables = new LinkedList<>(); + List> tables = new LinkedList<>(); + + BabyModel babyModel = babyService.getOneBabyById(babyId); BabyCheckModelQuery query = new BabyCheckModelQuery(); query.setYn(YnEnums.YES.getId()); query.setBuildId(babyId); //查询儿童的检查记录 List checkModels = babyCheckService.queryBabyCheckRecord(query, "checkDate,created", Sort.Direction.ASC); + if (CollectionUtils.isNotEmpty(checkModels)) { for (BabyCheckModel checkModel : checkModels) @@ -1699,15 +1702,21 @@ public class BabyCheckFacade { { if (org.apache.commons.lang.StringUtils.isNotEmpty(checkModel.getHeight()) || org.apache.commons.lang.StringUtils.isNotEmpty(checkModel.getWeight())) { - Map heightMap = new HashMap<>(); + int month = DateUtil.getBabyAgeMonth(babyModel.getBirth(),checkModel.getCheckDate()); + Map heightMap = new HashMap<>(); + heightMap.put("time",month); if (org.apache.commons.lang.StringUtils.isNotEmpty(checkModel.getHeight())) { if (org.apache.commons.lang.StringUtils.isNumeric(checkModel.getHeight()) || Pattern.compile("^[-\\+]?[.\\d]*$").matcher(checkModel.getHeight()).matches()) { - heightTitles.add(DateUtil.getyyyy_MM_dd(checkModel.getCheckDate())); - heightValues.add(checkModel.getHeight()); + if(heightTitles.contains(month)){ + int index = heightTitles.indexOf(month); + heightValues.set(index,checkModel.getHeight()); + }else { + heightTitles.add(month); + heightValues.add(checkModel.getHeight()); + } } - heightMap.put("time",DateUtil.getyyyy_MM_dd(checkModel.getCheckDate())); heightMap.put("height", checkModel.getHeight()); } else @@ -1719,17 +1728,21 @@ public class BabyCheckFacade { { if (org.apache.commons.lang.StringUtils.isNumeric(checkModel.getWeight()) || Pattern.compile("^[-\\+]?[.\\d]*$").matcher(checkModel.getWeight()).matches()) { - weightTitles.add(DateUtil.getyyyy_MM_dd(checkModel.getCheckDate())); - weightValues.add(checkModel.getWeight()); + + if(weightTitles.contains(month)){//如果存在月的数据则更新对应索引的值 + int index = weightTitles.indexOf(month); + weightValues.set(index,checkModel.getWeight()); + }else { + weightTitles.add(month); + weightValues.add(checkModel.getWeight()); + } } - heightMap.put("time", DateUtil.getyyyy_MM_dd(checkModel.getCheckDate())); heightMap.put("weight",checkModel.getWeight()); } else { heightMap.put("weight", "--"); } - tables.add(heightMap); } } @@ -1742,7 +1755,9 @@ public class BabyCheckFacade { map.put("heightValues",heightValues); map.put("tables",tables); - + if(babyModel!=null){ + map.put("sex",babyModel.getSex()); + } return new BaseObjectResponse().setData(map).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); } } \ No newline at end of file -- 1.8.3.1