From a6018ae593fc2d2fb3ccfa4e7c34f28387326f6b Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期四, 19 六月 2025 15:06:25 +0800
Subject: [PATCH] 3.1电池/电源告警参数,1.2.7优良电源统计

---
 src/main/java/com/whyc/util/ActionUtil.java                            |   24 +++
 src/main/java/com/whyc/mapper/PowerInfMapper.java                      |    2 
 src/main/java/com/whyc/service/PowerInfService.java                    |    4 
 src/main/resources/mapper/PowerPropertyParamMapper.xml                 |   12 +
 src/main/java/com/whyc/mapper/PowerPropertyParamMapper.java            |   10 +
 src/main/java/com/whyc/service/ApptimeParamService.java                |   21 ++
 src/main/resources/mapper/BattInfMapper.xml                            |   30 --
 src/main/java/com/whyc/mapper/ApptimeParamMapper.java                  |    6 
 src/main/java/com/whyc/dto/Statistic/QuarterPwr7Res.java               |    2 
 src/main/java/com/whyc/service/BattInfService.java                     |    4 
 src/main/java/com/whyc/service/BatttestdataInfService.java             |   50 +++--
 src/main/resources/mapper/PowerInfMapper.xml                           |   43 +---
 src/main/java/com/whyc/service/PwrdevAlarmParamStandService.java       |    4 
 src/main/java/com/whyc/service/SubTablePageInfoService.java            |    4 
 src/main/java/com/whyc/controller/AlmParamController.java              |    4 
 src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java                     |   13 +
 src/main/java/com/whyc/pojo/db_param/PowerPropertyParam.java           |   56 +++++++
 src/main/java/com/whyc/pojo/db_pwrdev_alarm/PwrdevAlarmParamStand.java |    2 
 src/main/java/com/whyc/service/BattAlmparamService.java                |   10 
 src/main/java/com/whyc/service/PowerPropertyParamService.java          |   22 ++
 src/main/java/com/whyc/pojo/db_param/ApptimeParam.java                 |   49 ++++++
 src/main/java/com/whyc/mapper/BattInfMapper.java                       |    2 
 src/main/java/com/whyc/service/PwrdevAlarmParamService.java            |    9 
 src/main/java/com/whyc/service/PwrdevHistorydataIdService.java         |   53 +++++-
 24 files changed, 321 insertions(+), 115 deletions(-)

diff --git a/src/main/java/com/whyc/controller/AlmParamController.java b/src/main/java/com/whyc/controller/AlmParamController.java
index 5d4095c..76c1bb3 100644
--- a/src/main/java/com/whyc/controller/AlmParamController.java
+++ b/src/main/java/com/whyc/controller/AlmParamController.java
@@ -52,8 +52,6 @@
     @PostMapping("getBattAlmParam")
     @ApiOperation("鑾峰彇鐢垫睜鍛婅鍙傛暟")
     public Response getBattAlmParam(@RequestBody ParamAlmDto dto){
-        Integer uid=ActionUtil.getUser().getId();
-        dto.setUid(uid);
         return battAlmparamService.getBattAlmParam(dto);
     }
 
@@ -85,8 +83,6 @@
     @PostMapping("getPwrAlmParam")
     @ApiOperation("鑾峰彇鐢垫簮鍛婅鍙傛暟")
     public Response getPwrAlmParam(@RequestBody ParamAlmDto dto){
-        Integer uid=ActionUtil.getUser().getId();
-        dto.setUid(uid);
         return pwrAlmparamService.getPwrAlmParam(dto);
     }
 
diff --git a/src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java b/src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java
index b2f672a..55dde53 100644
--- a/src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java
+++ b/src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java
@@ -12,12 +12,15 @@
     private String country;
     private String stationName;
     private String company;
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date inuseStartTime;//寮�濮嬫椂闂�
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date inuseEndTime;//缁撴潫鏃堕棿
+    //鎶曞叆浣跨敤骞撮檺
+    //鍏ㄩ儴涓嶄紶
+    //3骞村唴 0~3骞�   3
+    //5骞村唴 0~5骞�   5
+    //5骞翠笂 5骞翠互涓�  1
+    private Integer inuseYear;
+    private Date pwrInUseTime;
     private String stationType;
