From 0dabfebd005c93a70747d52352bd9e079f370f63 Mon Sep 17 00:00:00 2001 From: yangfei Date: Sat, 9 Jun 2018 11:38:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=95=E6=9C=9F=E4=BA=A7=E6=A3=80=E6=8F=90?= =?UTF-8?q?=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/common/enums/WxTempleteIdEnums.java | 2 +- .../lyms/platform/common/utils/StringUtils.java | 7 + .../lyms/platform/common/utils/SystemConfig.java | 2 + .../main/java/com/lyms/platform/pojo/Patients.java | 160 +++++----- .../com/lyms/platform/query/AntExRecordQuery.java | 40 +-- .../com/lyms/platform/query/SmsTemplateQuery.java | 16 +- .../operate/web/facade/AntExRecordFacade.java | 2 +- .../web/facade/AntenatalExaminationFacade.java | 329 +++++++++++++++++---- 8 files changed, 395 insertions(+), 163 deletions(-) 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 7c489b4..61522e4 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 @@ -22,7 +22,7 @@ public enum WxTempleteIdEnums { CHAN_YI_BAN_ZHI_DAO("H2_ucLqVEbsZAv-EZcmUDpD1Zul5NGqMoJktHT0u4gw","产妇一般指导"),//产妇 BABY_YI_BAN_ZHI_DAO("dqvyESU8UXx1V3cIMQDqj4PLxI6T9-sgihQcs3ZGL9E","儿童一般指导"),//儿童 YUN_XUE_KE_CHEN_TX("","孕妇学校课程提醒"),//孕妇学校课程提醒 - + FU_WU_DING_GOU_TX("UEwcdz3lJL3NR38KRqN6yTO4nUvRgym5mlXl4jXQBik","服务订购提醒"),//孕妇学校课程提醒 YI_SHENG_ZHI_DAO("OggqiSHitLkCgSLCaCH72reCZzaw5NyG8iO56InQiQg","医生指导");//指导 // WEI_JI_ZHI_DAO("fNkkLSp_gS-YWvzji6gwgdTddl4XBlk8SNP7FRksrfk","危急值提醒");//危急值提醒 diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java b/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java index f1dd7a7..03c2ab9 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java @@ -288,6 +288,13 @@ public final class StringUtils { return repalceStr; } + public static String replaceNameRisk(String name, String risk,String repalceStr) { + if (StringUtils.isNotEmpty(repalceStr)) { + return repalceStr.replace("{{姓名}}", name).replace("{{高危因素}}", risk); + } + return repalceStr; + } + public static String replaceBaby(String name, Date birth, String repalceStr) { if (StringUtils.isNotEmpty(repalceStr)) { String date = DateUtil.getyyyy_MM_dd(birth); diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/SystemConfig.java b/platform-common/src/main/java/com/lyms/platform/common/utils/SystemConfig.java index e9add50..4876fc8 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/SystemConfig.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/SystemConfig.java @@ -37,6 +37,8 @@ public class SystemConfig { public static final String JIWANGSHI_ID="d0b47bdc-c516-4f86-95fa-176a33ca73bf"; //高危id public static final String HIGH_RISK_ID="fb43fd5a-b153-4cb9-9180-c46f5612ba43"; + //儿童高危id + public static final String BABY_HIGH_RISK_ID="5b18f8a7422b03d4ad2bf913"; //血型 public static final String XUEXING ="5769eef90cf22c315757741f"; diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java b/platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java index 7901887..2046869 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java @@ -19,13 +19,6 @@ public class Patients extends BaseModel { private String shortCode; - public String getShortCode() { - return shortCode; - } - - public void setShortCode(String shortCode) { - this.shortCode = shortCode; - } //筛查结果 private List screenResult; // 纠正末次月经 (和末次月经反起存) @@ -44,85 +37,12 @@ public class Patients extends BaseModel { //是否发放母子保健手册 private String sendCareMan; - public String getSendCareMan() { - return sendCareMan; - } - - public void setSendCareMan(String sendCareMan) { - this.sendCareMan = sendCareMan; - } - - public Boolean getReqHusband() { - return reqHusband; - } - - public void setReqHusband(Boolean reqHusband) { - this.reqHusband = reqHusband; - } - - public Date getFuckLastMens() { - return fuckLastMens; - } - - public String getLastMenstrualPeriodBasisOther() { - return lastMenstrualPeriodBasisOther; - } - - public void setLastMenstrualPeriodBasisOther(String lastMenstrualPeriodBasisOther) { - this.lastMenstrualPeriodBasisOther = lastMenstrualPeriodBasisOther; - } - - public void setFuckLastMens(Date fuckLastMens) { - this.fuckLastMens = fuckLastMens; - } - - public String getLastMenstrualPeriodBasis() { - return lastMenstrualPeriodBasis; - } - - public void setLastMenstrualPeriodBasis(String lastMenstrualPeriodBasis) { - this.lastMenstrualPeriodBasis = lastMenstrualPeriodBasis; - } - - public String getLastMenstrualPeriodBasisDoctorId() { - return lastMenstrualPeriodBasisDoctorId; - } - - public void setLastMenstrualPeriodBasisDoctorId(String lastMenstrualPeriodBasisDoctorId) { - this.lastMenstrualPeriodBasisDoctorId = lastMenstrualPeriodBasisDoctorId; - } - - public String getLastMenstrualPeriodBasisDate() { - return lastMenstrualPeriodBasisDate; - } - - public void setLastMenstrualPeriodBasisDate(String lastMenstrualPeriodBasisDate) { - this.lastMenstrualPeriodBasisDate = lastMenstrualPeriodBasisDate; - } - - // 月经周期开始天数 private String mensStartDay; // 月经周期开始天数 private String mensEndDay; - public String getMensEndDay() { - return mensEndDay; - } - - public String getMensStartDay() { - return mensStartDay; - } - - public void setMensEndDay(String mensEndDay) { - this.mensEndDay = mensEndDay; - } - - public void setMensStartDay(String mensStartDay) { - this.mensStartDay = mensStartDay; - } - /** * 身份证号码 */ @@ -363,6 +283,86 @@ public class Patients extends BaseModel { //面部信息 private String face; + public String getShortCode() { + return shortCode; + } + + public void setShortCode(String shortCode) { + this.shortCode = shortCode; + } + + public String getMensEndDay() { + return mensEndDay; + } + + public String getMensStartDay() { + return mensStartDay; + } + + public void setMensEndDay(String mensEndDay) { + this.mensEndDay = mensEndDay; + } + + public void setMensStartDay(String mensStartDay) { + this.mensStartDay = mensStartDay; + } + + public String getSendCareMan() { + return sendCareMan; + } + + public void setSendCareMan(String sendCareMan) { + this.sendCareMan = sendCareMan; + } + + public Boolean getReqHusband() { + return reqHusband; + } + + public void setReqHusband(Boolean reqHusband) { + this.reqHusband = reqHusband; + } + + public Date getFuckLastMens() { + return fuckLastMens; + } + + public String getLastMenstrualPeriodBasisOther() { + return lastMenstrualPeriodBasisOther; + } + + public void setLastMenstrualPeriodBasisOther(String lastMenstrualPeriodBasisOther) { + this.lastMenstrualPeriodBasisOther = lastMenstrualPeriodBasisOther; + } + + public void setFuckLastMens(Date fuckLastMens) { + this.fuckLastMens = fuckLastMens; + } + + public String getLastMenstrualPeriodBasis() { + return lastMenstrualPeriodBasis; + } + + public void setLastMenstrualPeriodBasis(String lastMenstrualPeriodBasis) { + this.lastMenstrualPeriodBasis = lastMenstrualPeriodBasis; + } + + public String getLastMenstrualPeriodBasisDoctorId() { + return lastMenstrualPeriodBasisDoctorId; + } + + public void setLastMenstrualPeriodBasisDoctorId(String lastMenstrualPeriodBasisDoctorId) { + this.lastMenstrualPeriodBasisDoctorId = lastMenstrualPeriodBasisDoctorId; + } + + public String getLastMenstrualPeriodBasisDate() { + return lastMenstrualPeriodBasisDate; + } + + public void setLastMenstrualPeriodBasisDate(String lastMenstrualPeriodBasisDate) { + this.lastMenstrualPeriodBasisDate = lastMenstrualPeriodBasisDate; + } + public String getFace() { return face; } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java index 1d74d1a..8778648 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java @@ -9,7 +9,6 @@ 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.Date; import java.util.List; @@ -44,6 +43,25 @@ public class AntExRecordQuery extends BaseQuery implements IConvertToNativeQuery private Integer first; // 1否 2 是,是否当前医院第一次初诊 德州需求 + + + //生日查询 + private Date birthEnd; + private Date birthStart; + + //户籍地 + private String provinceRegisterId; + private String cityRegisterId; + private String areaRegisterId; + private String streetRegisterId; + + //居住地 + private String provinceId; + private String cityId; + private String areaId; + private String streetId; + private Integer type; + public Integer getFirst() { return first; } @@ -84,23 +102,6 @@ public class AntExRecordQuery extends BaseQuery implements IConvertToNativeQuery this.cDueWeekEnd = cDueWeekEnd; } - //生日查询 - private Date birthEnd; - private Date birthStart; - - //户籍地 - private String provinceRegisterId; - private String cityRegisterId; - private String areaRegisterId; - private String streetRegisterId; - - //居住地 - private String provinceId; - private String cityId; - private String areaId; - private String streetId; - private Integer type; - public Integer getType() { return type; } @@ -474,8 +475,7 @@ public class AntExRecordQuery extends BaseQuery implements IConvertToNativeQuery } if(null!=rFactorList &&!rFactorList.isEmpty()){ condition = condition.and("hRisk", rFactorList, MongoOper.IN); - }else - if (StringUtils.isNotEmpty(rFactor)) { + }else if (StringUtils.isNotEmpty(rFactor)) { condition = condition.and("hRisk", rFactor, MongoOper.IN); } if (null != status) { diff --git a/platform-dal/src/main/java/com/lyms/platform/query/SmsTemplateQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/SmsTemplateQuery.java index 8df316f..3f42824 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/SmsTemplateQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/SmsTemplateQuery.java @@ -7,8 +7,6 @@ import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.dao.operator.MongoQuery; import org.bson.types.ObjectId; -import java.util.Date; - /** * 短信模板配置查询对象 * @@ -66,6 +64,9 @@ public class SmsTemplateQuery extends BaseQuery implements IConvertToNativeQuery //模板类型 0推送 1短信 private Integer templateType; + //健康类型 0健康 1高危 + private Integer healthType; + @Override public MongoQuery convertToQuery() { @@ -77,6 +78,9 @@ public class SmsTemplateQuery extends BaseQuery implements IConvertToNativeQuery if (null != id) { condition = condition.and("id", new ObjectId(id), MongoOper.IS); } + if (null != healthType) { + condition = condition.and("healthType", healthType, MongoOper.IS); + } if (-1 != yn) { condition = condition.and("yn", yn, MongoOper.IS); } @@ -117,6 +121,14 @@ public class SmsTemplateQuery extends BaseQuery implements IConvertToNativeQuery return condition.toMongoQuery(); } + public Integer getHealthType() { + return healthType; + } + + public void setHealthType(Integer healthType) { + this.healthType = healthType; + } + public Integer getTemplateType() { return templateType; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java index 834b7ff..a439a4d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java @@ -88,7 +88,7 @@ public class AntExRecordFacade { // antExRecordQuery.setName(antExManagerQueryRequest.getName()); // antExRecordQuery.setPhone(antExManagerQueryRequest.getPhone()); antExRecordQuery.setrFactor(antExManagerQueryRequest.getRiskFactorId()); - antExRecordQuery.setrFactorList(com.lyms.platform.common.utils.StringUtils.covertToList(antExManagerQueryRequest.getRiskFactorId(), String.class)); + antExRecordQuery.setrFactorList(StringUtils.covertToList(antExManagerQueryRequest.getRiskFactorId(), String.class)); antExRecordQuery.setLevelId(antExManagerQueryRequest.getLevel()); antExRecordQuery.setBarCode(antExManagerQueryRequest.getBarCode()); // antExRecordQuery.setCardNo(antExManagerQueryRequest.getCardNo()); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java index 703548d..0143478 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java @@ -1,6 +1,7 @@ package com.lyms.platform.operate.web.facade; import com.lyms.hospitalapi.dzfy.DzfyHisService; +import com.lyms.platform.beans.MsgRequest; import com.lyms.platform.biz.SequenceConstant; import com.lyms.platform.biz.service.*; import com.lyms.platform.common.constants.ErrorCodeConstants; @@ -121,11 +122,12 @@ public class AntenatalExaminationFacade { @Autowired private MeasureInfoFacade measureInfoFacade; - + @Autowired + private SmsTemplateService smsTemplateService; @Autowired private SieveFacade sieveFacade; - - + @Autowired + private SmsConfigFacade smsConfigFacade; @Autowired private DiagnoseConfigService diagnoseConfigService; @@ -331,6 +333,12 @@ public class AntenatalExaminationFacade { return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); } + /** + * 复诊数据自动流转 + * + * @param antExamModel + * @param hospitalId + */ public void updateAutoData(final AntenatalExaminationModel antExamModel, final String hospitalId) { commonThreadPool.execute(new Runnable() { @Override @@ -387,6 +395,7 @@ public class AntenatalExaminationFacade { }); } + //修改转诊单/最后一次产检医生,高危及诊断信息 public void updateApplyOrder(final AntenatalExaminationModel antenatalExamination, final String parentId) { Patients patients = patientsService.findOnePatientById(parentId); @@ -431,7 +440,7 @@ public class AntenatalExaminationFacade { model1.setrLevel(rlevel); try { //风险名称 - model1.setrRisk(queryRiskName(patients.getRiskFactorId())); + model1.setrRisk(queryRiskListName(patients.getRiskFactorId())); //高危集合ID model1.setRiskFactorId(patients.getRiskFactorId()); System.out.println("待修改转诊信息:" + model1.toString()); @@ -448,7 +457,7 @@ public class AntenatalExaminationFacade { } /** - * 增加或修改产前检查记录(初诊) + * 增加或修改产检记录(初诊) * * @param excAddRequest * @return @@ -483,28 +492,28 @@ public class AntenatalExaminationFacade { if (StringUtils.isNotEmpty(antExChuModel.getId()) && StringUtils.isNotEmpty(antExChuModel.getParentId())) { antenatalExaminationService.updateAntExChu(antExChuModel, antExChuModel.getId()); antenatalExaminationService.updatePatientAbortion(antExChuModel.getId(), antExChuModel.getAbortionZR(), antExChuModel.getAbortionRG()); - commonThreadPool.execute(new Runnable() { - @Override - public void run() { - Patients patients = patientsService.findOnePatientById(excAddRequest.getParentId()); - patients.setLastCheckEmployeeId(excAddRequest.getProdDoctor()); - - if (StringUtils.isNotEmpty(patients.getEnable()) && "0".equals(patients.getEnable())) { - patients.setEnable("1"); - } - patientsService.updateNextCheckTime(excAddRequest.getNextCheckTime(), patients.getId()); - patientsService.updatePatient(patients); - //修改的时候设置最新的高危/冗余筛查结果和下次产检预约时间 - updateLastRisk(patients.getId()); - //修改本院最后一次定义高危 - updateLastRhTime(patients.getId(), hospitalId); - setLashCTimes(excAddRequest.getParentId()); - //冗余到产检表 - antenatalExaminationService.updateAntExRecord(excAddRequest.getId(), 1); - //修改数据 - syncMaster(excAddRequest.getParentId(), excAddRequest.getNextCheckTime()); - } - }); + // commonThreadPool.execute(new Runnable() { + // @Override + // public void run() { + // Patients patients = patientsService.findOnePatientById(excAddRequest.getParentId()); + // + // if (StringUtils.isNotEmpty(patients.getEnable()) && "0".equals(patients.getEnable())) { + // patients.setEnable("1"); + // } + // patients.setLastCheckEmployeeId(excAddRequest.getProdDoctor()); + // patientsService.updatePatient(patients); + // patientsService.updateNextCheckTime(excAddRequest.getNextCheckTime(), patients.getId()); + // //修改的时候设置最新的高危/冗余筛查结果和下次产检预约时间 + // updateLastRisk(patients.getId()); + // //修改本院最后一次定义高危 + // updateLastRhTime(patients.getId(), hospitalId); + // setLashCTimes(excAddRequest.getParentId()); + // //冗余到产检表 + // antenatalExaminationService.updateAntExRecord(excAddRequest.getId(), 1); + // //修改数据 + // syncMaster(excAddRequest.getParentId(), excAddRequest.getNextCheckTime()); + // } + // }); AntExChuQuery antExChuQuery = new AntExChuQuery(); antExChuQuery.setYn(YnEnums.YES.getId()); antExChuQuery.setId(antExChuModel.getId()); @@ -517,7 +526,7 @@ public class AntenatalExaminationFacade { List data1 = antenatalExaminationService.queryAntExChu(antExChuQuery1); if (CollectionUtils.isEmpty(data1)) { - final Patients patients = patientsService.findOnePatientById(excAddRequest.getParentId()); + Patients patients = patientsService.findOnePatientById(excAddRequest.getParentId()); PatientsQuery patientsQuery = new PatientsQuery(); patientsQuery.setPid(patients.getPid()); patientsQuery.setYn(YnEnums.YES.getId()); @@ -542,27 +551,29 @@ public class AntenatalExaminationFacade { antExChuModel.setHospitalId(hospitalId); stopWatch.start("queryAntExChu"); antenatalExaminationService.addOneAntEx(antExChuModel); - - final String chuId = antExChuModel.getId(); - final String chuParentId = antExChuModel.getParentId(); - - commonThreadPool.execute(new Runnable() { - @Override - public void run() { - patients.setLastCheckEmployeeId(excAddRequest.getProdDoctor()); - patientsService.updatePatient(patients); - /** 把优惠券设置为已使用状态 */ - couponService.use(hospitalId, excAddRequest.getCouponCode(), userId, chuId); - //修改患者风险等级 - patientsService.updateNextCheckTime(excAddRequest.getNextCheckTime(), patients.getId()); - updateLastRisk(patients.getId()); - //修改本院最后一次定义高危 - updateLastRhTime(patients.getId(), hospitalId); - setLashCTimes(chuParentId); - antenatalExaminationService.updateAntExRecord(chuId, 1); - syncMaster(excAddRequest.getParentId(), excAddRequest.getNextCheckTime()); - } - }); + excAddRequest.setId(antExChuModel.getId()); + + // final String chuId = antExChuModel.getId(); + // final String chuParentId = antExChuModel.getParentId(); + + // commonThreadPool.execute(new Runnable() { + // @Override + // public void run() { + // Patients patients = patientsService.findOnePatientById(excAddRequest.getParentId()); + // patients.setLastCheckEmployeeId(excAddRequest.getProdDoctor()); + // patientsService.updatePatient(patients); + // /** 把优惠券设置为已使用状态 */ + // couponService.use(hospitalId, excAddRequest.getCouponCode(), userId, chuId); + // //修改患者风险等级 + // patientsService.updateNextCheckTime(excAddRequest.getNextCheckTime(), patients.getId()); + // updateLastRisk(patients.getId()); + // //修改本院最后一次定义高危 + // updateLastRhTime(patients.getId(), hospitalId); + // setLashCTimes(chuParentId); + // antenatalExaminationService.updateAntExRecord(chuId, 1); + // syncMaster(excAddRequest.getParentId(), excAddRequest.getNextCheckTime()); + // } + // }); operateLogFacade.addAddOptLog(userId, Integer.parseInt(hospitalId), antExChuModel, OptActionEnums.ADD.getId(), "添加初诊"); if (null != patients.getBuildType() && patients.getBuildType() == 3) { Patients patients1 = new Patients(); @@ -594,7 +605,7 @@ public class AntenatalExaminationFacade { } model.setrLevel(rlevel); try { - model.setrRisk(queryRiskName(patients.getRiskFactorId())); + model.setrRisk(queryRiskListName(patients.getRiskFactorId())); //高危集合ID model.setRiskFactorId(patients.getRiskFactorId()); } catch (Exception e) { @@ -622,17 +633,200 @@ public class AntenatalExaminationFacade { } } - //聊城东昌府医院初诊的身高更新到随心测 - if ("1000000116".equals(hospitalId) || "2100001305".equals(hospitalId)) { - measureInfoFacade.updateHeight(antExChuModel.getParentId(), hospitalId, antExChuModel.getHeight()); + //处理数据自动流转 + updateChuAutoData(excAddRequest, hospitalId, userId); + + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); + } + + /** + * 产检生成推送消息:只针对标准服务的用户 + * + */ + private void createSendMsg(Patients patient) { + + //判断医院是否启动和对应的服务项是否启用 + SmsConfigModel configModel = new SmsConfigModel(); + int startType = smsConfigFacade.hospitalIsStart(patient.getHospitalId(), configModel, SmsServiceEnums.FWDGTX.getId()); + if (startType == 0) { + return; + } + + + boolean isHightRisk = false; + if (patient.getRiskScore() != null) { + if (patient.getRiskScore() > 0) {//高危评分大于0 + isHightRisk = true; + } + } + + SmsTemplateQuery query = new SmsTemplateQuery(); + query.setYn(YnEnums.YES.getId()); + query.setStatus(1); + query.setHospitalId(patient.getHospitalId()); + query.setServiceObj(ServiceObjEnums.YUNOBJ.getId()); + + //健康类型 0健康 1高危 + if (isHightRisk) {//高危孕妇 + query.setHealthType(1); + }else{//健康 + query.setHealthType(0); } + List temps = smsTemplateService.querySmsTemplates(query); - //处理自定义高危状态为已使用状态 - highRiskFacade.dispHospHighRiskUse(antExChuModel.getOtherHighRisk()); - return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); + Integer serviceType = patient.getServiceType(); + Integer serviceStatus = patient.getServiceStatus(); + + //根据服务状态和服务类型获取可以发送的模板 + List sendList = smsConfigFacade.getSendTemplateByServiceStatus(temps, serviceType, serviceStatus); + + if (CollectionUtils.isNotEmpty(temps)) { + if (CollectionUtils.isNotEmpty(sendList)) { + //短信前缀 + String messagePrefix = smsConfigFacade.getMsgPrefix(configModel, patient.getLastCheckEmployeeId(), ServiceObjEnums.YUNOBJ.getId()); + for (SmsTemplateModel templateModel : sendList) { + if (templateModel != null && templateModel.getStatus() == 1) { + + //推送类型模板 + if (templateModel.getTemplateType() == null || templateModel.getTemplateType() == 0) { + //发送推送类模板建档 + if (startType == 3) { + continue; + } + } + //发送短信类模板建档 + else if (templateModel.getTemplateType() == 1 && startType == 1) { + continue; + } + + List messages = new ArrayList<>(); + MsgRequest mr = new MsgRequest(); + String content = ""; + if(isHightRisk){ + //风险名称 + String riskNmae = queryRiskNameStr(patient.getRiskFactorId()); + content = com.lyms.platform.common.utils.StringUtils.replaceNameRisk(patient.getUsername(), riskNmae, templateModel.getContent()); + }else{ + content = com.lyms.platform.common.utils.StringUtils.replaceName(patient.getUsername(), templateModel.getContent()); + } + + mr.setFirst("【" + messagePrefix + "】" + content); + mr.setObjType(ServiceObjEnums.YUNOBJ.getId()); + mr.setPhone(patient.getPhone()); + mr.setTimeType(SmsTimeTypeEnums.ONTIME.getId()); + mr.setTypeId(ProjectTypeEnums.YNXT.getId()); + mr.setPlanTime(DateUtil.getyyyy_MM_dd_hms(new Date())); + mr.setSubTypeId(SmsServiceEnums.FWDGTX.getId()); + mr.setStatus(SmsStatusEnums.WFS.getId()); + mr.setHospitalId(patient.getHospitalId()); + mr.setTempId(templateModel.getId()); + mr.setPatientId(patient.getId()); + mr.setSmsStatus(SmsStatusEnums.WFS.getId()); + mr.setServiceType((templateModel.getTemplateType() == null || templateModel.getTemplateType() == 0) ? 1 : 3); //判断发送类型 + try { + Users users = usersService.getUsers(Integer.parseInt(patient.getLastCheckEmployeeId())); + if (users != null && users.getYn() == YnEnums.YES.getId()) { + mr.setKeyword1(users.getName()); + } + } + catch (Exception e) + { + System.out.print(e+patient.getLastCheckEmployeeId()); + } + + mr.setKeyword2(DateUtil.getymd()); + mr.setRemark(""); + mr.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date())); + + mr.setWxTempId(WxTempleteIdEnums.FU_WU_DING_GOU_TX.getId()); + messages.add(mr); + ExceptionUtils.catchException("patient build msg = " + messages); + if (CollectionUtils.isNotEmpty(messages)) { + smsConfigFacade.saveMsg(messages, patient.getHospitalId()); + } + } + } + } + } } + + /** + * 初诊数据自动流转 + * + * @param excAddRequest + * @param hospitalId + */ + public void updateChuAutoData(final AntExcAddRequest excAddRequest, final String hospitalId, final Integer userId) { + commonThreadPool.execute(new Runnable() { + @Override + public void run() { + Patients patients = patientsService.findOnePatientById(excAddRequest.getParentId()); + try { + patients.setLastCheckEmployeeId(excAddRequest.getProdDoctor()); + patientsService.updateNextCheckTime(excAddRequest.getNextCheckTime(), patients.getId()); + patientsService.updatePatient(patients); + } catch (Exception e) { + e.printStackTrace(); + } + try { + //修改的时候设置最新的高危/冗余筛查结果和下次产检预约时间 + updateLastRisk(patients.getId()); + } catch (Exception e) { + e.printStackTrace(); + } + try { + //修改最后一次定义高危的时间 + updateLastRhTime(patients.getId(), hospitalId); + } catch (Exception e) { + e.printStackTrace(); + } + try { + // 修改最后一次产检时间 + setLashCTimes(excAddRequest.getParentId()); + } catch (Exception e) { + e.printStackTrace(); + } + try { + /** 把优惠券设置为已使用状态 */ + couponService.use(hospitalId, excAddRequest.getCouponCode(), userId, excAddRequest.getId()); + } catch (Exception e) { + e.printStackTrace(); + } + try { + //冗余到产检表 + antenatalExaminationService.updateAntExRecord(excAddRequest.getId(), 1); + } catch (Exception e) { + e.printStackTrace(); + } + try { + //修改数据 + syncMaster(excAddRequest.getParentId(), excAddRequest.getNextCheckTime()); + } catch (Exception e) { + e.printStackTrace(); + } + try { + //聊城东昌府医院初诊的身高更新到随心测 + if ("1000000116".equals(hospitalId) || "2100001305".equals(hospitalId)) { + measureInfoFacade.updateHeight(excAddRequest.getParentId(), hospitalId, excAddRequest.getHeight()); + } + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (CollectionUtils.isNotEmpty(excAddRequest.getOtherHighRisk())) { + //处理自定义高危状态为已使用状态 + highRiskFacade.dispHospHighRiskUse(JsonUtil.array2JsonString(excAddRequest.getOtherHighRisk())); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + } + + /** * 初诊、复诊添加或更新追访信息 * @@ -921,7 +1115,7 @@ public class AntenatalExaminationFacade { break; } highScoreResult.put("screenResult", model.getScreenResult()); - if(model.getNextCheckTime()!=null){ + if (model.getNextCheckTime() != null) { //最后一次预约下次产检时间 highScoreResult.put("nextCheckTime", model.getNextCheckTime()); } @@ -945,7 +1139,7 @@ public class AntenatalExaminationFacade { } highScoreResult.put("screenResult", antExChuModel.getScreenResult()); //最后一次预约下次产检时间 - if(antExChuModel.getNextCheckTime()!=null) { + if (antExChuModel.getNextCheckTime() != null) { highScoreResult.put("nextCheckTime", antExChuModel.getNextCheckTime()); } next = false; @@ -2401,7 +2595,7 @@ public class AntenatalExaminationFacade { return dataList; } - private List queryRiskName(List l) { + private List queryRiskListName(List l) { List data = new ArrayList(); for (int i = 0; i < l.size(); i++) { String key = (String) l.get(i); @@ -2413,6 +2607,23 @@ public class AntenatalExaminationFacade { return data; } + private String queryRiskNameStr(List l) { + StringBuffer data = new StringBuffer(); + for (int i = 0; i < l.size(); i++) { + String key = (String) l.get(i); + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(key); + if (null != basicConfig) { + data.append(basicConfig.getName()+"、"); + } + } + if(data.toString().endsWith("、")){ + return data.toString().substring(0,data.toString().length()-1); + }else { + return data.toString(); + } + } + + /** * 根据产前检查id查询 * -- 1.8.3.1