Commit dbe39881eb38bf13cfa3e892603dfca6048b19a1

Authored by liquanyu
1 parent c93d07bffb
Exists in master and in 1 other branch dev

妇女消息生成

Showing 7 changed files with 296 additions and 32 deletions

platform-biz-service/src/main/java/com/lyms/platform/permission/model/FolviteQuery.java View file @ dbe3988
... ... @@ -40,12 +40,34 @@
40 40 //领取结束时间
41 41 private Date endReceiveDate;
42 42  
  43 +
  44 + //建档开始时间
  45 + private Date drawTimeStartDate;
  46 +
  47 + //建档结束时间
  48 + private Date drawTimeEndDate;
  49 +
43 50 //高危风险因素
44 51 private String highRisk;
45 52  
46 53 //是否
47 54 private Integer yn;
48 55  
  56 + public Date getDrawTimeEndDate() {
  57 + return drawTimeEndDate;
  58 + }
  59 +
  60 + public void setDrawTimeEndDate(Date drawTimeEndDate) {
  61 + this.drawTimeEndDate = drawTimeEndDate;
  62 + }
  63 +
  64 + public Date getDrawTimeStartDate() {
  65 + return drawTimeStartDate;
  66 + }
  67 +
  68 + public void setDrawTimeStartDate(Date drawTimeStartDate) {
  69 + this.drawTimeStartDate = drawTimeStartDate;
  70 + }
49 71  
50 72 public Integer getYn() {
51 73 return yn;
platform-biz-service/src/main/resources/mainOrm/master/FolviteMapper.xml View file @ dbe3988
... ... @@ -305,6 +305,13 @@
305 305 and ispregnancy=#{ispregnancy}
306 306 </if>
307 307  
  308 + <if test="drawTimeStartDate != null">
  309 + and drawTime >= #{drawTimeStartDate}
  310 + </if>
  311 + <if test="drawTimeEndDate != null">
  312 + and drawTime <![CDATA[ <= ]]> #{drawTimeEndDate}
  313 + </if>
  314 +
308 315 </where>
309 316 </sql>
310 317  
platform-dal/src/main/java/com/lyms/platform/query/CancerScreeningQuery.java View file @ dbe3988
... ... @@ -71,6 +71,9 @@
71 71 private Date createdStart;
72 72  
73 73 private Date createdEnd;
  74 + private Date sfZlrqStart;
  75 +
  76 + private Date sfZlrqEnd;
74 77 //操作人
75 78 private Integer operator;
76 79 //医院ID
77 80  
78 81  
... ... @@ -198,13 +201,38 @@
198 201 }
199 202 }
200 203  
  204 + if (null != sfZlrqStart && sfZlrqEnd != null) {
  205 + if (null != c) {
  206 + c = c.and("sfZlrq").gte(sfZlrqStart).lte(sfZlrqEnd);
  207 + } else {
  208 + c = Criteria.where("sfZlrq").gte(sfZlrqStart).lte(sfZlrqEnd);
  209 + }
  210 + }
201 211  
202 212  
  213 +
203 214 if (null != c) {
204 215 condition = condition.andCondition(new MongoCondition(c));
205 216 }
206 217  
207 218 return condition.toMongoQuery();
  219 + }
  220 +
  221 +
  222 + public Date getSfZlrqStart() {
  223 + return sfZlrqStart;
  224 + }
  225 +
  226 + public void setSfZlrqStart(Date sfZlrqStart) {
  227 + this.sfZlrqStart = sfZlrqStart;
  228 + }
  229 +
  230 + public Date getSfZlrqEnd() {
  231 + return sfZlrqEnd;
  232 + }
  233 +
  234 + public void setSfZlrqEnd(Date sfZlrqEnd) {
  235 + this.sfZlrqEnd = sfZlrqEnd;
208 236 }
209 237  
210 238 public String getRxlYyz() {
platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IBaseService.java View file @ dbe3988
... ... @@ -40,5 +40,7 @@
40 40 public String getBabySmsPrefix(SmsConfigModel config,String babyId,String mainPrefix,SmsTemplateModel template);
41 41  
42 42 public String getPregnantSmsPrefix(SmsConfigModel config,String pid,String mainPrefix,SmsTemplateModel template);
  43 +
  44 + public String getDoctorName(String doctorId);
43 45 }
platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/BaseServiceImpl.java View file @ dbe3988
... ... @@ -502,12 +502,16 @@
502 502 return "";
503 503 }
504 504  
505   - private String getDoctorName(String doctorId)
  505 + public String getDoctorName(String doctorId)
