From 75e6aa17a03bcc3bf6524df65b67512fa3b1530f Mon Sep 17 00:00:00 2001 From: zhangchao Date: Mon, 20 May 2024 08:06:47 +0800 Subject: [PATCH] =?UTF-8?q?#fix:=E5=A4=A7=E5=90=8C=E4=BA=A7=E7=A7=91?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=86=85=E5=AE=B9=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/common/utils/DateUtil.java | 12 +++- .../com/lyms/platform/query/PatientsQuery.java | 35 ++++++++-- .../web/controller/PatientServiceController.java | 25 ++++++- .../operate/web/facade/BookbuildingFacade.java | 47 ++++++++++++- .../operate/web/facade/PatientServiceFacade.java | 76 +++++++++++++++++++++- .../resources/spring/applicationContext-quartz.xml | 20 +++++- 6 files changed, 201 insertions(+), 14 deletions(-) diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java index 44f1601..107ae68 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java @@ -1975,7 +1975,17 @@ public class DateUtil { Date time = DateUtil.addDay(DateUtil.parseYMD(bookbuildingDate), -day); return time; } - + /** + * 对日期的【天】进行加/减 + * + * @param date 日期 + * @param days 天数,负数为减 + * @return 加/减几天后的日期 + */ + public static Date addDateDays(Date date, int days) { + DateTime dateTime = new DateTime(date); + return dateTime.plusDays(days).toDate(); + } public static void main(String[] args) { String currentDueDate ="35周2天"; String []array= currentDueDate.split("周"); diff --git a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java index 1dbed34..3ab6efb 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java @@ -9,10 +9,7 @@ import com.lyms.platform.common.utils.StringUtils; import org.apache.commons.collections.CollectionUtils; import org.springframework.data.mongodb.core.query.Criteria; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; /** * 产妇模型定义 @@ -429,6 +426,26 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { private String currentAreaId; private Integer isComplete; + private String serviceTime; + + private Map mapTime; + + public String getServiceTime() { + return serviceTime; + } + + public void setServiceTime(String serviceTime) { + this.serviceTime = serviceTime; + } + + public Map getMapTime() { + return mapTime; + } + + public void setMapTime(Map mapTime) { + this.mapTime = mapTime; + } + public String getBooksuifangDoctor() { return booksuifangDoctor; } @@ -1373,6 +1390,16 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { c1 = Criteria.where("bookbuildingDate").lte(bookbuildingDateEnd); } } + + if (StringUtils.isNotEmpty(serviceTime)){ + MongoCondition mongoCondition = new MongoCondition("bookbuildingDate",mapTime.get("seven"),MongoOper.IS); + MongoCondition condition2 = new MongoCondition("bookbuildingDate",mapTime.get("fourteen"),MongoOper.IS); + MongoCondition condition3 = new MongoCondition("bookbuildingDate",mapTime.get("twenty"),MongoOper.IS); + MongoCondition condition4 = new MongoCondition("bookbuildingDate",mapTime.get("twentyEight"),MongoOper.IS); + condition=condition.orCondition(new MongoCondition[]{mongoCondition, condition2,condition3,condition4}); + } + + if (null != gteModified && null != gteCreated) { MongoCondition mongoCondition = new MongoCondition("modified", gteModified, MongoOper.GTE); MongoCondition condition2 = new MongoCondition("created", gteCreated, MongoOper.GTE); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientServiceController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientServiceController.java index 00fd9e4..defb501 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientServiceController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientServiceController.java @@ -152,11 +152,12 @@ public class PatientServiceController extends BaseController { patientsQuery.setCardNo(yxzhVO.getIdno()); patientsQuery.setName(yxzhVO.getName()); patientsQuery.setYn(YnEnums.YES.getId()); - patientsQuery.setType(1); + //patientsQuery.setType(1); List patientsList = patientsService.queryPatient(patientsQuery); if(CollectionUtils.isEmpty(patientsList)){ baseResponse.setErrorcode(ErrorCodeConstants.DATA_EXIST); baseResponse.setErrormsg("档案信息不存在,请核实"); + System.out.println("档案信息不存在,请核实"); return baseResponse; } Patients patients = patientsList.get(0); @@ -164,6 +165,7 @@ public class PatientServiceController extends BaseController { String bookbuildingDoctor = patients.getBookbuildingDoctor(); //续期,增加 if(yxzhVO.getRenew() == 1){ + System.out.println("111111111111111111111111"); //1孕妇 2儿童 3 产妇 PatientServiceQuery patientServiceQuery = new PatientServiceQuery(); List patientServices=new ArrayList<>(); @@ -196,6 +198,19 @@ public class PatientServiceController extends BaseController { baseResponse = patientServiceFacade.updatePatientService(ps,Integer.valueOf(bookbuildingDoctor)); } + patientServiceQuery.setSerType(2); + patientServices = patientServiceService.queryPatientService(patientServiceQuery); + if(CollectionUtils.isNotEmpty(patientServices)){ + PatientService patientService = patientServices.get(0); + PatientService ps = new PatientService(); + ps.setId(patientService.getId()); + ps.setParentid(patientService.getParentid()); + ps.setSerStatus(1); + ps.setServiceWeek(yxzhVO.getWeeks()); + ps.setSerType(2); + baseResponse = patientServiceFacade.updatePatientService(ps,Integer.valueOf(bookbuildingDoctor)); + + } }else if (patients.getType()==3){ patientServiceQuery.setPerType(3); patientServiceQuery.setSerType(20); @@ -209,11 +224,11 @@ public class PatientServiceController extends BaseController { ps.setServiceWeek(yxzhVO.getWeeks()); ps.setSerType(20); baseResponse = patientServiceFacade.updatePatientService(ps,Integer.valueOf(bookbuildingDoctor)); - } } return baseResponse; }else{ + System.out.println("2222222"); List> list = new ArrayList<>(); PatientService ps = new PatientService(); ps.setSerStatus(1); @@ -222,7 +237,7 @@ public class PatientServiceController extends BaseController { ps.setCreateDate(new Date()); //1孕妇 2儿童 3 产妇 if (patients.getType()==1){ - //开通围产、精准服务 + //开通围产、精准服务、体重 ps.setPerType(1); Map m1 = new HashMap<>(); m1.put("serType","1"); @@ -230,8 +245,12 @@ public class PatientServiceController extends BaseController { Map m2 = new HashMap<>(); m2.put("serType","6"); m2.put("serviceWeek",yxzhVO.getWeeks()+""); + Map m3 = new HashMap<>(); + m3.put("serType","2"); + m3.put("serviceWeek",yxzhVO.getWeeks()+""); list.add(m1); list.add(m2); + list.add(m3); }else if (patients.getType()==3){ //开通产后康复服务 ps.setPerType(3); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java index 25926e6..ba19047 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java @@ -35,6 +35,7 @@ import com.lyms.platform.permission.service.*; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; import org.apache.commons.collections.CollectionUtils; +import org.apache.tools.ant.util.DateUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -1352,8 +1353,50 @@ public class BookbuildingFacade { return ""; } - public static void main(String[] args) { - System.out.println( DateUtil.getyyyy_MM_dd(DateUtil.addDay(new Date(),0))+ " 16:30:00"); + /** + * 大同服务内容提醒 上午9点推送 + * 开通服务第1天、第7天、第14天、第21天、第28天去推送 + */ + public void serviceSync(){ + logger.info("serviceSync startup..."); + final String hospitalId = "2100002419"; + Date day=DateUtil.getYMDTime(); + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setHospitalId(hospitalId); + patientsQuery.setExtEnable(false); + patientsQuery.setBuildTypeNot(1); + patientsQuery.setYn(YnEnums.YES.getId()); + patientsQuery.setServiceType(ServiceTypeEnums.ADD_SERVICE.getId()); + patientsQuery.setServiceStatus(ServiceStatusEnums.ADD_OPEN.getId()); + Date seven= DateUtil.addDay(day,-7); + Date fourteen= DateUtil.addDay(day,-14); + Date twenty=DateUtil.addDay(day,-21); + Date twentyEight=DateUtil.addDay(day,-28); + Map params=new HashMap<>(); + params.put("seven",seven); + params.put("fourteen",fourteen); + params.put("twenty",twenty); + params.put("twentyEight",twentyEight); + patientsQuery.setServiceTime("1"); + patientsQuery.setMapTime(params); + final List patientList = patientsService.queryPatient(patientsQuery); + if (CollectionUtils.isNotEmpty(patientList)) { + logger.info("serviceSync Threading"); + new Thread(new Runnable() { + @Override + public void run() { + for (int i = 0, j = patientList.size(); i < j; i++) { + Patients patients = patientList.get(i); + try { + patientServiceFacade.sendServiceMsg(patients,SmsServiceEnums.FWKT.getId(),"您好,请点击此处查看开通服务内容详情。","大同市第一人民医院",patients.getType()); + } catch (Exception e) { + logger.error("weekSync InterruptedException," + e.getMessage()); + } + } + } + }).start(); + } + logger.info("serviceSync end..."); } /** diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java index fb3fa46..3106245 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java @@ -1,5 +1,6 @@ package com.lyms.platform.operate.web.facade; +import com.lyms.platform.beans.MsgRequest; import com.lyms.platform.biz.service.BabyService; import com.lyms.platform.biz.service.BasicConfigService; import com.lyms.platform.biz.service.CommonService; @@ -83,6 +84,8 @@ public class PatientServiceFacade { @Autowired private AreaCountFacade areaCountFacade; + @Autowired + private SmsConfigFacade smsConfigFacade; private static Logger logger = LoggerFactory.getLogger(PatientServiceFacade.class); @@ -442,6 +445,7 @@ public class PatientServiceFacade { List> serInfos = ps.getSerInfos(); if (CollectionUtils.isNotEmpty(serInfos)) { for (Map serInfo : serInfos) { + System.out.println(ps.toString()); //先根据孕妇id和开通服务类型、开通医生进行查询,如果已经开通过则开通失败 PatientServiceQuery patientQuery = new PatientServiceQuery(); patientQuery.setParentid(ps.getParentid()); @@ -551,14 +555,16 @@ public class PatientServiceFacade { } } else if (ps.getPerType() != null && ps.getPerType() == 1){//孕妇建档服务数据处理 if (PatientSerEnums.SerTypeEnums.yqjzzd.getId() == Integer.parseInt(serInfo.get("serType"))) {//孕期精准指导同步到建档 - + System.out.println("333333333333333333333"); Patients patient = new Patients(); patient.setServiceType(ServiceTypeEnums.ADD_SERVICE.getId()); patient.setServiceStatus(ServiceStatusEnums.ADD_OPEN.getId()); bookbuildingFacade.updatePatientSerById(ps.getParentid(), patient); + sendServiceMsg(patients,SmsServiceEnums.FWKT.getId(),"您好,请点击此处查看开通服务内容详情。","大同市第一人民医院",ServiceObjEnums.YUNOBJ.getId()); } else if (PatientSerEnums.SerTypeEnums.bzfw.getId().intValue() == Integer.parseInt(serInfo.get("serType"))) { + System.out.println("555555555555555555555555"); PatientServiceQuery query = new PatientServiceQuery(); query.setParentid(ps.getParentid()); query.setSerType(PatientSerEnums.SerTypeEnums.yqjzzd.getId()); @@ -573,12 +579,12 @@ public class PatientServiceFacade { } }else {//产妇建档服务数据处理 if (PatientSerEnums.SerTypeEnums.chkf.getId() == Integer.parseInt(serInfo.get("serType"))) {//产后康复同步到建档 - + System.out.println("66666666666666666"); Patients patient = new Patients(); patient.setServiceType(ServiceTypeEnums.ADD_MAT_DELIVER_SERVICE.getId()); patient.setServiceStatus(ServiceStatusEnums.STANDARD_OPEN.getId()); bookbuildingFacade.updatePatientSerById(ps.getParentid(), patient); - + sendServiceMsg(patients,SmsServiceEnums.FWKT.getId(),"您好,请点击此处查看开通服务内容详情。","大同市第一人民医院",ServiceObjEnums.CHANOBJ.getId()); } } @@ -591,6 +597,70 @@ public class PatientServiceFacade { baseResponse.setErrormsg("成功"); return baseResponse; } + //大同医院服务推送\短信 + public void sendServiceMsg(Patients patient, Integer subTypeId, String first, String keyWord1,Integer objType){ + System.out.println("333333333333333333333"); + if ("2100002419".equals(patient.getHospitalId())) { + try { + //Thread.sleep(5000); + logger.info("sendServiceMsg startup"); + List messages = new ArrayList<>(); + MsgRequest mr = new MsgRequest(); + mr.setPhone(patient.getPhone()); + mr.setMemberId(null); + mr.setTypeId(ProjectTypeEnums.YNXT.getId()); + mr.setStatus(SmsStatusEnums.WFS.getId()); + mr.setHospitalId(patient.getHospitalId()); + mr.setTempId(patient.getId()); + mr.setPatientId(patient.getId()); + mr.setSmsStatus(SmsStatusEnums.WFS.getId()); + mr.setServiceType(1); //判断发送类型 + mr.setFirst(first);// + mr.setObjType(objType); + mr.setSubTypeId(subTypeId); + mr.setKeyword1(keyWord1);// + //planTime 和 timeType为必填 否则推送中心会推送异常 + mr.setTimeType(SmsTimeTypeEnums.ONTIME.getId()); + mr.setPlanTime(DateUtil.getyyyy_MM_dd_hms(new Date())); + mr.setKeyword2("产科"); + mr.setRemark(patient.getUsername()); + mr.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date())); + mr.setWxTempId(WxTempleteIdEnums.YUX_XUE_KE_CHEN_FB.getId()); + messages.add(mr); + String title = "服务提醒短信"; + String messageContent = "【大同市第一人民医院】" + "欢迎加入我院健康咨询服务:请微信-添加朋友-公众号-搜索“美生孕育”关注;点击开通成功提醒,手机号获取验证码成功登录宝贝孕程小程序。请确保登录成功并持续关注“美生孕育”公众号,正常接收产检提醒,享受个性化指导文章推送、孕期随访及营养指导等服务。"; + MsgRequest request = new MsgRequest(); + //1 推送服务, 2 推送和短信服务,3短信服务 + request.setServiceType(3); + //短信发送状态 + request.setSmsStatus(SmsStatusEnums.WFS.getId()); + //平台ID + request.setTypeId(ProjectTypeEnums.YNXT.getId()); + //服务对象 1孕妇 2儿童 3产妇 + request.setObjType(1); + request.setPhone(patient.getPhone()); + request.setPlanTime(DateUtil.getyyyy_MM_dd_hms(new Date())); + request.setSubTypeId(SmsServiceEnums.DXFW.getId()); + request.setStatus(MsgStatusEnums.NO_SEND.getId()); + request.setTimeType(SmsTimeTypeEnums.ONTIME.getId()); + request.setHospitalId("2100002419"); + request.setPatientId(patient.getId()); + request.setTempId(patient.getId()); + mr.setWxTempId(WxTempleteIdEnums.YUX_XUE_KE_CHEN_FB.getId()); + request.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date())); + request.setFirst(messageContent); + request.setKeyword1(title); + request.setKeyword2(DateUtil.getyyyy_MM_dd(DateUtil.addDay(new Date(),0))); + messages.add(request); + smsConfigFacade.saveMsg(messages, patient.getHospitalId()); + } catch (Exception e) { + logger.error("sendServiceMsg Exception " + e); + } + + logger.info("sendServiceMsg end"); + } + } + public void setServiceRecordAdd(PatientService pser, Patients patients) { Date currentDate = new Date(); 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 fecfabf..2592596 100644 --- a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml +++ b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml @@ -720,6 +720,22 @@ + + + + + + + + + + + + + + + + @@ -790,7 +806,9 @@ - + + + -- 1.8.3.1