diff --git a/platform-common/src/main/java/com/lyms/platform/common/enums/WxTempleteIdEnums.java b/platform-common/src/main/java/com/lyms/platform/common/enums/WxTempleteIdEnums.java index 225ba67..a9bbfc5 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/enums/WxTempleteIdEnums.java +++ b/platform-common/src/main/java/com/lyms/platform/common/enums/WxTempleteIdEnums.java @@ -18,6 +18,9 @@ public enum WxTempleteIdEnums { CHAN_YI_BAN_ZHI_DAO("H2_ucLqVEbsZAv-EZcmUDpD1Zul5NGqMoJktHT0u4gw","产妇一般指导"),//产妇 BABY_YI_BAN_ZHI_DAO("dqvyESU8UXx1V3cIMQDqj4PLxI6T9-sgihQcs3ZGL9E","儿童一般指导"),//儿童 YUN_XUE_KE_CHEN_TX("UEwcdz3lJL3NR38KRqN6yTO4nUvRgym5mlXl4jXQBik","孕妇学校课程提醒"),//孕妇学校课程提醒 + + YUN_XUE_JSTX("","孕妇学校课程结束提醒"),//孕妇学校课程结束提醒 + FU_WU_DING_GOU_TX("UEwcdz3lJL3NR38KRqN6yTO4nUvRgym5mlXl4jXQBik","服务订购提醒"),//服务订购提醒和收费成功后的高危提醒 YI_SHENG_ZHI_DAO("OggqiSHitLkCgSLCaCH72reCZzaw5NyG8iO56InQiQg","医生指导"),//指导 // WEI_JI_ZHI_DAO("fNkkLSp_gS-YWvzji6gwgdTddl4XBlk8SNP7FRksrfk","危急值提醒");//危急值提醒 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java index e6193e7..c0d3bcb 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java @@ -1,28 +1,37 @@ package com.lyms.platform.operate.web.controller; +import com.lyms.platform.biz.service.AntenatalExaminationService; +import com.lyms.platform.biz.service.BasicConfigService; +import com.lyms.platform.biz.service.PatientsService; import com.lyms.platform.common.annotation.TokenRequired; import com.lyms.platform.common.base.BaseController; import com.lyms.platform.common.base.LoginContext; import com.lyms.platform.common.constants.ErrorCodeConstants; +import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.BeanUtils; +import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.ExcelUtil; import com.lyms.platform.common.utils.ExceptionUtils; +import com.lyms.platform.operate.web.facade.AntenatalExaminationFacade; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.facade.MatDeliverFacade; import com.lyms.platform.operate.web.request.ChildbirthManagerRequest; import com.lyms.platform.operate.web.request.MatDeliverAddRequest; import com.lyms.platform.operate.web.request.MatDeliverQueryRequest; import com.lyms.platform.operate.web.request.NewBabyManagerRequest; -import com.lyms.platform.operate.web.result.ChildbirthManagerQueryModel; -import com.lyms.platform.operate.web.result.ChildbirthManagerResult; -import com.lyms.platform.operate.web.result.NewBabyManagerQueryModel; -import com.lyms.platform.operate.web.result.NewBabyManagerResult; +import com.lyms.platform.operate.web.result.*; +import com.lyms.platform.operate.web.utils.CollectionUtils; +import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.permission.model.Organization; +import com.lyms.platform.permission.model.PatientService; import com.lyms.platform.permission.service.CouponService; import com.lyms.platform.permission.service.OrganizationService; +import com.lyms.platform.pojo.AntExChuModel; +import com.lyms.platform.pojo.Patients; +import com.lyms.platform.query.AntExChuQuery; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -51,6 +60,18 @@ public class MatDeliverController extends BaseController{ @Autowired private OrganizationService organizationService; + @Autowired + private PatientsService patientsService; + + @Autowired + private BasicConfigService basicConfigService; + + @Autowired + private AntenatalExaminationFacade antenatalExaminationFacade; + + @Autowired + private AntenatalExaminationService antenatalExaminationService; + /** * 查询分娩记录 * @@ -329,6 +350,56 @@ public class MatDeliverController extends BaseController{ map.put(key, "-"); } } + +// Patients patients = patientsService.findOnePatientById(newBabyManagerQueryModel.getPatientId()); +// if (patients != null) +// { +// map.put("age", DateUtil.getAge(patients.getBirth())); +// +// //居住地 +// String liveAddress = CommonsHelper.getResidence(patients.getProvinceId(), patients.getCityId(), +// patients.getAreaId(), patients.getStreetId(), patients.getAddress(), basicConfigService); +// +// map.put("addressRegister",liveAddress); +// +// //户籍地址 +// String addressRegister = CommonsHelper.getResidence(patients.getProvinceRegisterId(), patients.getCityRegisterId(), +// patients.getAreaRegisterId(), patients.getStreetRegisterId(), patients.getAddressRegister(), basicConfigService); +// +// map.put("addressRegister", addressRegister); +// +// //产后休养地 +// String postRest = CommonsHelper.getResidence(patients.getProvincePostRestId(), patients.getCityPostRestId(), +// patients.getAreaPostRestId(), patients.getStreetPostRestId(), patients.getAddressPostRest(), basicConfigService); +// map.put("postRest", postRest); +// +// HighScoreResult highScoreResult = antenatalExaminationFacade.findLastRisk(patients.getPid(), false); +// //妊娠期高危因素 +// map.put("risk", highScoreResult.gethighRiskStr()); +// +// map.put("husbandName", patients.getHusbandName() == null ? "" : patients.getHusbandName()); +// map.put("husbandName", patients.getHusbandPhone() == null ? "" : patients.getHusbandPhone()); +// +// AntExChuQuery antExChuQuery = new AntExChuQuery(); +// antExChuQuery.setYn(YnEnums.YES.getId()); +// antExChuQuery.setParentId(patients.getId()); +// List antExChuModels = antenatalExaminationService.queryAntExChu(antExChuQuery); +// if (CollectionUtils.isNotEmpty(antExChuModels)) +// { +// AntExChuModel antExChuModel = antExChuModels.get(0); +// map.put("yc",antExChuModel.getPregnancyTimes() == null ? "" : antExChuModel.getPregnancyTimes()); +// map.put("cc",antExChuModel.getProdTime() == null ? "" : antExChuModel.getProdTime()); +// map.put("ts",antExChuModel.getTireNumber1() == null ? "" : antExChuModel.getTireNumber1()); +// } +// +// if (StringUtils.isNotEmpty(patients.getFmHospital())) +// { +// Organization organization = organizationService.getOrganization(Integer.parseInt(patients.getFmHospital())); +// map.put("fmHospital",organization != null ? organization.getName() : ""); +// } +// map.put("husbandName", patients.getHusbandPhone() == null ? "" : patients.getHusbandPhone()); +// } + list.add(map); } Map header = new LinkedHashMap<>(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CourseFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CourseFacade.java index ccc9f74..b597c73 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CourseFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CourseFacade.java @@ -1,14 +1,12 @@ package com.lyms.platform.operate.web.facade; +import com.lyms.platform.beans.MsgRequest; import com.lyms.platform.biz.service.CourseService; import com.lyms.platform.biz.service.CourseTypeService; import com.lyms.platform.biz.service.PatientCourseService; import com.lyms.platform.common.constants.ErrorCodeConstants; -import com.lyms.platform.common.enums.CourseStatusEnums; -import com.lyms.platform.common.enums.OptActionEnums; -import com.lyms.platform.common.enums.SmsServiceEnums; -import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.enums.*; import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; @@ -22,10 +20,7 @@ import com.lyms.platform.operate.web.utils.MessageCenterService; import com.lyms.platform.operate.web.worker.CourseCountWorker; import com.lyms.platform.permission.model.Users; import com.lyms.platform.permission.service.UsersService; -import com.lyms.platform.pojo.BabyModel; -import com.lyms.platform.pojo.CourseModel; -import com.lyms.platform.pojo.CourseTypeModel; -import com.lyms.platform.pojo.PatientCourseModel; +import com.lyms.platform.pojo.*; import com.lyms.platform.query.CourseQuery; import com.lyms.platform.query.CourseTypeQuery; import com.lyms.platform.query.PatientCourseQuery; @@ -68,6 +63,9 @@ public class CourseFacade { private OperateLogFacade operateLogFacade; @Autowired + private SmsConfigFacade smsConfigFacade; + + @Autowired @Qualifier("commonThreadPool") private ThreadPoolTaskExecutor commonThreadPool; @@ -351,6 +349,27 @@ public class CourseFacade { { model.setStatus(CourseStatusEnums.YJS.getId()); courseService.updateCourse(model); + } + } + } + + + /** + * 线上环境生成结束推送 + */ + public void handCoureseEndOnline() + { + CourseQuery query = new CourseQuery(); + query.setYn(YnEnums.YES.getId()); + query.setStatus(CourseStatusEnums.YFB.getId()); + query.setCourseEndTime(new Date()); + List courseModels = courseService.queryCourseList(query); + if (CollectionUtils.isNotEmpty(courseModels)) + { + for (CourseModel model : courseModels) + { + model.setStatus(CourseStatusEnums.YJS.getId()); + courseService.updateCourse(model); PatientCourseQuery patientCourseQuery = new PatientCourseQuery(); patientCourseQuery.setYn(YnEnums.YES.getId()); @@ -360,15 +379,76 @@ public class CourseFacade { List patientCourseModels = patientCourseService.queryPatientCourseList(patientCourseQuery); if (CollectionUtils.isNotEmpty(patientCourseModels)) { + CourseQuery query1 = new CourseQuery(); for (PatientCourseModel patientCourseModel : patientCourseModels) { - + query1.setYn(YnEnums.YES.getId()); + query1.setId(patientCourseModel.getCourseId()); + List courseModels1 = courseService.queryCourseList(query); + String speaker = ""; + if (CollectionUtils.isNotEmpty(courseModels1)) + { + speaker = courseModels1.get(0).getCourseSpeaker(); + if (speaker != null && StringUtils.isNumeric(speaker)) + { + Users user = usersService.getUsers(Integer.parseInt(speaker)); + if (user != null) + { + speaker = user.getName(); + } + } + } + + String courseName = CollectionUtils.isNotEmpty(courseModels1) ? courseModels1.get(0).getCourseName() : ""; + saveMsg(patientCourseModel.getHospitalId(),patientCourseModel.getPhone(),patientCourseModel.getPhone(),courseName,speaker,patientCourseModel.getId()); } } } } } + private void saveMsg(String hospitalId,String phone,String patientId,String courseName,String doctorName,String patientCourseId) + { + //判断医院是否启动和对应的服务项是否启用 + SmsConfigModel configModel = new SmsConfigModel(); + // 1 推送服务, 2 推送和短信服务 3短信服务, + int startType = smsConfigFacade.hospitalIsStart(hospitalId, configModel, SmsServiceEnums.YFXXKCTX.getId()); + if (startType == 0) { + return; + } + + //短信前缀 + String messagePrefix = configModel.getHospitalPrefix(); + List messages = new ArrayList<>(); + MsgRequest mr = new MsgRequest(); + + String content = "【" + messagePrefix + "】本次孕妇学校课程已结束,请对本次课程内容和讲解医生进行评价。"; + mr.setFirst(content); + mr.setObjType(ServiceObjEnums.YUNOBJ.getId()); + mr.setPhone(phone); + mr.setTypeId(ProjectTypeEnums.YNXT.getId()); + mr.setPlanTime(DateUtil.getyyyy_MM_dd_hms(new Date())); + mr.setSubTypeId(SmsServiceEnums.YFXXKCTX.getId()); + mr.setStatus(SmsStatusEnums.WFS.getId()); + mr.setTimeType(SmsTimeTypeEnums.ONTIME.getId()); + + mr.setHospitalId(hospitalId); + mr.setTempId(patientCourseId); + mr.setPatientId(patientId); + + mr.setKeyword1(courseName); + mr.setKeyword2(doctorName); + mr.setRemark(""); + mr.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date())); + mr.setSmsStatus(SmsStatusEnums.WFS.getId()); + mr.setServiceType(startType); + mr.setWxTempId(WxTempleteIdEnums.YUN_XUE_JSTX.getId()); + messages.add(mr); + if (CollectionUtils.isNotEmpty(messages)) { + smsConfigFacade.saveMsg(messages, hospitalId); + } + } + public BaseResponse validateCourseName(String courseName, Integer userId,String courseId) { String hospitalId = autoMatchFacade.getHospitalId(userId);