From 7a8d50965cb69ecc348a6b11d902409628012cd0 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期三, 25 六月 2025 17:15:10 +0800
Subject: [PATCH] 蓄电池对比分析导出

---
 src/main/java/com/whyc/service/BatttestdataInfService.java |   93 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 91 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/whyc/service/BatttestdataInfService.java b/src/main/java/com/whyc/service/BatttestdataInfService.java
index 4d22fff..2d40379 100644
--- a/src/main/java/com/whyc/service/BatttestdataInfService.java
+++ b/src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -316,11 +316,14 @@
             res.setDevName(binf.getDevName());
             res.setProduct(binf.getProduct());
             res.setInuseTime(binf.getInuseTime());
+            res.setInuseTimeStr(ActionUtil.sdfwithday.format(binf.getInuseTime()));
             res.setMonvolstd(binf.getMonvolstd());
+            res.setMoncapstd(binf.getMoncapstd());
             res.setStationId(binf.getStationId());
             res.setPowerId(binf.getPowerId());
             res.setDevId(binf.getDevId());
             res.setBattgroupId(binf.getBattgroupId());
+            res.setFullName(binf.getFullName());
             //2.鑾峰彇鐢垫睜缁勫湪缁欏畾鏃堕棿娈电殑鏀剧數璁板綍(鎸囧畾鏃堕棿娈电殑鏍囧噯鏍稿鏀剧數)
             BatttestdataInf tinf =getLastStandardTestDataByTime(binf.getBattgroupId(),stic.getTestStartTime(),stic.getTestEndTime());
             if(tinf==null){
@@ -389,11 +392,97 @@
         }
         map.put("avgCap",sumCap/binfList.size());
         map.put("standCapDiff",maxCap-minCap);
-
         PageInfo pageInfo=PageInfoUtils.list2PageInfo(comparelist, stic.getPageNum(), stic.getPageSize());
         return new Response().setIII(1,comparelist.size()>0,pageInfo,map,"钃勭數姹犵粍瀵规瘮鍒嗘瀽鐣岄潰锛堝悓涓�鍝佺墝鍚屼竴鏃堕棿锛�");
     }
