Commit b1327e74cf3bdf48970cd2c10eae567d0994ac16
1 parent
022adb8d41
Exists in
master
and in
6 other branches
update code
Showing 1 changed file with 125 additions and 39 deletions
platform-operate-api/src/main/java/com/lyms/hospitalapi/Nczxyy/NczxyyLisService.java
View file @
b1327e7
| ... | ... | @@ -2,12 +2,20 @@ |
| 2 | 2 | |
| 3 | 3 | import com.alibaba.fastjson.JSONObject; |
| 4 | 4 | import com.lyms.hospitalapi.pojo.*; |
| 5 | +import com.lyms.platform.common.enums.RiskDefaultTypeEnum; | |
| 6 | +import com.lyms.platform.common.enums.YnEnums; | |
| 5 | 7 | import com.lyms.platform.common.utils.DateUtil; |
| 8 | +import com.lyms.platform.common.utils.ExceptionUtils; | |
| 9 | +import com.lyms.platform.operate.web.result.RiskReportResult; | |
| 6 | 10 | import com.lyms.platform.operate.web.utils.HttpClientUtil; |
| 11 | +import com.lyms.platform.pojo.BasicConfig; | |
| 12 | +import com.lyms.platform.query.PatientsQuery; | |
| 7 | 13 | import org.springframework.stereotype.Service; |
| 8 | 14 | |
| 15 | +import java.text.DecimalFormat; | |
| 9 | 16 | import java.text.SimpleDateFormat; |
| 10 | 17 | import java.util.*; |
| 18 | +import java.util.concurrent.*; | |
| 11 | 19 | |
| 12 | 20 | /** |
| 13 | 21 | * Created by Administrator on 2017/5/17. |
| ... | ... | @@ -15,6 +23,9 @@ |
| 15 | 23 | @Service("nczxyyLisService") |
| 16 | 24 | public class NczxyyLisService { |
| 17 | 25 | |
| 26 | + | |
| 27 | + private static ExecutorService pool = Executors.newFixedThreadPool(3); | |
| 28 | + | |
| 18 | 29 | public List<CheckByDate> queryCheckListupdate(String cardNo,int ftype){ |
| 19 | 30 | |
| 20 | 31 | if(1==ftype){ |
| ... | ... | @@ -221,7 +232,6 @@ |
| 221 | 232 | } |
| 222 | 233 | |
| 223 | 234 | public static List<CheckResponse> queryLisCheckList(String cardNo){ |
| 224 | - SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd "); | |
| 225 | 235 | List<CheckResponse> result = new ArrayList<>(); |
| 226 | 236 | Calendar c = Calendar.getInstance(); |
| 227 | 237 | SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); |
| ... | ... | @@ -230,7 +240,7 @@ |
| 230 | 240 | c.add(Calendar.YEAR, -1); |
| 231 | 241 | Date date = c.getTime(); |
| 232 | 242 | String StartDate=df.format(date); |
| 233 | - String url="http://mihp.nc120.cn/PlatformService/platform/api"; | |
| 243 | + final String url="http://mihp.nc120.cn/PlatformService/platform/api"; | |
| 234 | 244 | String js="{\"api_id\":\"800010\",\"EndDate\":\""+EndDate+"\",\"active_key\":\"LYMS\",\"StartDate\":\""+StartDate+"\",\"user_token\":\"LYMS\",\"operator_id\":\"YD_WX\",\"CardNo\":\""+cardNo+"\"}"; |
| 235 | 245 | Map<String,Object> map1=new HashMap<String,Object>(); |
| 236 | 246 | map1.put("result", HttpClientUtil.doPostHTTP(url, js)); |
| 237 | 247 | |
| 238 | 248 | |
| 239 | 249 | |
| 240 | 250 | |
| 241 | 251 | |
| 242 | 252 | |
| ... | ... | @@ -238,50 +248,126 @@ |
| 238 | 248 | Nczxyy2 nczxyy2=null; |
| 239 | 249 | nczxyy2=(Nczxyy2)json.getObject("result", Nczxyy2.class); |
| 240 | 250 | if(nczxyy2.getList()!=null && !nczxyy2.getList().isEmpty()) { |
| 241 | - for (int i = 0; i < nczxyy2.getList().size(); i++) { | |
| 242 | - String DetailId = nczxyy2.getList().get(i).getId(); | |
| 243 | - String Str = "{\"api_id\":\"800020\",\"active_key\":\"LYMS\",\"user_token\":\"LYMS\",\"operator_id\":\"YD_WX\",\"DetailId\":\"" + DetailId + "\"}"; | |
| 244 | - map1.put("result1", HttpClientUtil.doPostHTTP(url, Str)); | |
| 245 | - JSONObject json1 = new JSONObject(map1); | |
| 246 | - NczxyyXQ2 nczxyyxq2 = null; | |
| 247 | - nczxyyxq2 = (NczxyyXQ2) json1.getObject("result1", NczxyyXQ2.class); | |
| 248 | - if (nczxyyxq2 != null) { | |
| 249 | - try { | |
| 250 | - CheckResponse CheckResponse = new CheckResponse(); | |
| 251 | - CheckResponse.setHospitalName("四川省南充市中心医院"); | |
| 252 | - CheckResponse.setName(nczxyyxq2.getData().get姓名()); | |
| 253 | - CheckResponse.setModified(formatter.parse(nczxyyxq2.getData().get报告时间())); | |
| 254 | - CheckResponse.setType(1); | |
| 255 | - CheckResponse.setDoctor(nczxyyxq2.getData().get申请医师()); | |
| 256 | - CheckResponse.setTitle(nczxyyxq2.getData().get申请项目()); | |
| 257 | - CheckResponse.setAge(nczxyyxq2.getData().get年龄()); | |
| 258 | - CheckResponse.setApplyDate(formatter.parse(nczxyyxq2.getData().get申请时间())); | |
| 259 | - CheckResponse.setApplyDateStr(nczxyyxq2.getData().get申请时间()); | |
| 260 | - CheckResponse.setCheckDept(nczxyyxq2.getData().get科室()); | |
| 261 | - CheckResponse.setSex(nczxyyxq2.getData().get性别()); | |
| 262 | - List<CheckItemResponse> itemlist = new ArrayList<CheckItemResponse>(); | |
| 263 | - CheckResponse.setItemList(itemlist); | |
| 264 | - for (int j = 0; j < nczxyyxq2.getData().getLisPatResults().size(); j++) { | |
| 265 | - CheckItemResponse item = new CheckItemResponse(); | |
| 266 | - item.setName(nczxyyxq2.getData().getLisPatResults().get(j).get名称()); | |
| 267 | - item.setCode(nczxyyxq2.getData().getLisPatResults().get(j).get项目号()); | |
| 268 | - item.setRefer(nczxyyxq2.getData().getLisPatResults().get(j).get临界值()); | |
| 269 | - item.setResult(nczxyyxq2.getData().getLisPatResults().get(j).get检验值()); | |
| 270 | - item.setUnit(nczxyyxq2.getData().getLisPatResults().get(j).get单位()); | |
| 271 | - item.setSpecial(nczxyyxq2.getData().getLisPatResults().get(j).get结论()); | |
| 272 | - itemlist.add(item); | |
| 251 | + int batchSize = 1; | |
| 252 | + int end = 0; | |
| 253 | + List<Future> futures = new ArrayList<>(); | |
| 254 | + for (int i = 0; i < nczxyy2.getList().size(); i += batchSize) { | |
| 255 | + end = (end + batchSize); | |
| 256 | + if (end > nczxyy2.getList().size()) { | |
| 257 | + end = nczxyy2.getList().size(); | |
| 258 | + } | |
| 259 | + final List<Nczxyy1> lises = nczxyy2.getList().subList(i, end); | |
| 260 | + Callable callable = new Callable() { | |
| 261 | + @Override | |
| 262 | + public List<CheckResponse> call() throws Exception { | |
| 263 | + List<CheckResponse> result = new ArrayList<>(); | |
| 264 | + for (Nczxyy1 nc : lises) { | |
| 265 | + | |
| 266 | + Map<String,Object> map1=new HashMap<String,Object>(); | |
| 267 | + String DetailId = nc.getId(); | |
| 268 | + String Str = "{\"api_id\":\"800020\",\"active_key\":\"LYMS\",\"user_token\":\"LYMS\",\"operator_id\":\"YD_WX\",\"DetailId\":\"" + DetailId + "\"}"; | |
| 269 | + map1.put("result1", HttpClientUtil.doPostHTTP(url, Str)); | |
| 270 | + JSONObject json1 = new JSONObject(map1); | |
| 271 | + NczxyyXQ2 nczxyyxq2 = null; | |
| 272 | + nczxyyxq2 = (NczxyyXQ2) json1.getObject("result1", NczxyyXQ2.class); | |
| 273 | + if (nczxyyxq2 != null) { | |
| 274 | + try { | |
| 275 | + CheckResponse CheckResponse = new CheckResponse(); | |
| 276 | + CheckResponse.setHospitalName("四川省南充市中心医院"); | |
| 277 | + CheckResponse.setName(nczxyyxq2.getData().get姓名()); | |
| 278 | + CheckResponse.setModified(DateUtil.parseYMD(nczxyyxq2.getData().get报告时间())); | |
| 279 | + CheckResponse.setType(1); | |
| 280 | + CheckResponse.setDoctor(nczxyyxq2.getData().get申请医师()); | |
| 281 | + CheckResponse.setTitle(nczxyyxq2.getData().get申请项目()); | |
| 282 | + CheckResponse.setAge(nczxyyxq2.getData().get年龄()); | |
| 283 | + CheckResponse.setApplyDate(DateUtil.parseYMD(nczxyyxq2.getData().get申请时间())); | |
| 284 | + CheckResponse.setApplyDateStr(nczxyyxq2.getData().get申请时间()); | |
| 285 | + CheckResponse.setCheckDept(nczxyyxq2.getData().get科室()); | |
| 286 | + CheckResponse.setSex(nczxyyxq2.getData().get性别()); | |
| 287 | + List<CheckItemResponse> itemlist = new ArrayList<CheckItemResponse>(); | |
| 288 | + CheckResponse.setItemList(itemlist); | |
| 289 | + for (int j = 0; j < nczxyyxq2.getData().getLisPatResults().size(); j++) { | |
| 290 | + CheckItemResponse item = new CheckItemResponse(); | |
| 291 | + item.setName(nczxyyxq2.getData().getLisPatResults().get(j).get名称()); | |
| 292 | + item.setCode(nczxyyxq2.getData().getLisPatResults().get(j).get项目号()); | |
| 293 | + item.setRefer(nczxyyxq2.getData().getLisPatResults().get(j).get临界值()); | |
| 294 | + item.setResult(nczxyyxq2.getData().getLisPatResults().get(j).get检验值()); | |
| 295 | + item.setUnit(nczxyyxq2.getData().getLisPatResults().get(j).get单位()); | |
| 296 | + item.setSpecial(nczxyyxq2.getData().getLisPatResults().get(j).get结论()); | |
| 297 | + itemlist.add(item); | |
| 298 | + } | |
| 299 | + result.add(CheckResponse); | |
| 300 | + } catch (Exception e) { | |
| 301 | + e.printStackTrace(); | |
| 302 | + } | |
| 303 | + } | |
| 304 | + | |
| 273 | 305 | } |
| 274 | - result.add(CheckResponse); | |
| 275 | - } catch (Exception e) { | |
| 276 | - e.printStackTrace(); | |
| 277 | - } | |
| 278 | 306 | |
| 307 | + return result; | |
| 308 | + } | |
| 309 | + }; | |
| 310 | + Future f = pool.submit(callable); | |
| 311 | + futures.add(f); | |
| 312 | + } | |
| 313 | + for (Future f : futures) { | |
| 314 | + try { | |
| 315 | + result.addAll((List) f.get(30, TimeUnit.SECONDS)); | |
| 316 | + } catch (Exception e) { | |
| 317 | + ExceptionUtils.catchException(e, "queryLisCheckList nc lis."); | |
| 279 | 318 | } |
| 280 | - | |
| 281 | 319 | } |
| 320 | + | |
| 282 | 321 | } |
| 322 | +// for (int i = 0; i < nczxyy2.getList().size(); i++) { | |
| 323 | +// String DetailId = nczxyy2.getList().get(i).getId(); | |
| 324 | +// String Str = "{\"api_id\":\"800020\",\"active_key\":\"LYMS\",\"user_token\":\"LYMS\",\"operator_id\":\"YD_WX\",\"DetailId\":\"" + DetailId + "\"}"; | |
| 325 | +// map1.put("result1", HttpClientUtil.doPostHTTP(url, Str)); | |
| 326 | +// JSONObject json1 = new JSONObject(map1); | |
| 327 | +// NczxyyXQ2 nczxyyxq2 = null; | |
| 328 | +// nczxyyxq2 = (NczxyyXQ2) json1.getObject("result1", NczxyyXQ2.class); | |
| 329 | +// if (nczxyyxq2 != null) { | |
| 330 | +// try { | |
| 331 | +// CheckResponse CheckResponse = new CheckResponse(); | |
| 332 | +// CheckResponse.setHospitalName("四川省南充市中心医院"); | |
| 333 | +// CheckResponse.setName(nczxyyxq2.getData().get姓名()); | |
| 334 | +// CheckResponse.setModified(formatter.parse(nczxyyxq2.getData().get报告时间())); | |
| 335 | +// CheckResponse.setType(1); | |
| 336 | +// CheckResponse.setDoctor(nczxyyxq2.getData().get申请医师()); | |
| 337 | +// CheckResponse.setTitle(nczxyyxq2.getData().get申请项目()); | |
| 338 | +// CheckResponse.setAge(nczxyyxq2.getData().get年龄()); | |
| 339 | +// CheckResponse.setApplyDate(formatter.parse(nczxyyxq2.getData().get申请时间())); | |
| 340 | +// CheckResponse.setApplyDateStr(nczxyyxq2.getData().get申请时间()); | |
| 341 | +// CheckResponse.setCheckDept(nczxyyxq2.getData().get科室()); | |
| 342 | +// CheckResponse.setSex(nczxyyxq2.getData().get性别()); | |
| 343 | +// List<CheckItemResponse> itemlist = new ArrayList<CheckItemResponse>(); | |
| 344 | +// CheckResponse.setItemList(itemlist); | |
| 345 | +// for (int j = 0; j < nczxyyxq2.getData().getLisPatResults().size(); j++) { | |
| 346 | +// CheckItemResponse item = new CheckItemResponse(); | |
| 347 | +// item.setName(nczxyyxq2.getData().getLisPatResults().get(j).get名称()); | |
| 348 | +// item.setCode(nczxyyxq2.getData().getLisPatResults().get(j).get项目号()); | |
| 349 | +// item.setRefer(nczxyyxq2.getData().getLisPatResults().get(j).get临界值()); | |
| 350 | +// item.setResult(nczxyyxq2.getData().getLisPatResults().get(j).get检验值()); | |
| 351 | +// item.setUnit(nczxyyxq2.getData().getLisPatResults().get(j).get单位()); | |
| 352 | +// item.setSpecial(nczxyyxq2.getData().getLisPatResults().get(j).get结论()); | |
| 353 | +// itemlist.add(item); | |
| 354 | +// } | |
| 355 | +// result.add(CheckResponse); | |
| 356 | +// } catch (Exception e) { | |
| 357 | +// e.printStackTrace(); | |
| 358 | +// } | |
| 359 | +// | |
| 360 | +// } | |
| 361 | +// | |
| 362 | +// } | |
| 283 | 363 | |
| 284 | 364 | return result; |
| 365 | + } | |
| 366 | + | |
| 367 | + public static void main(String[] args) | |
| 368 | + { | |
| 369 | + List<CheckResponse> list = queryLisCheckList("1002332625"); | |
| 370 | + System.out.println(list.size()); | |
| 285 | 371 | } |
| 286 | 372 | } |