-    private Integer performance;//鐢垫睜鎬ц兘锛�1浼樼锛�2鍔e寲锛�3鎹熷潖 4鏈斁鐢� 涓嶄紶鍏ㄩ儴
+    private Integer performance;//鐢垫睜鎬ц兘锛�1浼樼锛�2涓�鑸紝3棰勮 4涓ラ噸 涓嶄紶鍏ㄩ儴
     private String groupName;
     private Integer uid;
     private Integer pageNum;
diff --git a/src/main/java/com/whyc/dto/Statistic/QuarterPwr7Res.java b/src/main/java/com/whyc/dto/Statistic/QuarterPwr7Res.java
index 19259b4..f0e79e8 100644
--- a/src/main/java/com/whyc/dto/Statistic/QuarterPwr7Res.java
+++ b/src/main/java/com/whyc/dto/Statistic/QuarterPwr7Res.java
@@ -10,7 +10,7 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Date recordDatetime;
     private Float acin1Vola;
-    private Float acoutVola;
+    private Float acoutCurra;
     private Float dcoutVol;
     private Float dcoutCurr;
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/mapper/ApptimeParamMapper.java b/src/main/java/com/whyc/mapper/ApptimeParamMapper.java
new file mode 100644
index 0000000..14ce4b5
--- /dev/null
+++ b/src/main/java/com/whyc/mapper/ApptimeParamMapper.java
@@ -0,0 +1,6 @@
+package com.whyc.mapper;
+
+import com.whyc.pojo.db_param.ApptimeParam;
+
+public interface ApptimeParamMapper extends CustomMapper<ApptimeParam>{
+}
\ 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 350325b..7f0d5b2 100644
--- a/src/main/java/com/whyc/mapper/BattInfMapper.java
+++ b/src/main/java/com/whyc/mapper/BattInfMapper.java
@@ -62,5 +62,5 @@
     //鑾峰彇绔欑偣涓嬬殑鐢垫睜缁�(涓嬫媺)
     List<BattInf> getBattByUid(@Param("uid") Integer uid, @Param("provice") String provice, @Param("city") String city, @Param("country") String country, @Param("stationName") String stationName);
     //鏍规嵁鏌ヨ鏉′欢鑾峰彇鐢垫睜缁勯泦鍚�
-    List<Integer> getBattgroupIdList(@Param("dto") ParamAlmDto dto);
+    BattInf getBattgroupIdList(@Param("battgroupId") Integer battgroupId);
 }
\ 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 38ec720..7a27a12 100644
--- a/src/main/java/com/whyc/mapper/PowerInfMapper.java
+++ b/src/main/java/com/whyc/mapper/PowerInfMapper.java
@@ -35,5 +35,5 @@
 
     List<PowerInf> getListByUserId(Integer userId);
     //鏍规嵁鏌ヨ鏉′欢鑾峰彇鐢垫簮闆嗗悎
