//多线程处理
try{
boolean finalIsSelf = isSelf;
List<String> finalAreaList = areaList;
List<String> finalChildAreaList = childAreaList;
List<String> finalGrandsonAreaList = grandsonAreaList;
Callable a = ()->{return getXXSLData(dataList, condition.clone(), finalIsSelf, finalAreaList, finalChildAreaList, finalGrandsonAreaList);};
Callable b = ()->{return getXXLAData(dataList, condition.clone(), finalIsSelf, finalAreaList, finalChildAreaList, finalGrandsonAreaList);};
Callable c = ()->{return getSQCXData(dataList, condition.clone(), finalIsSelf, finalAreaList, finalChildAreaList, finalGrandsonAreaList);};
Callable d = ()->{return getQSSCData(dataList, condition.clone(), finalIsSelf, finalAreaList);};
Callable e;
if (isSelf && condition.getAreaType().equals(Constant.LEVEL_PROVINCE)) {
System.out.println("省检查看本院数据不用获取审查批复数据");
map.put("scpfMap", null);
} else {
e = ()->{return getSCPFData(dataList, condition.clone(), finalIsSelf);};
FutureTask<Map<String, Object>> fe = new FutureTask<Map<String, Object>>(e);
new Thread(fe).start();
map.put("scpfMap",fe.get());
}
Callable f = ()->{return getSSSJData(dataList, condition.clone(), finalIsSelf, finalAreaList);};
Callable g = ()->{return getPollutioinData(dataList, condition.clone(), finalIsSelf);};
FutureTask<Map<String, Object>> fa = new FutureTask<Map<String, Object>>(a);
FutureTask<Map<String, Object>> fb = new FutureTask<Map<String, Object>>(b);
FutureTask<Map<String, Object>> fc = new FutureTask<Map<String, Object>>(c);
FutureTask<Map<String, Object>> fd = new FutureTask<Map<String, Object>>(d);
FutureTask<Map<String, Object>> ff = new FutureTask<Map<String, Object>>(f);
FutureTask<Map<String, Object>> fg = new FutureTask<Map<String, Object>>(g);
new Thread(fa).start();
new Thread(fb).start();
new Thread(fc).start();
new Thread(fd).start();
new Thread(ff).start();
new Thread(fg).start();
map.put("xsslMap", fa.get());
map.put("xxlaMap", fb.get());
map.put("sqcxMap", fc.get());
map.put("qsscMap", fd.get());
map.put("yscpMap", ff.get());
map.put("lyMap", fg.get());
}catch (InterruptedException | ExecutionException ex) {
ex.printStackTrace();
log.error("分析报告多线程异常");
}
07-20
2313
03-02
610
11-03
777