diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java index 453525c..36e81db 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java @@ -1706,6 +1706,9 @@ public class DateUtil { int i = DateUtil.getAge2(bir, bir1); System.out.println(i); + + System.out.println( DateUtil.getDayStartTime(new Date())); + System.out.println( DateUtil.getDayEndTime(new Date())); } } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/AntExQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/AntExQuery.java index 774ac7a..8150f14 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/AntExQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/AntExQuery.java @@ -53,6 +53,25 @@ public class AntExQuery extends BaseQuery implements IConvertToNativeQuery { private Date checkEndDate; + private Date nextCheckTimeStartDate; + private Date nextCheckTimeEndDate; + + public Date getNextCheckTimeStartDate() { + return nextCheckTimeStartDate; + } + + public void setNextCheckTimeStartDate(Date nextCheckTimeStartDate) { + this.nextCheckTimeStartDate = nextCheckTimeStartDate; + } + + public Date getNextCheckTimeEndDate() { + return nextCheckTimeEndDate; + } + + public void setNextCheckTimeEndDate(Date nextCheckTimeEndDate) { + this.nextCheckTimeEndDate = nextCheckTimeEndDate; + } + public Date getCheckStartDate() { return checkStartDate; } @@ -269,6 +288,15 @@ public class AntExQuery extends BaseQuery implements IConvertToNativeQuery { } + if (null != nextCheckTimeEndDate && nextCheckTimeStartDate != null) { + if (null != c) { + c = c.where("nextCheckTime").gte(nextCheckTimeStartDate).lte(nextCheckTimeEndDate); + } else { + c = Criteria.where("nextCheckTime").gte(nextCheckTimeStartDate).lte(nextCheckTimeEndDate); + } + isAddStart = Boolean.TRUE; + } + if (null != createdTimeStart && createdTimeEnd != null) { if (null != c) { c = c.where("created").gte(createdTimeStart).lte(createdTimeEnd); diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/controller/MsgGenerateController.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/controller/MsgGenerateController.java index 29f62b7..5f397f4 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/controller/MsgGenerateController.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/controller/MsgGenerateController.java @@ -142,9 +142,9 @@ public class MsgGenerateController extends BaseController { @ResponseBody public String generaterAllMsg() { - msgGenerateService.generaterAllAmsMsg(); +// msgGenerateService.generaterAllAmsMsg(); msgGenerateService.generaterAllTmpMsg(); - msgGenerateService.generaterAllCourseMsg(); +// msgGenerateService.generaterAllCourseMsg(); return ""; } 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 1acdbc9..85067a1 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 @@ -21,6 +21,7 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.stereotype.Service; @@ -95,7 +96,11 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { @Autowired private MatDeliverService matDeliverService; - + @Autowired + private AntenatalExaminationService antenatalExaminationService; + @Autowired + @Qualifier("cfCheckItemService") + private CheckItemService checkItemService; /** * 生成孕妇的AMS推送消息 @@ -259,7 +264,10 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { if (end > configModels.size()) { end = configModels.size(); } - TempleteMsgGenerateWorker worker = new TempleteMsgGenerateWorker(configModels.subList(i,end), + TempleteMsgGenerateWorker worker = new TempleteMsgGenerateWorker( + antenatalExaminationService, + checkItemService, + configModels.subList(i,end), baseService, yunBookbuildingService, smsTemplateService, @@ -327,7 +335,8 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { */ @Override public void generaterAllTmpMsg() { - generateTemplateMsg(null); +// generateTemplateMsg(null); + generateTemplateMsg("1000000115"); } 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 d7417c9..f43b93a 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 @@ -5,7 +5,6 @@ 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.JsonUtil; import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.msg.service.IBaseService; import com.lyms.platform.msg.utils.DateUtils; @@ -18,7 +17,6 @@ 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.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; @@ -65,7 +63,9 @@ public class TempleteMsgGenerateWorker implements Runnable { private ResidentsArchiveService residentsArchiveService; + private AntenatalExaminationService antenatalExaminationService; + private CheckItemService checkItemService; private FolviteMapper folviteMapper; @@ -73,7 +73,9 @@ public class TempleteMsgGenerateWorker implements Runnable { private MatDeliverService matDeliverService; - public TempleteMsgGenerateWorker(List configs, + public TempleteMsgGenerateWorker(AntenatalExaminationService antenatalExaminationService, + CheckItemService checkItemService, + List configs, IBaseService baseService, YunBookbuildingService yunBookbuildingService, SmsTemplateService smsTemplateService, @@ -92,6 +94,8 @@ public class TempleteMsgGenerateWorker implements Runnable { FolviteMapper folviteMapper ) { + this.antenatalExaminationService = antenatalExaminationService; + this.checkItemService = checkItemService; this.configs = configs; this.baseService = baseService; this.yunBookbuildingService = yunBookbuildingService; @@ -1770,6 +1774,8 @@ public class TempleteMsgGenerateWorker implements Runnable { String messageContent = "【" + messagePrefix + "】" + template.getContent(); //messageContent = HelperUtils.replaceEL(pat.getUsername(), yuYueDate, messageContent); messageContent = HelperUtils.replaceELD(pat.getUsername(), yuYueDate, remark, messageContent); + //包含{{检查项目}}就赋值最近检查项目 + messageContent = getCheckTimeStr(pat, messageContent); String checkTimeStr = DateUtils.getDateStr(yuYueDate, DateUtils.Y_M_D); String checkName = "产前检查"; @@ -1784,6 +1790,57 @@ public class TempleteMsgGenerateWorker implements Runnable { } } + private String getCheckTimeStr(Patients pat, String messageContent) { + String nextCheckItem = ""; + try { + if(StringUtils.isNotEmpty(messageContent) && messageContent.contains("{{检查项目}}")){ + Date nextCheckTime = pat.getNextCheckTime(); + //复诊 + AntExQuery antExQuery = new AntExQuery(); + antExQuery.setYn(YnEnums.YES.getId()); + antExQuery.setParentId(pat.getId()); + antExQuery.setNextCheckTimeStartDate(DateUtil.getDayStartTime(nextCheckTime)); + antExQuery.setNextCheckTimeEndDate(DateUtil.getDayEndTime(nextCheckTime)); + List antenatalExaminationModels = antenatalExaminationService.queryAntenatalExamination(antExQuery.convertToQuery().addOrder(Sort.Direction.DESC, "created")); + if(CollectionUtils.isNotEmpty(antenatalExaminationModels)){ + AntenatalExaminationModel fz = antenatalExaminationModels.get(0); + if(fz!=null && StringUtils.isNotEmpty(fz.getConfigItemId())){ + String[] arrs = fz.getConfigItemId().split(","); + for (String checkItemId : arrs) { + String checkItem = checkItemService.getOne(Integer.parseInt(checkItemId)); + nextCheckItem += StringUtils.isEmpty(nextCheckItem) ? checkItem : ("," + checkItem); + } + } + + } + //初诊 + AntExChuQuery antExChuQuery = new AntExChuQuery(); + antExChuQuery.setYn(YnEnums.YES.getId()); + antExChuQuery.setParentId(pat.getId()); + antExChuQuery.setNextCheckTimeStart(DateUtil.getDayStartTime(nextCheckTime)); + antExChuQuery.setNextCheckTimeEnd(DateUtil.getDayEndTime(nextCheckTime)); + System.out.println(antExChuQuery.convertToQuery().convertToMongoQuery()); + List antExChuModels = antenatalExaminationService.queryAntExChu(antExChuQuery.convertToQuery().addOrder(Sort.Direction.DESC, "created")); + if(CollectionUtils.isNotEmpty(antExChuModels) && CollectionUtils.isEmpty(antenatalExaminationModels)){ + AntExChuModel antExChuModel = antExChuModels.get(0); + if(antExChuModel!=null && StringUtils.isNotEmpty(antExChuModel.getConfigItemId())){ + String[] arrs = antExChuModel.getConfigItemId().split(","); + for (String checkItemId : arrs) { + String checkItem = checkItemService.getOne(Integer.parseInt(checkItemId)); + nextCheckItem += StringUtils.isEmpty(nextCheckItem) ? checkItem : ("、" + checkItem); + } + } + } + if(StringUtils.isNotEmpty(nextCheckItem)){ + messageContent = messageContent.replace("{{检查项目}}", "检查"+nextCheckItem); + } + } + } catch (NumberFormatException e) { + e.printStackTrace(); + } + return messageContent; + } + /** * 兼容之间的老数据