From 10574a67b78e2578fc10e8fbe83965bf4832c36a Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期四, 12 六月 2025 17:06:40 +0800
Subject: [PATCH] 优良电源数量统计(1.2.7)

---
 src/main/java/com/whyc/dto/Statistic/QuarterPwr7Res.java       |   16 +++
 src/main/java/com/whyc/service/BattInfService.java             |    4 
 src/main/java/com/whyc/service/BatttestdataInfService.java     |   47 ++++++---
 src/main/resources/mapper/PowerInfMapper.xml                   |   40 ++++++++
 src/main/java/com/whyc/service/SubTablePageInfoService.java    |   24 ++++
 src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java             |   11 +-
 src/main/java/com/whyc/mapper/PowerInfMapper.java              |    5 +
 src/main/java/com/whyc/service/PowerInfService.java            |    5 +
 src/main/java/com/whyc/dto/Statistic/SticPwr7Res.java          |   21 ++++
 src/main/java/com/whyc/mapper/BattInfMapper.java               |    3 
 src/main/java/com/whyc/service/PwrdevHistorydataIdService.java |   40 ++++++++
 src/main/resources/mapper/BattInfMapper.xml                    |   40 --------
 12 files changed, 188 insertions(+), 68 deletions(-)

diff --git a/src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java b/src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java
index 11fa0c9..b2f672a 100644
--- a/src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java
+++ b/src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java
@@ -11,15 +11,14 @@
     private String city;
     private String country;
     private String stationName;
-    private String battgroupName;
-    private String product;
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String company;
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date inuseStartTime;//寮�濮嬫椂闂�
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date inuseEndTime;//缁撴潫鏃堕棿
-    private Float monvolstd;
+    private String stationType;
     private Integer performance;//鐢垫睜鎬ц兘锛�1浼樼锛�2鍔e寲锛�3鎹熷潖 4鏈斁鐢� 涓嶄紶鍏ㄩ儴
-    private Integer baojiGroupId;
+    private String groupName;
     private Integer uid;
     private Integer pageNum;
     private Integer pageSize;