506 506 {
507 507 try {
508   - //通过建档医生查询用户信息
509   - Users user = usersService.getUsers(Integer.valueOf(doctorId));
510   - return user != null ? user.getName() : "";
  508 + if (StringUtils.isNum(doctorId))
  509 + {
  510 + //通过建档医生查询用户信息
  511 + Users user = usersService.getUsers(Integer.valueOf(doctorId));
  512 + return user != null ? user.getName() : "";
  513 + }
  514 + return doctorId;
511 515 }catch (Exception e)
512 516 {
513 517 return "";
platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/MsgGenerateServiceImpl.java View file @ dbe3988
... ... @@ -9,6 +9,7 @@
9 9 import com.lyms.platform.msg.utils.DateUtils;
10 10 import com.lyms.platform.msg.worker.*;
11 11  
  12 +import com.lyms.platform.permission.dao.master.FolviteMapper;
12 13 import com.lyms.platform.permission.service.*;
13 14 import com.lyms.platform.pojo.BasicConfig;
14 15 import com.lyms.platform.pojo.CourseModel;
15 16  
16 17  
... ... @@ -47,12 +48,22 @@
47 48 private CourseService courseService;
48 49  
49 50 @Autowired
  51 + private PremaritalCheckupService premaritalCheckupService;
  52 + @Autowired
  53 + private ResidentsArchiveService residentsArchiveService;
  54 +
  55 + @Autowired
50 56 private MongoTemplate mongoTemplate;
51 57  
52 58 @Autowired
53 59 private YunBookbuildingService yunBookbuildingService;
  60 + @Autowired
  61 + private CancerScreeningService cancerScreenService;
54 62  
55 63 @Autowired
  64 + private FolviteMapper folviteMapper;
  65 +
  66 + @Autowired
56 67 private SmsTemplateService smsTemplateService;
57 68  
58 69 @Autowired
... ... @@ -237,7 +248,8 @@
237 248 hearingDiagnoseService,
238 249 babyPatientExtendEarFollowUpService,
239 250 patientServiceService,
240   - usersService,matDeliverService);
  251 + usersService,matDeliverService,premaritalCheckupService,residentsArchiveService, cancerScreenService,
  252 + folviteMapper);
241 253 pool.execute(worker);
242 254 }
243 255  
platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/TempleteMsgGenerateWorker.java View file @ dbe3988
... ... @@ -10,13 +10,11 @@
10 10 import com.lyms.platform.msg.service.IBaseService;
11 11 import com.lyms.platform.msg.utils.DateUtils;
12 12 import com.lyms.platform.msg.utils.HelperUtils;
  13 +import com.lyms.platform.permission.dao.master.FolviteMapper;
13 14 import com.lyms.platform.permission.model.*;
14 15 import com.lyms.platform.permission.service.*;
15 16 import com.lyms.platform.pojo.*;
16   -import com.lyms.platform.query.BabyModelQuery;
17   -import com.lyms.platform.query.MatDeliverQuery;
18   -import com.lyms.platform.query.PatientsQuery;
19   -import com.lyms.platform.query.SmsTemplateQuery;
  17 +import com.lyms.platform.query.*;
20 18 import org.apache.commons.collections.CollectionUtils;
21 19 import org.slf4j.Logger;
22 20 import org.slf4j.LoggerFactory;
23 21  
24 22  
25 23  
26 24  
... ... @@ -63,31 +61,18 @@
63 61  
64 62 private UsersService usersService;
65 63  
  64 + private PremaritalCheckupService premaritalCheckupService;
66 65  
  66 + private ResidentsArchiveService residentsArchiveService;