-    List<Integer> getPowerIdList(@Param("dto") ParamAlmDto dto);
+    PowerInf getPowerIdList(@Param("powerId") Integer powerId);
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/mapper/PowerPropertyParamMapper.java b/src/main/java/com/whyc/mapper/PowerPropertyParamMapper.java
new file mode 100644
index 0000000..47bbc15
--- /dev/null
+++ b/src/main/java/com/whyc/mapper/PowerPropertyParamMapper.java
@@ -0,0 +1,10 @@
+package com.whyc.mapper;
+
+import com.whyc.pojo.db_param.PowerPropertyParam;
+
+import java.util.List;
+
+public interface PowerPropertyParamMapper extends CustomMapper<PowerPropertyParam>{
+    //鑾峰彇鐢垫簮浼樿壇鍒ゆ柇鐨勬爣鍑嗗弬鏁板��
+    List<PowerPropertyParam> getPwrStandardParam(Integer powerType);
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/pojo/db_param/ApptimeParam.java b/src/main/java/com/whyc/pojo/db_param/ApptimeParam.java
new file mode 100644
index 0000000..0641f7c
--- /dev/null
+++ b/src/main/java/com/whyc/pojo/db_param/ApptimeParam.java
@@ -0,0 +1,49 @@
+package com.whyc.pojo.db_param;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 骞冲彴鏃堕棿鍙傛暟璁剧疆琛�
+ * </p>
+ *
+ * @author lxw
+ * @since 2025-06-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName(schema = "db_param",value ="tb_apptime_param")
+@ApiModel(value="ApptimeParam瀵硅薄", description="骞冲彴鏃堕棿鍙傛暟璁剧疆琛�")
+public class ApptimeParam implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "鑷涓婚敭")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "鍙傛暟鍚嶇О")
+    private String paramName;
+
+    @ApiModelProperty(value = "璁剧疆鏃堕棿鍙傛暟")
+    private Date paramValue;
+
+    @ApiModelProperty(value = "鍙傛暟绫诲埆")
+    private Integer categoryId;
+
+    @ApiModelProperty(value = "鍙傛暟鑻辨枃鍚嶇О")
+    private String paramNamePsx;
+
+
+}
diff --git a/src/main/java/com/whyc/pojo/db_param/PowerPropertyParam.java b/src/main/java/com/whyc/pojo/db_param/PowerPropertyParam.java
new file mode 100644
index 0000000..640e6c1
--- /dev/null
+++ b/src/main/java/com/whyc/pojo/db_param/PowerPropertyParam.java
@@ -0,0 +1,56 @@
+package com.whyc.pojo.db_param;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 鐢垫簮鎬ц兘璇勪及鍙傝�冨瓧娈甸厤缃〃
+ * </p>
+ *
+ * @author lxw
+ * @since 2025-06-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName(schema = "db_param",value ="tb_power_property_param")
+@ApiModel(value="PowerPropertyParam瀵硅薄", description="鐢垫簮鎬ц兘璇勪及鍙傝�冨瓧娈甸厤缃〃")
+public class PowerPropertyParam implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "鑷涓婚敭")
+    @TableId(value = "num", type = IdType.AUTO)
+    private Long num;
+
+    @ApiModelProperty(value = "1:鐩存祦锛�2锛氶�氫俊锛�3閰嶇綉")
+    private Integer powerType;
+
+    @ApiModelProperty(value = "瀛楁鍚嶇О")
+    private String propertyName;
+
+    @ApiModelProperty(value = "瀛楁涓枃鍚嶇О")
+    private String propertyNameZh;
+
+    @ApiModelProperty(value = "瀛楁浣胯兘[0-鏈惎鐢� 1-鍚敤]")
+    private Integer fieldEn;
+
+    @TableField(exist = false)
+    private Float basisVal;
+
+    @TableField(exist = false)
+    private Float alarmLimithUpper;
+
+    @TableField(exist = false)
+    private Float alarmLimithLowper;
+}
diff --git a/src/main/java/com/whyc/pojo/db_pwrdev_alarm/PwrdevAlarmParamStand.java b/src/main/java/com/whyc/pojo/db_pwrdev_alarm/PwrdevAlarmParamStand.java
index c91f6f1..2f76d30 100644
--- a/src/main/java/com/whyc/pojo/db_pwrdev_alarm/PwrdevAlarmParamStand.java
+++ b/src/main/java/com/whyc/pojo/db_pwrdev_alarm/PwrdevAlarmParamStand.java
@@ -51,7 +51,7 @@
     private Float alarmLimith;
 
     @ApiModelProperty(value = "涓婁笂闄愰槇鍊�")
-    private Float alarmLimithUpeper;
+    private Float alarmLimithUpper;
 
     @ApiModelProperty(value = "涓嬮檺闃堝��")
     private Float alarmLimitl;
