From 61fbe24168ed3485d62eed97b9f0d38255922481 Mon Sep 17 00:00:00 2001 From: yangfei Date: Tue, 2 Jan 2018 09:52:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E9=AB=98=E5=8D=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/service/HosptialHighRiskService.java | 5 + .../com/lyms/platform/pojo/HosptialHighRisk.java | 13 ++- .../java/com/lyms/platform/query/AntExQuery.java | 15 +++ .../lyms/platform/query/HosptialHighRiskQuery.java | 14 +++ .../web/controller/HosptialHighRiskController.java | 66 +++++++++++ .../operate/web/controller/TestController.java | 19 +++ .../operate/web/facade/HosptialHighRiskFacade.java | 39 ++++++- .../web/worker/AntexOtherHighRiskWorker.java | 128 +++++++++++++++++++++ .../web/worker/AntexcOtherHighRiskWorker.java | 3 +- 9 files changed, 293 insertions(+), 9 deletions(-) create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HosptialHighRiskController.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/AntexOtherHighRiskWorker.java diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/HosptialHighRiskService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/HosptialHighRiskService.java index 6382081..e2c123b 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/HosptialHighRiskService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/HosptialHighRiskService.java @@ -27,6 +27,11 @@ public class HosptialHighRiskService implements InitializingBean { private LoadingCache cached=null; + //删除数据 + public void deleteHosptialHighRisk(String id) { + hosptialHightRiskDao.deleteHosptialHighRisk(id); + } + public void addHosptialHighRisk(HosptialHighRisk obj) { obj.setModifiedDate(System.currentTimeMillis()); hosptialHightRiskDao.addHosptialHighRisk(obj); diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/HosptialHighRisk.java b/platform-dal/src/main/java/com/lyms/platform/pojo/HosptialHighRisk.java index d33cd35..92ec2bd 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/HosptialHighRisk.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/HosptialHighRisk.java @@ -15,15 +15,16 @@ public class HosptialHighRisk extends BaseModel { @Id private String id; - + //分数 private String code; - + //名称 private String name; - + //是否有效0-无效,1-有效 private Integer enable; - + //是否有效0-无效,1-有效 + private Integer yn; + //医院id private String hospitalId; - private String typeId; //权重 @@ -34,6 +35,7 @@ public class HosptialHighRisk extends BaseModel { private Integer score; private String describe; + //颜色 private String color; public Integer getWeight() { @@ -120,7 +122,6 @@ public class HosptialHighRisk extends BaseModel { this.name = name; } - private Integer yn; public String getId() { return id; diff --git a/platform-dal/src/main/java/com/lyms/platform/query/AntExQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/AntExQuery.java index 6e9d755..b660917 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/AntExQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/AntExQuery.java @@ -37,6 +37,17 @@ public class AntExQuery extends BaseQuery implements IConvertToNativeQuery { private Date gteCreated; + //其他高危 + private String otherRisk; + + public String getOtherRisk() { + return otherRisk; + } + + public void setOtherRisk(String otherRisk) { + this.otherRisk = otherRisk; + } + public String getCheckDoctor() { return checkDoctor; } @@ -138,6 +149,10 @@ public class AntExQuery extends BaseQuery implements IConvertToNativeQuery { if(null!=id){ condition= condition.and("id",id, MongoOper.IS); } + if(null!=otherRisk){ + condition= condition.and("otherRisk",otherRisk, MongoOper.NE); + condition= condition.and("otherRisk",true, MongoOper.EXISTS); + } if(null!=checkDoctor){ condition= condition.and("checkDoctor",checkDoctor, MongoOper.IS); } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/HosptialHighRiskQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/HosptialHighRiskQuery.java index 5367fab..005bae1 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/HosptialHighRiskQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/HosptialHighRiskQuery.java @@ -38,6 +38,17 @@ public class HosptialHighRiskQuery extends BaseQuery implements IConvertToNative // private Boolean existweight; + //颜色 + private String color; + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + public String getHospitalId() { return hospitalId; } @@ -99,6 +110,9 @@ public class HosptialHighRiskQuery extends BaseQuery implements IConvertToNative if (null != typeId) { condition = condition.and("typeId", typeId, MongoOper.IS); } + if (null != color) { + condition = condition.and("color", color, MongoOper.IS); + } if(null!=enable){ condition = condition.and("enable", enable, MongoOper.IS); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HosptialHighRiskController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HosptialHighRiskController.java new file mode 100644 index 0000000..e7bbea7 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HosptialHighRiskController.java @@ -0,0 +1,66 @@ +package com.lyms.platform.operate.web.controller; + +import com.lyms.platform.common.annotation.TokenRequired; +import com.lyms.platform.common.base.LoginContext; +import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.operate.web.facade.HosptialHighRiskFacade; +import com.lyms.platform.pojo.HosptialHighRisk; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; + +/** + * @auther yangfei + * @createTime 2017年12月29日 11时01分 + * @discription 医院自定义高危 + */ +@Controller +@RequestMapping("/hospHightRisk") +public class HosptialHighRiskController { + @Autowired + private HosptialHighRiskFacade hosptialHighRiskFacade; + + /** + * 添加自定义高危 + * + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.POST, value = "/addHightRisk") + @ResponseBody + @TokenRequired + public BaseResponse addHightRisk(@Valid @RequestBody HosptialHighRisk request, HttpServletRequest httpServletRequest) { + LoginContext loginState = (LoginContext) httpServletRequest.getAttribute("loginContext"); + return hosptialHighRiskFacade.addHosptialHighRisk(request, loginState.getId()); + } + + + /** + * 删除自定义高危 + * + * @param id + * @return + */ + @RequestMapping(value = "/deleteHightRiskById/{id}", method = RequestMethod.DELETE) + @TokenRequired + @ResponseBody + public BaseResponse deleteHightRiskById(@PathVariable("id") String id, HttpServletRequest request) { + return hosptialHighRiskFacade.deleteHosptialHighRiskById(id); + + } + + /** + * 根据医院获取自定义高危 + * @return + */ + @RequestMapping(value = "/getHightRisk", method = RequestMethod.GET) + @TokenRequired + @ResponseBody + public BaseResponse getHosptialHighRisk(HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return hosptialHighRiskFacade.getHosptialHighRisk(loginState.getId()); + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java index 27c1a1f..f4956df 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java @@ -192,6 +192,25 @@ public class TestController { return baseResponse; } + /** + * 孕妇复诊数据自定义高危数据处理 + * + * @return + */ + @RequestMapping(value = "/synAntexOtherHighRisk", method = RequestMethod.GET) + @ResponseBody + public BaseResponse synAntexOtherHighRisk() { + AntExQuery antExQuery = new AntExQuery(); + antExQuery.setOtherRisk("{}"); + int patientCount = antenatalExaminationService.queryAntenatalExaminationCount(antExQuery.convertToQuery()); + System.out.println("一共需要处理数据量:" + patientCount); + + commonThreadPool.execute(new AntexcOtherHighRiskWorker(0, patientCount, antenatalExaminationService, hosptialHighRiskService, basicConfigService, 1000, patientCount)); + BaseResponse baseResponse = new BaseResponse(); + baseResponse.setErrormsg("一共需要处理数据量:" + patientCount); + return baseResponse; + } + /** * 儿童建档服务数据处理 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HosptialHighRiskFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HosptialHighRiskFacade.java index d6580e4..d72fcad 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HosptialHighRiskFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HosptialHighRiskFacade.java @@ -1,27 +1,62 @@ package com.lyms.platform.operate.web.facade; import com.lyms.platform.biz.service.HosptialHighRiskService; +import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.pojo.HosptialHighRisk; +import com.lyms.platform.query.HosptialHighRiskQuery; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; /** * @auther yangfei * @createTime 2017年12月28日 15时27分 * @discription 医院自定义高危 */ +@Component public class HosptialHighRiskFacade { @Autowired private HosptialHighRiskService hosptialHighRiskService; + @Autowired + private AutoMatchFacade autoMatchFacade; /** * 新增自定义高危 * @param hosptialHighRisk * @return */ - public boolean addHosptialHighRisk(HosptialHighRisk hosptialHighRisk){ + public BaseResponse addHosptialHighRisk(HosptialHighRisk hosptialHighRisk, int userId){ + BaseResponse baseResponse = new BaseResponse(); + String hospitalId = autoMatchFacade.getHospitalId(userId); + hosptialHighRisk.setHospitalId(hospitalId); hosptialHighRiskService.addHosptialHighRisk(hosptialHighRisk); - return true; + return baseResponse; } + /** + * 根据用户id查询自定义高危 + * @param userId 当前登录用户id + * @return + */ + public BaseResponse getHosptialHighRisk(int userId){ + BaseResponse baseResponse = new BaseResponse(); + String hospitalId = autoMatchFacade.getHospitalId(userId); + HosptialHighRiskQuery hosptialHighRiskQuery = new HosptialHighRiskQuery(); + hosptialHighRiskQuery.setHospitalId(hospitalId); + List hosptialHighRisks = hosptialHighRiskService.queryHosptialHighRisk(hosptialHighRiskQuery); + baseResponse.setObject(hosptialHighRisks); + return baseResponse; + } + /** + * 根据Id,删除自定义高危 + * @param id + * @return + */ + public BaseResponse deleteHosptialHighRiskById(String id) { + BaseResponse baseResponse = new BaseResponse(); + hosptialHighRiskService.deleteHosptialHighRisk(id); + return baseResponse; + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/AntexOtherHighRiskWorker.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/AntexOtherHighRiskWorker.java new file mode 100644 index 0000000..b707490 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/AntexOtherHighRiskWorker.java @@ -0,0 +1,128 @@ +package com.lyms.platform.operate.web.worker; + +import com.lyms.platform.biz.service.AntenatalExaminationService; +import com.lyms.platform.biz.service.BasicConfigService; +import com.lyms.platform.biz.service.HosptialHighRiskService; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.utils.JsonUtil; +import com.lyms.platform.common.utils.StringUtils; +import com.lyms.platform.operate.web.utils.CollectionUtils; +import com.lyms.platform.operate.web.utils.FunvCommonUtil; +import com.lyms.platform.pojo.AntenatalExaminationModel; +import com.lyms.platform.pojo.HosptialHighRisk; +import com.lyms.platform.query.AntExQuery; +import com.lyms.platform.query.HosptialHighRiskQuery; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @auther yangfei + * @createTime 2017年11月22日 11时28分 + * @discription 复诊自定义高危数据处理 + */ +public class AntexOtherHighRiskWorker implements Runnable { + private int startIndex; + private int endIndex; + private int batchSize; + private int allCount; + private AntenatalExaminationService antenatalExaminationService; + private HosptialHighRiskService hosptialHighRiskService; + private BasicConfigService basicConfigService; + + public AntexOtherHighRiskWorker(int startIndex, int endIndex, AntenatalExaminationService antenatalExaminationService, HosptialHighRiskService hosptialHighRiskService, BasicConfigService basicConfigService, int batchSize, int allCount) { + this.allCount = allCount; + this.startIndex = startIndex; + this.endIndex = endIndex; + this.antenatalExaminationService = antenatalExaminationService; + this.hosptialHighRiskService = hosptialHighRiskService; + this.basicConfigService = basicConfigService; + if (batchSize >= 1000) { + this.batchSize = 1000; + } else { + this.batchSize = batchSize; + } + } + + /** + * Computes a result, or throws an exception if unable to do so. + * + * @return computed result + */ + @Override + public void run() { + try { + Map patientsMap = new HashMap<>(); + + for (int i = startIndex; i < endIndex; i += batchSize) { + AntExQuery antExQuery = new AntExQuery(); + antExQuery.setOtherRisk("{}"); + antExQuery.setLimit(batchSize); + antExQuery.setPage((i + batchSize) / batchSize); + + List antExChuModels = antenatalExaminationService.queryLastAntenatalExamination(antExQuery.convertToQuery()); + System.out.println("查询数据" + antExChuModels.size()); + for (AntenatalExaminationModel chu : antExChuModels) { + System.out.println(chu.getOtherRisk()); + String otherHighRisk = chu.getOtherRisk(); + String hospital = chu.getHospitalId(); + String color = ""; + String pingfen = ""; + String yinsu = ""; + + Map otherMap = JsonUtil.jkstr2Obj(otherHighRisk, Map.class); + if (otherMap != null) { + if (StringUtils.isNotEmpty(otherMap.get("fyyse"))) { + color = otherMap.get("fyyse").toString(); + // color = FunvCommonUtil.getBaseicConfigByid(id, basicConfigService); + // if (color.indexOf("预警") > -1) { + // color = color.replace("预警", ""); + // } + } else { + continue; + } + if (StringUtils.isNotEmpty(otherMap.get("fxpf"))) { + String id = otherMap.get("fxpf").toString(); + pingfen = FunvCommonUtil.getBaseicConfigByid(id, basicConfigService); + } else { + continue; + } + if (StringUtils.isNotEmpty(otherMap.get("fxysu"))) { + yinsu = otherMap.get("fxysu").toString(); + } else { + continue; + } + } else { + continue; + } + + HosptialHighRiskQuery hosptialHighRiskQuery = new HosptialHighRiskQuery(); + hosptialHighRiskQuery.setHospitalId(hospital); + hosptialHighRiskQuery.setColor(color); + hosptialHighRiskQuery.setName(yinsu); + + List hosptialHighRisks = hosptialHighRiskService.queryHosptialHighRisk(hosptialHighRiskQuery); + if (CollectionUtils.isEmpty(hosptialHighRisks)) { + HosptialHighRisk hosptialHighRisk = new HosptialHighRisk(); + hosptialHighRisk.setHospitalId(hospital); + hosptialHighRisk.setCode(pingfen); + hosptialHighRisk.setName(yinsu); + hosptialHighRisk.setEnable(YnEnums.YES.getId()); + hosptialHighRisk.setYn(YnEnums.YES.getId()); + hosptialHighRisk.setColor(color); + hosptialHighRiskService.addHosptialHighRisk(hosptialHighRisk); + } + } + + + System.out.println("总数据量:" + allCount + ",正在处理第:" + i + "--到--" + (i + batchSize) + ",page:" + antExQuery.getPage() + ",limit:" + antExQuery.getLimit()); + + + System.out.println("线程处理数据完成,开始条数:" + startIndex + ",结束条数:" + endIndex + ",map:" + patientsMap.size()); + } + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/AntexcOtherHighRiskWorker.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/AntexcOtherHighRiskWorker.java index e0c1f23..916e166 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/AntexcOtherHighRiskWorker.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/AntexcOtherHighRiskWorker.java @@ -61,7 +61,7 @@ public class AntexcOtherHighRiskWorker implements Runnable { antExChuQuery1.setLimit(batchSize); antExChuQuery1.setPage((i + batchSize) / batchSize); - List antExChuModels = antenatalExaminationService.queryAntExChu(antExChuQuery1.convertToQuery()); + List antExChuModels = antenatalExaminationService.queryAntExChu(antExChuQuery1); System.out.println("查询数据" + antExChuModels.size()); for (AntExChuModel chu : antExChuModels) { System.out.println(chu.getOtherHighRisk()); @@ -99,6 +99,7 @@ public class AntexcOtherHighRiskWorker implements Runnable { HosptialHighRiskQuery hosptialHighRiskQuery = new HosptialHighRiskQuery(); hosptialHighRiskQuery.setHospitalId(hospital); + hosptialHighRiskQuery.setColor(color); hosptialHighRiskQuery.setName(yinsu); List hosptialHighRisks = hosptialHighRiskService.queryHosptialHighRisk(hosptialHighRiskQuery); -- 1.8.3.1