67 67  
68   - private MatDeliverService matDeliverService;
69 68  
70   - public TempleteMsgGenerateWorker(List<SmsConfigModel> configs, IBaseService baseService,
71   - YunBookbuildingService yunBookbuildingService,
72   - SmsTemplateService smsTemplateService,
73   - BabyBookbuildingService babyBookbuildingService,
74   - PostReviewService postReviewService,
75   - MongoTemplate mongoTemplate,
76   - BabyPatientExtendEarScreenService babyPatientExtendEarScreenService,
77   - BabyPatientExtendEarHearingDiagnoseService hearingDiagnoseService,
78   - BabyPatientExtendEarFollowUpService babyPatientExtendEarFollowUpService) {
79   - this.configs = configs;
80   - this.baseService = baseService;
81   - this.yunBookbuildingService = yunBookbuildingService;
82   - this.smsTemplateService = smsTemplateService;
83   - this.babyBookbuildingService = babyBookbuildingService;
84   - this.postReviewService = postReviewService;
85   - this.mongoTemplate = mongoTemplate;
86   - this.babyPatientExtendEarScreenService = babyPatientExtendEarScreenService;
87   - this.hearingDiagnoseService = hearingDiagnoseService;
88   - this.babyPatientExtendEarFollowUpService = babyPatientExtendEarFollowUpService;
89   - }
90 69  
  70 + private FolviteMapper folviteMapper;
  71 +
  72 + private CancerScreeningService cancerScreenService;
  73 +
  74 +
  75 + private MatDeliverService matDeliverService;
91 76 public TempleteMsgGenerateWorker(List<SmsConfigModel> configs,
92 77 IBaseService baseService,
93 78 YunBookbuildingService yunBookbuildingService,
... ... @@ -100,7 +85,13 @@
100 85 BabyPatientExtendEarFollowUpService babyPatientExtendEarFollowUpService,
101 86 PatientServiceService patientServiceService,
102 87 UsersService usersService,
103   - MatDeliverService matDeliverService) {
  88 + MatDeliverService matDeliverService,
  89 + PremaritalCheckupService premaritalCheckupService,
  90 + ResidentsArchiveService residentsArchiveService,
  91 + CancerScreeningService cancerScreenService,
  92 + FolviteMapper folviteMapper
  93 +
  94 + ) {
104 95 this.configs = configs;
105 96 this.baseService = baseService;
106 97 this.yunBookbuildingService = yunBookbuildingService;
... ... @@ -114,6 +105,10 @@
114 105 this.patientServiceService = patientServiceService;
115 106 this.usersService = usersService;
116 107 this.matDeliverService = matDeliverService;
  108 + this.premaritalCheckupService = premaritalCheckupService;
  109 + this.residentsArchiveService = residentsArchiveService;
  110 + this.cancerScreenService = cancerScreenService;
  111 + this.folviteMapper = folviteMapper;
117 112 }
118 113  
119 114 @Override
... ... @@ -205,6 +200,10 @@
205 200 else if (serviceObj == ServiceObjEnums.CHANOBJ.getId()) {
206 201 generateChanTempMsg(template, config, service);
207 202 }
  203 + //妇女
  204 + else if (serviceObj == ServiceObjEnums.FUNV.getId()) {
  205 + generateFunvTempMsg(template, config, service);
  206 + }
