diff --git a/platform-dal/src/main/java/com/lyms/platform/query/ResidentsArchiveQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/ResidentsArchiveQuery.java index d29e931..3c67b30 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/ResidentsArchiveQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/ResidentsArchiveQuery.java @@ -143,7 +143,11 @@ public class ResidentsArchiveQuery extends BaseQuery implements IConvertToNative private Date checkupTimeEnd; private Boolean checkupExist; - + //大于修改时间 + private Date gteModified; + //大于创建时间 + //大于创建时间 + private Date gteCreated; @Override public MongoQuery convertToQuery() { @@ -314,6 +318,12 @@ public class ResidentsArchiveQuery extends BaseQuery implements IConvertToNative } } + if (null != gteModified && null != gteCreated) { + MongoCondition mongoCondition = new MongoCondition("modified", gteModified, MongoOper.GTE); + MongoCondition condition2 = new MongoCondition("created", gteCreated, MongoOper.GTE); + condition = condition.orCondition(new MongoCondition[]{mongoCondition, condition2}); + } + if (StringUtils.isNotBlank(trackHospitalId)) { MongoCondition c = MongoCondition.newInstance(); MongoCondition con1 = MongoCondition.newInstance("trackHospitalId", trackHospitalId, MongoOper.IS); @@ -353,6 +363,22 @@ public class ResidentsArchiveQuery extends BaseQuery implements IConvertToNative //0 或者空不是 1是 private Integer hasHj; + public Date getGteModified() { + return gteModified; + } + + public void setGteModified(Date gteModified) { + this.gteModified = gteModified; + } + + public Date getGteCreated() { + return gteCreated; + } + + public void setGteCreated(Date gteCreated) { + this.gteCreated = gteCreated; + } + public Boolean getCheckupExist() { return checkupExist; } diff --git a/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/ConvertHelper.java b/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/ConvertHelper.java index 1ac2c82..d86505d 100644 --- a/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/ConvertHelper.java +++ b/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/ConvertHelper.java @@ -576,6 +576,26 @@ public class ConvertHelper { return localPatient; } + + public static com.lymsh.mommybaby.maindata.model.Patients convertResidents(ResidentsArchiveModel residents) { + com.lymsh.mommybaby.maindata.model.Patients localPatient = new com.lymsh.mommybaby.maindata.model.Patients(); + localPatient.setCreated(residents.getCreated()); + localPatient.setYn(residents.getYn()); + localPatient.setForeignId(residents.getId()); + localPatient.setUsername(residents.getUsername()); + localPatient.setAge(residents.getAge()); + localPatient.setBirth(residents.getBirthday()); + localPatient.setPhone(residents.getPhone()); + localPatient.setPid(residents.getId()); + localPatient.setLastCheckEmployeeId(residents.getBuildDoctor()); + localPatient.setHospitalForeignId(residents.getHospitalId()); + //妇女 + localPatient.setType(4); + localPatient.setPublishId(0); + localPatient.setPublishName(AUTO_WORKER); + return localPatient; + } + /** * 转换医生用户信息 * diff --git a/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/SyncDataWork.java b/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/SyncDataWork.java index 6deb058..0e196a4 100644 --- a/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/SyncDataWork.java +++ b/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/SyncDataWork.java @@ -57,6 +57,9 @@ public class SyncDataWork { private YunBookbuildingService yunBookbuildingService; @Autowired private BasicConfigService basicConfigService; + + @Autowired + private ResidentsArchiveService residentsArchiveService; /** * 工作线程池 */ @@ -882,6 +885,9 @@ public class SyncDataWork { handleAntEx(patients, mamiPatient, stopWatch3); logger.info(stopWatch3.toString()); + + + syncResidents(hospitalId); } catch (Exception e) { ERROR_LOGGER.error("handl patient :" + patients.getId() + ", hospitalId:" + hospitalId, e); } @@ -900,6 +906,45 @@ public class SyncDataWork { } } + /** + * 同步妇女档案 + * @param hospitalId + */ + private void syncResidents(String hospitalId) + { + ResidentsArchiveQuery query = new ResidentsArchiveQuery(); + query.setHospitalId(hospitalId); + query.setYn(YnEnums.YES.getId()); + + if (-1 != readLastSyncTime()) { + query.setGteModified(new Date(readLastSyncTime())); + query.setGteCreated(new Date(readLastSyncTime())); + } + + StopWatch stopWatch2 = new StopWatch("SyncWork-" + hospitalId + "-query residents"); + stopWatch2.start("queryResidentsQuery"); + List modelList = residentsArchiveService.queryResident(query); + stopWatch2.stop(); + logger.info(stopWatch2.toString()); + logger.info("query residents by hospitalId:" + hospitalId + ", list size :" + modelList.size()); + + + if (CollectionUtils.isNotEmpty(modelList)) + { + for (ResidentsArchiveModel model : modelList) + { + com.lymsh.mommybaby.maindata.model.Patients mamiPatient = ConvertHelper + .convertResidents(model); + + if (StringUtils.isBlank(mamiPatient.getPhone())) { + continue; + } + //增加建档记录 + patientsService.aouPatients(mamiPatient); + } + } + } + private void handRiskFu(AntenatalExaminationModel antEx, Integer patientId) { logger.info("handRiskFu antex" + antEx.getId() + ". "); 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 f33bc14..77f0d94 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 @@ -82,6 +82,9 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { @Autowired private UsersService usersService; + @Autowired + private MatDeliverService matDeliverService; + /** * 生成孕妇的AMS推送消息 * @param generateHospitalId 医院id @@ -234,7 +237,7 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { hearingDiagnoseService, babyPatientExtendEarFollowUpService, patientServiceService, - usersService); + usersService,matDeliverService); pool.execute(worker); } diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/utils/HelperUtils.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/utils/HelperUtils.java index 75c7ab8..e0acf61 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/utils/HelperUtils.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/utils/HelperUtils.java @@ -290,7 +290,7 @@ public class HelperUtils { if (serviceType == com.lyms.platform.common.enums.ServiceTypeEnums.ALL_SERVICE.getId()) { Integer[] status = null; if (serviceStatus == ServiceStatusEnums.ALL_OPEN.getId()) { - status = new Integer[]{ServiceStatusEnums.STANDARD_OPEN.getId(),ServiceStatusEnums.ADD_OPEN.getId()}; + //status = new Integer[]{ServiceStatusEnums.STANDARD_OPEN.getId(),ServiceStatusEnums.ADD_OPEN.getId()}; } else if (serviceStatus == ServiceStatusEnums.ALL_NO_OPEN.getId()) 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 326f73c..a486289 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 @@ -2,12 +2,10 @@ package com.lyms.platform.msg.worker; import com.lyms.platform.beans.MsgListRequest; import com.lyms.platform.beans.MsgRequest; -import com.lyms.platform.biz.service.BabyBookbuildingService; -import com.lyms.platform.biz.service.PostReviewService; -import com.lyms.platform.biz.service.SmsTemplateService; -import com.lyms.platform.biz.service.YunBookbuildingService; +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; @@ -16,11 +14,13 @@ import com.lyms.platform.permission.model.*; import com.lyms.platform.permission.service.*; import com.lyms.platform.pojo.*; import com.lyms.platform.query.BabyModelQuery; +import com.lyms.platform.query.MatDeliverQuery; 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.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; @@ -63,6 +63,10 @@ public class TempleteMsgGenerateWorker implements Runnable { private UsersService usersService; + + + private MatDeliverService matDeliverService; + public TempleteMsgGenerateWorker(List configs, IBaseService baseService, YunBookbuildingService yunBookbuildingService, SmsTemplateService smsTemplateService, @@ -95,7 +99,8 @@ public class TempleteMsgGenerateWorker implements Runnable { BabyPatientExtendEarHearingDiagnoseService hearingDiagnoseService, BabyPatientExtendEarFollowUpService babyPatientExtendEarFollowUpService, PatientServiceService patientServiceService, - UsersService usersService) { + UsersService usersService, + MatDeliverService matDeliverService) { this.configs = configs; this.baseService = baseService; this.yunBookbuildingService = yunBookbuildingService; @@ -108,6 +113,7 @@ public class TempleteMsgGenerateWorker implements Runnable { this.babyPatientExtendEarFollowUpService = babyPatientExtendEarFollowUpService; this.patientServiceService = patientServiceService; this.usersService = usersService; + this.matDeliverService = matDeliverService; } @Override @@ -1695,6 +1701,9 @@ public class TempleteMsgGenerateWorker implements Runnable { patientsQuery.setYn(YnEnums.YES.getId()); patientsQuery.setHospitalId(tempHid); + patientsQuery.setFmDateStart(DateUtil.addDay(new Date(), 1)); + patientsQuery.setFmDateEnd(DateUtil.addDay(new Date(),-60)); + List buildType = new ArrayList(); buildType.add(0); buildType.add(2); @@ -1788,8 +1797,7 @@ public class TempleteMsgGenerateWorker implements Runnable { && serviceStatus == ServiceStatusEnums.ADD_ALL.getId()){ addPuerperaMessages(template, config, service, tempHid, sendTimeType, patientsQuery, messages, start, end); } else { - PatientsQuery query = getPatientsQuery(template, false); - addPuerperaMessages(template, config, service, tempHid, sendTimeType, query, messages, start, end); + addPuerperaMessages(template, config, service, tempHid, sendTimeType, patientsQuery, messages, start, end); } } } @@ -1831,6 +1839,7 @@ public class TempleteMsgGenerateWorker implements Runnable { Integer start, Integer end) { List patientses = yunBookbuildingService.queryPregnantWithQuery(patientsQuery); + System.out.println(patientsQuery.convertToQuery().convertToMongoQuery().toString()); for (Patients pat : patientses) { if (pat.getDueDate() == null) { continue; @@ -1843,9 +1852,33 @@ public class TempleteMsgGenerateWorker implements Runnable { if (queryPostOrder(pat.getDueDate(), start, tempHid, sendTimeType, pat.getId())) { continue; } + String content = template.getContent(); + if (template.getContent().contains("#剖宫产#") || template.getContent().contains("#顺产#")) + { + MatDeliverQuery deliverQuery = new MatDeliverQuery(); + deliverQuery.setPid(pat.getPid()); + deliverQuery.setCreatedStart(pat.getLastMenses()); + if (template.getContent().contains("#剖宫产#")) + { + content = content.replace("#剖宫产#", ""); + deliverQuery.setDeliveryModeQueryJson("\"fmfs\":\"2\""); + } + else + { + content = content.replace("#顺产#", ""); + deliverQuery.setDeliveryModeQueryJson("\"fmfs\":\"1\""); + } + + List list = matDeliverService.query(deliverQuery); + if (CollectionUtils.isEmpty(list)) + { + continue; + } + } + //短信前缀 String messagePrefix = baseService.getSmsPrefix(config, pat.getBookbuildingDoctor(), ServiceObjEnums.CHANOBJ.getId()); - String messageContent = "【" + messagePrefix + "】" + template.getContent(); + String messageContent = "【" + messagePrefix + "】" + content; messageContent = HelperUtils.replaceName(pat.getUsername(), messageContent); String days = "产后" + HelperUtils.getKeyword(start, end, "天"); diff --git a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml index 81103e8..84443d4 100644 --- a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml +++ b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml @@ -492,6 +492,23 @@ + + + + + + + + + + + + + + + + + @@ -521,6 +538,7 @@ +