diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BloodPressure.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BloodPressure.java index 15b8a52..9ac5698 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/BloodPressure.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BloodPressure.java @@ -38,6 +38,29 @@ public class BloodPressure extends BaseModel { // 脉搏 private Integer pulse; + + //0 未推送 1已经推送 + private Integer exceptionSend; + + //0 未推送 1已经推送 + private Integer sevenSend; + + public Integer getExceptionSend() { + return exceptionSend; + } + + public void setExceptionSend(Integer exceptionSend) { + this.exceptionSend = exceptionSend; + } + + public Integer getSevenSend() { + return sevenSend; + } + + public void setSevenSend(Integer sevenSend) { + this.sevenSend = sevenSend; + } + public String getPid() { return pid; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java index c84d1df..6a61f0c 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java @@ -2,11 +2,14 @@ package com.lyms.platform.operate.web.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.lyms.platform.beans.MsgRequest; import com.lyms.platform.biz.service.BloodPressureService; import com.lyms.platform.biz.service.CommonService; import com.lyms.platform.biz.service.PatientWeightService2; import com.lyms.platform.biz.service.PatientsService; -import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.constants.ErrorCodeConstants; +import com.lyms.platform.common.enums.*; +import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.result.PageResult; import com.lyms.platform.common.result.RespBuilder; @@ -15,13 +18,17 @@ import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.facade.AccessPermissionFacade; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.facade.OrganizationGroupsFacade; +import com.lyms.platform.operate.web.facade.SmsConfigFacade; import com.lyms.platform.operate.web.service.IBloodPressureService; import com.lyms.platform.operate.web.utils.CollectionUtils; import com.lyms.platform.operate.web.utils.MongoUtil; -import com.lyms.platform.pojo.BloodPressure; -import com.lyms.platform.pojo.BpReportModel; -import com.lyms.platform.pojo.PatientWeight; -import com.lyms.platform.pojo.Patients; +import com.lyms.platform.permission.model.PatientService; +import com.lyms.platform.permission.model.PatientServiceQuery; +import com.lyms.platform.permission.model.Users; +import com.lyms.platform.permission.service.PatientServiceService; +import com.lyms.platform.permission.service.UsersService; +import com.lyms.platform.pojo.*; +import com.lyms.platform.query.BloodSugarQuery; import com.lyms.platform.query.PatientsQuery; import org.apache.commons.lang.math.NumberUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -468,17 +475,225 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP } return status; } + @Autowired + private SmsConfigFacade smsConfigFacade; + @Autowired + private PatientsService patientsService; + @Autowired + private PatientServiceService patientServiceService; - + @Autowired + private UsersService usersService; @Override - public BaseResponse notify(List patientIds, Integer type) { - return null; + public BaseResponse notify(final List patientIds, final Integer type) { + new Thread(new Runnable() { + @Override + public void run() { + if (CollectionUtils.isNotEmpty(patientIds)) + { + for (String patientId : patientIds) + { + Patients patient = patientsService.findOnePatientById(patientId); + if (patient != null) + { + SmsConfigModel configModel = new SmsConfigModel(); + // 1 推送服务, 2 推送和短信服务 3短信服务, + int startType = smsConfigFacade.hospitalIsStart(patient.getHospitalId(), configModel, SmsServiceEnums.XYTX.getId()); + + if (startType == 0) { + return; + } + + //短信前缀 + String messagePrefix = smsConfigFacade.getMsgPrefix(configModel, patient.getBookbuildingDoctor(), ServiceObjEnums.YUNOBJ.getId()); + + List messages = new ArrayList<>(); + MsgRequest mr = new MsgRequest(); + String content = ""; + + BloodPressure bp = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(patientId)), BloodPressure.class); + if (type == 2) + { + content = "亲爱的准妈妈您好,我是您的私人血压管理医生,您目前已经很久没有记录您的血压值了,为了您和您孩子的健康,请您务必每天记录一下自己的血压,好让我们能随时关注到您和宝宝的健康状况,谢谢!"; + if (bp != null) + { + bp.setSevenSend(1); + bloodPressureService.update(bp); + } + } + else if (type == 3) + { + content = "亲爱的准妈妈您好,我是您的私人血压管理医生,您目前的血压数据十分不理想,请您迅速与我联系或来院进行复查身体情况。"; + if (bp != null) + { + bp.setExceptionSend(1); + bloodPressureService.update(bp); + } + } + + 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.XYTX.getId()); + mr.setStatus(SmsStatusEnums.WFS.getId()); + mr.setHospitalId(patient.getHospitalId()); + mr.setTempId(""); + mr.setPatientId(patient.getId()); + mr.setSmsStatus(SmsStatusEnums.WFS.getId()); + mr.setServiceType(startType); //判断发送类型 + + PatientServiceQuery patientQuery = new PatientServiceQuery(); + patientQuery.setHospitalId(patient.getHospitalId()); + patientQuery.setParentid(patientId); + patientQuery.setSerType(PatientSerEnums.SerTypeEnums.tz.getId()); + + List patientServices = patientServiceService.queryPatientService(patientQuery); + + if (CollectionUtils.isNotEmpty(patientServices) && org.apache.commons.lang.StringUtils.isNotEmpty(patientServices.get(0).getSerDoct())) { + try { + Users users = usersService.getUsers(Integer.parseInt(patientServices.get(0).getSerDoct())); + if (users != null) { + mr.setKeyword1(users.getName()); + } + } catch (Exception e) { + mr.setKeyword1("产检医生"); + } + } + + mr.setKeyword2(DateUtil.getyyyy_MM_dd(new Date())); + mr.setRemark(""); + mr.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date())); + mr.setWxTempId(WxTempleteIdEnums.YI_SHENG_ZHI_DAO.getId()); + messages.add(mr); + if (CollectionUtils.isNotEmpty(messages)) { + smsConfigFacade.saveMsg(messages, patient.getHospitalId()); + } + + } + } + } + } + }).start(); + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); } @Override public BaseResponse getBloodSugars(String doctorId, Integer type, Integer status, String keyword) { - return null; + + List datas = new ArrayList<>(); + List pids = new ArrayList<>(); + if (org.apache.commons.lang.StringUtils.isNotEmpty(keyword)) + { + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setYn(YnEnums.YES.getId()); + patientsQuery.setQueryNo(keyword); + patientsQuery.setType(1); + List pats = patientsService.queryPatient(patientsQuery); + if (CollectionUtils.isNotEmpty(pats)) + { + for (Patients pat : pats) + { + pids.add(pat.getId()); + } + } + else + { + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas); + } + } + + + PatientServiceQuery patientQuery = new PatientServiceQuery(); + patientQuery.setSerDoct(doctorId); + patientQuery.setSerType(PatientSerEnums.SerTypeEnums.xy.getId()); + patientQuery.setSerStatus(1); + if (CollectionUtils.isNotEmpty(pids)) + { + patientQuery.setParentIds((String[]) pids.toArray(new String[pids.size()])); + } + List list = patientServiceService.queryPatientService(patientQuery); + List patientIds = new ArrayList<>(); + + if (CollectionUtils.isNotEmpty(list)) + { + for (PatientService ps : list) + { + Patients pat = patientsService.findOnePatientById(ps.getParentid()); + if (pat != null && pat.getType() == 1) + { + patientIds.add(ps.getParentid()); + } + } + } + + if (CollectionUtils.isNotEmpty(patientIds)) + { + Criteria cr = Criteria.where("parentId").in(patientIds); + + if (type == 2) + { + cr.and("modified").lte(DateUtil.addDay(new Date(),-7)); + if (status != null && status == 1) + { + cr.and("sevenSend").is(status); + } + else if (status != null && status == 0) + { + cr.orOperator(Criteria.where("sevenSend").is(0), Criteria.where("sevenSend").exists(false)); + } + } + //异常大于等于3次 + else if (type == 3) + { + if (status != null && status == 1) + { + cr.and("exceptionSend").is(status); + } + else if (status != null && status == 0) + { + cr.orOperator(Criteria.where("exceptionSend").is(0), Criteria.where("exceptionSend").exists(false)); + } + } + + List bps = mongoTemplate.find(Query.query(cr), BloodPressure.class); + if (CollectionUtils.isNotEmpty(bps)) + { + + for (BloodPressure bp : bps) + { + Patients patients = patientsService.findOnePatientById(bp.getParentId()); + Map map = new HashMap(); + if (type == 3) + { + Map> infos = bp.getInfos(); + Object[] keys = infos.keySet().toArray(); + CollectionUtils.reverseArray(keys); + Object[] items = getKeys(keys); + int count = getExceptionCount(items, infos); + if (count < 3) + { + continue; + } + } + + map.put("patientId",patients != null ? patients.getId() : ""); + map.put("name",patients != null ? patients.getUsername() : ""); + map.put("age",patients != null ? DateUtil.getAge(patients.getBirth(), bp.getModified()): ""); + map.put("week",patients != null ? DateUtil.getWeekDesc(patients.getLastMenses(), bp.getModified()): ""); + map.put("bloodPressure",bp.getSsy()+"/"+bp.getSzy()); + map.put("days",DateUtil.getDays(bp.getModified(), new Date())); + map.put("phone",patients.getPhone()); + datas.add(map); + } + + } + } + + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java index 9ab89b4..d81dd00 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java @@ -1456,7 +1456,8 @@ public class BloodSugarServiceImpl extends BaseServiceImpl implements IBloodSuga } } maps = sortMapByKey(maps); - if (maps.size() > 0) { + maps = doHandle(maps, bloodSugars.get(0).getCreatYmdDate()); + if (maps.size() > 0 && maps.size() >= 3) { int count = 0; for (String key1 : maps.keySet()) { List bss = maps.get(key1);