208 207 } catch (Exception e) {
209 208 logger.error("genernate templete error. [" + template.toString() + "]", e);
210 209 continue;
... ... @@ -222,6 +221,165 @@
222 221 }
223 222  
224 223 /**
  224 + * 妇女短信消息生成
  225 + * @param template
  226 + * @param config
  227 + * @param service
  228 + */
  229 + private void generateFunvTempMsg(SmsTemplateModel template, SmsConfigModel config, int service) {
  230 + //模板属于的医院id
  231 + String tempHid = template.getHospitalId();
  232 +
  233 + //消息类型
  234 + Integer smsType = template.getSmsType();
  235 +
  236 + //发送时间 SendTimeEnums DT(0,"当天"),QYT(1,"前一天"),QLT(2,"前两天"),QST(3,"前三天");
  237 + Integer sendTimeType = template.getSendTimeType();
  238 +
  239 + Integer start = template.getStart();
  240 + Integer end = template.getEnd();
  241 +
  242 + Date startDate = DateUtils.getNewDate(new Date(), -end, "天", sendTimeType);
  243 + Date endDate = DateUtils.getNewDate(new Date(), -start, "天", sendTimeType);
  244 + startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D);
  245 + endDate = DateUtils.formatDate(endDate, DateUtils.Y_M_D);
  246 +
  247 + //发送短信集合
  248 + MsgListRequest list = new MsgListRequest();
  249 + List<MsgRequest> messages = new ArrayList<>();
  250 + //婚检提醒
  251 + if (smsType == SmsServiceEnums.HJTX.getId()) {
  252 +
  253 +
  254 + PremaritalCheckupQuery query = new PremaritalCheckupQuery();
  255 + query.setYn(YnEnums.YES.getId());
  256 + query.setHospitalId(tempHid);
  257 +
  258 +
  259 + startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D);
  260 + endDate = DateUtils.formatDate(endDate, DateUtils.Y_M_D);
  261 +
  262 + query.setPremaritalUpTimeStart(startDate);
  263 + query.setPremaritalUpTimeEnd(endDate);
  264 +
  265 + List<PremaritalCheckup> checkupList = premaritalCheckupService.queryPremaritalCheckup(query);
  266 +
  267 + if (CollectionUtils.isNotEmpty(checkupList))
  268 + {
  269 + for (PremaritalCheckup checkup: checkupList){
  270 + ResidentsArchiveModel model = residentsArchiveService.getResident(checkup.getParentId());
  271 + if (model != null)
  272 + {
  273 + addFunvMessages(template, config, service, messages,model.getId(), checkup.getHunJianDoctor(), model.getPhone());
  274 + }
  275 + }
  276 + }
  277 + }
  278 + //叶酸提醒
  279 + else if (smsType == SmsServiceEnums.YSTX.getId()) {
  280 + //发送短信集合
  281 +
  282 + FolviteQuery folviteQuery = new FolviteQuery();
  283 + folviteQuery.setDrawTimeStartDate(startDate);
  284 + folviteQuery.setDrawTimeEndDate(DateUtil.getDayLastSecond(endDate));
  285 + //未结束孕辰
  286 + folviteQuery.setIspregnancy(0);
  287 + folviteQuery.setHospitalId(tempHid);
  288 + List<FolviteRecordModel> recordModels = folviteMapper.queryList(folviteQuery);
  289 +
  290 + if (CollectionUtils.isNotEmpty(recordModels))
  291 + {
  292 + for (FolviteRecordModel checkup: recordModels){
  293 + ResidentsArchiveModel model = residentsArchiveService.getResident(checkup.getWomanId());
  294 + if (model != null)
  295 + {
  296 + addFunvMessages(template, config, service, messages,model.getId(), checkup.getOperationDoctor(), model.getPhone());
  297 + }
  298 + }
  299 + }
  300 + }
  301 + //优生提醒
  302 + else if (smsType == SmsServiceEnums.YQYSTX.getId())
  303 + {
  304 + Query query = new Query();
  305 + query.addCriteria(Criteria.where("hospitalId").is(tempHid));
  306 + query.addCriteria(Criteria.where("fillDate").gte(startDate).lte(DateUtil.getDayLastSecond(endDate)));
  307 + List <PreEugenicsBaseModel> preEugenicsBaseModels = mongoTemplate.find(query, PreEugenicsBaseModel.class);
  308 + if (CollectionUtils.isNotEmpty(preEugenicsBaseModels))
  309 + {
  310 + for (PreEugenicsBaseModel preEugenicsBaseModel : preEugenicsBaseModels) {
  311 + ResidentsArchiveQuery archiveQuery = new ResidentsArchiveQuery();
  312 + archiveQuery.setYn(YnEnums.YES.getId());
  313 + archiveQuery.setHospitalId(tempHid);
  314 + archiveQuery.setCertificateNum(preEugenicsBaseModel.getWifeCardNo());
  315 + List <ResidentsArchiveModel> hjCounts = residentsArchiveService.queryResident(archiveQuery);
  316 + if (CollectionUtils.isNotEmpty(hjCounts))
  317 + {
  318 + addFunvMessages(template, config, service, messages,hjCounts.get(0).getId(), preEugenicsBaseModel.getDoctor(), preEugenicsBaseModel.getWifePhone());
  319 + }
  320 + }
  321 + }
  322 +
  323 + }
  324 + //乳腺癌提醒
  325 + else if (smsType == SmsServiceEnums.RXATX.getId())
  326 + {
  327 +
  328 + startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D);
  329 + endDate = DateUtils.formatDate(endDate, DateUtils.Y_M_D);
  330 +
  331 + //查询条件
  332 + CancerScreeningQuery query = new CancerScreeningQuery();
  333 + query.setYn(YnEnums.YES.getId());
  334 + query.setHospitalId(tempHid);
  335 + query.setSfZlrqStart(startDate);
  336 + query.setSfZlrqEnd(DateUtil.getDayLastSecond(endDate));
  337 +
  338 + List <CancerScreeningModel> cancerScreeningModels = cancerScreenService.queryCancerScreList(query);
  339 + if (CollectionUtils.isNotEmpty(cancerScreeningModels))
  340 + {
  341 + for (CancerScreeningModel cs : cancerScreeningModels) {
  342 + ResidentsArchiveModel model = residentsArchiveService.getResident(cs.getResidentId());
  343 + if (model != null)
  344 + {
  345 + addFunvMessages(template, config, service, messages,model.getId(), cs.getSfBlzd(), model.getPhone());
  346 + }
  347 + }
  348 + }
  349 +
  350 + }
  351 + //宫颈癌提醒
  352 + else if (smsType == SmsServiceEnums.GJATX.getId())
  353 + {
  354 +
  355 + startDate = DateUtils.formatDate(startDate, DateUtils.Y_M_D);
  356 + endDate = DateUtils.formatDate(endDate, DateUtils.Y_M_D);
  357 +
  358 + //查询条件
  359 + Query query = new Query();
  360 + query.addCriteria(Criteria.where("hospitalId").is(tempHid));
  361 + query.addCriteria(Criteria.where("created").gte(startDate)
  362 + .lte(DateUtil.getDayLastSecond(endDate)));
  363 +
  364 + List<CervicalCancerModel> cervicalCancerModels = mongoTemplate.find(query, CervicalCancerModel.class);
  365 + if (CollectionUtils.isNotEmpty(cervicalCancerModels))
  366 + {
  367 + for (CervicalCancerModel cs : cervicalCancerModels) {
  368 + ResidentsArchiveModel model = residentsArchiveService.getResident(cs.getParentId());
  369 + if (model != null)
  370 + {
  371 + addFunvMessages(template, config, service, messages,model.getId(), cs.getCreateUser(), model.getPhone());
  372 + }
  373 + }
  374 + }
  375 + }
  376 +
  377 + list.setMessages(messages);
  378 + HelperUtils.sendMsg(list);
  379 +
  380 + }
  381 +
  382 + /**
225 383 * 生成儿童模板消息
226 384 *
227 385 * @param template
... ... @@ -798,7 +956,7 @@
798 956  
799 957 //短信前缀
800 958 String messagePrefix = baseService.getSmsPrefix(config, model.getBuildDoctor(), ServiceObjEnums.BABYOBJ.getId());
801   - messagePrefix = baseService.getBabySmsPrefix(config,model.getId(),messagePrefix,template);
  959 + messagePrefix = baseService.getBabySmsPrefix(config, model.getId(), messagePrefix, template);
802 960 String messageContent = "【" + messagePrefix + "】" + template.getContent();
803 961 messageContent = HelperUtils.replaceName(model.getName(), messageContent);
804 962 String itemName = "儿童保健";
... ... @@ -808,6 +966,37 @@
808 966 ServiceObjEnums.BABYOBJ.getId(), template.getSmsType(),
809 967 model.getHospitalId(), template.getId(), model.getId(), itemName, nextCheckTime, "",
810 968 WxTempleteIdEnums.ER_TONG_TI_XING.getId(), service);
  969 + messages.add(request);
  970 + }
  971 +
  972 +
  973 +
  974 + private void addFunvMessages(SmsTemplateModel template,
  975 + SmsConfigModel config,
  976 + Integer service,
  977 + List<MsgRequest> messages,
  978 + String id,String doctorId,String phone) {
  979 +
  980 + if (HelperUtils.isExistMsg(id, template.getId())) {
  981 + return;
  982 + }
  983 +
  984 +
  985 + String serDoc = baseService.getDoctorName(doctorId);
  986 +
  987 + //短信前缀
  988 + String messagePrefix = baseService.getSmsPrefix(config, doctorId, ServiceObjEnums.FUNV.getId());
  989 + //messagePrefix = baseService.getBabySmsPrefix(config, model.getId(), messagePrefix, template);
  990 + String messageContent = "【" + messagePrefix + "】" + template.getContent();
  991 +
  992 + String itemName = "妇女保健";
  993 + String date = DateUtil.getyyyy_MM_dd(new Date());
  994 +
  995 + MsgRequest request = HelperUtils.getMessageRequest1(template.getSendTime(), messageContent, phone,
  996 + ServiceObjEnums.FUNV.getId(), template.getSmsType(),
  997 + template.getHospitalId(), template.getId(), id,serDoc, date, itemName,
  998 + WxTempleteIdEnums.YI_SHENG_ZHI_DAO.getId(), service);
  999 +
811 1000 messages.add(request);
812 1001 }
813 1002