From 64f046ed41c2ae607dc065c82b6d454f64e90584 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期四, 19 六月 2025 21:52:33 +0800
Subject: [PATCH] 预警分析管理-电源告警

---
 src/main/java/com/whyc/service/BatttestdataInfService.java |  140 ++++++++++++++++++++++++++--------------------
 1 files changed, 78 insertions(+), 62 deletions(-)

diff --git a/src/main/java/com/whyc/service/BatttestdataInfService.java b/src/main/java/com/whyc/service/BatttestdataInfService.java
index ed4de41..1a81da5 100644
--- a/src/main/java/com/whyc/service/BatttestdataInfService.java
+++ b/src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -3,15 +3,14 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
-import com.whyc.constant.Capperformance;
-import com.whyc.constant.PowerAlarmEnum;
+import com.whyc.constant.BattCapperformanceEnum;
+import com.whyc.constant.PwrCapperformanceEnum;
 import com.whyc.constant.StopReasonEnum;
 import com.whyc.dto.Real.TestDataDto;
 import com.whyc.dto.Response;
 import com.whyc.dto.Statistic.*;
 import com.whyc.factory.BattCapFactory;
 import com.whyc.mapper.BatttestdataInfMapper;
-import com.whyc.pojo.db_alarm.BattalarmData;
 import com.whyc.pojo.db_batt_testdata.BatttestdataId;
 import com.whyc.pojo.db_batt_testdata.BatttestdataInf;
 import com.whyc.pojo.db_param.AppParam;
@@ -21,11 +20,12 @@
 import com.whyc.pojo.db_station.PowerInf;
 import com.whyc.pojo.db_user.Baojigroup;
 import com.whyc.util.ActionUtil;
+import com.whyc.util.DateUtil;
 import com.whyc.util.PageInfoUtils;
-import com.whyc.util.ThreadLocalUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.*;
 
 @Service
@@ -305,7 +305,7 @@
             if(tinf==null){
                 res.setRealCap(0f);
                 res.setPrecentCap("0");
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_4.getStateId()));
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_4.getStateId()));
                 continue;
             }
             //鎵捐繖娆℃斁鐢电殑鏈�鍚庝竴绗旀暟鎹�
@@ -313,7 +313,7 @@
             if(idDataList==null||idDataList.size()==0){
                 res.setRealCap(0f);
                 res.setPrecentCap("0");
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_4.getStateId()));
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_4.getStateId()));
                 continue;
             }
             Float moncapStd=binf.getMoncapstd();
@@ -322,13 +322,13 @@
             //Float restCap = (float) BattCapFactory.GetMonomerCap(tinf.getTestCap(), hourRate, tinf.getTestCap(), tinf.getMaxMonvol(), tinf.getMinMonvol(), tinf.getGroupVol(), BattCapFactory.CapType_Rest);
             res.setRealCap(grouprealCap);
             if(grouprealCap>=moncapStd*badValue){
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_1.getStateId()));
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_1.getStateId()));
             }
             if(grouprealCap<=moncapStd*damageValue){
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_3.getStateId()));
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_3.getStateId()));
             }
             if((grouprealCap>moncapStd*damageValue)&&(grouprealCap<moncapStd*badValue)){
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_2.getStateId()));
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_2.getStateId()));
             }
             //淇濈暀5浣嶅皬鏁�
             String precentCap = String.format("%.5f",(grouprealCap/binf.getMoncapstd()*100));
@@ -344,7 +344,7 @@
             if(stic.getPerformance()==null){
                 reslist.add(res);
             }else{
-                if(res.getCapperformance().equals(Capperformance.getValue(stic.getPerformance()))){
+                if(res.getCapperformance().equals(BattCapperformanceEnum.getValue(stic.getPerformance()))){
                     reslist.add(res);
                 }
             }
@@ -398,7 +398,7 @@
             if(tinf==null){
                 res.setRealCap(0f);
                 res.setPrecentCap("0");
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_3.getStateId()));
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_3.getStateId()));
                 res.setStopReason("--");
                 continue;
             }
@@ -409,13 +409,13 @@
             //Float restCap = (float) BattCapFactory.GetMonomerCap(tinf.getTestCap(), hourRate, tinf.getTestCap(), tinf.getMaxMonvol(), tinf.getMinMonvol(), tinf.getGroupVol(), BattCapFactory.CapType_Rest);
             res.setRealCap(grouprealCap);
             if(grouprealCap>=moncapStd*badValue){
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_1.getStateId()));
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_1.getStateId()));
             }
             if(grouprealCap<=moncapStd*damageValue){
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_3.getStateId()));
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_3.getStateId()));
             }
             if((grouprealCap>moncapStd*damageValue)&&(grouprealCap<moncapStd*badValue)){
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_2.getStateId()));
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_2.getStateId()));
             }
             //淇濈暀5浣嶅皬鏁�
             String precentCap = String.format("%.5f",(grouprealCap/binf.getMoncapstd()*100));
