diff --git a/platform-common/src/main/java/com/lyms/platform/common/enums/SmsServiceEnums.java b/platform-common/src/main/java/com/lyms/platform/common/enums/SmsServiceEnums.java index cdfb327..ac9d34e 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/enums/SmsServiceEnums.java +++ b/platform-common/src/main/java/com/lyms/platform/common/enums/SmsServiceEnums.java @@ -50,7 +50,8 @@ public enum SmsServiceEnums { FWDGTX(36,"服务订购提醒",18,"1"), JSGWZD(37,"及时高危指导",1,""), CSJGTZ(38,"产筛结果通知",21,"1"), - YFXXJSTX(39,"孕妇学校课程结束提醒",21,"1,3"); + YFXXJSTX(39,"孕妇学校课程结束提醒",21,"1,3"), + TZTX(40,"体重测量提醒",21,"1"); private SmsServiceEnums(int id,String name,int pid,String serviceObj){ this.id = id; 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 8c79879..200607a 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,8 @@ public enum WxTempleteIdEnums { YUN_XUE_JSTX("jBHP98VRjIf3d0TDnor89V_z2IQ9b0ecKW3fAZW4FS8","孕妇学校课程结束提醒"),//孕妇学校课程结束提醒 FU_WU_DING_GOU_TX("UEwcdz3lJL3NR38KRqN6yTO4nUvRgym5mlXl4jXQBik","服务订购提醒"),//服务订购提醒和收费成功后的高危提醒 - YI_SHENG_ZHI_DAO("OggqiSHitLkCgSLCaCH72reCZzaw5NyG8iO56InQiQg","医生指导"),//指导 + YI_SHENG_ZHI_DAO("5yoQyJ92Ruip87JWQ1zdWO9JtllyyqE3jtHGHV7GyeI","医生指导"),//指导 + //YI_SHENG_ZHI_DAO("OggqiSHitLkCgSLCaCH72reCZzaw5NyG8iO56InQiQg","医生指导"),//指导 // WEI_JI_ZHI_DAO("fNkkLSp_gS-YWvzji6gwgdTddl4XBlk8SNP7FRksrfk","危急值提醒");//危急值提醒 SHAI_CHA_TONG_ZHI("opEi89qoMHOgr692OGi5O1clvn6XKnYJRXn5BVx0lCA","产筛结果通知");//产筛结果通知 diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/PatientWeight.java b/platform-dal/src/main/java/com/lyms/platform/pojo/PatientWeight.java index 54eb47c..0f07fca 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/PatientWeight.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/PatientWeight.java @@ -123,6 +123,17 @@ public class PatientWeight extends BaseModel { private boolean isShow; + //异常次数 + private Integer exceptionCount; + + public Integer getExceptionCount() { + return exceptionCount; + } + + public void setExceptionCount(Integer exceptionCount) { + this.exceptionCount = exceptionCount; + } + public boolean isShow() { return isShow; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java index 19aa625..a64ec40 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 孕产妇体重管理 @@ -91,7 +92,7 @@ public class PatientWeightController extends BaseController { public BaseResponse report(@PathVariable String id, HttpServletRequest request, @RequestParam(value = "rid",required = false)String rid) { - return patientWeightService.report(id, getUserId(request),rid); + return patientWeightService.report(id, getUserId(request), rid); } /** @@ -159,7 +160,7 @@ public class PatientWeightController extends BaseController { @ResponseBody @RequestMapping(value = "/last/check", method = RequestMethod.GET) public BaseResponse patientLastCheck(String pid,@RequestParam(required = false) String time) { - return patientWeightService.lastCheckTime(pid,time); + return patientWeightService.lastCheckTime(pid, time); } /** @@ -171,7 +172,7 @@ public class PatientWeightController extends BaseController { @ResponseBody @RequestMapping(value = "/recipe/info", method = RequestMethod.GET) public BaseResponse patientRecipeInfo(String pid,@RequestParam(required = false) String time) { - return patientWeightService.patientRecipeInfo(pid, 2,time); + return patientWeightService.patientRecipeInfo(pid, 2, time); } /** @@ -222,4 +223,27 @@ public class PatientWeightController extends BaseController { public BaseResponse canChooseRisk(String patientId){ return patientWeightService.findRiskDietaryPrinciples(patientId); } + + /** + * 生成通知 + * @param patientIds + * @param request + * @return + */ + @ResponseBody + @RequestMapping(method = RequestMethod.POST) + public BaseResponse notify(List patientIds, HttpServletRequest request) { + return patientWeightService.notify(getUserId(request), patientIds); + } + + /** + * 医生下面其他没有测量记录的用户 + * @param doctorId + * @return + */ + @ResponseBody + @RequestMapping(value = "/getSevenNotWeights/{doctorId}", method = RequestMethod.GET) + public BaseResponse getSevenNotWeights(@PathVariable String doctorId) { + return patientWeightService.getSevenNotWeights(doctorId); + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBaseService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBaseService.java index 54224ef..f5d1c99 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBaseService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBaseService.java @@ -1,5 +1,6 @@ package com.lyms.platform.operate.web.service; +import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.result.PageResult; import org.springframework.data.mongodb.core.query.Query; @@ -23,4 +24,8 @@ public interface IBaseService { PageResult findPage(String sql, Integer currentPage, Integer pageSize, List params); PageResult findMongoPage (Class entity, Query query, Integer page, Integer limit); + + BaseResponse notify(Integer userId, List patientIds); + + BaseResponse getSevenNotWeights(String doctorId); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java index 6c8f323..a2aaab3 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java @@ -1,27 +1,31 @@ package com.lyms.platform.operate.web.service.impl; +import com.lyms.platform.beans.MsgRequest; import com.lyms.platform.biz.service.BasicConfigService; import com.lyms.platform.biz.service.DoctorUserMapService; import com.lyms.platform.biz.service.PatientWeightService2; import com.lyms.platform.biz.service.PatientsService; import com.lyms.platform.common.constants.ErrorCodeConstants; -import com.lyms.platform.common.enums.BregmaticEnums2; -import com.lyms.platform.common.enums.OptActionEnums; -import com.lyms.platform.common.enums.RemoteServerEnmus; +import com.lyms.platform.common.enums.*; import com.lyms.platform.common.result.*; import com.lyms.platform.common.utils.*; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.facade.OperateLogFacade; import com.lyms.platform.operate.web.facade.OrganizationGroupsFacade; +import com.lyms.platform.operate.web.facade.SmsConfigFacade; import com.lyms.platform.operate.web.service.PatientWeightService; import com.lyms.platform.operate.web.utils.CollectionUtils; import com.lyms.platform.operate.web.utils.MathUtil; import com.lyms.platform.operate.web.utils.MongoUtil; import com.lyms.platform.operate.web.utils.ReportConfig; import com.lyms.platform.permission.dao.master.CouponMapper; -import com.lyms.platform.permission.model.Organization; +import com.lyms.platform.permission.model.*; +import com.lyms.platform.permission.service.DepartmentsService; import com.lyms.platform.permission.service.OrganizationService; +import com.lyms.platform.permission.service.PatientServiceService; +import com.lyms.platform.permission.service.UsersService; import com.lyms.platform.pojo.*; +import com.lyms.platform.query.SmsConfigQuery; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.collections.MapUtils; @@ -75,6 +79,14 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient @Autowired private ComputeKulServiceManager computeKulServiceManager; + @Autowired + private SmsConfigFacade smsConfigFacade; + + @Autowired + private PatientServiceService patientServiceService; + @Autowired + private UsersService usersService; + /** * 最低:0~13 : 0~1.9 13~40 1.9~11.9 @@ -653,7 +665,7 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient weights.put(DateUtil.getWeek2(patients.getLastMenses(), DateUtil.parseYMD(entry.getKey())), entry.getValue()); } } - setAppReport(map, weights, patientWeight.getBeforeWeight(), patientWeight.getBmi(), patientWeight.getDayWeights()); + setAppReport(patients.getLastMenses(),patientWeight,map, weights); return RespBuilder.buildSuccess(map); } return RespBuilder.buildSuccess(); @@ -980,6 +992,51 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient } + private int getLevel(String lbmiStr,int week,String beforeWeight,String weight,int add,double prcent) + { + int level = 0; + String range = ""; + if (week < 12) + { + range = "1-1.5"; + } + else { + range = ReportConfig.getWeightRange(lbmiStr + "孕" + week + "周"); + } + + if (StringUtils.isNotEmpty(range)) { + String[] array = range.split("-"); + double cz = getDiff(beforeWeight, weight); + if ((cz-Double.parseDouble(array[1])) >= add && cz/Double.parseDouble(array[1]) > prcent) + { + level = 1; + } + } + return level; + } + + private int getDLevel(String lbmiStr,int week,String beforeWeight,String weight,int add,double prcent) + { + int level = 0; + String range = ""; + if (week < 12) + { + range = "1-1.5"; + } + else { + range = ReportConfig.getDWeightRange(lbmiStr + "孕" + week + "周"); + } + if (StringUtils.isNotEmpty(range)) { + String[] array = range.split("-"); + double cz = getDiff(beforeWeight, weight); + if ((cz-Double.parseDouble(array[1])) >= add && cz/Double.parseDouble(array[1]) > prcent) + { + level = 1; + } + } + return level; + } + /** * BMI指数: * 低体重(<18.5) 0-13周 13-40周 @@ -996,106 +1053,225 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient * 最低 0-0.8 0.9-4.9 * 最高 0-2.1 2.1-8.9 */ - public void setAppReport(Map restMap, Map weights, String beforeWeight, String bmi, Map dayWeights) { + public void setAppReport(Date lastMenses,PatientWeight patientWeight,Map restMap, Map weights) { + + String beforeWeight= patientWeight.getBeforeWeight(); + String bmi = patientWeight.getBmi(); + Map dayWeights = patientWeight.getDayWeights(); + + String bregmatic = patientWeight.getBregmatic(); + // 小程序和app可能没有bmi 默认返回标准 + Double bmiD = 20D; + if (StringUtils.isNotEmpty(bmi)) { + bmiD = Double.parseDouble(bmi); + } + List> restList = new ArrayList<>(); dayWeights = sortMapByKey(dayWeights); + if (MapUtils.isNotEmpty(dayWeights)) { for (String key : dayWeights.keySet()) { + int level = 0; //-1过低 0正常 1过高 + String lbmiStr = ""; + int week = DateUtil.getWeek2(lastMenses, DateUtil.parseYMD(key)); Map temp = new LinkedHashMap<>(); + //空和1表示单胎 + if (!StringUtils.isNotEmpty(bregmatic) || "1".equals(bregmatic)) + { + + if (bmiD < 18.5) { + lbmiStr = "BMI<18.5"; + level = getLevel( lbmiStr, week, beforeWeight, key,1,1.2); + } else if (bmiD >= 18.5 && bmiD <= 24.9) { + lbmiStr = "BMI=18.5-24.9"; + level = getLevel( lbmiStr, week, beforeWeight, key,1,1.2); + } else if (bmiD > 24.9 && bmiD < 30) { + lbmiStr = "BMI=25-29.9"; + level = getLevel( lbmiStr, week, beforeWeight, key,1,1.25); + } else if (bmiD >= 30) { + lbmiStr = "BMI≥30"; + level = getLevel( lbmiStr, week, beforeWeight, key,1,1.25); + } + } + else + { + if (bmiD <= 24.9) { + lbmiStr = "BMI≤24.9"; + level = getDLevel(lbmiStr, week, beforeWeight, key, 1, 1.15); + } else if (bmiD >= 25 && bmiD <= 29.9) { + lbmiStr = "BMI=25-29.9"; + level = getDLevel(lbmiStr, week, beforeWeight, key,1,1.2); + } else if (bmiD >= 30) { + lbmiStr = "BMI≥30"; + level = getDLevel(lbmiStr, week, beforeWeight, key,1,1.2); + } + } + temp.put("nowWeight", dayWeights.get(key)); temp.put("recordTime", key); + temp.put("level", level); restList.add(temp); } } - // 小程序和app可能没有bmi 默认返回标准 - Double bmiD = 20D; - if (StringUtils.isNotEmpty(bmi)) { - bmiD = Double.parseDouble(bmi); - } - double low = 0D; - double low2 = 0D; - double high = 0D; - double high2 = 0D; + String title = ""; String color = ""; - if (bmiD <= 18.5) { - low = 1.2; - low2 = 11.9; - high = 3.8; - high2 = 18.1; - color = "#00CD00"; - } else if (bmiD > 18.5 && bmiD <= 24.9) { - low = 1.4; - low2 = 11.9; - high = 3.2; - high2 = 15.9; - color = "#7EC0EE"; - } else if (bmiD > 24.9 && bmiD < 30) { - low = 1.1; - low2 = 7.1; - high = 3.1; - high2 = 11.6; - color = "#CD3333"; - } else if (bmiD >= 30) { - low = 0.8; - low2 = 4.9; - high = 2.1; - high2 = 8.9; - color = "#CD00CD"; + String bmiStr = ""; + + //空和1表示单胎 + if (!StringUtils.isNotEmpty(bregmatic) || "1".equals(bregmatic)) { + if (bmiD < 18.5) { + title = "低体重推荐增重均值"; + color = "#00CD00"; + bmiStr = "BMI<18.5"; + } else if (bmiD >= 18.5 && bmiD <= 24.9) { + title = "标准体重推荐增重均值"; + color = "#7EC0EE"; + bmiStr = "BMI=18.5-24.9"; + } else if (bmiD > 24.9 && bmiD < 30) { + title = "超重体重推荐增重均值"; + color = "#CD3333"; + bmiStr = "BMI=25-29.9"; + } else if (bmiD >= 30) { + title = "肥胖体重推荐增重均值"; + color = "#CD00CD"; + bmiStr = "BMI≥30"; + } + } else { + if (bmiD <= 24.9) { + title = "标准体重推荐增重均值"; + color = "#7EC0EE"; + bmiStr = "BMI≤24.9"; + } else if (bmiD >= 25 && bmiD <= 29.9) { + title = "超重体重推荐增重均值"; + color = "#CD3333"; + bmiStr = "BMI=25-29.9"; + } else if (bmiD >= 30) { + title = "肥胖体重推荐增重均值"; + color = "#CD00CD"; + bmiStr = "BMI≥30"; + } } - Map highMap = new LinkedHashMap<>(); - Map normalMap = new LinkedHashMap<>(); - Map lowMap = new LinkedHashMap<>(); List xAxis = new ArrayList<>(); - double avg = low / 13; - for (int i = 0; i <= 13; i++) { - lowMap.put(i, i * avg); - } - double avg2 = (low2 - low) / 27; - for (int i = 1; i <= 27; i++) { - lowMap.put(13 + i, low + i * avg2); - } - double highAvg = high / 13; - for (int i = 0; i <= 13; i++) { - highMap.put(i, i * highAvg); - } - double highAvg2 = (high2 - high) / 27; - for (int i = 1; i <= 27; i++) { - highMap.put(13 + i, high + i * highAvg2); - } - for (int i = 0; i <= 40; i++) { - normalMap.put(i, (highMap.get(i) + lowMap.get(i)) / 2); - } Map reportModel = new LinkedHashMap<>(); Map series = new LinkedHashMap<>(); -// series.put("lowData", MathUtil.doubleFormat2(CollectionUtils.getValList(lowMap))); -// series.put("highData", MathUtil.doubleFormat2(CollectionUtils.getValList(highMap))); -// series.put("normalData", MathUtil.doubleFormat2(CollectionUtils.getValList(normalMap))); - series.put("lowData", delOtherPort(CollectionUtils.getValList(lowMap))); - series.put("highData", delOtherPort(CollectionUtils.getValList(highMap))); - series.put("normalData", delOtherPort(CollectionUtils.getValList(normalMap))); + getSeries(series, bmiStr, bregmatic); series.put("dayWeights", restList); reportModel.put("series", series); + + reportModel.put("title", title); reportModel.put("color", color); - for (int i = 0; i <= 40; i++) { + String doctorName = ""; + String doctorPhone = ""; + if (StringUtils.isNotEmpty(patientWeight.getPatientId())) + { + PatientServiceQuery patientQuery = new PatientServiceQuery(); + patientQuery.setSerType(PatientSerEnums.SerTypeEnums.tz.getId()); + patientQuery.setParentid(patientWeight.getPatientId()); + List patientServices = patientServiceService.queryPatientService(patientQuery); + if (CollectionUtils.isNotEmpty(patientServices)) + { + String doctId = patientServices.get(0).getSerDoct(); + if (StringUtils.isNotEmpty(doctId)) + { + Users user = usersService.getUsers(Integer.parseInt(doctId)); + if (user != null) + { + doctorName = user.getName(); + doctorPhone = user.getPhone(); + } + } + } + } + + reportModel.put("doctorName", doctorName); + reportModel.put("doctorPhone", doctorPhone); + + + for (int i = 1; i <= 40; i++) { xAxis.add(i); } reportModel.put("xAxis", xAxis); - /* List list = new ArrayList<>(); - if(MapUtils.isNotEmpty(weights)) { - Iterator> iterator = weights.entrySet().iterator(); - while (iterator.hasNext()) { - Map.Entry next = iterator.next(); - list.add(Arrays.asList(next.getKey(), getDiff(beforeWeight, next.getValue()))); - } - } - series.put("portData", list);*/ + + + +// double low = 0D; +// double low2 = 0D; +// double high = 0D; +// double high2 = 0D; +// String color = ""; +// if (bmiD <= 18.5) { +// low = 1.2; +// low2 = 11.9; +// high = 3.8; +// high2 = 18.1; +// color = "#00CD00"; +// } else if (bmiD > 18.5 && bmiD <= 24.9) { +// low = 1.4; +// low2 = 11.9; +// high = 3.2; +// high2 = 15.9; +// color = "#7EC0EE"; +// } else if (bmiD > 24.9 && bmiD < 30) { +// low = 1.1; +// low2 = 7.1; +// high = 3.1; +// high2 = 11.6; +// color = "#CD3333"; +// } else if (bmiD >= 30) { +// low = 0.8; +// low2 = 4.9; +// high = 2.1; +// high2 = 8.9; +// color = "#CD00CD"; +// } +// +// Map highMap = new LinkedHashMap<>(); +// Map normalMap = new LinkedHashMap<>(); +// Map lowMap = new LinkedHashMap<>(); +// List xAxis = new ArrayList<>(); +// double avg = low / 13; +// for (int i = 0; i <= 13; i++) { +// lowMap.put(i, i * avg); +// } +// double avg2 = (low2 - low) / 27; +// for (int i = 1; i <= 27; i++) { +// lowMap.put(13 + i, low + i * avg2); +// } +// double highAvg = high / 13; +// for (int i = 0; i <= 13; i++) { +// highMap.put(i, i * highAvg); +// } +// double highAvg2 = (high2 - high) / 27; +// for (int i = 1; i <= 27; i++) { +// highMap.put(13 + i, high + i * highAvg2); +// } +// for (int i = 0; i <= 40; i++) { +// normalMap.put(i, (highMap.get(i) + lowMap.get(i)) / 2); +// } +// +// Map reportModel = new LinkedHashMap<>(); +// Map series = new LinkedHashMap<>(); +// series.put("lowData", delOtherPort(CollectionUtils.getValList(lowMap))); +// series.put("highData", delOtherPort(CollectionUtils.getValList(highMap))); +// series.put("normalData", delOtherPort(CollectionUtils.getValList(normalMap))); +// +// series.put("dayWeights", restList); +// +// reportModel.put("series", series); +// reportModel.put("color", color); +// +// for (int i = 0; i <= 40; i++) { +// xAxis.add(i); +// } +// reportModel.put("xAxis", xAxis); + List> list = new ArrayList<>(); if (MapUtils.isNotEmpty(weights)) { Iterator> iterator = weights.entrySet().iterator(); @@ -1561,4 +1737,118 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient Map map = patientWeightService.getComputeKul(50, 70.43, 18, Double.parseDouble(bmi), "2"); System.out.println(map); } + + @Override + public BaseResponse notify(Integer userId, final List patientIds) { + + 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.TZTX.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 = "您好,您设置的体重记录时间到了,请尽快打开小程序记录您今天的体重信息吧。"; + + 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.TZTX.getId()); + mr.setStatus(SmsStatusEnums.WFS.getId()); + mr.setHospitalId(patient.getHospitalId()); + mr.setTempId(""); + mr.setPatientId(patient.getId()); + mr.setSmsStatus(SmsStatusEnums.WFS.getId()); + mr.setServiceType(1); //判断发送类型 + + PatientServiceQuery patientQuery = new PatientServiceQuery(); + patientQuery.setHospitalId(patient.getHospitalId()); + patientQuery.setSerType(PatientSerEnums.SerTypeEnums.tz.getId()); + + List patientServices = patientServiceService.queryPatientService(patientQuery); + + if (CollectionUtils.isNotEmpty(patientServices) && 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()); + System.out.println(mr); + messages.add(mr); + if (CollectionUtils.isNotEmpty(messages)) { + smsConfigFacade.saveMsg(messages, patient.getHospitalId()); + } + } + } + } + } + }).start(); + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); + } + + @Override + public BaseResponse getSevenNotWeights(String doctorId) { + PatientServiceQuery patientQuery = new PatientServiceQuery(); + patientQuery.setSerDoct(doctorId); + patientQuery.setSerType(PatientSerEnums.SerTypeEnums.tz.getId()); + List list = patientServiceService.queryPatientService(patientQuery); + List patientIds = new ArrayList<>(); + List datas = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(list)) + { + for (PatientService ps : list) + { + patientIds.add(ps.getParentid()); + } + } + if (CollectionUtils.isNotEmpty(patientIds)) + { + List weights = mongoTemplate.find(Query.query(Criteria.where("patientId").in(patientIds).and("modified").lte(DateUtil.addDay(new Date(),-7))), PatientWeight.class); + if (CollectionUtils.isNotEmpty(weights)) + { + for (PatientWeight weight : weights) + { + Map map = new HashMap(); + Patients patients = patientsService.findOnePatientById(weight.getPatientId()); + map.put("name",patients != null ? patients.getUsername() : ""); + map.put("age",patients != null ? DateUtil.getAge(patients.getBirth(), weight.getModified()): ""); + map.put("week",patients != null ? DateUtil.getWeekDesc(patients.getLastMenses(), weight.getModified()): ""); + map.put("weight",weight.getNowWeight()); + map.put("days",DateUtil.getDays(weight.getModified(),new Date())); + } + } + } + + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas); + } + + }