Commit 10ef424104211d769d750130488925a1fc145f1c

Authored by liquanyu
1 parent e55facc4b3

update code

Showing 1 changed file with 88 additions and 0 deletions

platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/TempleteMsgGenerateWorker.java View file @ 10ef424
... ... @@ -623,6 +623,94 @@
623 623 }
624 624 }
625 625 }
  626 + //产后复查程序提醒
  627 + else if (smsType == SmsServiceEnums.CHFCCXTX.getId())
  628 + {
  629 + //发送频次
  630 + Integer sendFreq = template.getSendFrequency();
  631 +
  632 + if (sendFreq == SendFrequencyEnums.ONCE.getId()) {
  633 +
  634 + //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");
  635 + Integer sendDateType = template.getSendDateType();
  636 + if (sendDateType == SendDateEnums.SLRQ.getId()) {
  637 + //
  638 + Integer specialDateType = template.getSpecialDateType();
  639 +
  640 + //产后天数
  641 + if (specialDateType == SpecialDateEnums.CHTS.getId()) {
  642 + Integer start = template.getStart();
  643 + Integer end = template.getEnd();
  644 +
  645 + if (start != null && end != null) {
  646 + Date startDate = DateUtil.getNewDate(-end, "天", sendTimeType);
  647 + Date endDate = DateUtil.getNewDate(-start, "天", sendTimeType);
  648 + startDate = DateUtil.formatDate(startDate);
  649 + endDate = DateUtil.formatDate(endDate);
  650 + patientsQuery.setFmDateStart(startDate);
  651 + patientsQuery.setFmDateEnd(endDate);
  652 + List<Patients> patientses = yunBookbuildingService.queryPregnantWithQuery(patientsQuery);
  653 + for(Patients pat : patientses)
  654 + {
  655 + if (pat.getDueDate() == null)
  656 + {
  657 + continue;
  658 + }
  659 + if (queryPostOrder(pat.getDueDate(),start,tempHid,sendTimeType,pat.getId()))
  660 + {
  661 + continue;
  662 + }
  663 + //短信前缀
  664 + String messagePrefix = baseService.getSmsPrefix(config, pat.getBookbuildingDoctor());
  665 + String messageContent = "【"+messagePrefix+"】"+template.getContent();
  666 + messageContent = HelperUtils.replaceName(pat.getUsername(), messageContent);
  667 +
  668 + String days = DateUtils.daysBetween(pat.getFmDate(), new Date()) + "天";
  669 + String title = "产后复查";
  670 + MessageRequest request = HelperUtils.getMessageRequest(messageContent, pat.getPhone(),
  671 + ServiceObjEnums.CHANOBJ.getId(), template.getSmsType(),
  672 + pat.getHospitalId(), template.getId(), pat.getId(), title, days, "", WxTempleteIdEnums.CHAN_JIAN_TI_XING.getId());
  673 + messages.add(request);
  674 + }
  675 + }
  676 + }
  677 + //产妇服务结束
  678 + else if (specialDateType == SpecialDateEnums.FWJS.getId())
  679 + {
  680 +
  681 + }
  682 + }
  683 + }
  684 + list.setMessages(messages);
  685 + HelperUtils.sendMsg(list);
  686 + }
  687 + }
  688 +
  689 +
  690 + /**
  691 + * 查询出产妇有效的下次预约时间
  692 + * @param tempHid
  693 + * @return
  694 + */
  695 + private boolean queryPostOrder(Date dueDate,Integer start,String tempHid,Integer sendTimeType,String pid)
  696 + {
  697 + Set<String> idset = new HashSet<>();
  698 + Date startDate = DateUtil.getRangeDate(dueDate, start, "周", -sendTimeType);
  699 + if (startDate != null)
  700 + {
  701 + //把时间格式化成 yyyy_MM_dd 的日期
  702 + startDate = DateUtil.formatDate(startDate);
  703 + }
  704 + List<PostReviewModel> models = postReviewService.queryPostOrder(startDate, tempHid, pid);
  705 + if (CollectionUtils.isNotEmpty(models))
  706 + {
  707 + for (PostReviewModel model : models)
  708 + {
  709 + idset.add(model.getId()); //这里的id就是parentid
  710 + }
  711 + }
  712 +
  713 + return idset.size() > 0;
626 714 }
627 715 }