| | |
| | | package cn.gistack.sm.sjztmd.service.impl; |
| | | |
| | | import cn.gistack.common.config.MyThreadPoolConfig; |
| | | import cn.gistack.sm.feedback.service.IFeedbackService; |
| | | import cn.gistack.sm.intelligentCall.vo.CallTaskStatistic; |
| | | import cn.gistack.sm.sjztmd.entity.TbAttResBase; |
| | | import cn.gistack.sm.sjztmd.mapper.TbAttResBaseMapper; |
| | | import cn.gistack.sm.sjztmd.service.ITbAttResBaseService; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.*; |
| | | import java.util.concurrent.CompletableFuture; |
| | | import java.util.concurrent.ExecutionException; |
| | | import java.util.concurrent.ThreadPoolExecutor; |
| | | |
| | | /** |
| | | * @ClassName AttResBaseServiceImpl |
| | |
| | | |
| | | @Autowired |
| | | private IUserClient userClient; |
| | | |
| | | @Autowired |
| | | private MyThreadPoolConfig myThreadPoolConfig; |
| | | |
| | | /** |
| | | * 查询水库填报详情信息 |
| | |
| | | newTbAttResBase.setLog(stringBuilder.toString()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 查询所有水库填报的状态信息 |
| | | * @param resGuid |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<Map<String, Object>> getAllWaterFillInfoByResGuid(String resGuid) { |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | | ThreadPoolExecutor executor = myThreadPoolConfig.threadPoolExecutor(); |
| | | // 查询水库基础填报数据 |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResBaseInfo = getTbAttResBaseInfo("tb_att_res_base",resGuid, executor); |
| | | // 查询水库其他填报数据 |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResBuildInfo = getTbInfo("tb_att_res_build_info",resGuid,executor); |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResEngBene = getTbInfo("tb_att_res_eng_bene",resGuid,executor); |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResInfomationProject = getTbInfo("tb_att_res_infomation_project",resGuid,executor); |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResMgrSysB = getTbInfo("tb_att_res_mgr_sys_b",resGuid,executor); |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResPowerStation = getTbInfo("tb_att_res_power_station",resGuid,executor); |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResProjectUtilize = getTbInfo("tb_att_res_project_utilize",resGuid,executor); |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResRsbNorspi = getTbInfo("tb_att_res_rsb_norspi",resGuid,executor); |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResRsbSpillway = getTbInfo("tb_att_res_rsb_spillway",resGuid,executor); |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResRsbVerspi = getTbInfo("tb_att_res_rsb_verspi",resGuid,executor); |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResSafetyMonitor = getTbInfo("tb_att_res_safety_monitor",resGuid,executor); |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResStagChar = getTbInfo("tb_att_res_stag_char",resGuid,executor); |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResWaterBlock = getTbInfo("tb_att_res_water_block",resGuid,executor); |
| | | CompletableFuture<List<Map<String,Object>>> tbAttResWaterDelivery = getTbInfo("tb_att_res_water_delivery",resGuid,executor); |
| | | //等待所有任务执行完成 |
| | | try { |
| | | CompletableFuture.allOf( |
| | | tbAttResBaseInfo, |
| | | tbAttResBuildInfo, |
| | | tbAttResEngBene, |
| | | tbAttResInfomationProject, |
| | | tbAttResMgrSysB, |
| | | tbAttResPowerStation, |
| | | tbAttResProjectUtilize, |
| | | tbAttResRsbNorspi, |
| | | tbAttResRsbSpillway, |
| | | tbAttResRsbVerspi, |
| | | tbAttResSafetyMonitor, |
| | | tbAttResStagChar, |
| | | tbAttResWaterBlock, |
| | | tbAttResWaterDelivery).get(); |
| | | // 数据处理 |
| | | list.addAll(tbAttResBaseInfo.get()); |
| | | list.addAll(tbAttResBuildInfo.get()); |
| | | list.addAll(tbAttResEngBene.get()); |
| | | list.addAll(tbAttResInfomationProject.get()); |
| | | list.addAll(tbAttResMgrSysB.get()); |
| | | list.addAll(tbAttResPowerStation.get()); |
| | | list.addAll(tbAttResProjectUtilize.get()); |
| | | list.addAll(tbAttResRsbNorspi.get()); |
| | | list.addAll(tbAttResRsbSpillway.get()); |
| | | list.addAll(tbAttResRsbVerspi.get()); |
| | | list.addAll(tbAttResSafetyMonitor.get()); |
| | | list.addAll(tbAttResStagChar.get()); |
| | | list.addAll(tbAttResWaterBlock.get()); |
| | | list.addAll(tbAttResWaterDelivery.get()); |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } catch (ExecutionException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | // 返回 |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 查询水库基础填报数据 |
| | | * @param tableName |
| | | * @param resGuid |
| | | * @param executor |
| | | * @return |
| | | */ |
| | | private CompletableFuture<List<Map<String,Object>>> getTbAttResBaseInfo(String tableName,String resGuid,ThreadPoolExecutor executor){ |
| | | return CompletableFuture.supplyAsync(()->{ |
| | | // 查询所有水库填报的状态信息 |
| | | return baseMapper.getTbAttResBaseInfo(resGuid,tableName); |
| | | },executor); |
| | | } |
| | | |
| | | /** |
| | | * 查询水库其他填报数据 |
| | | * @param tableName |
| | | * @param resGuid |
| | | * @param executor |
| | | * @return |
| | | */ |
| | | private CompletableFuture<List<Map<String,Object>>> getTbInfo(String tableName,String resGuid,ThreadPoolExecutor executor){ |
| | | return CompletableFuture.supplyAsync(()->{ |
| | | // 查询所有水库填报的状态信息 |
| | | List<Map<String, Object>> tbInfo = baseMapper.getTbInfo(resGuid, tableName); |
| | | if (tbInfo.size()==0){ |
| | | Map<String, Object> map = new HashMap<>(2); |
| | | map.put("NAME",tableName); |
| | | map.put("VALUE",-1); |
| | | tbInfo.add(map); |
| | | } |
| | | return tbInfo; |
| | | },executor); |
| | | } |
| | | } |