@@ -425,7 +425,7 @@
             if(stic.getPerformance()==null){
                 reslist.add(res);
             }else{
-                if(res.getCapperformance().equals(Capperformance.getValue(stic.getPerformance()))){
+                if(res.getCapperformance().equals(BattCapperformanceEnum.getValue(stic.getPerformance()))){
                     reslist.add(res);
                 }
             }
@@ -496,18 +496,18 @@
                 String monprecentCap = String.format("%.5f",(monrealCap/binf.getMoncapstd()*100));
                 res.setMonprecentCap(monprecentCap);
                 if(monrealCap>=moncapStd*badValue){
-                    res.setMoncapperformance(Capperformance.getValue(Capperformance.BATTSTATE_1.getStateId()));
+                    res.setMoncapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_1.getStateId()));
                 }
                 if (monrealCap <= moncapStd * damageValue) {//鎹熷潖鐨�
-                    res.setMoncapperformance(Capperformance.getValue(Capperformance.BATTSTATE_3.getStateId()));
+                    res.setMoncapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_3.getStateId()));
                 }
                 if((monrealCap>moncapStd*damageValue)&&(monrealCap<moncapStd*badValue)){
-                    res.setMoncapperformance(Capperformance.getValue(Capperformance.BATTSTATE_2.getStateId()));
+                    res.setMoncapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_2.getStateId()));
                 }
                 if(stic.getPerformance()==null){
                     reslist.add(res);
                 }else{
-                    if(res.getMoncapperformance().equals(Capperformance.getValue(stic.getPerformance()))){
+                    if(res.getMoncapperformance().equals(BattCapperformanceEnum.getValue(stic.getPerformance()))){
                         reslist.add(res);
                     }
                 }
@@ -536,11 +536,11 @@
             res.setMonNum(i+1);
             res.setMonrealCap(0f);
             res.setMonprecentCap("0");
-            res.setMoncapperformance(Capperformance.getValue(Capperformance.BATTSTATE_4.getStateId()));
+            res.setMoncapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_4.getStateId()));
             if(performance==null){
                 reslist.add(res);
             }else{
-                if(res.getMoncapperformance().equals(Capperformance.getValue(performance))){
+                if(res.getMoncapperformance().equals(BattCapperformanceEnum.getValue(performance))){
                     reslist.add(res);
                 }
             }
@@ -697,19 +697,19 @@
             res.setRealCap(grouprealCap);
             //res.setDisChargeType(1);
             if(grouprealCap>=moncapStd*badValue){
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_1.getStateId()));
-                int value=xnmap.get(Capperformance.getValue(Capperformance.BATTSTATE_1.getStateId()));
-                xnmap.put(Capperformance.getValue(Capperformance.BATTSTATE_1.getStateId()),value+1);
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_1.getStateId()));
+                int value=xnmap.get(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_1.getStateId()));
+                xnmap.put(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_1.getStateId()),value+1);
             }
             if(grouprealCap<=moncapStd*damageValue){
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_3.getStateId()));
-                int value=xnmap.get(Capperformance.getValue(Capperformance.BATTSTATE_3.getStateId()));
-                xnmap.put(Capperformance.getValue(Capperformance.BATTSTATE_3.getStateId()),value+1);
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_3.getStateId()));
+                int value=xnmap.get(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_3.getStateId()));
+                xnmap.put(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_3.getStateId()),value+1);
             }
             if((grouprealCap>moncapStd*damageValue)&&(grouprealCap<moncapStd*badValue)){
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_2.getStateId()));
-                int value=xnmap.get(Capperformance.getValue(Capperformance.BATTSTATE_2.getStateId()));
-                xnmap.put(Capperformance.getValue(Capperformance.BATTSTATE_2.getStateId()),value+1);
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_2.getStateId()));
+                int value=xnmap.get(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_2.getStateId()));
+                xnmap.put(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_2.getStateId()),value+1);
             }
             reslist.add(res);
         }
@@ -760,14 +760,15 @@
             res.setBattgroupId(binf.getBattgroupId());
             res.setDevId(binf.getDevId());
             //鑾峰彇鐢垫睜缁勬湭鏀剧數璁板綍(鎸囧畾鏃堕棿娈电殑鏍囧噯鏍稿鏀剧數)
