diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/DepartmentsService.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/DepartmentsService.java index b3f5430..c192e67 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/DepartmentsService.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/DepartmentsService.java @@ -1,5 +1,6 @@ package com.lyms.platform.permission.service; + import com.lyms.platform.permission.model.Departments; import com.lyms.platform.permission.model.DepartmentsQuery; diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyModel.java index b12fd6c..30e16ac 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyModel.java @@ -558,6 +558,25 @@ public class BabyModel extends BaseModel { //是否开通疾病发生推送 1或者空没有开通 2开通 private String openDisease; + private Date openDiseaseEndTime; + + private String openDiseaseType; //1一个月 12一年 + + public String getOpenDiseaseType() { + return openDiseaseType; + } + + public void setOpenDiseaseType(String openDiseaseType) { + this.openDiseaseType = openDiseaseType; + } + + public Date getOpenDiseaseEndTime() { + return openDiseaseEndTime; + } + + public void setOpenDiseaseEndTime(Date openDiseaseEndTime) { + this.openDiseaseEndTime = openDiseaseEndTime; + } public String getOpenDisease() { return openDisease; diff --git a/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java index 56467d1..22fbd85 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java @@ -1662,6 +1662,20 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { } } + if (null != openDiseaseEndTime ) { + if (null != c) { + c.and("openDiseaseEndTime").gte(openDiseaseEndTime); + } else { + c = Criteria.where("openDiseaseEndTime").gte(openDiseaseEndTime); + } + } + + if (null != openDiseaseType) { + condition = condition.and("openDiseaseType", openDiseaseType, MongoOper.IS); + } + + + /*if (null != endAge) { if (null != c) { c = c.gte(endAge); diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/model/MessageContent.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/model/MessageContent.java index 6fc268e..a903257 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/model/MessageContent.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/model/MessageContent.java @@ -16,6 +16,15 @@ public class MessageContent implements Serializable { private String content; private String riskName; + private Integer disSort; + + public Integer getDisSort() { + return disSort; + } + + public void setDisSort(Integer disSort) { + this.disSort = disSort; + } public String getRiskName() { return riskName; diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/AmsMessageService.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/AmsMessageService.java index 66a4926..3499f10 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/AmsMessageService.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/AmsMessageService.java @@ -58,10 +58,11 @@ public class AmsMessageService { - public static List getBabyDiseaseMsg(String id,String disease) { + public static List getBabyDiseaseMsg(String id,String disease,String openDisType) { Map param = new HashMap<>(); param.put("title", id); param.put("disease", disease); + param.put("openDisType", openDisType); String url = AMS_URL+"/v1/getBabyMessages"; String json = HttpClientUtil.doGet(url, param, "utf-8", ""); net.sf.json.JSONObject jsonObject = JsonUtil.getObj(json); diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/BabyDiseaseMsgGenerateWorker.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/BabyDiseaseMsgGenerateWorker.java index cff44ee..603a07d 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/BabyDiseaseMsgGenerateWorker.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/BabyDiseaseMsgGenerateWorker.java @@ -4,6 +4,7 @@ import com.lyms.platform.beans.MsgListRequest; import com.lyms.platform.beans.MsgRequest; import com.lyms.platform.biz.service.BabyBookbuildingService; import com.lyms.platform.common.enums.*; +import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.JsonUtil; import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.msg.model.MessageContent; @@ -69,11 +70,6 @@ public class BabyDiseaseMsgGenerateWorker implements Runnable { if (guideTimes == null || guideTimes.size() != 2) { continue; } - //周几发送必须是配置页面配置的 - if (!guideTimes.contains(week)) - { - continue; - } //判断医院是否运行 if (!baseService.isRunning(hospitalId)) { @@ -94,10 +90,7 @@ public class BabyDiseaseMsgGenerateWorker implements Runnable { babyQuery.setYn(YnEnums.YES.getId()); babyQuery.setHospitalId(hospitalId); babyQuery.setOpenDisease("2"); - - //儿童年龄满六岁就不在提供短信服务 - Date birthdayMax = DateUtils.addYear(new Date(), -6); - babyQuery.setBirthStart(birthdayMax); + babyQuery.setOpenDiseaseEndTime(new Date()); //查询符合条件儿童 List babies = babyBookbuildingService.queryBabyBuildByCond(babyQuery); @@ -111,6 +104,21 @@ public class BabyDiseaseMsgGenerateWorker implements Runnable { if (baby == null || baby.getBirth() == null) { continue; } + Integer openDisDays = 0;// 开通天数 + if ("12".equals(baby.getOpenDiseaseType())) //开通一年 + { + //周几发送必须是配置页面配置的 + if (!guideTimes.contains(week)) + { + continue; + } + } + //开通一个月 一个月按照33天给服务 + else if("1".equals(baby.getOpenDiseaseType())) + { + openDisDays = DateUtils.getBetweenMonths(DateUtil.addDay(baby.getOpenDiseaseEndTime(),-33),new Date()); + } + List diseases = baby.getDiseases(); if (CollectionUtils.isNotEmpty(diseases)) { @@ -121,7 +129,7 @@ public class BabyDiseaseMsgGenerateWorker implements Runnable { { // 查询模板短信 从ams平台配置的短信通过医院IDa List amsSmses = AmsMessageService - .getBabyDiseaseMsg(String.valueOf(weeks), BabyDiseaseEnums.getNameById(Integer.parseInt(did))); + .getBabyDiseaseMsg(String.valueOf(weeks), BabyDiseaseEnums.getNameById(Integer.parseInt(did)),baby.getOpenDiseaseType()); if (CollectionUtils.isNotEmpty(amsSmses)) { for (MessageContent message : amsSmses) @@ -130,6 +138,15 @@ public class BabyDiseaseMsgGenerateWorker implements Runnable { if (isExist) { continue; } + //开通一个月 按照ams短信配置的天数来发送 + if ("1".equals(baby.getOpenDiseaseType())) + { + if(message.getDisSort().intValue() != openDisDays.intValue()) + { + continue; + } + } + String weekDay = weeks + "周"; String messageContent = "【" + messagePrefix + "】" + message.getContent(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyBuildController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyBuildController.java index 2850f48..072f04f 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyBuildController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyBuildController.java @@ -853,4 +853,7 @@ public class BabyBuildController extends BaseController { HttpServletRequest httpServletRequest) { return babyBookbuildingFacade.addAppBabyInfo(request); } + + + } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/DepartmentsController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/DepartmentsController.java index 4b7b54b..1916359 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/DepartmentsController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/DepartmentsController.java @@ -1,6 +1,7 @@ package com.lyms.platform.operate.web.controller; +import com.lyms.platform.biz.service.ModularFunctionConfigService; import com.lyms.platform.common.annotation.TokenRequired; import com.lyms.platform.common.base.BaseController; import com.lyms.platform.common.base.LoginContext; @@ -8,12 +9,17 @@ import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.enums.OptActionEnums; import com.lyms.platform.common.enums.UserTypeEnum; import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.result.BaseObjectResponse; +import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.utils.ExceptionUtils; import com.lyms.platform.common.utils.ResultUtils; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.facade.OperateLogFacade; import com.lyms.platform.operate.web.result.FrontEndResult; import com.lyms.platform.permission.model.*; import com.lyms.platform.permission.service.*; +import com.lyms.platform.pojo.ModularFunctionConfigModel; +import com.lyms.platform.query.ModularFunctionConfigQuery; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -22,9 +28,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.Collections; -import java.util.Date; -import java.util.List; +import java.util.*; /** * Created by zhang.rui on 2015/9/28 0028. @@ -35,12 +39,7 @@ public class DepartmentsController extends BaseController { private DepartmentsService departmentsService; @Autowired private UsersService usersService; - @Autowired - private TokenService tokenService; - @Autowired - private UserRoleMapsService userRoleMapsService; - @Autowired - private RolePermissionMapsService rolePermissionMapsService; + @Autowired private OrganizationService organizationService; @Autowired @@ -49,6 +48,8 @@ public class DepartmentsController extends BaseController { @Autowired private OperateLogFacade operateLogFacade; + @Autowired + private ModularFunctionConfigService modularFunctionConfigServcie; @@ -253,4 +254,69 @@ public class DepartmentsController extends BaseController { } + /** + * 查询医院的科室医生和是否开通疾病诊断 + * @param hospitalId + * @return + */ + @RequestMapping(value = "/getBabyDeptInfo", method = RequestMethod.GET) + @ResponseBody + public BaseResponse getBabyDeptInfo(@RequestParam(required = true) String hospitalId) { + + Map data = new HashMap<>(); + + List> doctors = new ArrayList<>(); + + DepartmentsQuery departmentsQuery = new DepartmentsQuery(); + departmentsQuery.setKeyword("儿科"); + departmentsQuery.setYn(YnEnums.YES.getId()); + departmentsQuery.setOrgId(Integer.parseInt(hospitalId)); + List departmentses = departmentsService.queryDepartments(departmentsQuery); + if (CollectionUtils.isNotEmpty(departmentses)) + { + Integer deptId = departmentses.get(0).getId(); + UsersQuery usersQuery = new UsersQuery(); + usersQuery.setYn(YnEnums.YES.getId()); + usersQuery.setDeptId(deptId); + List userses = usersService.queryUsers(usersQuery); + if (CollectionUtils.isNotEmpty(userses)) + { + for (Users users : userses) + { + Map u = new HashMap<>(); + u.put("id",users.getId()+""); + u.put("name",users.getName()); + doctors.add(u); + } + } + } + + data.put("doctors",doctors); + + ModularFunctionConfigQuery diagnoseConfigQuery = new ModularFunctionConfigQuery(); + diagnoseConfigQuery.setHospitalId(hospitalId); + String isOpen = "false"; + try { + List configModels = modularFunctionConfigServcie.queryDiagnoseConfigs(diagnoseConfigQuery); + if (CollectionUtils.isNotEmpty(configModels)) { + for (ModularFunctionConfigModel model : configModels) { + List> list = model.getConfigs(); + if (CollectionUtils.isNotEmpty(list)) { + for (Map config : list) { + if ("66".equals(String.valueOf(config.get("type")))) { + isOpen = "2".equals(String.valueOf(config.get("value"))) ? "true" : "false"; + } + } + } + } + } + } catch (Exception e) { + ExceptionUtils.catchException(e, "queryHospitalSmsSendConfig error."); + } + data.put("isOpen",isOpen); + + return new BaseObjectResponse().setData(data).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); + + } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java index 4a347e7..99a86c6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java @@ -1479,6 +1479,8 @@ public class BabyBookbuildingFacade { bm.setBlNo(b.getBlNo()); bm.setOpenDisease(b.getOpenDisease()); + bm.setOpenDiseaseType(b.getOpenDiseaseType()); + bm.setOpenDiseaseEndTime(b.getOpenDiseaseType() ==null ? null : DateUtil.addMonth(bm.getBuildDate(),Integer.parseInt(b.getOpenDiseaseType()))); return bm; } @@ -5121,21 +5123,80 @@ public class BabyBookbuildingFacade { request.setBuildDate(DateUtil.getyyyy_MM_dd(new Date())); request.setBuildDoctor("a9e5507f-e7da-4ec6-b8db-9a1e4d1b7c29"); + UsersQuery usersQuery = new UsersQuery(); usersQuery.setYn(YnEnums.YES.getId()); usersQuery.setOrgId(Integer.parseInt(appRequest.getHospitalId())); List users = usersService.queryUsers(usersQuery); - BaseObjectResponse baseObjectResponse = addBabyBookbuilding(request, users.get(0).getId()); + Integer userId = users.get(0).getId(); + + if (CollectionUtils.isNotEmpty(appRequest.getDiseases())) + { + request.setOpenDisease("2");//开通疾病 + request.setOpenDiseaseType(appRequest.getOpenDisType()); + request.setBuildDoctor(appRequest.getDoctorId()); + userId = Integer.parseInt(appRequest.getDoctorId()); + } + + BaseObjectResponse baseObjectResponse = addBabyBookbuilding(request, userId); if (baseObjectResponse.getErrorcode() != 0) { return baseObjectResponse; } appRequest.setId(String.valueOf(baseObjectResponse.getData())); + + + } BabyModel babyModelDb = babyService.getOneBabyById(appRequest.getId()); + if (CollectionUtils.isNotEmpty(appRequest.getDiseases())) + { + //创建儿童检查 + createBabyCheck(babyModelDb,appRequest.getDiseases()); + } + return new BaseObjectResponse() .setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(babyModelDb.getEncoded()); } + @Autowired + private GuidelinesService guidelinesService; + + public void createBabyCheck(BabyModel babyModelDb,List diseases) + { + + int babyMonth = DateUtil.getBabyAgeMonth(babyModelDb.getBirth(),new Date()); + + BabyCheckRequest request = new BabyCheckRequest(); + request.setPid(babyModelDb.getPid()); + request.setBuildId(babyModelDb.getId()); + request.setCheckDate(DateUtil.getyyyy_MM_dd(new Date())); + request.setCheckDoctor(babyModelDb.getBuildDoctor()); + request.setDiseases(diseases); + request.setMonthAge(DateUtil.getBabyMonthAge(babyModelDb.getBirth(), new Date())); + + GuidelinesQuery guidelinesQuery=new GuidelinesQuery(); + guidelinesQuery.setType(3); + guidelinesQuery.setMaxStart(babyMonth); + guidelinesQuery.setMinEnd(babyMonth); + guidelinesQuery.setNumber(babyMonth); + + //指导意见 + List list = guidelinesService.queryGuidelines(guidelinesQuery); + StringBuilder stringBuilder=new StringBuilder(500); + if(CollectionUtils.isNotEmpty(list)){ + for(Guidelines guidelines:list){ + stringBuilder.append(guidelines.getCategory()).append(" ").append(guidelines.getContent()).append("\r\n"); + } + } + request.setGuideSuggest(stringBuilder.toString()); + + + babyCheckFacade.addBabyCheck(request,Integer.parseInt(babyModelDb.getBuildDoctor())); + + } + + + } \ No newline at end of file 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 d83f7c1..cab387e 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 @@ -1950,7 +1950,7 @@ public class BabyCheckFacade extends BaseServiceImpl { model.setWeight(checkModel.getWeight()); model.setHead(checkModel.getHead()); model.setHeightWeight(checkModel.getHeightWeight()); - model.setGrowthEvaluate(JsonUtil.toList(checkModel.getGrowthEvaluate(), String.class)); + model.setGrowthEvaluate(checkModel.getGrowthEvaluate() == null ? null : JsonUtil.toList(checkModel.getGrowthEvaluate(), String.class)); model.setBilirubinHead(checkModel.getBilirubinHead()); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAppBuildAddRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAppBuildAddRequest.java index 5fd4611..bb62a26 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAppBuildAddRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAppBuildAddRequest.java @@ -22,6 +22,37 @@ public class BabyAppBuildAddRequest { private String mommyName; private String vcCardNo; private String hospitalId; + + private String doctorId; + //儿童疾病 + private List diseases; + + private String openDisType; + + public String getOpenDisType() { + return openDisType; + } + + public void setOpenDisType(String openDisType) { + this.openDisType = openDisType; + } + + public List getDiseases() { + return diseases; + } + + public void setDiseases(List diseases) { + this.diseases = diseases; + } + + public String getDoctorId() { + return doctorId; + } + + public void setDoctorId(String doctorId) { + this.doctorId = doctorId; + } + public String getId() { return id; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyBookbuildingAddRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyBookbuildingAddRequest.java index 859ecd7..c1b42e6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyBookbuildingAddRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyBookbuildingAddRequest.java @@ -367,6 +367,15 @@ public class BabyBookbuildingAddRequest { //是否开通疾病发生推送 0或者空没有开通 1开通 private String openDisease; + private String openDiseaseType; //1一个月 12一年 + + public String getOpenDiseaseType() { + return openDiseaseType; + } + + public void setOpenDiseaseType(String openDiseaseType) { + this.openDiseaseType = openDiseaseType; + } public String getOpenDisease() { return openDisease; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyPageResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyPageResult.java index 1abb4e8..260c92a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyPageResult.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyPageResult.java @@ -309,6 +309,24 @@ public class BabyPageResult implements IBasicResultConvert urls = new LinkedHashMap<>(); static @@ -167,8 +167,9 @@ public class SyncDataTaskService { { if ("26EB0301C4A2410E90985A3E55856E4BDD1E0738D7612389D1064D8FEA3E8BA03E6DE745639AC53F4ECD0A961CF459E4".equals( model.getClassName()) || "26EB0301C4A2410E90985A3E55856E4BD23678A20530C64EC8478C7581BC98073D9BFF0544133E28AB36B23DF4485FB8".equals(model.getClassName()) - || model.getClassName().equals("26EB0301C4A2410E90985A3E55856E4BC90B764322A576155B201AFB0BC8C94FFAB29197A8B86F592DD2ABABF896EB89") - || model.getClassName().equals("26EB0301C4A2410E90985A3E55856E4B3C4D479C08144B1C305459866E333E5EA9DBC5ADCC909D6B56A15E9ACD7D84BB")) +// || model.getClassName().equals("26EB0301C4A2410E90985A3E55856E4BC90B764322A576155B201AFB0BC8C94FFAB29197A8B86F592DD2ABABF896EB89") +// || model.getClassName().equals("26EB0301C4A2410E90985A3E55856E4B3C4D479C08144B1C305459866E333E5EA9DBC5ADCC909D6B56A15E9ACD7D84BB") + ) { //System.out.println("archiveData="+model.getClassName()); boo = true;