diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/Nczxyy/NczxyyLisService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/Nczxyy/NczxyyLisService.java index 1ea08b1..1f04cec 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/Nczxyy/NczxyyLisService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/Nczxyy/NczxyyLisService.java @@ -2,12 +2,20 @@ package com.lyms.hospitalapi.Nczxyy; import com.alibaba.fastjson.JSONObject; import com.lyms.hospitalapi.pojo.*; +import com.lyms.platform.common.enums.RiskDefaultTypeEnum; +import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.common.utils.ExceptionUtils; +import com.lyms.platform.operate.web.result.RiskReportResult; import com.lyms.platform.operate.web.utils.HttpClientUtil; +import com.lyms.platform.pojo.BasicConfig; +import com.lyms.platform.query.PatientsQuery; import org.springframework.stereotype.Service; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; +import java.util.concurrent.*; /** * Created by Administrator on 2017/5/17. @@ -15,6 +23,9 @@ import java.util.*; @Service("nczxyyLisService") public class NczxyyLisService { + + private static ExecutorService pool = Executors.newFixedThreadPool(3); + public List queryCheckListupdate(String cardNo,int ftype){ if(1==ftype){ @@ -221,7 +232,6 @@ public class NczxyyLisService { } public static List queryLisCheckList(String cardNo){ - SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd "); List result = new ArrayList<>(); Calendar c = Calendar.getInstance(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); @@ -230,7 +240,7 @@ public class NczxyyLisService { c.add(Calendar.YEAR, -1); Date date = c.getTime(); String StartDate=df.format(date); - String url="http://mihp.nc120.cn/PlatformService/platform/api"; + final String url="http://mihp.nc120.cn/PlatformService/platform/api"; String js="{\"api_id\":\"800010\",\"EndDate\":\""+EndDate+"\",\"active_key\":\"LYMS\",\"StartDate\":\""+StartDate+"\",\"user_token\":\"LYMS\",\"operator_id\":\"YD_WX\",\"CardNo\":\""+cardNo+"\"}"; Map map1=new HashMap(); map1.put("result", HttpClientUtil.doPostHTTP(url, js)); @@ -238,49 +248,125 @@ public class NczxyyLisService { Nczxyy2 nczxyy2=null; nczxyy2=(Nczxyy2)json.getObject("result", Nczxyy2.class); if(nczxyy2.getList()!=null && !nczxyy2.getList().isEmpty()) { - for (int i = 0; i < nczxyy2.getList().size(); i++) { - String DetailId = nczxyy2.getList().get(i).getId(); - String Str = "{\"api_id\":\"800020\",\"active_key\":\"LYMS\",\"user_token\":\"LYMS\",\"operator_id\":\"YD_WX\",\"DetailId\":\"" + DetailId + "\"}"; - map1.put("result1", HttpClientUtil.doPostHTTP(url, Str)); - JSONObject json1 = new JSONObject(map1); - NczxyyXQ2 nczxyyxq2 = null; - nczxyyxq2 = (NczxyyXQ2) json1.getObject("result1", NczxyyXQ2.class); - if (nczxyyxq2 != null) { - try { - CheckResponse CheckResponse = new CheckResponse(); - CheckResponse.setHospitalName("四川省南充市中心医院"); - CheckResponse.setName(nczxyyxq2.getData().get姓名()); - CheckResponse.setModified(formatter.parse(nczxyyxq2.getData().get报告时间())); - CheckResponse.setType(1); - CheckResponse.setDoctor(nczxyyxq2.getData().get申请医师()); - CheckResponse.setTitle(nczxyyxq2.getData().get申请项目()); - CheckResponse.setAge(nczxyyxq2.getData().get年龄()); - CheckResponse.setApplyDate(formatter.parse(nczxyyxq2.getData().get申请时间())); - CheckResponse.setApplyDateStr(nczxyyxq2.getData().get申请时间()); - CheckResponse.setCheckDept(nczxyyxq2.getData().get科室()); - CheckResponse.setSex(nczxyyxq2.getData().get性别()); - List itemlist = new ArrayList(); - CheckResponse.setItemList(itemlist); - for (int j = 0; j < nczxyyxq2.getData().getLisPatResults().size(); j++) { - CheckItemResponse item = new CheckItemResponse(); - item.setName(nczxyyxq2.getData().getLisPatResults().get(j).get名称()); - item.setCode(nczxyyxq2.getData().getLisPatResults().get(j).get项目号()); - item.setRefer(nczxyyxq2.getData().getLisPatResults().get(j).get临界值()); - item.setResult(nczxyyxq2.getData().getLisPatResults().get(j).get检验值()); - item.setUnit(nczxyyxq2.getData().getLisPatResults().get(j).get单位()); - item.setSpecial(nczxyyxq2.getData().getLisPatResults().get(j).get结论()); - itemlist.add(item); + int batchSize = 1; + int end = 0; + List futures = new ArrayList<>(); + for (int i = 0; i < nczxyy2.getList().size(); i += batchSize) { + end = (end + batchSize); + if (end > nczxyy2.getList().size()) { + end = nczxyy2.getList().size(); + } + final List lises = nczxyy2.getList().subList(i, end); + Callable callable = new Callable() { + @Override + public List call() throws Exception { + List result = new ArrayList<>(); + for (Nczxyy1 nc : lises) { + + Map map1=new HashMap(); + String DetailId = nc.getId(); + String Str = "{\"api_id\":\"800020\",\"active_key\":\"LYMS\",\"user_token\":\"LYMS\",\"operator_id\":\"YD_WX\",\"DetailId\":\"" + DetailId + "\"}"; + map1.put("result1", HttpClientUtil.doPostHTTP(url, Str)); + JSONObject json1 = new JSONObject(map1); + NczxyyXQ2 nczxyyxq2 = null; + nczxyyxq2 = (NczxyyXQ2) json1.getObject("result1", NczxyyXQ2.class); + if (nczxyyxq2 != null) { + try { + CheckResponse CheckResponse = new CheckResponse(); + CheckResponse.setHospitalName("四川省南充市中心医院"); + CheckResponse.setName(nczxyyxq2.getData().get姓名()); + CheckResponse.setModified(DateUtil.parseYMD(nczxyyxq2.getData().get报告时间())); + CheckResponse.setType(1); + CheckResponse.setDoctor(nczxyyxq2.getData().get申请医师()); + CheckResponse.setTitle(nczxyyxq2.getData().get申请项目()); + CheckResponse.setAge(nczxyyxq2.getData().get年龄()); + CheckResponse.setApplyDate(DateUtil.parseYMD(nczxyyxq2.getData().get申请时间())); + CheckResponse.setApplyDateStr(nczxyyxq2.getData().get申请时间()); + CheckResponse.setCheckDept(nczxyyxq2.getData().get科室()); + CheckResponse.setSex(nczxyyxq2.getData().get性别()); + List itemlist = new ArrayList(); + CheckResponse.setItemList(itemlist); + for (int j = 0; j < nczxyyxq2.getData().getLisPatResults().size(); j++) { + CheckItemResponse item = new CheckItemResponse(); + item.setName(nczxyyxq2.getData().getLisPatResults().get(j).get名称()); + item.setCode(nczxyyxq2.getData().getLisPatResults().get(j).get项目号()); + item.setRefer(nczxyyxq2.getData().getLisPatResults().get(j).get临界值()); + item.setResult(nczxyyxq2.getData().getLisPatResults().get(j).get检验值()); + item.setUnit(nczxyyxq2.getData().getLisPatResults().get(j).get单位()); + item.setSpecial(nczxyyxq2.getData().getLisPatResults().get(j).get结论()); + itemlist.add(item); + } + result.add(CheckResponse); + } catch (Exception e) { + e.printStackTrace(); + } + } + } - result.add(CheckResponse); - } catch (Exception e) { - e.printStackTrace(); - } + return result; + } + }; + Future f = pool.submit(callable); + futures.add(f); + } + for (Future f : futures) { + try { + result.addAll((List) f.get(30, TimeUnit.SECONDS)); + } catch (Exception e) { + ExceptionUtils.catchException(e, "queryLisCheckList nc lis."); } - } + } +// for (int i = 0; i < nczxyy2.getList().size(); i++) { +// String DetailId = nczxyy2.getList().get(i).getId(); +// String Str = "{\"api_id\":\"800020\",\"active_key\":\"LYMS\",\"user_token\":\"LYMS\",\"operator_id\":\"YD_WX\",\"DetailId\":\"" + DetailId + "\"}"; +// map1.put("result1", HttpClientUtil.doPostHTTP(url, Str)); +// JSONObject json1 = new JSONObject(map1); +// NczxyyXQ2 nczxyyxq2 = null; +// nczxyyxq2 = (NczxyyXQ2) json1.getObject("result1", NczxyyXQ2.class); +// if (nczxyyxq2 != null) { +// try { +// CheckResponse CheckResponse = new CheckResponse(); +// CheckResponse.setHospitalName("四川省南充市中心医院"); +// CheckResponse.setName(nczxyyxq2.getData().get姓名()); +// CheckResponse.setModified(formatter.parse(nczxyyxq2.getData().get报告时间())); +// CheckResponse.setType(1); +// CheckResponse.setDoctor(nczxyyxq2.getData().get申请医师()); +// CheckResponse.setTitle(nczxyyxq2.getData().get申请项目()); +// CheckResponse.setAge(nczxyyxq2.getData().get年龄()); +// CheckResponse.setApplyDate(formatter.parse(nczxyyxq2.getData().get申请时间())); +// CheckResponse.setApplyDateStr(nczxyyxq2.getData().get申请时间()); +// CheckResponse.setCheckDept(nczxyyxq2.getData().get科室()); +// CheckResponse.setSex(nczxyyxq2.getData().get性别()); +// List itemlist = new ArrayList(); +// CheckResponse.setItemList(itemlist); +// for (int j = 0; j < nczxyyxq2.getData().getLisPatResults().size(); j++) { +// CheckItemResponse item = new CheckItemResponse(); +// item.setName(nczxyyxq2.getData().getLisPatResults().get(j).get名称()); +// item.setCode(nczxyyxq2.getData().getLisPatResults().get(j).get项目号()); +// item.setRefer(nczxyyxq2.getData().getLisPatResults().get(j).get临界值()); +// item.setResult(nczxyyxq2.getData().getLisPatResults().get(j).get检验值()); +// item.setUnit(nczxyyxq2.getData().getLisPatResults().get(j).get单位()); +// item.setSpecial(nczxyyxq2.getData().getLisPatResults().get(j).get结论()); +// itemlist.add(item); +// } +// result.add(CheckResponse); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// +// } +// +// } return result; } + + public static void main(String[] args) + { + List list = queryLisCheckList("1002332625"); + System.out.println(list.size()); + } }