diff --git a/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java b/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java index 3f8b016..69ff62a 100644 --- a/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java +++ b/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java @@ -13,6 +13,7 @@ public enum SerialIdEnum { AssayConfig("AssayConfig", 97531000050L), FilePathModel("FilePathModel", 97233000050L), AwModel("AwModel", 97531000060L), + BabyDiseaseModel("BabyDiseaseModel", 97534000060L), AmniocentesisInfoModel("AmniocentesisInfoModel", 94531000060L), AmniocentesisRecordModel("AmniocentesisRecordModel", 94531010060L), AmniocentesisResultModel("AmniocentesisResultModel", 94521000060L), diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyDiseaseModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyDiseaseModel.java new file mode 100644 index 0000000..6e92898 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyDiseaseModel.java @@ -0,0 +1,43 @@ +package com.lyms.platform.pojo; + +import com.lyms.platform.beans.SerialIdEnum; +import com.lyms.platform.common.result.BaseModel; +import org.springframework.data.mongodb.core.mapping.Document; + +/** + * 儿童疾病配置 + */ +@Document(collection = "lyms_baby_disease") +public class BabyDiseaseModel extends BaseModel { + + private static final long serialVersionUID = SerialIdEnum.BabyDiseaseModel.getCid(); + + private String id; + //BabyDiseaseEnums + private String diseaseId; + private String content; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getDiseaseId() { + return diseaseId; + } + + public void setDiseaseId(String diseaseId) { + this.diseaseId = diseaseId; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java index 5f8efb1..3bdf37a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java @@ -1,6 +1,7 @@ package com.lyms.platform.operate.web.facade; import com.lyms.hospitalapi.qhdfy.QhdfyHisService; +import com.lyms.platform.beans.MsgRequest; import com.lyms.platform.biz.service.*; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.dao.BaseQuery; @@ -119,6 +120,9 @@ public class BabyCheckFacade extends BaseServiceImpl { @Autowired private BabyAfterVisitService babyAfterVisitService; + @Autowired + private SmsConfigFacade smsConfigFacade; + @Autowired private CheckItemService checkItemService; @@ -694,12 +698,86 @@ public class BabyCheckFacade extends BaseServiceImpl { updateLastGrowth(model); + createBabyDiseaseMsg(model); + br.setErrorcode(ErrorCodeConstants.SUCCESS); br.setErrormsg("成功"); br.setData(model.getId()); return br; } + + /** + * 创建儿保疾病提醒 + * @param babyCheckModel + */ + public void createBabyDiseaseMsg(final BabyCheckModel babyCheckModel) { + + new Thread(new Runnable() { + @Override + public void run() { + BabyModel babyModel = babyBookbuildingService.queryBabyBuildById(babyCheckModel.getBuildId()); + if (babyModel == null || !"2".equals(babyModel.getOpenDisease())) + { + return; + } + SmsConfigModel configModel = new SmsConfigModel(); + // 服务是否勾选启动 + boolean isStartService = smsConfigFacade.isStartSesrvice(babyModel.getHospitalId(), SmsServiceEnums.ETJBTX.getId(),configModel); + if (!isStartService) { + return; + } + + List dids = babyCheckModel.getDiseases(); + if (CollectionUtils.isNotEmpty(dids)) + { + + //短信前缀 + String messagePrefix = smsConfigFacade.getMsgPrefix(configModel, babyModel.getBuildDoctor(), ServiceObjEnums.BABYOBJ.getId()); + for (String id : dids) + { + Criteria criteria = Criteria.where("diseaseId").is(id); + BabyDiseaseModel babyDiseaseModel = mongoTemplate.findOne(Query.query(criteria), BabyDiseaseModel.class); + if (babyDiseaseModel != null) + { + List messages = new ArrayList<>(); + MsgRequest mr = new MsgRequest(); + String content = "【" + messagePrefix + "】" + babyDiseaseModel.getContent(); + mr.setFirst(StringUtils.replaceBaby(babyModel.getName(), babyModel.getBirth(), content)); + mr.setObjType(ServiceObjEnums.BABYOBJ.getId()); + mr.setPhone(babyModel.getMphone()); + mr.setTypeId(ProjectTypeEnums.YNXT.getId()); + mr.setPlanTime(DateUtil.getyyyy_MM_dd_hms(new Date())); + mr.setSubTypeId(SmsServiceEnums.ETJBTX.getId()); + mr.setStatus(SmsStatusEnums.WFS.getId()); + mr.setTimeType(SmsTimeTypeEnums.ONTIME.getId()); + + mr.setHospitalId(babyModel.getHospitalId()); + mr.setTempId(babyCheckModel.getId()); + mr.setPatientId(babyModel.getId()); + int weeks = DateUtil.daysBetween(babyModel.getBirth(), new Date()) / 7; + String weekDay = weeks + "周"; + mr.setKeyword1(weekDay); + mr.setKeyword2(SmsServiceEnums.ETJBTX.getName()); + mr.setRemark(""); + mr.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date())); + mr.setSmsStatus(SmsStatusEnums.WFS.getId()); + mr.setServiceType(1); + + mr.setWxTempId(WxTempleteIdEnums.BABY_YI_BAN_ZHI_DAO.getId()); + messages.add(mr); + ExceptionUtils.catchException("create baby disease msg = " + mr); + if (CollectionUtils.isNotEmpty(messages)) { + smsConfigFacade.saveMsg(messages, babyModel.getHospitalId()); + } + } + } + } + } + }).start(); + + } + private void syncMaster(String id) { BabyModelQuery babyModelQuery = new BabyModelQuery(); babyModelQuery.setId(id); @@ -1982,7 +2060,16 @@ public class BabyCheckFacade extends BaseServiceImpl { model.setEyeAdviceName(eyeAdviceName); model.setEyeGuideSuggestions(checkModel.getEyeGuideSuggestions()); model.setConfigItemId(checkModel.getConfigItemId()); - model.setDiseases(checkModel.getDiseases()); + + List diseses = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(checkModel.getDiseases())) + { + for (String key : checkModel.getDiseases()) + { + diseses.add(BabyDiseaseEnums.getNameById(Integer.parseInt(key))); + } + } + model.setDiseases(diseses); return model; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmsConfigFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmsConfigFacade.java index 0eff1d1..0322c5d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmsConfigFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmsConfigFacade.java @@ -919,6 +919,43 @@ public class SmsConfigFacade { } + public boolean isStartSesrvice(String hospitalId,Integer smsType,SmsConfigModel configModel) + { + SmsConfigQuery configQuery = new SmsConfigQuery(); + configQuery.setYn(YnEnums.YES.getId()); + configQuery.setHospitalId(hospitalId); + //查询出对应医院配置 + List configs = smsConfigService.querySmsConfig(configQuery); + + if (CollectionUtils.isNotEmpty(configs)) + { + configModel.covertObj(configs.get(0)); + String serviceStr = configs.get(0).getSmsService(); + if (StringUtils.isNotEmpty(serviceStr)) + { + + if (StringUtils.isEmpty(serviceStr)) + { + return false; + } + //消息服务启动 + List smsServices = JsonUtil.toList(serviceStr, Map.class); + + if (CollectionUtils.isNotEmpty(smsServices)) { + for (Map map : smsServices) { + String status = String.valueOf(map.get(String.valueOf(smsType))); + if ("true".equals(status)) + { + return true; + } + } + } + } + } + return false; + } + + /** * 判断对应服务是否启动 * return 1 推送服务, 2 推送和短信服务 3短信服务,