Commit e40dcda336649cafc7c3284866f084f9cbfd1360

Authored by liquanyu
1 parent 31f84a1cc0

同步数据

Showing 3 changed files with 88 additions and 89 deletions

platform-common/src/main/java/com/lyms/platform/common/utils/HttpClientUtil.java View file @ e40dcda
... ... @@ -169,6 +169,11 @@
169 169 e.printStackTrace();
170 170 }
171 171 }
  172 + if (httpPost != null)
  173 + {
  174 + httpPost.releaseConnection();
  175 + }
  176 +
172 177 }
173 178 return httpStr;
174 179 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java View file @ e40dcda
... ... @@ -125,7 +125,24 @@
125 125 private BabyBookbuildingService babyBookbuildingService;
126 126  
127 127  
  128 + static Map<String,String> highRisks = new HashMap<>();
  129 + static {
  130 + highRisks.put("f3a1c08f-a2c1-4e93-8ffd-398af9e2d8c9","5a40c763422b03d4ad2bf7c1"); // 流产≥2次---------> 不良孕产史(各类流产≥3次、早产、围产儿死亡、出生缺陷、异位妊娠、滋养细胞疾病等)
  131 + highRisks.put("ee3ba99e-64c0-4aab-b0a4-71dec0d61ca6","5a40c772422b03d4ad2bf7c4"); //人工受精------->辅助生殖妊娠
  132 + highRisks.put("a8094bd6-de5d-4b95-9a1a-59ae376bb2a6","9310676a-9482-4da5-9ba8-e2a302843ea0"); //高血压------> 妊娠期高血压疾病(除外红、橙色)
  133 + highRisks.put("3be742b2-ed07-425e-a435-8a19fc8ba86e","52986b9e-5a44-4613-9af5-07564f15b703"); //臀位 -------->≥36周胎位不正
  134 + highRisks.put("cbeb4447-f4cb-4c2e-96f3-973a0c701fc3","8856c4da-57e3-42af-820a-25c991dde3f0"); //BMI≥32------>BMI≥28
  135 + highRisks.put("251833c7-7ac1-410f-a6e7-c50f4008d5ed","5a41f715422b03d4ad2bf7f7"); // 中度贫血 ------>妊娠合并贫血(Hb 60-110g/L)
  136 + highRisks.put("2adbce90-4066-4980-b7a0-14012cbfea52","d7ceb752-ce2a-4901-a94e-51b73ccefc52"); // 心律失常-----需药物治疗的心肌炎后遗症、心律失常等
  137 + highRisks.put("8745081d-1f37-45f7-b5be-94a208686bd2","ecb2fd70-1e85-455c-8f62-ee7b9c71e48c"); // 甲减---------需药物治疗的甲状腺疾病
  138 + highRisks.put("5cba13c2-5cb5-46c9-905a-41708d13d45e","d6cfcad8-c674-4624-b50d-8797d217f10c"); //糖尿病并发心脏病 ----糖尿病并发肾病V级、严重心血管病、增生性视网膜病变或玻璃体出血、周围神经病变等
  139 + highRisks.put("0b51b328-1c8f-41de-90de-ef3b76341c1b","d6cfcad8-c674-4624-b50d-8797d217f10c"); //糖尿病并发蛋白尿 ----糖尿病并发肾病V级、严重心血管病、增生性视网膜病变或玻璃体出血、周围神经病变等
  140 + highRisks.put("80587d8a-009e-46aa-87e5-57996b0708b1","d6cfcad8-c674-4624-b50d-8797d217f10c"); //糖尿病并发肾功能不全 ---糖尿病并发肾病V级、严重心血管病、增生性视网膜病变或玻璃体出血、周围神经病变等
128 141  
  142 + }
  143 +
  144 +
  145 +