diff --git a/src/main/java/com/whyc/dto/Statistic/QuarterPwr7Res.java b/src/main/java/com/whyc/dto/Statistic/QuarterPwr7Res.java
new file mode 100644
index 0000000..19259b4
--- /dev/null
+++ b/src/main/java/com/whyc/dto/Statistic/QuarterPwr7Res.java
@@ -0,0 +1,16 @@
+package com.whyc.dto.Statistic;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class QuarterPwr7Res {
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date recordDatetime;
+    private Float acin1Vola;
+    private Float acoutVola;
+    private Float dcoutVol;
+    private Float dcoutCurr;
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/dto/Statistic/SticPwr7Res.java b/src/main/java/com/whyc/dto/Statistic/SticPwr7Res.java
new file mode 100644
index 0000000..d844030
--- /dev/null
+++ b/src/main/java/com/whyc/dto/Statistic/SticPwr7Res.java
@@ -0,0 +1,21 @@
+package com.whyc.dto.Statistic;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class SticPwr7Res {
+    private String provice;
+    private String city;
+    private String country;
+    private String stationName;
+    private String powerName;
+    private String company;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date inuseTime;
+    private String stationType;
+    private String groupName;
+    private String performanceName;//鐢垫睜鎬ц兘锛�1浼樼锛�2鍔e寲锛�3鎹熷潖 4鏈斁鐢� 涓嶄紶鍏ㄩ儴
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/mapper/BattInfMapper.java b/src/main/java/com/whyc/mapper/BattInfMapper.java
index f479160..c36a67d 100644
--- a/src/main/java/com/whyc/mapper/BattInfMapper.java
+++ b/src/main/java/com/whyc/mapper/BattInfMapper.java
@@ -53,6 +53,5 @@
     List<BattInf> getPerformanceStatistic(@Param("stic") PerformanceStic stic);
     //鏈勾搴﹀凡/鏈斁鐢垫暟閲忕粺璁″彸渚у浘琛�(1.2.5)
     List<BattInf> getDischrChart(@Param("uid") Integer uid);
-    //浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7)
-    List<BattInf> getPwr7Statistic(@Param("stic") Pwr7Stic stic);
+
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/mapper/PowerInfMapper.java b/src/main/java/com/whyc/mapper/PowerInfMapper.java
index d4a31dc..598ed76 100644
--- a/src/main/java/com/whyc/mapper/PowerInfMapper.java
+++ b/src/main/java/com/whyc/mapper/PowerInfMapper.java
@@ -1,7 +1,9 @@
 package com.whyc.mapper;
 
 import com.whyc.dto.PowerDto;
+import com.whyc.dto.Statistic.Pwr7Stic;
 import com.whyc.dto.Statistic.StationStic;
+import com.whyc.pojo.db_station.BattInf;
 import com.whyc.pojo.db_station.PowerInf;
 import com.whyc.pojo.db_station.StationInf;
 import org.apache.ibatis.annotations.Param;
@@ -26,4 +28,7 @@
     List<PowerInf> getPowerStatistic(@Param("stic") StationStic stic);
     //鏌ヨ鏈烘埧鎵�鍦ㄧ殑鐝粍
     String getGroupName(Integer powerId);
+
+    //浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7)
+    List<PowerInf> getPwr7Statistic(@Param("stic") Pwr7Stic stic);
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/BattInfService.java b/src/main/java/com/whyc/service/BattInfService.java
index 9f5d008..534ae58 100644
--- a/src/main/java/com/whyc/service/BattInfService.java
+++ b/src/main/java/com/whyc/service/BattInfService.java
@@ -473,8 +473,4 @@
     public List<BattInf> getDischrChart(Integer uid) {
         return mapper.getDischrChart(uid);
     }
-    //浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7)
-    public List<BattInf> getPwr7Statistic(Pwr7Stic stic) {
-        return mapper.getPwr7Statistic(stic);
-    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/BatttestdataInfService.java b/src/main/java/com/whyc/service/BatttestdataInfService.java
index 1cf2ea5..19b4222 100644
--- a/src/main/java/com/whyc/service/BatttestdataInfService.java
+++ b/src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -17,6 +17,7 @@
 import com.whyc.pojo.db_ram_db.BattRtdata;
 import com.whyc.pojo.db_ram_db.BattRtstate;
 import com.whyc.pojo.db_station.BattInf;
+import com.whyc.pojo.db_station.PowerInf;
 import com.whyc.pojo.db_user.Baojigroup;
 import com.whyc.util.ActionUtil;
 import com.whyc.util.PageInfoUtils;
@@ -49,8 +50,11 @@
     @Autowired(required = false)
     private BaojigroupService bjService;
 
+    @Autowired(required = false)
+    private PowerInfService powerInfService;
 
-
+    @Autowired(required = false)
+    private PwrdevHistorydataIdService pwrHisdataIdService;
 
 
     //鑾峰彇鏈�鍚庝竴娆℃祴璇曟暟鎹苟璁$畻鍓╀綑瀹归噺
@@ -875,24 +879,35 @@
     }
    //浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7)
     public Response getPwr7Statistic(Pwr7Stic 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();
+        //1鏌ヨ绗﹀悎鏉′欢鐨勭數姹犵粍
+        List<PowerInf> pinfList=powerInfService.getPwr7Statistic(stic);
+        if(pinfList==null||pinfList.size()==0){
+            return new Response().set(1,false,"褰撳墠鐢ㄦ埛鏈鐞嗘弧瓒虫潯浠剁殑鐢垫睜缁�");
+        }
+        List<SticPwr7Res> reslist=new ArrayList<>();
+        for (PowerInf pinf:pinfList) {
+            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);
+                    reslist.add(res);
                 }
-                if(param.getParamNamePsx().equals("batt_mon_damage_val")){
-                    damageValue=param.getParamValue();
-                }
-
             }
         }
-        //1鏌ヨ绗﹀悎鏉′欢鐨勭數姹犵粍
-        List<BattInf> binfList=battInfService.getPwr7Statistic(stic);
-        List<PerformanceRes> reslist=new ArrayList<>();
+
         PageInfo pageInfo=PageInfoUtils.list2PageInfo(reslist, stic.getPageNum(), stic.getPageSize());
         return new Response().setII(1,reslist.size()>0,pageInfo,"浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7)");
     }
diff --git a/src/main/java/com/whyc/service/PowerInfService.java b/src/main/java/com/whyc/service/PowerInfService.java
index 90e1e71..8441058 100644
--- a/src/main/java/com/whyc/service/PowerInfService.java
+++ b/src/main/java/com/whyc/service/PowerInfService.java
@@ -6,6 +6,7 @@
 import com.github.pagehelper.PageInfo;
 import com.whyc.dto.PowerDto;
 import com.whyc.dto.Response;
+import com.whyc.dto.Statistic.Pwr7Stic;
 import com.whyc.dto.Statistic.StationStic;
 import com.whyc.mapper.BaojigroupPowerMapper;
 import com.whyc.mapper.BaojigroupUsrMapper;
@@ -148,4 +149,8 @@
         PageInfo<PowerInf> pageInfo=new PageInfo<>(list);
         return new Response().setII(1,list.size()>0,pageInfo,"鐢垫簮淇℃伅缁熻");
     }