diff --git a/src/main/java/com/whyc/service/ApptimeParamService.java b/src/main/java/com/whyc/service/ApptimeParamService.java
new file mode 100644
index 0000000..2eb3824
--- /dev/null
+++ b/src/main/java/com/whyc/service/ApptimeParamService.java
@@ -0,0 +1,21 @@
+package com.whyc.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.whyc.mapper.ApptimeParamMapper;
+import com.whyc.pojo.db_param.ApptimeParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ApptimeParamService {
+    @Autowired(required = false)
+    private ApptimeParamMapper mapper;
+
+    public ApptimeParam getPwrPerformanceStrartTime(Integer powerId) {
+        QueryWrapper apptimeParamWrapper=new QueryWrapper();
+        apptimeParamWrapper.eq("param_name_psx","power_performance_strart_time");
+        apptimeParamWrapper.last("limit 1");
+        ApptimeParam apptimeParam=mapper.selectOne(apptimeParamWrapper);
+        return apptimeParam;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/BattAlmparamService.java b/src/main/java/com/whyc/service/BattAlmparamService.java
index 84cc290..9dbcc75 100644
--- a/src/main/java/com/whyc/service/BattAlmparamService.java
+++ b/src/main/java/com/whyc/service/BattAlmparamService.java
@@ -10,11 +10,13 @@
 import com.whyc.dto.Response;
 import com.whyc.mapper.BattAlmparamMapper;
 import com.whyc.pojo.db_param.BattAlmparam;
+import com.whyc.pojo.db_station.BattInf;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class BattAlmparamService {
@@ -26,11 +28,9 @@
     //鑾峰彇鐢垫睜鍛婅鍙傛暟
     public Response getBattAlmParam(ParamAlmDto dto) {
         //鏍规嵁鏌ヨ鏉′欢鑾峰彇鐢垫睜缁勯泦鍚�
-        List<Integer> idList=binfService.getBattgroupIdList(dto);
+        BattInf binf=binfService.getBattgroupIdList(dto.getBattgroupId());
         QueryWrapper wrapper=new QueryWrapper();
-        if(idList!=null){
-            wrapper.in("battgroup_id",idList);
-        }
+        wrapper.eq("battgroup_id",dto.getBattgroupId());
         if(dto.getAlmIdList()!=null){
             wrapper.in("alm_id",dto.getAlmIdList());
         }
@@ -38,7 +38,7 @@
         //PageHelper.startPage(dto.getPageNum(),dto.getPageSize());
         List<BattAlmparam> list = mapper.selectList(wrapper);
         //PageInfo<BattAlmparam> pageInfo=new PageInfo<>(list);
-        return new Response().setII(1,list!=null,list,"鑾峰彇鐢垫睜鍛婅鍙傛暟");
+        return new Response().setIII(1,list!=null,list,binf,"鑾峰彇鐢垫睜鍛婅鍙傛暟");
     }
     //淇敼鐢垫睜鍛婅鍙傛暟
     public Response setBattAlmParam(List<BattAlmparam> almparamList) {
diff --git a/src/main/java/com/whyc/service/BattInfService.java b/src/main/java/com/whyc/service/BattInfService.java
index 34e7a4f..85a382e 100644
--- a/src/main/java/com/whyc/service/BattInfService.java
+++ b/src/main/java/com/whyc/service/BattInfService.java
@@ -491,7 +491,7 @@
         return new Response().setII(1,list.size()>0,list,"鑾峰彇绔欑偣涓嬬殑鐢垫睜缁�(涓嬫媺)");
     }
     //鏍规嵁鏌ヨ鏉′欢鑾峰彇鐢垫睜缁勯泦鍚�
-    public List<Integer> getBattgroupIdList(ParamAlmDto dto) {
-        return mapper.getBattgroupIdList(dto);
+    public  BattInf getBattgroupIdList(Integer battgroupId) {
+        return mapper.getBattgroupIdList(battgroupId);
     }
 }
\ 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 954d64d..219895b 100644
--- a/src/main/java/com/whyc/service/BatttestdataInfService.java
+++ b/src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -4,6 +4,7 @@
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 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;
@@ -19,10 +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 org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.*;
 
 @Service
@@ -937,35 +940,42 @@
     }
    //浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7)
     public Response getPwr7Statistic(Pwr7Stic stic) {
+        Date inuseTimeStart =new Date();
+        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);
-                    reslist.add(res);
-                }
+            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));
+                reslist.add(res);
             }
         }
-
         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 bc6bd61..85e362f 100644
--- a/src/main/java/com/whyc/service/PowerInfService.java
+++ b/src/main/java/com/whyc/service/PowerInfService.java
@@ -162,8 +162,8 @@
         return mapper.getListByUserId(userId);
     }
     //鏍规嵁鏌ヨ鏉′欢鑾峰彇鐢垫簮闆嗗悎
