Commit 61fbe24168ed3485d62eed97b9f0d38255922481

Authored by yangfei
1 parent e40dcda336

自定义高危

Showing 9 changed files with 293 additions and 9 deletions

platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/HosptialHighRiskService.java View file @ 61fbe24
... ... @@ -27,6 +27,11 @@
27 27  
28 28 private LoadingCache<String, HosptialHighRisk> cached=null;
29 29  
  30 + //删除数据
  31 + public void deleteHosptialHighRisk(String id) {
  32 + hosptialHightRiskDao.deleteHosptialHighRisk(id);
  33 + }
  34 +
30 35 public void addHosptialHighRisk(HosptialHighRisk obj) {
31 36 obj.setModifiedDate(System.currentTimeMillis());
32 37 hosptialHightRiskDao.addHosptialHighRisk(obj);
platform-dal/src/main/java/com/lyms/platform/pojo/HosptialHighRisk.java View file @ 61fbe24
... ... @@ -15,15 +15,16 @@
15 15  
16 16 @Id
17 17 private String id;
18   -
  18 + //分数
19 19 private String code;
20   -
  20 + //名称
21 21 private String name;
22   -
  22 + //是否有效0-无效,1-有效
23 23 private Integer enable;
24   -
  24 + //是否有效0-无效,1-有效
  25 + private Integer yn;
  26 + //医院id
25 27 private String hospitalId;
26   -
27 28 private String typeId;
28 29  
29 30 //权重
... ... @@ -34,6 +35,7 @@
34 35  
35 36 private Integer score;
36 37 private String describe;
  38 + //颜色
37 39 private String color;
38 40  
39 41 public Integer getWeight() {
... ... @@ -120,7 +122,6 @@
120 122 this.name = name;
121 123 }
122 124  
123   - private Integer yn;
124 125  
125 126 public String getId() {
126 127 return id;
platform-dal/src/main/java/com/lyms/platform/query/AntExQuery.java View file @ 61fbe24
... ... @@ -37,6 +37,17 @@
37 37  
38 38 private Date gteCreated;
39 39  
  40 + //其他高危
  41 + private String otherRisk;
  42 +
  43 + public String getOtherRisk() {
  44 + return otherRisk;
  45 + }
  46 +
  47 + public void setOtherRisk(String otherRisk) {
  48 + this.otherRisk = otherRisk;
  49 + }
  50 +
40 51 public String getCheckDoctor() {
41 52 return checkDoctor;
42 53 }
... ... @@ -137,6 +148,10 @@
137 148 }
138 149 if(null!=id){
139 150 condition= condition.and("id",id, MongoOper.IS);
  151 + }
  152 + if(null!=otherRisk){
  153 + condition= condition.and("otherRisk",otherRisk, MongoOper.NE);
  154 + condition= condition.and("otherRisk",true, MongoOper.EXISTS);
140 155 }
141 156 if(null!=checkDoctor){
142 157 condition= condition.and("checkDoctor",checkDoctor, MongoOper.IS);
platform-dal/src/main/java/com/lyms/platform/query/HosptialHighRiskQuery.java View file @ 61fbe24
... ... @@ -38,6 +38,17 @@
38 38 //
39 39 private Boolean existweight;
40 40  
  41 + //颜色
  42 + private String color;
  43 +
  44 + public String getColor() {
  45 + return color;
  46 + }
  47 +
  48 + public void setColor(String color) {
  49 + this.color = color;
  50 + }
  51 +
41 52 public String getHospitalId() {
42 53 return hospitalId;
43 54 }
... ... @@ -98,6 +109,9 @@
98 109  
99 110 if (null != typeId) {
100 111 condition = condition.and("typeId", typeId, MongoOper.IS);
  112 + }
  113 + if (null != color) {
  114 + condition = condition.and("color", color, MongoOper.IS);
101 115 }
102 116 if(null!=enable){
103 117 condition = condition.and("enable", enable, MongoOper.IS);
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HosptialHighRiskController.java View file @ 61fbe24
  1 +package com.lyms.platform.operate.web.controller;
  2 +
  3 +import com.lyms.platform.common.annotation.TokenRequired;
  4 +import com.lyms.platform.common.base.LoginContext;
  5 +import com.lyms.platform.common.result.BaseResponse;
  6 +import com.lyms.platform.operate.web.facade.HosptialHighRiskFacade;
  7 +import com.lyms.platform.pojo.HosptialHighRisk;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.stereotype.Controller;
  10 +import org.springframework.web.bind.annotation.*;
  11 +
  12 +import javax.servlet.http.HttpServletRequest;
  13 +import javax.validation.Valid;
  14 +
  15 +/**
  16 + * @auther yangfei
  17 + * @createTime 2017年12月29日 11时01分
  18 + * @discription 医院自定义高危
  19 + */
  20 +@Controller
  21 +@RequestMapping("/hospHightRisk")
  22 +public class HosptialHighRiskController {
  23 + @Autowired
  24 + private HosptialHighRiskFacade hosptialHighRiskFacade;
  25 +
  26 + /**
  27 + * 添加自定义高危
  28 + *
  29 + * @param request
  30 + * @return
  31 + */
  32 + @RequestMapping(method = RequestMethod.POST, value = "/addHightRisk")
  33 + @ResponseBody
  34 + @TokenRequired
  35 + public BaseResponse addHightRisk(@Valid @RequestBody HosptialHighRisk request, HttpServletRequest httpServletRequest) {
  36 + LoginContext loginState = (LoginContext) httpServletRequest.getAttribute("loginContext");
  37 + return hosptialHighRiskFacade.addHosptialHighRisk(request, loginState.getId());
  38 + }
  39 +
  40 +
  41 + /**
  42 + * 删除自定义高危
  43 + *
  44 + * @param id
  45 + * @return
  46 + */
  47 + @RequestMapping(value = "/deleteHightRiskById/{id}", method = RequestMethod.DELETE)
  48 + @TokenRequired
  49 + @ResponseBody
  50 + public BaseResponse deleteHightRiskById(@PathVariable("id") String id, HttpServletRequest request) {
  51 + return hosptialHighRiskFacade.deleteHosptialHighRiskById(id);
  52 +
  53 + }
  54 +
  55 + /**
  56 + * 根据医院获取自定义高危
  57 + * @return
  58 + */
  59 + @RequestMapping(value = "/getHightRisk", method = RequestMethod.GET)
  60 + @TokenRequired
  61 + @ResponseBody
  62 + public BaseResponse getHosptialHighRisk(HttpServletRequest request) {
  63 + LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  64 + return hosptialHighRiskFacade.getHosptialHighRisk(loginState.getId());
  65 + }
  66 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java View file @ 61fbe24
... ... @@ -192,6 +192,25 @@
192 192 return baseResponse;
193 193 }
194 194  
  195 + /**
  196 + * 孕妇复诊数据自定义高危数据处理
  197 + *
  198 + * @return
  199 + */
  200 + @RequestMapping(value = "/synAntexOtherHighRisk", method = RequestMethod.GET)
  201 + @ResponseBody
  202 + public BaseResponse synAntexOtherHighRisk() {
  203 + AntExQuery antExQuery = new AntExQuery();
  204 + antExQuery.setOtherRisk("{}");
  205 + int patientCount = antenatalExaminationService.queryAntenatalExaminationCount(antExQuery.convertToQuery());
  206 + System.out.println("一共需要处理数据量:" + patientCount);
  207 +
  208 + commonThreadPool.execute(new AntexcOtherHighRiskWorker(0, patientCount, antenatalExaminationService, hosptialHighRiskService, basicConfigService, 1000, patientCount));
  209 + BaseResponse baseResponse = new BaseResponse();
  210 + baseResponse.setErrormsg("一共需要处理数据量:" + patientCount);
  211 + return baseResponse;
  212 + }
  213 +
195 214  
196 215 /**
197 216 * 儿童建档服务数据处理
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HosptialHighRiskFacade.java View file @ 61fbe24
1 1 package com.lyms.platform.operate.web.facade;
2 2  
3 3 import com.lyms.platform.biz.service.HosptialHighRiskService;
  4 +import com.lyms.platform.common.result.BaseResponse;
4 5 import com.lyms.platform.pojo.HosptialHighRisk;
  6 +import com.lyms.platform.query.HosptialHighRiskQuery;
5 7 import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.stereotype.Component;
6 9  
  10 +import java.util.List;
  11 +
7 12 /**
8 13 * @auther yangfei
9 14 * @createTime 2017年12月28日 15时27分
10 15 * @discription 医院自定义高危
11 16 */
  17 +@Component
12 18 public class HosptialHighRiskFacade {
13 19 @Autowired
14 20 private HosptialHighRiskService hosptialHighRiskService;
  21 + @Autowired
  22 + private AutoMatchFacade autoMatchFacade;
15 23  
16 24 /**
17 25 * 新增自定义高危
18 26 * @param hosptialHighRisk
19 27 * @return
20 28 */
21   - public boolean addHosptialHighRisk(HosptialHighRisk hosptialHighRisk){
  29 + public BaseResponse addHosptialHighRisk(HosptialHighRisk hosptialHighRisk, int userId){
  30 + BaseResponse baseResponse = new BaseResponse();
  31 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  32 + hosptialHighRisk.setHospitalId(hospitalId);
22 33 hosptialHighRiskService.addHosptialHighRisk(hosptialHighRisk);
23   - return true;
  34 + return baseResponse;
24 35 }
25 36  
  37 + /**
  38 + * 根据用户id查询自定义高危
  39 + * @param userId 当前登录用户id
  40 + * @return
  41 + */
  42 + public BaseResponse getHosptialHighRisk(int userId){
  43 + BaseResponse baseResponse = new BaseResponse();
  44 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  45 + HosptialHighRiskQuery hosptialHighRiskQuery = new HosptialHighRiskQuery();
  46 + hosptialHighRiskQuery.setHospitalId(hospitalId);
  47 + List<HosptialHighRisk> hosptialHighRisks = hosptialHighRiskService.queryHosptialHighRisk(hosptialHighRiskQuery);
  48 + baseResponse.setObject(hosptialHighRisks);
  49 + return baseResponse;
  50 + }
26 51  
  52 + /**
  53 + * 根据Id,删除自定义高危
  54 + * @param id
  55 + * @return
  56 + */
  57 + public BaseResponse deleteHosptialHighRiskById(String id) {
  58 + BaseResponse baseResponse = new BaseResponse();
  59 + hosptialHighRiskService.deleteHosptialHighRisk(id);
  60 + return baseResponse;
  61 + }
27 62 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/AntexOtherHighRiskWorker.java View file @ 61fbe24
  1 +package com.lyms.platform.operate.web.worker;
  2 +
  3 +import com.lyms.platform.biz.service.AntenatalExaminationService;
  4 +import com.lyms.platform.biz.service.BasicConfigService;
  5 +import com.lyms.platform.biz.service.HosptialHighRiskService;
  6 +import com.lyms.platform.common.enums.YnEnums;
  7 +import com.lyms.platform.common.utils.JsonUtil;
  8 +import com.lyms.platform.common.utils.StringUtils;
  9 +import com.lyms.platform.operate.web.utils.CollectionUtils;
  10 +import com.lyms.platform.operate.web.utils.FunvCommonUtil;
  11 +import com.lyms.platform.pojo.AntenatalExaminationModel;
  12 +import com.lyms.platform.pojo.HosptialHighRisk;
  13 +import com.lyms.platform.query.AntExQuery;
  14 +import com.lyms.platform.query.HosptialHighRiskQuery;
  15 +
  16 +import java.util.HashMap;
  17 +import java.util.List;
  18 +import java.util.Map;
  19 +
  20 +/**
  21 + * @auther yangfei
  22 + * @createTime 2017年11月22日 11时28分
  23 + * @discription 复诊自定义高危数据处理
  24 + */
  25 +public class AntexOtherHighRiskWorker implements Runnable {
  26 + private int startIndex;
  27 + private int endIndex;
  28 + private int batchSize;
  29 + private int allCount;
  30 + private AntenatalExaminationService antenatalExaminationService;
  31 + private HosptialHighRiskService hosptialHighRiskService;
  32 + private BasicConfigService basicConfigService;
  33 +
  34 + public AntexOtherHighRiskWorker(int startIndex, int endIndex, AntenatalExaminationService antenatalExaminationService, HosptialHighRiskService hosptialHighRiskService, BasicConfigService basicConfigService, int batchSize, int allCount) {
  35 + this.allCount = allCount;
  36 + this.startIndex = startIndex;
  37 + this.endIndex = endIndex;
  38 + this.antenatalExaminationService = antenatalExaminationService;
  39 + this.hosptialHighRiskService = hosptialHighRiskService;
  40 + this.basicConfigService = basicConfigService;
  41 + if (batchSize >= 1000) {
  42 + this.batchSize = 1000;
  43 + } else {
  44 + this.batchSize = batchSize;
  45 + }
  46 + }
  47 +
  48 + /**
  49 + * Computes a result, or throws an exception if unable to do so.
  50 + *
  51 + * @return computed result
  52 + */
  53 + @Override
  54 + public void run() {
  55 + try {
  56 + Map<String, Integer> patientsMap = new HashMap<>();
  57 +
  58 + for (int i = startIndex; i < endIndex; i += batchSize) {
  59 + AntExQuery antExQuery = new AntExQuery();
  60 + antExQuery.setOtherRisk("{}");
  61 + antExQuery.setLimit(batchSize);
  62 + antExQuery.setPage((i + batchSize) / batchSize);
  63 +
  64 + List<AntenatalExaminationModel> antExChuModels = antenatalExaminationService.queryLastAntenatalExamination(antExQuery.convertToQuery());
  65 + System.out.println("查询数据" + antExChuModels.size());
  66 + for (AntenatalExaminationModel chu : antExChuModels) {
  67 + System.out.println(chu.getOtherRisk());
  68 + String otherHighRisk = chu.getOtherRisk();
  69 + String hospital = chu.getHospitalId();
  70 + String color = "";
  71 + String pingfen = "";
  72 + String yinsu = "";
  73 +
  74 + Map<String, String> otherMap = JsonUtil.jkstr2Obj(otherHighRisk, Map.class);
  75 + if (otherMap != null) {
  76 + if (StringUtils.isNotEmpty(otherMap.get("fyyse"))) {
  77 + color = otherMap.get("fyyse").toString();
  78 + // color = FunvCommonUtil.getBaseicConfigByid(id, basicConfigService);
  79 + // if (color.indexOf("预警") > -1) {
  80 + // color = color.replace("预警", "");
  81 + // }
  82 + } else {
  83 + continue;
  84 + }
  85 + if (StringUtils.isNotEmpty(otherMap.get("fxpf"))) {
  86 + String id = otherMap.get("fxpf").toString();
  87 + pingfen = FunvCommonUtil.getBaseicConfigByid(id, basicConfigService);
  88 + } else {
  89 + continue;
  90 + }
  91 + if (StringUtils.isNotEmpty(otherMap.get("fxysu"))) {
  92 + yinsu = otherMap.get("fxysu").toString();
  93 + } else {
  94 + continue;
  95 + }
  96 + } else {
  97 + continue;
  98 + }
  99 +
  100 + HosptialHighRiskQuery hosptialHighRiskQuery = new HosptialHighRiskQuery();
  101 + hosptialHighRiskQuery.setHospitalId(hospital);
  102 + hosptialHighRiskQuery.setColor(color);
  103 + hosptialHighRiskQuery.setName(yinsu);
  104 +
  105 + List<HosptialHighRisk> hosptialHighRisks = hosptialHighRiskService.queryHosptialHighRisk(hosptialHighRiskQuery);
  106 + if (CollectionUtils.isEmpty(hosptialHighRisks)) {
  107 + HosptialHighRisk hosptialHighRisk = new HosptialHighRisk();
  108 + hosptialHighRisk.setHospitalId(hospital);
  109 + hosptialHighRisk.setCode(pingfen);
  110 + hosptialHighRisk.setName(yinsu);
  111 + hosptialHighRisk.setEnable(YnEnums.YES.getId());
  112 + hosptialHighRisk.setYn(YnEnums.YES.getId());
  113 + hosptialHighRisk.setColor(color);
  114 + hosptialHighRiskService.addHosptialHighRisk(hosptialHighRisk);
  115 + }
  116 + }
  117 +
  118 +
  119 + System.out.println("总数据量:" + allCount + ",正在处理第:" + i + "--到--" + (i + batchSize) + ",page:" + antExQuery.getPage() + ",limit:" + antExQuery.getLimit());
  120 +
  121 +
  122 + System.out.println("线程处理数据完成,开始条数:" + startIndex + ",结束条数:" + endIndex + ",map:" + patientsMap.size());
  123 + }
  124 + } catch (Exception e) {
  125 + e.printStackTrace();
  126 + }
  127 + }
  128 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/AntexcOtherHighRiskWorker.java View file @ 61fbe24
... ... @@ -61,7 +61,7 @@
61 61 antExChuQuery1.setLimit(batchSize);
62 62 antExChuQuery1.setPage((i + batchSize) / batchSize);
63 63  
64   - List<AntExChuModel> antExChuModels = antenatalExaminationService.queryAntExChu(antExChuQuery1.convertToQuery());
  64 + List<AntExChuModel> antExChuModels = antenatalExaminationService.queryAntExChu(antExChuQuery1);
65 65 System.out.println("查询数据" + antExChuModels.size());
66 66 for (AntExChuModel chu : antExChuModels) {
67 67 System.out.println(chu.getOtherHighRisk());
... ... @@ -99,6 +99,7 @@
99 99  
100 100 HosptialHighRiskQuery hosptialHighRiskQuery = new HosptialHighRiskQuery();
101 101 hosptialHighRiskQuery.setHospitalId(hospital);
  102 + hosptialHighRiskQuery.setColor(color);
102 103 hosptialHighRiskQuery.setName(yinsu);
103 104  
104 105 List<HosptialHighRisk> hosptialHighRisks = hosptialHighRiskService.queryHosptialHighRisk(hosptialHighRiskQuery);