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