+    //浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7)
+    public  List<PowerInf> getPwr7Statistic(Pwr7Stic stic) {
+        return mapper.getPwr7Statistic(stic);
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java b/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java
index f5646de..a83a90c 100644
--- a/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java
+++ b/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java
@@ -1,8 +1,11 @@
 package com.whyc.service;
 
+import com.whyc.dto.Real.CompareDto;
 import com.whyc.dto.Real.PwrHisRealAcInDto;
 import com.whyc.dto.Real.PwrHisRealDcoutInDto;
+import com.whyc.dto.Real.QuarterDto;
 import com.whyc.dto.Response;
+import com.whyc.dto.Statistic.QuarterPwr7Res;
 import com.whyc.mapper.CommonMapper;
 import com.whyc.pojo.db_data_history.BattRealdataId;
 import com.whyc.pojo.db_data_history.PwrdevHistorydataId;
@@ -15,7 +18,9 @@
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class PwrdevHistorydataIdService {
@@ -70,4 +75,39 @@
         }
         return new Response().setIII(1,datalist.size()>0,datalist,modelCfg,"鑾峰彇鍗婂皬鏃跺唴鐩存祦杈撳嚭缁熻");
     }
+    //1.2.7浼樿壇鐢垫簮缁熻涓婁竴瀛e害鐨勭數婧愭煇涓�灞炴�у拰鍙傛暟闃堝�艰秴杩囩殑娆℃暟
+    public Map<String,Integer> getPwrQuarter7(Integer powerId, Map<String,Float> paramValue) {
+        Map<String,Integer> map=new HashMap<>();
+        map.put("acin1Vola",0);
+        map.put("acoutVola",0);
+        map.put("dcoutVol",0);
+        map.put("dcoutCurr",0);
+        List<String> datelist = ActionUtil.getLastQuarterYearMonths();
+        for (int i=0;i<datelist.size();i++) {
+            String date=datelist.get(i);
+            String tableName ="db_data_history.tb_pwrdev_historydata_"+powerId+"_"+date;
+            String existTableName = commonMapper.existTable("db_data_history", "tb_pwrdev_historydata_"+powerId+"_"+date);
+            //鍒ゆ柇琛ㄦ槸鍚﹀瓨鍦�
+            if(existTableName == null){
+                continue;
+            }
+            List<QuarterPwr7Res> datalist=subTablePageInfoService.getPwrQuarter7(tableName);
+            // 閬嶅巻 dataList 骞舵瘮杈冨睘鎬у��
+            for (QuarterPwr7Res data : datalist) {
+                if (data.getAcin1Vola() > paramValue.get("acin1Vola")) {
+                    map.put("acin1Vola", map.get("acin1Vola") + 1);
+                }
+                if (data.getAcoutVola() > paramValue.get("acoutVola")) {
+                    map.put("acoutVola", map.get("acoutVola") + 1);
+                }
+                if (data.getDcoutVol() > paramValue.get("dcoutVol")) {
+                    map.put("dcoutVol", map.get("dcoutVol") + 1);
+                }
+                if (data.getDcoutCurr() > paramValue.get("dcoutCurr")) {
+                    map.put("dcoutCurr", map.get("dcoutCurr") + 1);
+                }
+            }
+        }
+        return map;
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java
index 88522b3..2bc905d 100644
--- a/src/main/java/com/whyc/service/SubTablePageInfoService.java
+++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -4,6 +4,7 @@
 import com.whyc.dto.AlmHis.DevAlmPar;
 import com.whyc.dto.AlmHis.PwrAlmPar;
 import com.whyc.dto.Real.*;
+import com.whyc.dto.Statistic.QuarterPwr7Res;
 import com.whyc.mapper.CallBack;
 import com.whyc.pojo.db_alarm.BattalarmDataHistory;
 import com.whyc.pojo.db_alarm.DevalarmDataHistory;
@@ -791,4 +792,27 @@
            });
          return list;
     }
+    //1.2.7浼樿壇鐢垫簮缁熻涓婁竴瀛e害鐨勭數婧愭煇涓�灞炴�у拰鍙傛暟闃堝�艰秴杩囩殑娆℃暟
+    public List<QuarterPwr7Res> getPwrQuarter7(String tableName) {
+        String sql=" select  distinct record_datetime,acin1_vola,acout_vola,dcout_vol,dcout_curr " +
+                " from "+tableName+" " ;
+        sql+=" order by record_datetime asc";
+        List<QuarterPwr7Res> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
+            @Override
+            public List getResults(ResultSet rs) throws SQLException {
+                List<QuarterPwr7Res> list=new ArrayList<>();
+                while (rs.next()){
+                    QuarterPwr7Res data=new QuarterPwr7Res();
+                    data.setRecordDatetime(rs.getTimestamp("record_datetime"));
+                    data.setAcin1Vola(rs.getFloat("acin1_vola"));
+                    data.setAcoutVola(rs.getFloat("acout_vola"));
+                    data.setDcoutVol(rs.getFloat("dcout_vol"));
+                    data.setDcoutCurr(rs.getFloat("dcout_curr"));
+                    list.add(data);
+                }
+                return list;
+            }
+        });
+        return list;
+    }
 }