-    public List<Integer> getPowerIdList(ParamAlmDto dto) {
-        return mapper.getPowerIdList(dto);
+    public PowerInf getPowerIdList(Integer powerId) {
+        return mapper.getPowerIdList(powerId);
     }
     //鑾峰彇鐢垫簮鎬ц兘(涓嬫媺)
     public Response getPwrCapperformance() {
diff --git a/src/main/java/com/whyc/service/PowerPropertyParamService.java b/src/main/java/com/whyc/service/PowerPropertyParamService.java
new file mode 100644
index 0000000..5d50042
--- /dev/null
+++ b/src/main/java/com/whyc/service/PowerPropertyParamService.java
@@ -0,0 +1,22 @@
+package com.whyc.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.whyc.mapper.PowerPropertyParamMapper;
+import com.whyc.pojo.db_param.PowerPropertyParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class PowerPropertyParamService {
+    @Autowired(required = false)
+    private PowerPropertyParamMapper mapper;
+
+    //鑾峰彇鐢垫簮浼樿壇鍒ゆ柇鐨勬爣鍑嗗弬鏁板��
+    public List<PowerPropertyParam> getPwrStandardParam(Integer powerType) {
+        List<PowerPropertyParam> list = mapper.getPwrStandardParam(powerType);
+        return list;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/PwrdevAlarmParamService.java b/src/main/java/com/whyc/service/PwrdevAlarmParamService.java
index 966a277..cbee80c 100644
--- a/src/main/java/com/whyc/service/PwrdevAlarmParamService.java
+++ b/src/main/java/com/whyc/service/PwrdevAlarmParamService.java
@@ -13,6 +13,7 @@
 import com.whyc.mapper.PwrdevAlarmParamMapper;
 import com.whyc.pojo.db_param.BattAlmparam;
 import com.whyc.pojo.db_pwrdev_alarm.PwrdevAlarmParam;
+import com.whyc.pojo.db_station.PowerInf;
 import com.whyc.util.ActionUtil;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,7 +37,7 @@
     //鑾峰彇鐢垫簮鍛婅鍙傛暟
     public Response getPwrAlmParam(ParamAlmDto dto) {
         //鏍规嵁鏌ヨ鏉′欢鑾峰彇鐢垫簮闆嗗悎
-        List<Integer> idList=pinfService.getPowerIdList(dto);
+        PowerInf pinf=pinfService.getPowerIdList(dto.getPowerId());
         /*Map<String, List<PwrdevAlarmParam>> map=new HashMap<>();
         List<PwrdevAlarmParam> almmap30=new ArrayList<>();
         List<PwrdevAlarmParam> almmap31=new ArrayList<>();
@@ -46,9 +47,7 @@
         List<PwrdevAlarmParam> almmap35=new ArrayList<>();
         List<PwrdevAlarmParam> almmap36=new ArrayList<>();*/
         QueryWrapper wrapper=new QueryWrapper();
-        if(idList!=null){
-            wrapper.in("power_id",idList);
-        }
+        wrapper.eq("power_id",dto.getPowerId());
         if(dto.getAlmIdList()!=null){
             wrapper.in("alm_id",dto.getAlmIdList());
         }
@@ -89,7 +88,7 @@
             }
         }
        // PageInfo<PwrdevAlarmParam> pageInfo=new PageInfo(list);
-        return new Response().setII(1,list!=null,list,"鑾峰彇鐢垫簮鍛婅鍙傛暟");
+        return new Response().setIII(1,list!=null,list,pinf,"鑾峰彇鐢垫簮鍛婅鍙傛暟");
     }
     //淇敼鐢垫簮鍛婅鍙傛暟
     public Response setPwrAlmParam(List<PwrdevAlarmParam> almparamList) {
diff --git a/src/main/java/com/whyc/service/PwrdevAlarmParamStandService.java b/src/main/java/com/whyc/service/PwrdevAlarmParamStandService.java
index f3d1f2b..df49ade 100644
--- a/src/main/java/com/whyc/service/PwrdevAlarmParamStandService.java
+++ b/src/main/java/com/whyc/service/PwrdevAlarmParamStandService.java
@@ -46,8 +46,8 @@
         if(stand.getAlarmLimitl()!=null){
             wrapper.set("alarm_limitl",stand.getAlarmLimitl());
         }
-        if(stand.getAlarmLimithUpeper()!=null){
-            wrapper.set("alarm_limith_upeper",stand.getAlarmLimithUpeper());
+        if(stand.getAlarmLimithUpper()!=null){
+            wrapper.set("alarm_limith_upper",stand.getAlarmLimithUpper());
         }
         if(stand.getAlarmLimitlLower()!=null){
             wrapper.set("alarm_limitl_lower",stand.getAlarmLimitlLower());
diff --git a/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java b/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java
index a83a90c..c0a04ff 100644
--- a/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java
+++ b/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java
@@ -1,5 +1,6 @@
 package com.whyc.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.whyc.dto.Real.CompareDto;
 import com.whyc.dto.Real.PwrHisRealAcInDto;
 import com.whyc.dto.Real.PwrHisRealDcoutInDto;
@@ -9,6 +10,8 @@
 import com.whyc.mapper.CommonMapper;
 import com.whyc.pojo.db_data_history.BattRealdataId;
 import com.whyc.pojo.db_data_history.PwrdevHistorydataId;
+import com.whyc.pojo.db_param.ApptimeParam;
+import com.whyc.pojo.db_param.PowerPropertyParam;
 import com.whyc.pojo.db_station.PowerInf;
 import com.whyc.util.ActionUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +34,12 @@
 
     @Autowired
     private PowerInfService  powerInfService;
+
+    @Autowired
+    private ApptimeParamService  apptimeParamService;
+
+    @Autowired
+    private PowerPropertyParamService  propertyParamService;
 
     //绯荤粺姒傝鑾峰彇鍗婂皬鏃朵氦娴佽緭鍏ョ粺璁�
     public Response getHalfHourPwrHisAcinData(Integer powerId,Integer granularity) {
@@ -76,13 +85,23 @@
         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) {
+    public Integer getPwrQuarter7(Integer powerId,Integer powerType) {
         Map<String,Integer> map=new HashMap<>();
-        map.put("acin1Vola",0);
-        map.put("acoutVola",0);
+        map.put("acin1_vola",0);
+        map.put("acout_curra",0);
         map.put("dcoutVol",0);
         map.put("dcoutCurr",0);
-        List<String> datelist = ActionUtil.getLastQuarterYearMonths();
+        //鑾峰彇浼樿壇鐢垫簮鎬ц兘缁熻鍦ㄥ钩鍙颁笂鐨勬椂闂村弬鏁拌缃〃
+        ApptimeParam apptimeParam=apptimeParamService.getPwrPerformanceStrartTime(powerId);
+        //鑾峰彇鎸囧畾鏃堕棿鍒板綋鍓嶆椂闂翠竴鍏卞灏戞湀鐨勯泦鍚�
+        List<String> datelist=ActionUtil.getDateListBetweenDates(apptimeParam.getParamValue(), new Date());
+        //鑾峰彇鐢垫簮浼樿壇鍒ゆ柇鐨勬爣鍑嗗弬鏁板��
+        List<PowerPropertyParam> paramList=propertyParamService.getPwrStandardParam(powerType);
+        Map<String,Float> paramValues=new HashMap<>();
+        for (PowerPropertyParam param : paramList) {
+            paramValues.put(param.getPropertyName()+"_upper", param.getBasisVal()*param.getAlarmLimithUpper());
+            paramValues.put(param.getPropertyName()+"_lower", param.getBasisVal()*param.getAlarmLimithLowper());
+        }
         for (int i=0;i<datelist.size();i++) {
             String date=datelist.get(i);
             String tableName ="db_data_history.tb_pwrdev_historydata_"+powerId+"_"+date;
@@ -94,20 +113,28 @@
             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(paramValues.get("acin1_vola_upper")!=null){
+                    if ((data.getAcin1Vola() > paramValues.get("acin1_vola_upper"))||(data.getAcin1Vola() < paramValues.get("acin1_vola_lower"))) {
+                        map.put("acin1_vola", map.get("acin1_vola") + 1);
+                    }
                 }
-                if (data.getAcoutVola() > paramValue.get("acoutVola")) {
-                    map.put("acoutVola", map.get("acoutVola") + 1);
+                if(paramValues.get("acout_curra_upper")!=null) {
+                    if ((data.getAcoutCurra() > paramValues.get("acout_curra_upper")) || (data.getAcoutCurra() < paramValues.get("acout_curra_lower"))) {
+                        map.put("acout_curra", map.get("acout_curra") + 1);
+                    }
                 }
-                if (data.getDcoutVol() > paramValue.get("dcoutVol")) {
-                    map.put("dcoutVol", map.get("dcoutVol") + 1);
+                if(paramValues.get("dcout_vol_upper")!=null) {
+                    if ((data.getDcoutVol() > paramValues.get("dcout_vol_upper")) || (data.getDcoutVol() < paramValues.get("dcout_vo_lower"))) {
+                        map.put("dcout_vol", map.get("dcout_vol") + 1);
+                    }
                 }
-                if (data.getDcoutCurr() > paramValue.get("dcoutCurr")) {
-                    map.put("dcoutCurr", map.get("dcoutCurr") + 1);
+                if(paramValues.get("dcout_curr_upper")!=null) {
+                    if ((data.getDcoutCurr() > paramValues.get("dcout_curr_upper")) || (data.getDcoutCurr() < paramValues.get("dcout_curr_lower"))) {
+                        map.put("dcout_curr", map.get("dcout_curr") + 1);
+                    }
                 }
             }
         }
-        return map;
+        return 1;
     }
 }
\ 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 2bc905d..1a61256 100644
--- a/src/main/java/com/whyc/service/SubTablePageInfoService.java
+++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -794,7 +794,7 @@
     }
     //1.2.7浼樿壇鐢垫簮缁熻涓婁竴瀛e害鐨勭數婧愭煇涓�灞炴�у拰鍙傛暟闃堝�艰秴杩囩殑娆℃暟
     public List<QuarterPwr7Res> getPwrQuarter7(String tableName) {
-        String sql=" select  distinct record_datetime,acin1_vola,acout_vola,dcout_vol,dcout_curr " +
+        String sql=" select  distinct record_datetime,acin1_vola,acout_curra,dcout_vol,dcout_curr " +
                 " from "+tableName+" " ;
         sql+=" order by record_datetime asc";
         List<QuarterPwr7Res> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
@@ -805,7 +805,7 @@
                     QuarterPwr7Res data=new QuarterPwr7Res();
                     data.setRecordDatetime(rs.getTimestamp("record_datetime"));
                     data.setAcin1Vola(rs.getFloat("acin1_vola"));
-                    data.setAcoutVola(rs.getFloat("acout_vola"));
+                    data.setAcoutCurra(rs.getFloat("acout_curra"));
                     data.setDcoutVol(rs.getFloat("dcout_vol"));
                     data.setDcoutCurr(rs.getFloat("dcout_curr"));
                     list.add(data);
diff --git a/src/main/java/com/whyc/util/ActionUtil.java b/src/main/java/com/whyc/util/ActionUtil.java
index 3b2bd86..a961055 100644
--- a/src/main/java/com/whyc/util/ActionUtil.java
+++ b/src/main/java/com/whyc/util/ActionUtil.java
@@ -18,6 +18,7 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -27,6 +28,7 @@
 
 	public static String time_yyyyMMddHHmmss = "yyyy-MM-dd HH:mm:ss";
 	public static String time_yyyyMMdd = "yyyy-MM-dd";
+	public static String time_yyyyMM = "yyyy-MM";
 	public static String time_yyyyMMdd_HH_mm_ss = "yyyy-MM-dd_HH_mm_ss";
 	public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 	public static SimpleDateFormat sdfwithOutday = new SimpleDateFormat("yyyy_MM");
@@ -637,5 +639,27 @@
 		}
 		return lang;
 	}
+     //涓ゆ椂闂翠箣闂寸殑骞存湀闆嗗悎
+	public static List<String> getDateListBetweenDates(Date startTime, Date endTime) {
+		// 鎸囧畾寮�濮嬫棩鏈熷拰缁撴潫鏃ユ湡
+		LocalDate startDate = LocalDate.of(startTime.getYear() + 1900, startTime.getMonth() + 1, startTime.getDay()); // 绀轰緥璧峰鏃ユ湡
+		LocalDate endDate = LocalDate.of(endTime.getYear() + 1900, endTime.getMonth() + 1, endTime.getDay());  // 绀轰緥缁撴潫鏃ユ湡
 
+		List<String> dateList = new ArrayList<>();
+		LocalDate currentDate = startDate;
+		DateTimeFormatter formatter = DateTimeFormatter.ofPattern(ActionUtil.time_yyyyMM);
+		while (!currentDate.isAfter(endDate)) {
+			String formattedDate = currentDate.format(formatter);
+			dateList.add(formattedDate);
+			currentDate = currentDate.plusMonths(1);
+		}
+		return dateList;
+	}
+
+	public static void main(String[] args) throws ParseException {
+		List<String> dateList =getDateListBetweenDates(ActionUtil.sdf.parse("2025-01-01 00:00:00"),new Date());
+		for (String date : dateList) {
+			System.out.println(date);
+		}
+	}
 }	
diff --git a/src/main/resources/mapper/BattInfMapper.xml b/src/main/resources/mapper/BattInfMapper.xml
index b28e4a1..f9e749c 100644
--- a/src/main/resources/mapper/BattInfMapper.xml
+++ b/src/main/resources/mapper/BattInfMapper.xml
@@ -466,32 +466,16 @@
             </if>
         </where>
     </select>
-    <select id="getBattgroupIdList" resultType="java.lang.Integer">
-        select distinct battgroup_id from db_station.tb_batt_inf,db_station.tb_station_inf
+    <select id="getBattgroupIdList" 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="dto.provice!=null">
-                and tb_station_inf.provice=#{dto.provice}
-            </if>
-            <if test="dto.city!=null">
-                and tb_station_inf.city=#{dto.city}
-            </if>
-            <if test="dto.country!=null">
-                and tb_station_inf.country=#{dto.country}
-            </if>
-            <if test="dto.stationId!=null">
-                and tb_station_inf.station_id=#{dto.stationId}
-            </if>
-            <if test="dto.battgroupId!=null">
-                and battgroup_id.battgroup_id=#{dto.battgroupId}
-            </if>
-            <if test="dto.uid>100">
-                and tb_station_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=#{dto.uid}
-                )
+            <if test="battgroupId!=null">
+                and tb_batt_inf.battgroup_id=#{battgroupId}
             </if>
         </where>
+        limit 1
     </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 7cb7ad3..1937714 100644
--- a/src/main/resources/mapper/PowerInfMapper.xml
+++ b/src/main/resources/mapper/PowerInfMapper.xml
@@ -145,11 +145,14 @@
                 <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 test="stic.inuseYear!=null">
+                    <if test="stic.inuseYear==1">
+                        and tb_power_inf.power_inuse_time&lt;=#{stic.pwrInUseTime}
+                    </if>
+                    <if test="stic.inuseYear!=1">
+                        and tb_power_inf.power_inuse_time>=#{stic.pwrInUseTime}
+                    </if>
                 </if>
                 <if test="stic.uid>100">
                     and tb_power_inf.power_id in(
@@ -169,33 +172,17 @@
             and bu.uid = #{userId}
         )
     </select>
-    <select id="getPowerIdList" resultType="java.lang.Integer">
-        select distinct power_id from db_station.tb_power_inf,db_station.tb_station_inf
+    <select id="getPowerIdList" 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="dto.provice!=null">
-                and tb_station_inf.provice=#{dto.provice}
-            </if>
-            <if test="dto.city!=null">
-                and tb_station_inf.city=#{dto.city}
-            </if>
-            <if test="dto.country!=null">
-                and tb_station_inf.country=#{dto.country}
-            </if>
-            <if test="dto.stationId!=null">
-                and tb_station_inf.station_id=#{dto.stationId}
-            </if>
-            <if test="dto.powerId!=null">
-                and tb_power_inf.power_id=#{dto.powerId}
-            </if>
-            <if test="dto.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=#{dto.uid}
-                )
+            <if test="powerId!=null">
+                and tb_power_inf.power_id=#{powerId}
             </if>
         </where>
+        limit 1
     </select>
 
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/PowerPropertyParamMapper.xml b/src/main/resources/mapper/PowerPropertyParamMapper.xml
new file mode 100644
index 0000000..dde15eb
--- /dev/null
+++ b/src/main/resources/mapper/PowerPropertyParamMapper.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.whyc.mapper.PowerPropertyParamMapper">
+
+    <select id="getPwrStandardParam" resultType="com.whyc.pojo.db_param.PowerPropertyParam">
+        select tb_power_property_param.*
+             ,tb_pwrdev_alarm_param_stand.basis_val,tb_pwrdev_alarm_param_stand.alarm_limith_upper,tb_pwrdev_alarm_param_stand.alarm_limitl_lower
+        from db_param.tb_power_property_param,db_pwrdev_alarm.tb_pwrdev_alarm_param_stand
+        where tb_power_property_param.property_name=tb_pwrdev_alarm_param_stand.property_name
+              and tb_power_property_param.power_type=#{powerType}
+    </select>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.1