-            getNoDischargeData(binf.getBattgroupId(),stic.getTestStartTime(),stic.getTestEndTime(),stic.getTypeList(),res);
-            if(stic.getStopReasonType()==0){
+            getNoDischargeData(binf.getBattgroupId(),stic.getTestStartTime(),stic.getTestEndTime(),null,res);
+            /*if(stic.getStopReasonType()==0){
                 reslist.add(res);
             }else {
                 if(res.getStopReasonType()==stic.getStopReasonType()){
                     reslist.add(res);
                 }
-            }
+            }*/
+            reslist.add(res);
             if(!groupName.equals("none")){
                 BanZu bz= (BanZu) bzmap.get(groupName);
                 int nochargeNum=bz.getNochargeNum();
@@ -780,11 +781,11 @@
     }
     //2.鑾峰彇鐢垫睜缁勬湭鏀剧數璁板綍(鎸囧畾鏃堕棿娈电殑鏍囧噯鏍稿鏀剧數)
     private void getNoDischargeData(Integer battgroupId, Date testStartTime, Date testEndTime, List<Integer> typeList, SticDischarge6Res res) {
-        List<BatttestdataInf> tinfList=mapper.getNoDischargeData(battgroupId,testStartTime,testEndTime,typeList);
+        List<BatttestdataInf> tinfList=mapper.getNoDischargeData(battgroupId,testStartTime,testEndTime,null);
         List<String> stopList=new ArrayList<>();
         if(tinfList!=null&&tinfList.size()>0){
             res.setErrorNum(tinfList.size());
-            res.setStopReasonType(1);
+            //res.setStopReasonType(1);
             for (int i=0;i<tinfList.size();i++) {
                 BatttestdataInf tinf=tinfList.get(i);
                 if(i==0){
@@ -807,7 +808,7 @@
         }else {
             res.setErrorNum(0);
             res.setStopList(new ArrayList<>());
-            res.setStopReasonType(0);
+            //res.setStopReasonType(0);
         }
     }
     //鑾峰彇鏍稿鍋滄鍘熷洜绫诲瀷(涓嬫媺)
@@ -858,30 +859,30 @@
             BatttestdataInf tinf =getLastStandardTestDataByTime(binf.getBattgroupId(),stic.getTestStartTime(),stic.getTestEndTime());
             if(tinf==null){
                 res.setRealCap(0f);
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_4.getStateId()));
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_4.getStateId()));
             }else{
                 //鎵捐繖娆℃斁鐢电殑鏈�鍚庝竴绗旀暟鎹�
                 List<BatttestdataId> idDataList=battTestdataIdService.getLastDataByBattgroupId(tinf.getBattgroupId(),tinf.getTestRecordCount(),tinf.getRecordNum());
                 if(idDataList==null||idDataList.size()==0){
                     res.setRealCap(0f);
-                    res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_4.getStateId()));
+                    res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_4.getStateId()));
                 }else{
                     Float moncapStd=binf.getMoncapstd();
                     int hourRate = BattCapFactory.GetHourRate(tinf.getTestCap(), tinf.getTestCurr());
                     Float grouprealCap = (float) BattCapFactory.GetMonomerCap(tinf.getTestCap(), hourRate, tinf.getTestCap(), tinf.getMaxMonvol(), tinf.getMinMonvol(), tinf.getGroupVol(), BattCapFactory.CapType_Real);
                     res.setRealCap(grouprealCap);
                     if(grouprealCap>=moncapStd*badValue){
-                        res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_1.getStateId()));
+                        res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_1.getStateId()));
                     }
                     if(grouprealCap<=moncapStd*damageValue){
-                        res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_3.getStateId()));
+                        res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_3.getStateId()));
                     }
                     if((grouprealCap>moncapStd*damageValue)&&(grouprealCap<moncapStd*badValue)){
-                        res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_2.getStateId()));
+                        res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_2.getStateId()));
                     }
                 }
             }
-            if(res.getCapperformance().equals(Capperformance.getValue(stic.getPerformance()))){
+            if(res.getCapperformance().equals(BattCapperformanceEnum.getValue(stic.getPerformance()))){
                 reslist.add(res);
             }
         }
@@ -930,7 +931,7 @@
             //鏌ヨ褰撳墠鐢垫睜缁勫綋鍓嶅崟浣撶數鍘嬫垨鑰呭崟浣撳唴闃讳綆浜庡叾鍗曚綋鐢靛帇鐨勪笅涓嬮檺鎴栭珮浜庝笂涓婇檺鍒ゅ畾褰撳墠鐢垫睜缁勫姡鍖�
             int flag = rtdataService.getVolAndRes(binf.getBattgroupId());
             if(flag==1){
-                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_2.getStateId()));
+                res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_2.getStateId()));
                 reslist.add(res);
             }
         }
