whyclxw
2024-07-01 0ce771b4a4ff5897dc91bb1b84a4561781b00ca5
src/main/java/com/whyc/service/CKPowerDevBreakAlarmHistoryService.java
@@ -6,6 +6,7 @@
import com.whyc.dto.Response;
import com.whyc.factory.ThreadPoolExecutorFactory;
import com.whyc.pojo.db_ckpwrdev_alarm.CKPowerDevAlarmHistory;
import com.whyc.pojo.db_ckpwrdev_break_alarm.CKPowerDevBreakAlarmHistory;
import com.whyc.util.SubTablePageInfoUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -32,7 +33,7 @@
        Date almStartTime = alarmDto.getAlmStarttime();
        Date almEndTime = alarmDto.getAlmStarttime1();
        PageInfo<Object> pageInfo = subTablePageInfoUtils.getPageInfo(pageNum, pageSize, almStartTime, almEndTime,
                "db_ckpwrdev_break_alarm", "tb_ckpowerdev_break_alarm", alarmDto);
                "db_ckpwrdev_break_alarm", "tb_ckpowerdev_break_alarm_history", alarmDto);
        return new Response<>().setII(1, pageInfo, null, "返回结果");
    }
    //历史头部统计
@@ -42,42 +43,25 @@
        countMap.put("1",0);
        countMap.put("2",0);
        countMap.put("3",0);
        countMap.put("ac",0);
        countMap.put("dc",0);
        countMap.put("gc",0);
        List<CKPowerDevAlarmHistory> allList=new ArrayList<>();
        List<CKPowerDevBreakAlarmHistory> allList=new ArrayList<>();
        //查询所有的历史时间表
        List<String> tableYearListInDB=subTablePageInfoService.getDevAlmHisList();
        List<String> tableYearListInDB=subTablePageInfoService.getBreakAlmHisList();
        //多线程读取
        ThreadPoolExecutor pool = ThreadPoolExecutorFactory.getPoolExecutor();
        CountDownLatch latch = new CountDownLatch(tableYearListInDB.size());
        for (String tableYear : tableYearListInDB) {
            pool.execute(()-> {
                List<CKPowerDevAlarmHistory> hisList = subTablePageInfoService.selectLevelCountList(tableYear);
                List<CKPowerDevBreakAlarmHistory> hisList = subTablePageInfoService.selectBreakLevelCountList(tableYear);
                allList.addAll(hisList);
                latch.countDown();
            });
        }
        latch.await();
        countMap.put("0",allList.size());
        Map<Integer, List<CKPowerDevAlarmHistory>> levelMap = allList.stream().collect(Collectors.groupingBy(CKPowerDevAlarmHistory::getAlmLevel));
        Map<Integer, List<CKPowerDevBreakAlarmHistory>> levelMap = allList.stream().collect(Collectors.groupingBy(CKPowerDevBreakAlarmHistory::getAlmLevel));
        Set<Integer> levelKeyMap = levelMap.keySet();
        for (Integer level : levelKeyMap) {
            countMap.put(level.toString(),levelMap.get(level).size());
        }
        Map<Integer, List<CKPowerDevAlarmHistory>> typeMap = allList.stream().collect(Collectors.groupingBy(CKPowerDevAlarmHistory::getDevType));
        Set<Integer> typeKeyMap = typeMap.keySet();
        for (Integer type : typeKeyMap) {
            if(type==1){
                countMap.put("ac",levelMap.get(type).size());
            }
            if(type==2){
                countMap.put("dc",levelMap.get(type).size());
            }
            if(type==3){
                countMap.put("gc",levelMap.get(type).size());
            }
        }
        return new Response().set(1,countMap);
    }