Commit 5a70cab91a54e7b30aabefcae1a07299e3dd499d

Authored by liquanyu
1 parent cf29e28a46

建档短信

Showing 3 changed files with 218 additions and 140 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java View file @ 5a70cab
... ... @@ -726,19 +726,31 @@
726 726  
727 727 operateLogFacade.addAddOptLog(userId, Integer.valueOf(request.getHospitalId()), model, OptActionEnums.ADD.getId(), "儿童建档");
728 728 model = babyBookbuildingService.addBabyBookbuilding(model);
729   - if (model == null || model.getId() == null) {
  729 +
  730 + final String bId = model.getId();
  731 + if (model == null || bId == null) {
730 732 br.setErrorcode(ErrorCodeConstants.SYSTEM_ERROR);
731 733 br.setErrormsg("保存失败");
732 734 return br;
733 735 }
734   - //创建建档短信
735   - //createBuildSms(model);
736   -
737   - createBuildMsg(model);
738   -
  736 + //创建建档短信、推送/业务推广
  737 + new Thread(new Runnable() {
  738 + @Override
  739 + public void run() {
  740 + BabyModelQuery babyQuery = new BabyModelQuery();
  741 + babyQuery.setYn(YnEnums.YES.getId());
  742 + babyQuery.setId(bId);
  743 + List<BabyModel> list = babyBookbuildingService.queryBabyBuildByCond(babyQuery);
  744 + if (CollectionUtils.isNotEmpty(list))
  745 + {
  746 + createBuildMsg(list.get(0));
  747 + createExtensionMsg(list.get(0));
  748 + }
  749 + }
  750 + });
739 751 br.setErrorcode(ErrorCodeConstants.SUCCESS);
740 752 br.setErrormsg("成功");
741   - br.setData(model.getId());
  753 + br.setData(bId);
742 754 }
743 755 catch (Exception e)
744 756 {
745 757  
... ... @@ -756,13 +768,12 @@
756 768  
757 769 //判断医院是否启动和对应的服务项是否启用
758 770 SmsConfigModel configModel = new SmsConfigModel();
  771 + // 1 推送服务, 2 推送和短信服务 3短信服务,
759 772 int startType = smsConfigFacade.hospitalIsStart(babyModel.getHospitalId(), configModel, SmsServiceEnums.FWKT.getId());
760 773 if (startType == 0) {
761 774 return;
762 775 }
763 776  
764   - ExceptionUtils.catchException("The child build config is started.;" + babyModel.getMphone() + ";name=" + babyModel.getName());
765   -
766 777 SmsTemplateQuery query = new SmsTemplateQuery();
767 778 query.setYn(YnEnums.YES.getId());
768 779 query.setStatus(1);
769 780  
770 781  
771 782  
772 783  
773 784  
774 785  
775 786  
776 787  
777 788  
778 789  
779 790  
780 791  
781 792  
782 793  
783 794  
784 795  
785 796  
786 797  
787 798  
788 799  
789 800  
790 801  
791 802  
792 803  
... ... @@ -770,134 +781,161 @@
770 781 query.setServiceObj(ServiceObjEnums.BABYOBJ.getId());
771 782 query.setSpecialDateType(SpecialDateEnums.JD.getId());
772 783  
  784 + //获取建档的模板(包括推送模板、短信模板)
  785 + List<SmsTemplateModel> temps = smsTemplateService.querySmsTemplates(query);
  786 +
773 787 Integer serviceType = babyModel.getServiceType();
774 788 Integer serviceStatus = babyModel.getServiceStatus();
775   - List<SmsTemplateModel> sendList = new ArrayList<>();
776   - List<SmsTemplateModel> temps = smsTemplateService.querySmsTemplates(query);
777   - if (CollectionUtils.isNotEmpty(temps)) {
778 789  
779   - for (SmsTemplateModel temp : temps) {
780   - if (temp.getServiceType() == serviceType && temp.getServiceStatus() == serviceStatus) {
781   - sendList.add(temp);
782   - break;
783   - }
784   - }
  790 + //根据服务状态和服务类型获取可以发送的模板
  791 + List<SmsTemplateModel> sendList = smsConfigFacade.getSendTemplateByServiceStatus(temps,serviceType,serviceStatus);
785 792  
786   - for (SmsTemplateModel temp : temps) {
787   - if (temp.getServiceStatus() == ServiceStatusEnums.STANDARD_ALL.getId()) {
788   - if (serviceStatus == ServiceStatusEnums.STANDARD_OPEN.getId() || serviceStatus == ServiceStatusEnums.NO_OPEN.getId() || serviceStatus == ServiceStatusEnums.STANDARD_OVERDUE.getId()) {
789   - sendList.add(temp);
790   - break;
  793 + if (CollectionUtils.isNotEmpty(sendList)) {
  794 + //短信前缀
  795 + String messagePrefix = smsConfigFacade.getMsgPrefix(configModel, babyModel.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId());
  796 + for (SmsTemplateModel templateModel : sendList) {
  797 + //推送类型模板
  798 + if (templateModel.getTemplateType() == null || templateModel.getTemplateType() == 0)
  799 + {
  800 + //发送推送类模板建档
  801 + if (startType == 3)
  802 + {
  803 + continue;
791 804 }
792 805 }
793   - }
794   -
795   - for (SmsTemplateModel temp : temps) {
796   - if (temp.getServiceStatus() == ServiceStatusEnums.ADD_ALL.getId()) {
797   - if (serviceStatus == ServiceStatusEnums.ADD_OPEN.getId() || serviceStatus == ServiceStatusEnums.UNSUBSCRIBE.getId()
798   - || serviceStatus == ServiceStatusEnums.ADD_OVERDUE.getId() || serviceStatus == ServiceStatusEnums.SUSPEND.getId()) {
799   - sendList.add(temp);
800   - break;
801   - }
  806 + //发送短信类模板建档
  807 + else if(templateModel.getTemplateType() == 1 && startType == 1)
  808 + {
  809 + continue;
802 810 }
803   - }
804 811  
  812 + MsgListRequest smsList = new MsgListRequest();
  813 + List<MsgRequest> messages = new ArrayList<>();
  814 + MsgRequest mr = new MsgRequest();
805 815  
806   - for (SmsTemplateModel temp : temps) {
807   - if (temp.getServiceStatus() == ServiceStatusEnums.ALL_OPEN.getId()) {
808   - if (serviceStatus == ServiceStatusEnums.STANDARD_OPEN.getId() || serviceStatus == ServiceStatusEnums.ADD_OPEN.getId()) {
809   - sendList.add(temp);
810   - break;
811   - }
812   - }
813   - }
  816 + String content = "【" + messagePrefix + "】" + templateModel.getContent();
814 817  
  818 + mr.setFirst(StringUtils.replaceBaby(babyModel.getName(), babyModel.getBirth(), content));
  819 + mr.setObjType(ServiceObjEnums.BABYOBJ.getId());
  820 + mr.setPhone(babyModel.getMphone());
  821 + mr.setTypeId(ProjectTypeEnums.YNXT.getId());
  822 + mr.setPlanTime(DateUtil.getyyyy_MM_dd_hms(new Date()));
  823 + mr.setSubTypeId(SmsServiceEnums.FWKT.getId());
  824 + mr.setStatus(SmsStatusEnums.WFS.getId());
  825 + mr.setTimeType(SmsTimeTypeEnums.ONTIME.getId());
815 826  
816   - for (SmsTemplateModel temp : temps) {
817   - if (temp.getServiceStatus() == ServiceStatusEnums.ALL_NO_OPEN.getId()) {
818   - if (serviceStatus == ServiceStatusEnums.NO_OPEN.getId() || serviceStatus == ServiceStatusEnums.UNSUBSCRIBE.getId()) {
819   - sendList.add(temp);
820   - break;
821   - }
822   - }
823   - }
  827 + mr.setHospitalId(babyModel.getHospitalId());
  828 + mr.setTempId(templateModel.getId());
  829 + mr.setPatientId(babyModel.getId());
824 830  
  831 + mr.setKeyword1(babyModel.getName());
  832 + mr.setKeyword2(DateUtil.getyyyy_MM_dd(babyModel.getBirth()));
  833 + mr.setRemark("");
  834 + mr.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date()));
  835 + mr.setSmsStatus(SmsStatusEnums.WFS.getId());
  836 + mr.setServiceType(startType);
825 837  
826   - for (SmsTemplateModel temp : temps) {
827   - if (temp.getServiceStatus() == ServiceStatusEnums.ALL_OVERDUE.getId()) {
828   - if (serviceStatus == ServiceStatusEnums.STANDARD_OVERDUE.getId() || serviceStatus == ServiceStatusEnums.ADD_OVERDUE.getId()) {
829   - sendList.add(temp);
830   - break;
  838 + mr.setWxTempId(WxTempleteIdEnums.ER_TONG_OPEN.getId());
  839 + messages.add(mr);
  840 + if (CollectionUtils.isNotEmpty(messages)) {
  841 + smsList.setTypeId(ProjectTypeEnums.YNXT.getId());
  842 + smsList.setMessages(messages);
  843 + if ("4".equals(HIS_VERSION) || "20".equals(HIS_VERSION))
  844 + {
  845 + //秦皇岛、威县建档
  846 + if (syncDataService.savePostMsg(JsonUtil.obj2JsonString(smsList), babyModel.getHospitalId())) {
  847 + ExceptionUtils.catchException("The child build is saved.;" + babyModel.getMphone() + ";name=" + babyModel.getName());
  848 + }
831 849 }
  850 + else
  851 + {
  852 + //线上
  853 + MessageCenterService.saveMsgCenter(smsList);
  854 + ExceptionUtils.catchException("The child build is saved." + babyModel.getMphone() + ";name=" + babyModel.getName());
  855 + }
832 856 }
833 857 }
  858 + }
  859 + }
834 860  
835 861  
836   - for (SmsTemplateModel temp : temps) {
837   - if (temp.getServiceType() == ServiceTypeEnums.ALL_SERVICE.getId() && temp.getServiceStatus() == ServiceStatusEnums.ALL.getId()) {
838   - sendList.add(temp);
839   - break;
840   - }
841   - }
842 862  
843   - if (CollectionUtils.isNotEmpty(sendList)) {
844   - //短信前缀
845   - String messagePrefix = smsConfigFacade.getMsgPrefix(configModel, babyModel.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId());
846   - for (SmsTemplateModel templateModel : sendList) {
847   - if (templateModel != null && templateModel.getStatus() == 1) {
848   - ExceptionUtils.catchException("The child build status is opened.;" + babyModel.getMphone() + ";name=" + babyModel.getName());
849   - MsgListRequest smsList = new MsgListRequest();
850   - List<MsgRequest> messages = new ArrayList<>();
851   - MsgRequest mr = new MsgRequest();
852   - String content = "【" + messagePrefix + "】" + templateModel.getContent();
  863 + /**
  864 + * 创建业务推广短信
  865 + */
  866 + private void createExtensionMsg(BabyModel babyModel) {
853 867  
  868 + //判断医院是否启动和对应的服务项是否启用
  869 + SmsConfigModel configModel = new SmsConfigModel();
  870 + int startType = smsConfigFacade.hospitalIsStart(babyModel.getHospitalId(), configModel, SmsServiceEnums.YWTG.getId());
  871 + if (startType == 0) {
  872 + return;
  873 + }
854 874  
855   - mr.setFirst(StringUtils.replaceBaby(babyModel.getName(), babyModel.getBirth(), content));
856   - mr.setObjType(ServiceObjEnums.BABYOBJ.getId());
857   - mr.setPhone(babyModel.getMphone());
858   - mr.setTypeId(ProjectTypeEnums.YNXT.getId());
859   - mr.setPlanTime(DateUtil.getyyyy_MM_dd_hms(new Date()));
860   - mr.setSubTypeId(SmsServiceEnums.FWKT.getId());
861   - mr.setStatus(SmsStatusEnums.WFS.getId());
862   - mr.setTimeType(SmsTimeTypeEnums.ONTIME.getId());
  875 + SmsTemplateQuery query = new SmsTemplateQuery();
  876 + query.setYn(YnEnums.YES.getId());
  877 + query.setStatus(1);
  878 + query.setHospitalId(babyModel.getHospitalId());
  879 + query.setServiceObj(ServiceObjEnums.BABYOBJ.getId());
  880 + query.setSpecialDateType(SpecialDateEnums.ETFWTG.getId());
863 881  
864   - mr.setHospitalId(babyModel.getHospitalId());
865   - mr.setTempId(templateModel.getId());
866   - mr.setPatientId(babyModel.getId());
  882 + Integer serviceType = babyModel.getServiceType();
  883 + Integer serviceStatus = babyModel.getServiceStatus();
867 884  
868   - mr.setKeyword1(babyModel.getName());
869   - mr.setKeyword2(DateUtil.getyyyy_MM_dd(babyModel.getBirth()));
870   - mr.setRemark("");
871   - mr.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date()));
872   - mr.setSmsStatus(SmsStatusEnums.WFS.getId());
873   - mr.setServiceType(startType);
  885 + List<SmsTemplateModel> temps = smsTemplateService.querySmsTemplates(query);
  886 + List<SmsTemplateModel> sendList =smsConfigFacade.getSendTemplateByServiceStatus(temps,serviceType,serviceStatus);
874 887  
  888 + if (CollectionUtils.isNotEmpty(sendList)) {
  889 + //短信前缀
  890 + String messagePrefix = smsConfigFacade.getMsgPrefix(configModel, babyModel.getBuildDoctor(),ServiceObjEnums.BABYOBJ.getId());
  891 + for (SmsTemplateModel templateModel : sendList) {
  892 + if (templateModel != null && templateModel.getStatus() == 1) {
  893 + ExceptionUtils.catchException("The child build status is opened.;" + babyModel.getMphone() + ";name=" + babyModel.getName());
  894 + MsgListRequest smsList = new MsgListRequest();
  895 + List<MsgRequest> messages = new ArrayList<>();
  896 + MsgRequest mr = new MsgRequest();
  897 + String content = "【" + messagePrefix + "】" + templateModel.getContent();
875 898  
876   - mr.setWxTempId(WxTempleteIdEnums.ER_TONG_OPEN.getId());
877   - messages.add(mr);
878 899  
879   - if (CollectionUtils.isNotEmpty(messages)) {
880   - smsList.setTypeId(ProjectTypeEnums.YNXT.getId());
881   - smsList.setMessages(messages);
882   - if ("4".equals(HIS_VERSION) || "20".equals(HIS_VERSION))
883   - {
884   - //秦皇岛、威县建档
885   - if (syncDataService.savePostMsg(JsonUtil.obj2JsonString(smsList), babyModel.getHospitalId())) {
886   - ExceptionUtils.catchException("The child build is saved.;" + babyModel.getMphone() + ";name=" + babyModel.getName());
887   - }
888   - }
889   - else
890   - {
891   - //线上
892   - MessageCenterService.saveMsgCenter(smsList);
893   - ExceptionUtils.catchException("The child build is saved." + babyModel.getMphone() + ";name=" + babyModel.getName());
894   - }
  900 + mr.setFirst(StringUtils.replaceBaby(babyModel.getName(), babyModel.getBirth(), content));
  901 + mr.setObjType(ServiceObjEnums.BABYOBJ.getId());
  902 + mr.setPhone(babyModel.getMphone());
  903 + mr.setTypeId(ProjectTypeEnums.YNXT.getId());
  904 + mr.setPlanTime(DateUtil.getyyyy_MM_dd_hms(new Date()));
  905 + mr.setSubTypeId(SmsServiceEnums.YWTG.getId()); //业务推广
  906 + mr.setStatus(SmsStatusEnums.WFS.getId());
  907 + mr.setTimeType(SmsTimeTypeEnums.ONTIME.getId());
  908 +
  909 + mr.setHospitalId(babyModel.getHospitalId());
  910 + mr.setTempId(templateModel.getId());
  911 + mr.setPatientId(babyModel.getId());
  912 +
  913 + mr.setKeyword1(babyModel.getName());
  914 + mr.setKeyword2(DateUtil.getyyyy_MM_dd(babyModel.getBirth()));
  915 + mr.setRemark("");
  916 + mr.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date()));
  917 + mr.setSmsStatus(SmsStatusEnums.WFS.getId());
  918 + mr.setServiceType(startType);
  919 +
  920 + mr.setWxTempId(WxTempleteIdEnums.ER_TONG_OPEN.getId());
  921 + messages.add(mr);
  922 +
  923 + if (CollectionUtils.isNotEmpty(messages)) {
  924 + smsList.setTypeId(ProjectTypeEnums.YNXT.getId());
  925 + smsList.setMessages(messages);
  926 + if ("4".equals(HIS_VERSION) || "20".equals(HIS_VERSION))
  927 + {
  928 + //秦皇岛、威县建档
  929 + syncDataService.savePostMsg(JsonUtil.obj2JsonString(smsList), babyModel.getHospitalId());
895 930 }
  931 + else
  932 + {
  933 + //线上
  934 + MessageCenterService.saveMsgCenter(smsList);
  935 + }
896 936 }
897 937 }
898 938 }
899   -
900   -
901 939 }
902 940 }
903 941  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java View file @ 5a70cab
... ... @@ -576,43 +576,38 @@
576 576 query.setServiceObj(ServiceObjEnums.YUNOBJ.getId());
577 577 query.setSpecialDateType(SpecialDateEnums.JD.getId());
578 578  
  579 + List<SmsTemplateModel> temps = smsTemplateService.querySmsTemplates(query);
  580 +
579 581 Integer serviceType = patient.getServiceType();
580 582 Integer serviceStatus = patient.getServiceStatus();
581 583  
582   - List<SmsTemplateModel> sendList = new ArrayList<>();
  584 + //根据服务状态和服务类型获取可以发送的模板
  585 + List<SmsTemplateModel> sendList = smsConfigFacade.getSendTemplateByServiceStatus(temps, serviceType, serviceStatus);
583 586  
584   - List<SmsTemplateModel> temps = smsTemplateService.querySmsTemplates(query);
585 587 if (CollectionUtils.isNotEmpty(temps)) {
586   -
587   - for (SmsTemplateModel temp : temps) {
588   - if (temp.getServiceType() == serviceType && temp.getServiceStatus() == serviceStatus) {
589   - sendList.add(temp);
590   - } else if (temp.getServiceType() == serviceType && temp.getServiceStatus() == serviceStatus) {
591   - sendList.add(temp);
592   - } else if (temp.getServiceStatus() == ServiceStatusEnums.ADD_ALL.getId()) {
593   - if (serviceStatus == ServiceStatusEnums.ADD_OPEN.getId() || serviceStatus == ServiceStatusEnums.UNSUBSCRIBE.getId()
594   - || serviceStatus == ServiceStatusEnums.ADD_OVERDUE.getId() || serviceStatus == ServiceStatusEnums.SUSPEND.getId()) {
595   - sendList.add(temp);
596   - }
597   - } else if (temp.getServiceStatus() == ServiceStatusEnums.ALL_OPEN.getId()) {
598   - if (serviceStatus == ServiceStatusEnums.STANDARD_OPEN.getId() || serviceStatus == ServiceStatusEnums.ADD_OPEN.getId()) {
599   - sendList.add(temp);
600   - }
601   - } else if (temp.getServiceStatus() == ServiceStatusEnums.ALL_OVERDUE.getId()) {
602   - if (serviceStatus == ServiceStatusEnums.STANDARD_OVERDUE.getId() || serviceStatus == ServiceStatusEnums.ADD_OVERDUE.getId()) {
603   - sendList.add(temp);
604   - }
605   - } else if (temp.getServiceType() == ServiceTypeEnums.ALL_SERVICE.getId() && temp.getServiceStatus() == ServiceStatusEnums.ALL.getId()) {
606   - sendList.add(temp);
607   - }
608   - }
609   -
610 588 if (CollectionUtils.isNotEmpty(sendList)) {
611 589  
612 590 //短信前缀
613 591 String messagePrefix = smsConfigFacade.getMsgPrefix(configModel, patient.getBookbuildingDoctor(), ServiceObjEnums.YUNOBJ.getId());
614 592 for (SmsTemplateModel templateModel : sendList) {
615 593 if (templateModel != null && templateModel.getStatus() == 1) {
  594 +
  595 + //推送类型模板
  596 + if (templateModel.getTemplateType() == null || templateModel.getTemplateType() == 0)
  597 + {
  598 + //发送推送类模板建档
  599 + if (startType == 3)
  600 + {
  601 + continue;
  602 + }
  603 + }
  604 + //发送短信类模板建档
  605 + else if(templateModel.getTemplateType() == 1 && startType == 1)
  606 + {
  607 + continue;
  608 + }
  609 +
  610 +
616 611 MsgListRequest smsList = new MsgListRequest();
617 612 List<MsgRequest> messages = new ArrayList<>();
618 613 MsgRequest mr = new MsgRequest();
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmsConfigFacade.java View file @ 5a70cab
... ... @@ -825,6 +825,51 @@
825 825 }
826 826  
827 827 /**
  828 + * 根据服务状态和服务类型获取可以发送的模板
  829 + * @param temps
  830 + * @param serviceType
  831 + * @param serviceStatus
  832 + * @return
  833 + */
  834 + public List<SmsTemplateModel> getSendTemplateByServiceStatus(List<SmsTemplateModel> temps,Integer serviceType,Integer serviceStatus)
  835 + {
  836 + List<SmsTemplateModel> sendList = new ArrayList<>();
  837 + if (CollectionUtils.isNotEmpty(temps)) {
  838 + for (SmsTemplateModel temp : temps) {
  839 + if (temp.getServiceType() == serviceType && temp.getServiceStatus() == serviceStatus) {
  840 + sendList.add(temp);
  841 + } else if (temp.getServiceStatus() == ServiceStatusEnums.STANDARD_ALL.getId()) {
  842 + if (serviceStatus == ServiceStatusEnums.STANDARD_OPEN.getId() || serviceStatus == ServiceStatusEnums.NO_OPEN.getId()
  843 + || serviceStatus == ServiceStatusEnums.STANDARD_OVERDUE.getId()) {
  844 + sendList.add(temp);
  845 + }
  846 + } else if (temp.getServiceStatus() == ServiceStatusEnums.ADD_ALL.getId()) {
  847 + if (serviceStatus == ServiceStatusEnums.ADD_OPEN.getId() || serviceStatus == ServiceStatusEnums.UNSUBSCRIBE.getId()
  848 + || serviceStatus == ServiceStatusEnums.ADD_OVERDUE.getId() || serviceStatus == ServiceStatusEnums.SUSPEND.getId()) {
  849 + sendList.add(temp);
  850 + }
  851 + } else if (temp.getServiceStatus() == ServiceStatusEnums.ALL_OPEN.getId()) {
  852 + if (serviceStatus == ServiceStatusEnums.STANDARD_OPEN.getId() || serviceStatus == ServiceStatusEnums.ADD_OPEN.getId()) {
  853 + sendList.add(temp);
  854 + }
  855 + } else if (temp.getServiceStatus() == ServiceStatusEnums.ALL_NO_OPEN.getId()) {
  856 + if (serviceStatus == ServiceStatusEnums.NO_OPEN.getId() || serviceStatus == ServiceStatusEnums.UNSUBSCRIBE.getId()) {
  857 + sendList.add(temp);
  858 + }
  859 + } else if (temp.getServiceStatus() == ServiceStatusEnums.ALL_OVERDUE.getId()) {
  860 + if (serviceStatus == ServiceStatusEnums.STANDARD_OVERDUE.getId() || serviceStatus == ServiceStatusEnums.ADD_OVERDUE.getId()) {
  861 + sendList.add(temp);
  862 + }
  863 + } else if (temp.getServiceType() == ServiceTypeEnums.ALL_SERVICE.getId() && temp.getServiceStatus() == ServiceStatusEnums.ALL.getId()) {
  864 + sendList.add(temp);
  865 + }
  866 + }
  867 + }
  868 + return sendList;
  869 + }
  870 +
  871 +
  872 + /**
828 873 * 判断对应服务是否启动
829 874 * return 1 推送服务, 2 推送和短信服务 3短信服务,
830 875 */