diff --git a/src/main/resources/mapper/BattInfMapper.xml b/src/main/resources/mapper/BattInfMapper.xml
index 36b74db..6d8f68f 100644
--- a/src/main/resources/mapper/BattInfMapper.xml
+++ b/src/main/resources/mapper/BattInfMapper.xml
@@ -418,44 +418,4 @@
             order by tb_batt_inf.dev_id asc,battgroup_id asc
         </where>
     </select>
-    <select id="getPwr7Statistic" resultType="com.whyc.pojo.db_station.BattInf">
-        select distinct tb_batt_inf.*
-        ,tb_station_inf.station_type,tb_station_inf.station_name,tb_station_inf.provice,tb_station_inf.city,tb_station_inf.country,tb_station_inf.full_name
-        from db_station.tb_batt_inf,db_station.tb_station_inf
-        <where>
-            tb_batt_inf.station_id=tb_station_inf.station_id
-            <if test="stic.provice!=null">
-                and tb_station_inf.provice=#{stic.provice}
-            </if>
-            <if test="stic.city!=null">
-                and tb_station_inf.city=#{stic.city}
-            </if>
-            <if test="stic.country!=null">
-                and tb_station_inf.country=#{stic.country}
-            </if>
-            <if test="stic.stationName!=null">
-                and tb_station_inf.station_name=#{stic.stationName}
-            </if>
-            <if test="stic.monvolstd!=null">
-                and tb_batt_inf.monvolstd=#{stic.monvolstd}
-            </if>
-            <if test="stic.product!=null">
-                and tb_batt_inf.product=#{stic.product}
-            </if>
-            <if test="stic.inuseStartTime!=null">
-                and tb_batt_inf.inuse_time>=#{stic.inuseStartTime}
-            </if>
-            <if test="stic.inuseEndTime!=null">
-                and tb_batt_inf.inuse_time&lt;=#{stic.inuseEndTimee}
-            </if>
-            <if test="stic.uid>100">
-                and tb_batt_inf.station_id in(
-                select distinct station_id from db_user.tb_baojigroup_power,db_user.tb_baojigroup_usr
-                where   tb_baojigroup_power.baoji_group_id=tb_baojigroup_usr.baoji_group_id
-                and tb_baojigroup_usr.uid=#{stic.uid}
-                )
-            </if>
-            order by tb_batt_inf.dev_id asc,battgroup_id asc
-        </where>
-    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/PowerInfMapper.xml b/src/main/resources/mapper/PowerInfMapper.xml
index 7520c9f..8bdef81 100644
--- a/src/main/resources/mapper/PowerInfMapper.xml
+++ b/src/main/resources/mapper/PowerInfMapper.xml
@@ -121,5 +121,45 @@
             </if>
         </where>
     </select>
+    <select id="getPwr7Statistic" resultType="com.whyc.pojo.db_station.PowerInf">
+            select distinct tb_power_inf.*
+            ,tb_station_inf.station_type,tb_station_inf.station_name,tb_station_inf.provice,tb_station_inf.city,tb_station_inf.country,tb_station_inf.full_name
+            from db_station.tb_power_inf,db_station.tb_station_inf
+            <where>
+                tb_power_inf.station_id=tb_station_inf.station_id
+                <if test="stic.provice!=null">
+                    and tb_station_inf.provice=#{stic.provice}
+                </if>
+                <if test="stic.city!=null">
+                    and tb_station_inf.city=#{stic.city}
+                </if>
+                <if test="stic.country!=null">
+                    and tb_station_inf.country=#{stic.country}
+                </if>
+                <if test="stic.stationName!=null">
+                    and tb_station_inf.station_name=#{stic.stationName}
+                </if>
+                <if test="stic.stationType!=null">
+                    and tb_station_inf.station_type=#{stic.stationType}
+                </if>
+                <if test="stic.company!=null">
+                    and tb_power_inf.company=#{stic.company}
+                </if>
+                <if test="stic.inuseStartTime!=null">
+                    and tb_power_inf.power_inuse_time>=#{stic.inuseStartTime}
+                </if>
+                <if test="stic.inuseEndTime!=null">
+                    and tb_power_inf.power_inuse_time&lt;=#{stic.inuseEndTimee}
+                </if>
+                <if test="stic.uid>100">
+                    and tb_power_inf.power_id in(
+                    select distinct power_id from db_user.tb_baojigroup_power,db_user.tb_baojigroup_usr
+                    where   tb_baojigroup_power.baoji_group_id=tb_baojigroup_usr.baoji_group_id
+                    and tb_baojigroup_usr.uid=#{stic.uid}
+                    )
+                </if>
+                order by tb_power_inf.power_id asc
+            </where>
+    </select>
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1