-
+    /*钃勭數姹犵粍瀵规瘮鍒嗘瀽瀵煎嚭浣跨敤
+     */
+    public List<SticCompare15Res> exportBattCompare(BattCompareStic stic) {
+        //鑾峰彇鏍稿浼樺姡锛屾崯鍧忓弬鏁�
+        List<AppParam> paramList=appParamService.getHrParam();
+        Float badValue=0f;
+        Float damageValue=0f;
+        if(paramList!=null){
+            for (AppParam param:paramList) {
+                if(param.getParamNamePsx().equals("batt_mon_deteriorate_val")){
+                    badValue=param.getParamValue();
+                }
+                if(param.getParamNamePsx().equals("batt_mon_damage_val")){
+                    damageValue=param.getParamValue();
+                }
+            }
+        }
+        //1鏌ヨ绗﹀悎鏉′欢鐨勭數姹犵粍
+        List<BattInf> binfList=battInfService.getBattCompare15Statistic(stic);
+        List<SticCompare15Res> comparelist=new ArrayList<>();
+        if(binfList!=null&&binfList.size()>=0){
+            for (BattInf binf:binfList) {
+                SticCompare15Res res=new SticCompare15Res();
+                res.setProvice(binf.getProvice());
+                res.setCity(binf.getCity());
+                res.setCountry(binf.getCountry());
+                res.setStationName(binf.getStationName());
+                res.setBattgroupName(binf.getBattgroupName());
+                res.setDevName(binf.getDevName());
+                res.setProduct(binf.getProduct());
+                res.setInuseTime(binf.getInuseTime());
+                res.setInuseTimeStr(ActionUtil.sdfwithday.format(binf.getInuseTime()));
+                res.setMonvolstd(binf.getMonvolstd());
+                res.setMoncapstd(binf.getMoncapstd());
+                res.setStationId(binf.getStationId());
+                res.setPowerId(binf.getPowerId());
+                res.setDevId(binf.getDevId());
+                res.setBattgroupId(binf.getBattgroupId());
+                res.setFullName(binf.getFullName());
+                //2.鑾峰彇鐢垫睜缁勫湪缁欏畾鏃堕棿娈电殑鏀剧數璁板綍(鎸囧畾鏃堕棿娈电殑鏍囧噯鏍稿鏀剧數)
+                BatttestdataInf tinf =getLastStandardTestDataByTime(binf.getBattgroupId(),stic.getTestStartTime(),stic.getTestEndTime());
+                if(tinf==null){
+                    res.setRealCap(0f);
+                    res.setPrecentCap("0.00000");
+                    res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_4.getStateId()));
+                    res.setStopReason("--");
+                    res.setFloatGroupVol(0f);
+                }else{
+                    res.setStopReason(StopReasonEnum.getValue(tinf.getTestStoptype()));
+                    res.setFloatGroupVol(tinf.getFloatGroupVol());
+                    //鎵捐繖娆℃斁鐢电殑鏈�鍚庝竴绗旀暟鎹�
+                    List<BatttestdataId> idDataList=battTestdataIdService.getLastDataByBattgroupId(tinf.getBattgroupId(),tinf.getTestRecordCount(),tinf.getRecordNum());
+                    if(idDataList==null||idDataList.size()==0){
+                        res.setRealCap(0f);
+                        res.setPrecentCap("0.00000");
+                        res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_4.getStateId()));
+                        res.setFloatGroupVol(0f);
+                    }else{
+                        Float moncapStd=binf.getMoncapstd();
+                        int hourRate = BattCapFactory.GetHourRate(tinf.getTestCap(), tinf.getTestCurr());
+                        Float grouprealCap = (float) BattCapFactory.GetMonomerCap(binf.getMoncapstd(), hourRate, tinf.getTestCap(), tinf.getMaxMonvol(), tinf.getMinMonvol(), tinf.getGroupVol(), BattCapFactory.CapType_Real);
+                        //Float restCap = (float) BattCapFactory.GetMonomerCap(binf.getMoncapstd(), hourRate, tinf.getTestCap(), tinf.getMaxMonvol(), tinf.getMinMonvol(), tinf.getGroupVol(), BattCapFactory.CapType_Rest);
+                        res.setRealCap(grouprealCap);
+                        if(grouprealCap>=moncapStd*badValue){
+                            res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_1.getStateId()));
+                        }
+                        if(grouprealCap<=moncapStd*damageValue){
+                            res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_3.getStateId()));
+                        }
+                        if((grouprealCap>moncapStd*damageValue)&&(grouprealCap<moncapStd*badValue)){
+                            res.setCapperformance(BattCapperformanceEnum.getValue(BattCapperformanceEnum.BATTSTATE_2.getStateId()));
+                        }
+                        //淇濈暀5浣嶅皬鏁�
+                        String precentCap = String.format("%.5f",(grouprealCap/binf.getMoncapstd()*100));
+                        res.setPrecentCap(precentCap);
+                    }
+                }
+                if(stic.getPerformance()==null){
+                    comparelist.add(res);
+                }else{
+                    if(res.getCapperformance().equals(BattCapperformanceEnum.getValue(stic.getPerformance()))){
+                        comparelist.add(res);
+                    }
+                }
+            }
+        }
+        return comparelist;
+    }
     //钃勭數姹犵粍瀵规瘮鍒嗘瀽鐣岄潰锛堜笉鍚屽搧鐗屽悓涓�鏃堕棿锛�(1.2.16)
     public Response getBattCompare16Statistic(BattCompareStic stic) {
         //鑾峰彇鏍稿浼樺姡锛屾崯鍧忓弬鏁�

--
Gitblit v1.9.1