whyclxw
6 天以前 929c4f378a77aa51e9d71ed4e19aa13f73be6bdf
预警分析管理-主属性和配置属性
3个文件已修改
103 ■■■■■ 已修改文件
src/main/java/com/whyc/dto/AnalysisAlm/ResAnalysis.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/AlmAnalysisParamService.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/SubTablePageInfoService.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/AnalysisAlm/ResAnalysis.java
@@ -9,12 +9,17 @@
    private Date recordTime;
    private String dataName1;
    private Float dataValue1;
    private Integer dataType1;
    private String dataName2;
    private Float dataValue2;
    private Integer dataType2;
    private String dataName3;
    private Float dataValue3;
    private Integer dataType3;
    private String dataName4;
    private Float dataValue4;
    private Integer dataType4;
    private String dataName5;
    private Float dataValue5;
    private Integer dataType5;
}
src/main/java/com/whyc/service/AlmAnalysisParamService.java
@@ -73,18 +73,18 @@
            return new Response().set(1,false,"无对应分析属性");
        }else{
            //分组查看需要查询电源/电池实时表的哪些数据
            Map<String,List<String>> groupmap=groupPwrAndBatt(almAnalysisParam);
            List<String> battList=groupmap.get("batt");
            List<String> pwrList=groupmap.get("pwr");
            Map<String,  Map<String,Integer>> groupmap=groupPwrAndBatt(almAnalysisParam);
            Map<String,Integer> battMap=groupmap.get("batt");
            Map<String,Integer> pwrMap=groupmap.get("pwr");
            if(battgroupId!=null){
                if(battList!=null&&battList.size()>0){
                    List battHislist=getBattRealData(battgroupId,monthTimeList,battList);
                if(battMap!=null&&battMap.size()>0){
                    List battHislist=getBattRealData(battgroupId,monthTimeList,battMap);
                    map.put("batt",battHislist);
                }
            }
            if(powerId!=null){
                if(pwrList!=null&&pwrList.size()>0){
                    List pwrHislist=getPwrRealData(powerId,monthTimeList,pwrList);
                if(pwrMap!=null&&pwrMap.size()>0){
                    List pwrHislist=getPwrRealData(powerId,monthTimeList,pwrMap);
                    map.put("pwr",pwrHislist);
                }
            }
@@ -92,61 +92,61 @@
        }
    }
    //分组查看需要查询电源/电池实时表的哪些数据
    private Map<String, List<String>> groupPwrAndBatt(AlmAnalysisParam almAnalysisParam) {
        Map<String, List<String>> map = new HashMap<>();
        List<String> battList=new ArrayList<>();
        List<String> pwrList=new ArrayList<>();
    private  Map<String,  Map<String,Integer>> groupPwrAndBatt(AlmAnalysisParam almAnalysisParam) {
        Map<String,  Map<String,Integer>> map = new HashMap<>();
        Map<String,Integer> battMap=new HashMap<>();
        Map<String,Integer> pwrMap=new HashMap<>();
        if(almAnalysisParam.getMainFieldType()==1||almAnalysisParam.getMainFieldType()==2||almAnalysisParam.getMainFieldType()==3){
            if(almAnalysisParam.getMainField()!=null||almAnalysisParam.getMainField().length()>0){
                pwrList.add(almAnalysisParam.getMainField());
                pwrMap.put(almAnalysisParam.getMainField(),almAnalysisParam.getMainFieldType());
            }
        }else{
            if(almAnalysisParam.getMainField()!=null||almAnalysisParam.getMainField().length()>0){
                battList.add(almAnalysisParam.getMainField());
                battMap.put(almAnalysisParam.getMainField(),almAnalysisParam.getMainFieldType());
            }
        }
        if(almAnalysisParam.getMinorField1Type()==1||almAnalysisParam.getMinorField1Type()==2||almAnalysisParam.getMinorField1Type()==3){
            if(almAnalysisParam.getMinorField1()!=null&&almAnalysisParam.getMinorField1().length()>0){
                pwrList.add(almAnalysisParam.getMinorField1());
                pwrMap.put(almAnalysisParam.getMinorField1(),almAnalysisParam.getMinorField1Type());
            }
        }else{
             if(almAnalysisParam.getMinorField1()!=null&&almAnalysisParam.getMinorField1().length()>0){
                 battList.add(almAnalysisParam.getMinorField1());
                 battMap.put(almAnalysisParam.getMinorField1(),almAnalysisParam.getMinorField1Type());
             }
        }
        if(almAnalysisParam.getMinorField2Type()==1||almAnalysisParam.getMinorField2Type()==2||almAnalysisParam.getMinorField2Type()==3){
            if(almAnalysisParam.getMinorField2()!=null&&almAnalysisParam.getMinorField2().length()>0){
                pwrList.add(almAnalysisParam.getMinorField2());
                pwrMap.put(almAnalysisParam.getMinorField2(),almAnalysisParam.getMinorField2Type());
            }
        }else{
            if(almAnalysisParam.getMinorField2()!=null&&almAnalysisParam.getMinorField2().length()>0){
                battList.add(almAnalysisParam.getMinorField2());
                battMap.put(almAnalysisParam.getMinorField2(),almAnalysisParam.getMinorField2Type());
            }
        }
        if(almAnalysisParam.getMinorField3Type()==1||almAnalysisParam.getMinorField3Type()==2||almAnalysisParam.getMinorField3Type()==3){
            if(almAnalysisParam.getMinorField3()!=null&&almAnalysisParam.getMinorField3().length()>0){
                pwrList.add(almAnalysisParam.getMinorField3());
                pwrMap.put(almAnalysisParam.getMinorField3(),almAnalysisParam.getMinorField3Type());
            }
        }else{
            if(almAnalysisParam.getMinorField3()!=null&&almAnalysisParam.getMinorField3().length()>0){
                battList.add(almAnalysisParam.getMinorField3());
                battMap.put(almAnalysisParam.getMinorField3(),almAnalysisParam.getMinorField3Type());
            }
        }
        if(almAnalysisParam.getMinorField4Type()==1||almAnalysisParam.getMinorField4Type()==2||almAnalysisParam.getMinorField4Type()==3){
            if(almAnalysisParam.getMinorField4()!=null&&almAnalysisParam.getMinorField4().length()>0){
                pwrList.add(almAnalysisParam.getMinorField4());
                pwrMap.put(almAnalysisParam.getMinorField4(),almAnalysisParam.getMinorField4Type());
            }
        }else{
            if(almAnalysisParam.getMinorField4()!=null&&almAnalysisParam.getMinorField4().length()>0){
                battList.add(almAnalysisParam.getMinorField4());
                battMap.put(almAnalysisParam.getMinorField4(),almAnalysisParam.getMinorField4Type());
            }
        }
        map.put("pwr",pwrList);
        map.put("batt",battList);
        map.put("pwr",pwrMap);
        map.put("batt",battMap);
        return map;
    }
    //连接池获取电源历史实时数据
    public List getPwrRealData(Integer powerId,List<List<Date>> monthTimeList,List<String> pwrList) throws InterruptedException {
    public List getPwrRealData(Integer powerId,List<List<Date>> monthTimeList,Map<String,Integer> pwrMap) throws InterruptedException {
        List<ResAnalysis> dataList = new LinkedList<>();
        ThreadPoolExecutor pool = ThreadPoolExecutorFactory.getPoolExecutor();
        CountDownLatch latch = new CountDownLatch(monthTimeList.size());
@@ -163,7 +163,7 @@
                int tableNum = subTablePageInfoService.judgeTable_pwrhis(table);
                List<ResAnalysis> list = new ArrayList();
                if (tableNum > 0) {
                    list = subTablePageInfoService.getPwrHisRealInAlm(pwrHis,pwrList);
                    list = subTablePageInfoService.getPwrHisRealInAlm(pwrHis,pwrMap);
                }
                dataList.addAll(list);
                latch.countDown();
@@ -176,7 +176,7 @@
    }
    //电池告警点击具体告警信息查看从告警开始时间到现在的历史实时数据
    public List getBattRealData(Integer battgroupId, List<List<Date>> monthTimeList,List<String> battList) throws ParseException, InterruptedException {
    public List getBattRealData(Integer battgroupId, List<List<Date>> monthTimeList,Map<String,Integer> battMap) throws ParseException, InterruptedException {
        List<ResAnalysis> dataList = new LinkedList<>();
        ThreadPoolExecutor pool = ThreadPoolExecutorFactory.getPoolExecutor();
        CountDownLatch latch = new CountDownLatch(monthTimeList.size());
@@ -193,7 +193,7 @@
                int tableNum = subTablePageInfoService.judgeTable_realdata(table);
                List<ResAnalysis> list = new ArrayList();
                if (tableNum > 0) {
                    list = subTablePageInfoService.getBattHisRealInAlm(realdata,battList);
                    list = subTablePageInfoService.getBattHisRealInAlm(realdata,battMap);
                }
                dataList.addAll(list);
                latch.countDown();
src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -800,8 +800,8 @@
        return list;
    }
    //电池数据历史实时处理(预警分析)
    public List<ResAnalysis> getBattHisRealInAlm(BattRealdataId realdata, List<String> battList) {
        String result = battList.stream().collect(Collectors.joining(","));
    public List<ResAnalysis> getBattHisRealInAlm(BattRealdataId realdata, Map<String,Integer> battMap) {
        String result = String.join(",", battMap.keySet());
        String sql=" select record_time,"+result+" " +
                "               from db_data_history.tb_batt_realdata_"+realdata.getTableName()+" " +
                "               where record_time >= '"+ThreadLocalUtil.format(realdata.getRecordTime(),1)+"' " +
@@ -814,15 +814,22 @@
                while (rs.next()){
                    ResAnalysis ph=new ResAnalysis();
                    ph.setRecordTime(rs.getTimestamp("record_time"));
                    for (int i=0;i<battList.size();i++){
                    int i=1;
                    for (String key : battMap.keySet()) {
                        Integer dataType = battMap.get(key);
                        try {
                            Float value = rs.getFloat(battList.get(i));
                            String propertyName = "dataName"+(i+1);
                            String propertyType = "dataType"+(i);
                            Field fieldType = ResAnalysis.class.getDeclaredField(propertyType);
                            fieldType.setAccessible(true);
                            fieldType.set(ph,dataType);
                            Float value = rs.getFloat(key);
                            String propertyName = "dataName"+(i);
                            Field fieldName = ResAnalysis.class.getDeclaredField(propertyName);
                            fieldName.setAccessible(true); // 如果字段是私有的,需要设置为可访问
                            fieldName.set(ph,battList.get(i));
                            fieldName.set(ph,key);
                            String propertyValue = "dataValue"+(i+1);
                            String propertyValue = "dataValue"+(i);
                            Field fieldValue = ResAnalysis.class.getDeclaredField(propertyValue);
                            fieldValue.setAccessible(true);
                            fieldValue.set(ph,value);
@@ -831,6 +838,7 @@
                        } catch (IllegalAccessException e) {
                            e.printStackTrace();
                        }
                        i++;
                    }
                    list.add(ph);
                }
@@ -841,8 +849,8 @@
    }
    //电源数据历史实时处理(预警分析)
    public List<ResAnalysis> getPwrHisRealInAlm(PwrdevHistorydataId pwrHis, List<String> pwrList) {
        String result = pwrList.stream().collect(Collectors.joining(","));
    public List<ResAnalysis> getPwrHisRealInAlm(PwrdevHistorydataId pwrHis, Map<String,Integer> pwrMap) {
        String result = String.join(",", pwrMap.keySet());
        String sql=" select record_datetime,"+result+"  " +
                "               from db_data_history.tb_pwrdev_historydata_"+pwrHis.getTableName()+" " +
                "               where record_datetime >= '"+ThreadLocalUtil.format(pwrHis.getRecordDatetime(),1)+"' " +
@@ -855,15 +863,22 @@
                while (rs.next()){
                    ResAnalysis ph=new ResAnalysis();
                    ph.setRecordTime(rs.getTimestamp("record_datetime"));
                    for (int i=0;i<pwrList.size();i++){
                    int i=1;
                    for (String key : pwrMap.keySet()) {
                        Integer dataType = pwrMap.get(key);
                        try {
                            Float value = rs.getFloat(pwrList.get(i));
                            String propertyName = "dataName"+(i+1);
                            String propertyType = "dataType"+(i);
                            Field fieldType = ResAnalysis.class.getDeclaredField(propertyType);
                            fieldType.setAccessible(true);
                            fieldType.set(ph,dataType);
                            Float value = rs.getFloat(key);
                            String propertyName = "dataName"+(i);
                            Field fieldName = ResAnalysis.class.getDeclaredField(propertyName);
                            fieldName.setAccessible(true); // 如果字段是私有的,需要设置为可访问
                            fieldName.set(ph,pwrList.get(i));
                            fieldName.set(ph,key);
                            String propertyValue = "dataValue"+(i+1);
                            String propertyValue = "dataValue"+(i);
                            Field fieldValue = ResAnalysis.class.getDeclaredField(propertyValue);
                            fieldValue.setAccessible(true);
                            fieldValue.set(ph,value);
@@ -872,6 +887,7 @@
                        } catch (IllegalAccessException e) {
                            e.printStackTrace();
                        }
                        i++;
                    }
                    list.add(ph);
                }