diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/FolviteQuery.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/FolviteQuery.java
index 525751b..adead19 100644
--- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/FolviteQuery.java
+++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/FolviteQuery.java
@@ -40,12 +40,34 @@ public class FolviteQuery extends BaseQuery {
//领取结束时间
private Date endReceiveDate;
+
+ //建档开始时间
+ private Date drawTimeStartDate;
+
+ //建档结束时间
+ private Date drawTimeEndDate;
+
//高危风险因素
private String highRisk;
//是否
private Integer yn;
+ public Date getDrawTimeEndDate() {
+ return drawTimeEndDate;
+ }
+
+ public void setDrawTimeEndDate(Date drawTimeEndDate) {
+ this.drawTimeEndDate = drawTimeEndDate;
+ }
+
+ public Date getDrawTimeStartDate() {
+ return drawTimeStartDate;
+ }
+
+ public void setDrawTimeStartDate(Date drawTimeStartDate) {
+ this.drawTimeStartDate = drawTimeStartDate;
+ }
public Integer getYn() {
return yn;
diff --git a/platform-biz-service/src/main/resources/mainOrm/master/FolviteMapper.xml b/platform-biz-service/src/main/resources/mainOrm/master/FolviteMapper.xml
index 4ddc495..c9c7feb 100644
--- a/platform-biz-service/src/main/resources/mainOrm/master/FolviteMapper.xml
+++ b/platform-biz-service/src/main/resources/mainOrm/master/FolviteMapper.xml
@@ -305,6 +305,13 @@ drawTime ) VALUES (
and ispregnancy=#{ispregnancy}
+
+ and drawTime >= #{drawTimeStartDate}
+
+
+ and drawTime #{drawTimeEndDate}
+
+
diff --git a/platform-dal/src/main/java/com/lyms/platform/query/CancerScreeningQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/CancerScreeningQuery.java
index b1b5ee1..040c445 100644
--- a/platform-dal/src/main/java/com/lyms/platform/query/CancerScreeningQuery.java
+++ b/platform-dal/src/main/java/com/lyms/platform/query/CancerScreeningQuery.java
@@ -71,6 +71,9 @@ public class CancerScreeningQuery extends BaseQuery implements IConvertToNativeQ
private Date createdStart;
private Date createdEnd;
+ private Date sfZlrqStart;
+
+ private Date sfZlrqEnd;
//操作人
private Integer operator;
//医院ID
@@ -198,6 +201,14 @@ public class CancerScreeningQuery extends BaseQuery implements IConvertToNativeQ
}
}
+ if (null != sfZlrqStart && sfZlrqEnd != null) {
+ if (null != c) {
+ c = c.and("sfZlrq").gte(sfZlrqStart).lte(sfZlrqEnd);
+ } else {
+ c = Criteria.where("sfZlrq").gte(sfZlrqStart).lte(sfZlrqEnd);
+ }
+ }
+
if (null != c) {
@@ -207,6 +218,23 @@ public class CancerScreeningQuery extends BaseQuery implements IConvertToNativeQ
return condition.toMongoQuery();
}
+
+ public Date getSfZlrqStart() {
+ return sfZlrqStart;
+ }
+
+ public void setSfZlrqStart(Date sfZlrqStart) {
+ this.sfZlrqStart = sfZlrqStart;
+ }
+
+ public Date getSfZlrqEnd() {
+ return sfZlrqEnd;
+ }
+
+ public void setSfZlrqEnd(Date sfZlrqEnd) {
+ this.sfZlrqEnd = sfZlrqEnd;
+ }
+
public String getRxlYyz() {
return rxlYyz;
}
diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IBaseService.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IBaseService.java
index a8f18a6..2b26455 100644
--- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IBaseService.java
+++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IBaseService.java
@@ -40,4 +40,6 @@ public interface IBaseService {
public String getBabySmsPrefix(SmsConfigModel config,String babyId,String mainPrefix,SmsTemplateModel template);
public String getPregnantSmsPrefix(SmsConfigModel config,String pid,String mainPrefix,SmsTemplateModel template);
+
+ public String getDoctorName(String doctorId);
}
diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/BaseServiceImpl.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/BaseServiceImpl.java
index 77da2c1..0dd284e 100644
--- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/BaseServiceImpl.java
+++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/BaseServiceImpl.java
@@ -502,12 +502,16 @@ public class BaseServiceImpl implements IBaseService {
return "";
}
- private String getDoctorName(String doctorId)
+ public String getDoctorName(String doctorId)
{
try {
- //通过建档医生查询用户信息
- Users user = usersService.getUsers(Integer.valueOf(doctorId));
- return user != null ? user.getName() : "";
+ if (StringUtils.isNum(doctorId))
+ {
+ //通过建档医生查询用户信息
+ Users user = usersService.getUsers(Integer.valueOf(doctorId));
+ return user != null ? user.getName() : "";
+ }
+ return doctorId;
}catch (Exception e)
{
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 77f0d94..cd3b646 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,6 +9,7 @@ import com.lyms.platform.msg.service.IMsgGenerateService;
import com.lyms.platform.msg.utils.DateUtils;
import com.lyms.platform.msg.worker.*;
+import com.lyms.platform.permission.dao.master.FolviteMapper;
import com.lyms.platform.permission.service.*;
import com.lyms.platform.pojo.BasicConfig;
import com.lyms.platform.pojo.CourseModel;
@@ -47,10 +48,20 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService {
private CourseService courseService;
@Autowired
+ private PremaritalCheckupService premaritalCheckupService;
+ @Autowired
+ private ResidentsArchiveService residentsArchiveService;
+
+ @Autowired
private MongoTemplate mongoTemplate;
@Autowired
private YunBookbuildingService yunBookbuildingService;
+ @Autowired
+ private CancerScreeningService cancerScreenService;
+
+ @Autowired
+ private FolviteMapper folviteMapper;
@Autowired
private SmsTemplateService smsTemplateService;
@@ -237,7 +248,8 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService {
hearingDiagnoseService,
babyPatientExtendEarFollowUpService,
patientServiceService,
- usersService,matDeliverService);
+ usersService,matDeliverService,premaritalCheckupService,residentsArchiveService, cancerScreenService,
+ folviteMapper);
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 a486289..06e4a11 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
@@ -10,13 +10,11 @@ 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.dao.master.FolviteMapper;
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 com.lyms.platform.query.*;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -63,31 +61,18 @@ public class TempleteMsgGenerateWorker implements Runnable {
private UsersService usersService;
+ private PremaritalCheckupService premaritalCheckupService;
+ private ResidentsArchiveService residentsArchiveService;
- private MatDeliverService matDeliverService;
- public TempleteMsgGenerateWorker(List configs, IBaseService baseService,
- YunBookbuildingService yunBookbuildingService,
- SmsTemplateService smsTemplateService,
- BabyBookbuildingService babyBookbuildingService,
- PostReviewService postReviewService,
- MongoTemplate mongoTemplate,
- BabyPatientExtendEarScreenService babyPatientExtendEarScreenService,
- BabyPatientExtendEarHearingDiagnoseService hearingDiagnoseService,
- BabyPatientExtendEarFollowUpService babyPatientExtendEarFollowUpService) {
- this.configs = configs;
- this.baseService = baseService;
- this.yunBookbuildingService = yunBookbuildingService;
- this.smsTemplateService = smsTemplateService;
- this.babyBookbuildingService = babyBookbuildingService;
- this.postReviewService = postReviewService;
- this.mongoTemplate = mongoTemplate;
- this.babyPatientExtendEarScreenService = babyPatientExtendEarScreenService;
- this.hearingDiagnoseService = hearingDiagnoseService;
- this.babyPatientExtendEarFollowUpService = babyPatientExtendEarFollowUpService;
- }
+ private FolviteMapper folviteMapper;
+
+ private CancerScreeningService cancerScreenService;
+
+
+ private MatDeliverService matDeliverService;
public TempleteMsgGenerateWorker(List configs,
IBaseService baseService,
YunBookbuildingService yunBookbuildingService,
@@ -100,7 +85,13 @@ public class TempleteMsgGenerateWorker implements Runnable {
BabyPatientExtendEarFollowUpService babyPatientExtendEarFollowUpService,
PatientServiceService patientServiceService,
UsersService usersService,
- MatDeliverService matDeliverService) {
+ MatDeliverService matDeliverService,
+ PremaritalCheckupService premaritalCheckupService,
+ ResidentsArchiveService residentsArchiveService,
+ CancerScreeningService cancerScreenService,
+ FolviteMapper folviteMapper
+
+ ) {
this.configs = configs;
this.baseService = baseService;
this.yunBookbuildingService = yunBookbuildingService;
@@ -114,6 +105,10 @@ public class TempleteMsgGenerateWorker implements Runnable {
this.patientServiceService = patientServiceService;
this.usersService = usersService;
this.matDeliverService = matDeliverService;
+ this.premaritalCheckupService = premaritalCheckupService;
+ this.residentsArchiveService = residentsArchiveService;
+ this.cancerScreenService = cancerScreenService;
+ this.folviteMapper = folviteMapper;
}
@Override
@@ -205,6 +200,10 @@ public class TempleteMsgGenerateWorker implements Runnable {
else if (serviceObj == ServiceObjEnums.CHANOBJ.getId()) {
generateChanTempMsg(template, config, service);
}
+ //妇女
+ else if (serviceObj == ServiceObjEnums.FUNV.getId()) {
+ generateFunvTempMsg(template, config, service);
+ }
} catch (Exception e) {
logger.error("genernate templete error. [" + template.toString() + "]", e);
continue;
@@ -222,6 +221,165 @@ public class TempleteMsgGenerateWorker implements Runnable {
}
/**
+ * 妇女短信消息生成
+ * @param template
+ * @param config
+ * @param service
+ */
+ private void generateFunvTempMsg(SmsTemplateModel template, SmsConfigModel config, int service) {
+ //模板属于的医院id
+ String tempHid = template.getHospitalId();
+
+ //消息类型
+ Integer smsType = template.getSmsType();
+
+ //发送时间 SendTimeEnums DT(0,"当天"),QYT(1,"前一天"),QLT(2,"前两天"),QST(3,"前三天");
+ Integer sendTimeType = template.getSendTimeType();
+
+ Integer start = template.getStart();
+ Integer end = template.getEnd();
+
+ 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);
+
+ //发送短信集合
+ MsgListRequest list = new MsgListRequest();
+ List messages = new ArrayList<>();
+ //婚检提醒
+ if (smsType == SmsServiceEnums.HJTX.getId()) {
+
+
+ PremaritalCheckupQuery query = new PremaritalCheckupQuery();
+ query.setYn(YnEnums.YES.getId());
+ query.setHospitalId(tempHid);
+
+
+ startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D);
+ endDate = DateUtils.formatDate(endDate, DateUtils.Y_M_D);
+
+ query.setPremaritalUpTimeStart(startDate);
+ query.setPremaritalUpTimeEnd(endDate);
+
+ List checkupList = premaritalCheckupService.queryPremaritalCheckup(query);
+
+ if (CollectionUtils.isNotEmpty(checkupList))
+ {
+ for (PremaritalCheckup checkup: checkupList){
+ ResidentsArchiveModel model = residentsArchiveService.getResident(checkup.getParentId());
+ if (model != null)
+ {
+ addFunvMessages(template, config, service, messages,model.getId(), checkup.getHunJianDoctor(), model.getPhone());
+ }
+ }
+ }
+ }
+ //叶酸提醒
+ else if (smsType == SmsServiceEnums.YSTX.getId()) {
+ //发送短信集合
+
+ FolviteQuery folviteQuery = new FolviteQuery();
+ folviteQuery.setDrawTimeStartDate(startDate);
+ folviteQuery.setDrawTimeEndDate(DateUtil.getDayLastSecond(endDate));
+ //未结束孕辰
+ folviteQuery.setIspregnancy(0);
+ folviteQuery.setHospitalId(tempHid);
+ List recordModels = folviteMapper.queryList(folviteQuery);
+
+ if (CollectionUtils.isNotEmpty(recordModels))
+ {
+ for (FolviteRecordModel checkup: recordModels){
+ ResidentsArchiveModel model = residentsArchiveService.getResident(checkup.getWomanId());
+ if (model != null)
+ {
+ addFunvMessages(template, config, service, messages,model.getId(), checkup.getOperationDoctor(), model.getPhone());
+ }
+ }
+ }
+ }
+ //优生提醒
+ else if (smsType == SmsServiceEnums.YQYSTX.getId())
+ {
+ Query query = new Query();
+ query.addCriteria(Criteria.where("hospitalId").is(tempHid));
+ query.addCriteria(Criteria.where("fillDate").gte(startDate).lte(DateUtil.getDayLastSecond(endDate)));
+ List preEugenicsBaseModels = mongoTemplate.find(query, PreEugenicsBaseModel.class);
+ if (CollectionUtils.isNotEmpty(preEugenicsBaseModels))
+ {
+ for (PreEugenicsBaseModel preEugenicsBaseModel : preEugenicsBaseModels) {
+ ResidentsArchiveQuery archiveQuery = new ResidentsArchiveQuery();
+ archiveQuery.setYn(YnEnums.YES.getId());
+ archiveQuery.setHospitalId(tempHid);
+ archiveQuery.setCertificateNum(preEugenicsBaseModel.getWifeCardNo());
+ List hjCounts = residentsArchiveService.queryResident(archiveQuery);
+ if (CollectionUtils.isNotEmpty(hjCounts))
+ {
+ addFunvMessages(template, config, service, messages,hjCounts.get(0).getId(), preEugenicsBaseModel.getDoctor(), preEugenicsBaseModel.getWifePhone());
+ }
+ }
+ }
+
+ }
+ //乳腺癌提醒
+ else if (smsType == SmsServiceEnums.RXATX.getId())
+ {
+
+ startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D);
+ endDate = DateUtils.formatDate(endDate, DateUtils.Y_M_D);
+
+ //查询条件
+ CancerScreeningQuery query = new CancerScreeningQuery();
+ query.setYn(YnEnums.YES.getId());
+ query.setHospitalId(tempHid);
+ query.setSfZlrqStart(startDate);
+ query.setSfZlrqEnd(DateUtil.getDayLastSecond(endDate));
+
+ List cancerScreeningModels = cancerScreenService.queryCancerScreList(query);
+ if (CollectionUtils.isNotEmpty(cancerScreeningModels))
+ {
+ for (CancerScreeningModel cs : cancerScreeningModels) {
+ ResidentsArchiveModel model = residentsArchiveService.getResident(cs.getResidentId());
+ if (model != null)
+ {
+ addFunvMessages(template, config, service, messages,model.getId(), cs.getSfBlzd(), model.getPhone());
+ }
+ }
+ }
+
+ }
+ //宫颈癌提醒
+ else if (smsType == SmsServiceEnums.GJATX.getId())
+ {
+
+ startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D);
+ endDate = DateUtils.formatDate(endDate, DateUtils.Y_M_D);
+
+ //查询条件
+ Query query = new Query();
+ query.addCriteria(Criteria.where("hospitalId").is(tempHid));
+ query.addCriteria(Criteria.where("created").gte(startDate)
+ .lte(DateUtil.getDayLastSecond(endDate)));
+
+ List cervicalCancerModels = mongoTemplate.find(query, CervicalCancerModel.class);
+ if (CollectionUtils.isNotEmpty(cervicalCancerModels))
+ {
+ for (CervicalCancerModel cs : cervicalCancerModels) {
+ ResidentsArchiveModel model = residentsArchiveService.getResident(cs.getParentId());
+ if (model != null)
+ {
+ addFunvMessages(template, config, service, messages,model.getId(), cs.getCreateUser(), model.getPhone());
+ }
+ }
+ }
+ }
+
+ list.setMessages(messages);
+ HelperUtils.sendMsg(list);
+
+ }
+
+ /**
* 生成儿童模板消息
*
* @param template
@@ -798,7 +956,7 @@ public class TempleteMsgGenerateWorker implements Runnable {
//短信前缀
String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(), ServiceObjEnums.BABYOBJ.getId());
- messagePrefix = baseService.getBabySmsPrefix(config,model.getId(),messagePrefix,template);
+ messagePrefix = baseService.getBabySmsPrefix(config, model.getId(), messagePrefix, template);
String messageContent = "【" + messagePrefix + "】" + template.getContent();
messageContent = HelperUtils.replaceName(model.getName(), messageContent);
String itemName = "儿童保健";
@@ -811,6 +969,37 @@ public class TempleteMsgGenerateWorker implements Runnable {
messages.add(request);
}
+
+
+ private void addFunvMessages(SmsTemplateModel template,
+ SmsConfigModel config,
+ Integer service,
+ List messages,
+ String id,String doctorId,String phone) {
+
+ if (HelperUtils.isExistMsg(id, template.getId())) {
+ return;
+ }
+
+
+ String serDoc = baseService.getDoctorName(doctorId);
+
+ //短信前缀
+ String messagePrefix = baseService.getSmsPrefix(config, doctorId, ServiceObjEnums.FUNV.getId());
+ //messagePrefix = baseService.getBabySmsPrefix(config, model.getId(), messagePrefix, template);
+ String messageContent = "【" + messagePrefix + "】" + template.getContent();
+
+ String itemName = "妇女保健";
+ String date = DateUtil.getyyyy_MM_dd(new Date());
+
+ MsgRequest request = HelperUtils.getMessageRequest1(template.getSendTime(), messageContent, phone,
+ ServiceObjEnums.FUNV.getId(), template.getSmsType(),
+ template.getHospitalId(), template.getId(), id,serDoc, date, itemName,
+ WxTempleteIdEnums.YI_SHENG_ZHI_DAO.getId(), service);
+
+ messages.add(request);
+ }
+
/**
* 儿童天数 - 儿童提醒消息
*