whyclxw
2024-04-16 dc9742d581d75f01a04978537f6574fd2c327e69
蓄电池组后评估
2个文件已修改
127 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/RealTimeController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BatttestdataInfService.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/RealTimeController.java
@@ -88,5 +88,6 @@
    public Response getGroupAnalysis2(){
        return infService.getGroupAnalysis2(1087);
    }
}
src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -308,7 +308,6 @@
            }else{
                map.put("wj", "W");
            }
        }else{
            map.put("wj", "J");
        }
@@ -603,8 +602,7 @@
            int goodSum = 0;
            //未正常
            int noHrDisNum = 0;
            //实际容量
            float cap = 0f;
            //去年的数据----------------
            //小于capAlarm
            int oldalarmNum = 0;
@@ -614,12 +612,15 @@
            int oldgoodSum = 0;
            //未正常
            int oldnoHrDisNum = 0;
            //实际容量去年
            float oldcap = 0f;
            //0.查询所有的电池组
            List<Battinf> binfList = binfMapper.getBinfList(userId);
            if (binfList != null && binfList.size() > 0) {
                for (Battinf binf : binfList) {
                    //实际容量
                    float cap = 0f;
                    //实际容量去年
                    float oldcap = 0f;
                    int battgroupId = binf.getBattGroupId();
                    float monCapStd = binf.getMonCapStd();
                    float monVolstd = binf.getMonVolStd();
@@ -770,8 +771,7 @@
            int goodSum = 0;
            //未正常
            int noHrDisNum = 0;
            //实际容量
            float cap = 0f;
            //去年的数据----------------
            //小于capAlarm
            int oldalarmNum = 0;
@@ -781,80 +781,94 @@
            int oldgoodSum = 0;
            //未正常
            int oldnoHrDisNum = 0;
            //实际容量去年
            float oldcap = 0f;
            //0.查询所有的电池组
            List<Battinf> binfList = binfMapper.getBinfList(userId);
            if (binfList != null && binfList.size() > 0) {
                for (Battinf binf : binfList) {
                    int battgroupId = binf.getBattGroupId();
                    float monCapStd = binf.getMonCapStd();
                    float monVolstd = binf.getMonVolStd();
                    //实际容量
                    float cap = 0f;
                    float oldcap = 0f;
                    //标记本年
                    int flagWJ=0;
                    int oldflagWJ=0;
                    //放电次数
                    int disNum = 0;
                    int olddisNum = 0;
                    int battgroupId = binf.getBattGroupId();
                    float monCapStd = binf.getMonCapStd();
                    float monVolstd = binf.getMonVolStd();
                    //1.查出符合条件的电池组(核容数据)按照时间倒叙排序的第一个(本年度)
                    BatttestdataInf inf = mapper.getGroupAnalysisQB_WJ(battgroupId,nowDateStart,nowDateEnd);
                    //1.查出符合条件的电池组(核容数据)按照时间倒叙排序的第一个(上一年度)
                    BatttestdataInf oldinf = mapper.getGroupAnalysisQBOld_WJ(battgroupId,oldDate);
                    if (inf != null) {
                        disNum=1;
                        flagWJ=1;
                        int hourRate = BattCapFactory.GetHourRate(monCapStd, inf.getTestCurr());
                        cap = (float) BattCapFactory.GetMonomerCap(monCapStd, hourRate, inf.getTestCap(), inf.getMaxMonvol(), inf.getMinMonvol(), monVolstd, BattCapFactory.CapType_Real);
                    }
                    if(oldinf!=null){
                        olddisNum=1;
                        oldflagWJ=1;
                        int oldhourRate = BattCapFactory.GetHourRate(monCapStd, oldinf.getTestCurr());
                        oldcap = (float) BattCapFactory.GetMonomerCap(monCapStd, oldhourRate, oldinf.getTestCap(), oldinf.getMaxMonvol(), oldinf.getMinMonvol(), monVolstd, BattCapFactory.CapType_Real);
                    }
                    //查询电池告警内阻告警
                    List listALmRes = alarmDataMapper.getAlm2(battgroupId);
                    //未放电:本年度未放电,且无内阻告警<13,14>(预告警(重要),告警(紧急))-----本年度
                    if( (disNum==0) ){
                        noHrDisNum+=1;
                    }
                    //优秀:本年度已放电,且容量健康,无内阻告警(预告警(重要),告警(紧急))
                    if( (disNum>0)&&(cap > capAlarm * monCapStd)&&(listALmRes.size()<=0)){
                        goodSum+=1;
                    }
                    /*劣化:本年度未放电,内阻告警(预告警(重要),告警(紧急))
                     *容量小于劣化阈值,大于损坏阈值,内阻告警(预告警,告警)
                     *     容量小于劣化阈值,内阻正常
                     *     容量正常,内阻告警(预告警,告警)
                     */
                    if (((disNum==0)&&(listALmRes.size()>0))
                            ||((disNum>0)&&(cap <= capAlarm * monCapStd && cap >= capChange * monCapStd)&&(listALmRes.size()>0))
                            ||((disNum>0)&&(cap <= capAlarm * monCapStd)&&(listALmRes.size()<=0))
                            ||(disNum>0)&&(cap > capAlarm * monCapStd)&&(listALmRes.size()>0)){
                        alarmNum+=1;
                    }
                    //损坏:容量低,内阻告警
                    if((disNum!=0)&&(cap< capChange * monCapStd)&&(listALmRes.size()>0)){
                       changeNum+=1;
                    }
                    if(flagWJ==1){
                        //未放电:本年度未放电,且无内阻告警<13,14>(预告警(重要),告警(紧急))-----本年度
                        if( (disNum==0) ){
                            noHrDisNum+=1;
                        }
                        //优秀:本年度已放电,且容量健康,无内阻告警(预告警(重要),告警(紧急))
                        if( (disNum>0)&&(cap > capAlarm * monCapStd)&&(listALmRes.size()<=0)){
                            goodSum+=1;
                        }
                        /*劣化:本年度未放电,内阻告警(预告警(重要),告警(紧急))
                         *容量小于劣化阈值,大于损坏阈值,内阻告警(预告警,告警)
                         *     容量小于劣化阈值,内阻正常
                         *     容量正常,内阻告警(预告警,告警)
                         */
                        if (((disNum==0)&&(listALmRes.size()>0))
                                ||((disNum>0)&&(cap <= capAlarm * monCapStd && cap >= capChange * monCapStd)&&(listALmRes.size()>0))
                                ||((disNum>0)&&(cap <= capAlarm * monCapStd)&&(listALmRes.size()<=0))
                                ||(disNum>0)&&(cap > capAlarm * monCapStd)&&(listALmRes.size()>0)){
                            alarmNum+=1;
                        }
                        //损坏:容量低,内阻告警
                        if((disNum>0)&&(cap< capChange * monCapStd)&&(listALmRes.size()>0)){
                            changeNum+=1;
                        }
                    //未放电:本年度未放电,且无内阻告警<13,14>(预告警(重要),告警(紧急))-----其他年度
                    if( (olddisNum==0) ){
                        oldnoHrDisNum+=1;
                    }
                    //优秀:本年度已放电,且容量健康,无内阻告警(预告警(重要),告警(紧急))
                    if( (olddisNum>0)&&(oldcap > capAlarm * monCapStd)&&(listALmRes.size()<=0)){
                        oldgoodSum+=1;
                    }
                    /*劣化:本年度未放电,内阻告警(预告警(重要),告警(紧急))
                     *容量小于劣化阈值,大于损坏阈值,内阻告警(预告警,告警)
                     *     容量小于劣化阈值,内阻正常
                     *     容量正常,内阻告警(预告警,告警)
                     */
                    if (((olddisNum==0)&&(listALmRes.size()>0))
                            ||((olddisNum>0)&&(oldcap <= capAlarm * monCapStd && oldcap >= capChange * monCapStd)&&(listALmRes.size()>0))
                            ||((olddisNum>0)&&(oldcap <= capAlarm * monCapStd)&&(listALmRes.size()<=0))
                            ||(olddisNum>0)&&(oldcap > capAlarm * monCapStd)&&(listALmRes.size()>0)){
                        oldalarmNum+=1;
                    }
                    //损坏:容量低,内阻告警
                    if((olddisNum!=0)&&(oldcap< capChange * monCapStd)&&(listALmRes.size()>0)){
                        oldchangeNum+=1;
                    if(oldflagWJ==1){
                        //未放电:本年度未放电,且无内阻告警<13,14>(预告警(重要),告警(紧急))-----其他年度
                        if( (olddisNum==0) ){
                            oldnoHrDisNum+=1;
                        }
                        //优秀:本年度已放电,且容量健康,无内阻告警(预告警(重要),告警(紧急))
                        if( (olddisNum>0)&&(oldcap > capAlarm * monCapStd)&&(listALmRes.size()<=0)){
                            oldgoodSum+=1;
                        }
                        /*劣化:本年度未放电,内阻告警(预告警(重要),告警(紧急))
                         *容量小于劣化阈值,大于损坏阈值,内阻告警(预告警,告警)
                         *     容量小于劣化阈值,内阻正常
                         *     容量正常,内阻告警(预告警,告警)
                         */
                        if (((olddisNum==0)&&(listALmRes.size()>0))
                                ||((olddisNum>0)&&(oldcap <= capAlarm * monCapStd && oldcap >= capChange * monCapStd)&&(listALmRes.size()>0))
                                ||((olddisNum>0)&&(oldcap <= capAlarm * monCapStd)&&(listALmRes.size()<=0))
                                ||(olddisNum>0)&&(oldcap > capAlarm * monCapStd)&&(listALmRes.size()>0)){
                            oldalarmNum+=1;
                        }
                        //损坏:容量低,内阻告警
                        if((olddisNum>0)&&(oldcap< capChange * monCapStd)&&(listALmRes.size()>0)){
                            oldchangeNum+=1;
                        }
                    }
                }