@@ -938,36 +939,51 @@
         return new Response().setII(1,reslist.size()>0,pageInfo,"鐢垫睜缁勭數姹犳�ц兘缁熻锛堟湭鏀剧數锛屼紭绉�锛屽姡鍖栵紝鎹熷潖锛夌粺璁�(1.2.8/9/10)");
     }
    //浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7)
-    public Response getPwr7Statistic(Pwr7Stic stic) {
+    public Response getPwr7Statistic(Pwr7Stic stic) throws NoSuchFieldException, IllegalAccessException {
+        Date inuseTimeStart =new Date();
+        if(stic.getInuseYear()!=null){
+            if(stic.getInuseYear()==1){
+                //鎶曞叆浣跨敤鏃堕棿鏉′欢绛涢��
+                LocalDateTime startTime = LocalDateTime.now().minusYears(5);
+                inuseTimeStart = DateUtil.convertToDate(startTime);
+            }else{
+                //鎶曞叆浣跨敤鏃堕棿鏉′欢绛涢��
+                LocalDateTime startTime = LocalDateTime.now().minusYears(stic.getInuseYear());
+                inuseTimeStart = DateUtil.convertToDate(startTime);
+            }
+            stic.setPwrInUseTime(inuseTimeStart);
+        }
         //1鏌ヨ绗﹀悎鏉′欢鐨勭數姹犵粍
         List<PowerInf> pinfList=powerInfService.getPwr7Statistic(stic);
         if(pinfList==null||pinfList.size()==0){
-            return new Response().set(1,false,"褰撳墠鐢ㄦ埛鏈鐞嗘弧瓒虫潯浠剁殑鐢垫睜缁�");
+            return new Response().set(1,false,"褰撳墠鐢ㄦ埛鏈鐞嗘弧瓒虫潯浠剁殑鐢垫簮");
         }
         List<SticPwr7Res> reslist=new ArrayList<>();
         for (PowerInf pinf:pinfList) {
-            SticPwr7Res res=new SticPwr7Res();
-            //鏌ヨ鐢垫睜缁勬墍鍦ㄧ殑鐝粍
+            SticPwr7Res res = new SticPwr7Res();
+            //鏌ヨ鐢垫簮鎵�鍦ㄧ殑鐝粍
             String groupName = bjService.getGroupName(pinf.getPowerId());
-            if(groupName.equals("none")){
-                continue;
-            }else{
-                if(stic.getGroupName()==null||res.getGroupName()==stic.getGroupName()){
-                    res.setProvice(pinf.getProvice());
-                    res.setCity(pinf.getCity());
-                    res.setCountry(pinf.getCountry());
-                    res.setStationName(pinf.getStationName());
-                    res.setPowerName(pinf.getPowerName());
-                    res.setCompany(pinf.getCompany());
-                    res.setStationType(pinf.getStationType());
-                    res.setGroupName(groupName);
-                    res.setInuseTime(pinf.getPowerInuseTime());
-                    Map<String,Integer> map=pwrHisdataIdService.getPwrQuarter7(pinf.getPowerId(),null);
+            if (stic.getGroupName() == null || groupName == stic.getGroupName()) {
+                res.setProvice(pinf.getProvice());
+                res.setCity(pinf.getCity());
+                res.setCountry(pinf.getCountry());
+                res.setStationName(pinf.getStationName());
+                res.setPowerName(pinf.getPowerName());
+                res.setCompany(pinf.getCompany());
+                res.setStationType(pinf.getStationType());
+                res.setGroupName(groupName);
+                res.setInuseTime(pinf.getPowerInuseTime());
+                Integer performance= pwrHisdataIdService.getPwrQuarter7(pinf.getPowerId(),pinf.getPowerType());
+                res.setPerformanceName(PwrCapperformanceEnum.getValue(performance));
+                if(stic.getPerformance()==null){
                     reslist.add(res);
+                }else{
+                    if(performance==stic.getPerformance()){
+                        reslist.add(res);
+                    }
                 }
             }
         }
-
         PageInfo pageInfo=PageInfoUtils.list2PageInfo(reslist, stic.getPageNum(), stic.getPageSize());
         return new Response().setII(1,reslist.size()>0,pageInfo,"浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7)");
     }

--
Gitblit v1.9.1