129 146 @ResponseBody
130 147 @RequestMapping("/init/patient/weight")
131 148 public BaseResponse initPatientWeight() {
... ... @@ -1437,18 +1454,6 @@
1437 1454 @RequestMapping(value = "/upateNewHighRisk", method = RequestMethod.GET)
1438 1455 @ResponseBody
1439 1456 public String upateNewHighRisk(@RequestParam(required = false) String hospitalId, @RequestParam(required = false) String patientId) {
1440   - final Map<String,String> highRisks = new HashMap<>();
1441   - highRisks.put("f3a1c08f-a2c1-4e93-8ffd-398af9e2d8c9","5a40c763422b03d4ad2bf7c1"); // 流产≥2次---------> 不良孕产史(各类流产≥3次、早产、围产儿死亡、出生缺陷、异位妊娠、滋养细胞疾病等)
1442   - highRisks.put("ee3ba99e-64c0-4aab-b0a4-71dec0d61ca6","5a40c772422b03d4ad2bf7c4"); //人工受精------->辅助生殖妊娠
1443   - highRisks.put("a8094bd6-de5d-4b95-9a1a-59ae376bb2a6","9310676a-9482-4da5-9ba8-e2a302843ea0"); //高血压------> 妊娠期高血压疾病(除外红、橙色)
1444   - highRisks.put("3be742b2-ed07-425e-a435-8a19fc8ba86e","52986b9e-5a44-4613-9af5-07564f15b703"); //臀位 -------->≥36周胎位不正
1445   - highRisks.put("cbeb4447-f4cb-4c2e-96f3-973a0c701fc3","8856c4da-57e3-42af-820a-25c991dde3f0"); //BMI≥32------>BMI≥28
1446   - highRisks.put("251833c7-7ac1-410f-a6e7-c50f4008d5ed","5a41f715422b03d4ad2bf7f7"); // 中度贫血 ------>妊娠合并贫血(Hb 60-110g/L)
1447   - highRisks.put("2adbce90-4066-4980-b7a0-14012cbfea52","d7ceb752-ce2a-4901-a94e-51b73ccefc52"); // 心律失常-----需药物治疗的心肌炎后遗症、心律失常等
1448   - highRisks.put("8745081d-1f37-45f7-b5be-94a208686bd2","ecb2fd70-1e85-455c-8f62-ee7b9c71e48c"); // 甲减---------需药物治疗的甲状腺疾病
1449   - highRisks.put("5cba13c2-5cb5-46c9-905a-41708d13d45e","d6cfcad8-c674-4624-b50d-8797d217f10c"); //糖尿病并发心脏病 ----糖尿病并发肾病V级、严重心血管病、增生性视网膜病变或玻璃体出血、周围神经病变等
1450   - highRisks.put("0b51b328-1c8f-41de-90de-ef3b76341c1b","d6cfcad8-c674-4624-b50d-8797d217f10c"); //糖尿病并发蛋白尿 ----糖尿病并发肾病V级、严重心血管病、增生性视网膜病变或玻璃体出血、周围神经病变等
1451   - highRisks.put("80587d8a-009e-46aa-87e5-57996b0708b1","d6cfcad8-c674-4624-b50d-8797d217f10c"); //糖尿病并发肾功能不全 ---糖尿病并发肾病V级、严重心血管病、增生性视网膜病变或玻璃体出血、周围神经病变等
1452 1457  
1453 1458 OrganizationQuery organizationQuery = new OrganizationQuery();
1454 1459 organizationQuery.setYn(YnEnums.YES.getId());
... ... @@ -1486,16 +1491,7 @@
1486 1491 for (Patients pat : tempList) {
1487 1492 List<String> patientRisk = pat.getRiskFactorId();
1488 1493 if (CollectionUtils.isNotEmpty(patientRisk)) {
1489   - int modCount = 0;
1490   - for (String key : highRisks.keySet())
1491   - {
1492   - if (patientRisk.contains(key))
1493   - {
1494   - patientRisk.remove(key);
1495   - patientRisk.add(highRisks.get(key));
1496   - modCount++;
1497   - }
1498   - }
  1494 + int modCount = doRiskHandle(patientRisk);
1499 1495 if (modCount > 0)
1500 1496 {
1501 1497 pat.setRiskFactorId(patientRisk);
... ... @@ -1515,16 +1511,7 @@
1515 1511  
1516 1512 List<String> highrisks = JsonUtil.toList(highriskStr, String.class);
1517 1513 if (CollectionUtils.isNotEmpty(highrisks)) {
1518   - int modCount = 0;
1519   - for (String key : highRisks.keySet())
1520   - {
1521   - if (highrisks.contains(key))
1522   - {
1523   - highrisks.remove(key);
1524   - highrisks.add(highRisks.get(key));
1525   - modCount++;
1526   - }
1527   - }
  1514 + int modCount = doRiskHandle(highrisks);
1528 1515 if (modCount > 0)
1529 1516 {
1530 1517 cmodel.setHighrisk(JsonUtil.array2JsonString(highrisks));
... ... @@ -1550,16 +1537,7 @@
1550 1537 if (CollectionUtils.isNotEmpty(highrisks))
1551 1538 {
1552 1539 if (CollectionUtils.isNotEmpty(highrisks)) {
1553   - int modCount = 0;
1554   - for (String key : highRisks.keySet())
1555   - {
1556   - if (highrisks.contains(key))
1557   - {
1558   - highrisks.remove(key);
1559   - highrisks.add(highRisks.get(key));
1560   - modCount++;
1561   - }
1562   - }
  1540 + int modCount = doRiskHandle(highrisks);
1563 1541 if (modCount > 0)
1564 1542 {
1565 1543 fmodel.setRiskFactor(JsonUtil.array2JsonString(highrisks));
... ... @@ -1587,16 +1565,7 @@
1587 1565 {
1588 1566 if (CollectionUtils.isNotEmpty(highrisks))
1589 1567 {
1590   - int modCount = 0;
1591   - for (String key : highRisks.keySet())
1592   - {
1593   - if (highrisks.contains(key))
1594   - {
1595   - highrisks.remove(key);
1596   - highrisks.add(highRisks.get(key));
1597   - modCount++;
1598   - }
1599   - }
  1568 + int modCount = doRiskHandle(highrisks);
1600 1569 if (modCount > 0)
1601 1570 {
1602 1571 model.sethRisk(highrisks);
... ... @@ -1617,6 +1586,24 @@
1617 1586 }
1618 1587 }
1619 1588 return "upateNewHighRisk finish";
  1589 + }
  1590 +
  1591 + private int doRiskHandle(List<String> patientRisk)
  1592 + {
  1593 + int modCount = 0;
  1594 + for (String key : highRisks.keySet())
  1595 + {
  1596 + if (patientRisk.contains(key))
  1597 + {
  1598 + patientRisk.remove(key);
  1599 + if (!patientRisk.contains(highRisks.get(key)))
  1600 + {
  1601 + patientRisk.add(highRisks.get(key));
  1602 + modCount++;
  1603 + }
  1604 + }
  1605 + }
  1606 + return modCount;
1620 1607 }
1621 1608  
1622 1609 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java View file @ e40dcda
... ... @@ -37,6 +37,8 @@
37 37 import javax.print.attribute.standard.DateTimeAtCompleted;
38 38 import java.io.File;
39 39 import java.util.*;
  40 +import java.util.concurrent.Executor;
  41 +import java.util.concurrent.Executors;
40 42  
41 43 /**
42 44 * Created by riecard on 16/9/26.
... ... @@ -98,6 +100,8 @@
98 100 @Qualifier("commonThreadPool")
99 101 private ThreadPoolTaskExecutor commonThreadPool;
100 102  
  103 + private Executor pool = Executors.newFixedThreadPool(5);
  104 +
101 105 /**
102 106 * 该方法是区域或者单体医院部署的把数据定时往某个环境上传
103 107 * (如往线上环境上传,mongo_sync_url就配置相应的线上的接收地址)
104 108  
105 109  
106 110  
107 111  
... ... @@ -127,49 +131,52 @@
127 131 {
128 132 for (final String url : urls.keySet())
129 133 {
130   - try{
131   - String json = HttpClientUtil.doPost("https://"+url+"/findSyncData", new HashMap<String, String>(), "utf-8");
132   - if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(json))
133   - {
134   - List<SyncDataModel> list = JsonUtil.toList(json, SyncDataModel.class);
135   - System.out.println(DateUtil.getyyyy_MM_dd_hms(new Date())+url+" ; syncdata size = "+ list.size());
136   - int batchSize = 200;
137   - int end = 0;
138   - for (int i = 0; i < list.size(); i += batchSize) {
139   - end = (end + batchSize);
140   - if (end > list.size()) {
141   - end = list.size();
142   - }
143   - final List<SyncDataModel> tempList = list.subList(i, end);
144   - commonThreadPool.execute(new Runnable() {
145   - @Override
146   - public void run() {
147   - if (CollectionUtils.isNotEmpty(tempList))
148   - {
149   - StringBuffer ids = new StringBuffer();
150   - for (SyncDataModel model : tempList) {
151   - boolean boo = mongoSyncService.syncData(model.getAction(), model.getDataId(), model.getClassName(), model.getJsonData());
152   - if (boo) {
153   - ids.append(model.getId());
154   - ids.append(",");
  134 + pool.execute(new Runnable() {
  135 + @Override
  136 + public void run() {
  137 + try{
  138 + String json = HttpClientUtil.doPost("https://"+url+"/findSyncData", new HashMap<String, String>(), "utf-8");
  139 + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(json))
  140 + {
  141 + List<SyncDataModel> list = JsonUtil.toList(json, SyncDataModel.class);
  142 + System.out.println(DateUtil.getyyyy_MM_dd_hms(new Date())+url+" ; syncdata size = "+ list.size());
  143 + int batchSize = 200;
  144 + int end = 0;
  145 + for (int i = 0; i < list.size(); i += batchSize) {
  146 + end = (end + batchSize);
  147 + if (end > list.size()) {
  148 + end = list.size();
  149 + }
  150 + final List<SyncDataModel> tempList = list.subList(i, end);
  151 + commonThreadPool.execute(new Runnable() {
  152 + @Override
  153 + public void run() {
  154 + if (CollectionUtils.isNotEmpty(tempList))
  155 + {
  156 + StringBuffer ids = new StringBuffer();
  157 + for (SyncDataModel model : tempList) {
  158 + boolean boo = mongoSyncService.syncData(model.getAction(), model.getDataId(), model.getClassName(), model.getJsonData());
  159 + if (boo) {
  160 + ids.append(model.getId());
  161 + ids.append(",");
  162 + }
  163 + }
  164 + if (ids.length() > 0) {
  165 + Map<String,String> params = new HashMap<String, String>();
  166 + params.put("ids", ids.toString());
  167 + HttpClientUtil.doPost("https://" + url + "/updateSyncData", params, "utf-8");
  168 + }
155 169 }
156 170 }
157   - if (ids.length() > 0) {
158   - Map<String,String> params = new HashMap<String, String>();
159   - params.put("ids", ids.toString());
160   - HttpClientUtil.doPost("https://" + url + "/updateSyncData", params, "utf-8");
161   - }
162   - }
  171 + });
163 172 }
164   - });
  173 + }
  174 + }catch(Exception ex){
  175 + ExceptionUtils.catchException(ex, url+": syncData Error.");
165 176 }
166 177 }
167   - }catch(Exception ex){
168   - ExceptionUtils.catchException(ex, url+": syncData Error.");
169   - continue;
170   - }
  178 + });
171 179 }
172   -
173 180 }
174 181  
175 182