From 9f46f8471a3521c03461e04a6e82cff023e9bfdb Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期四, 19 六月 2025 18:38:21 +0800
Subject: [PATCH] 判断优良电源性能

---
 src/main/java/com/whyc/service/BatttestdataInfService.java     |    2 +-
 src/main/java/com/whyc/util/ActionUtil.java                    |   23 ++++++++++++++++++++---
 src/main/java/com/whyc/service/SubTablePageInfoService.java    |    2 +-
 src/main/java/com/whyc/controller/StatisticController.java     |    2 +-
 src/main/resources/mapper/PowerPropertyParamMapper.xml         |    1 +
 src/main/java/com/whyc/service/PwrdevHistorydataIdService.java |   19 +++++++++++++++----
 6 files changed, 39 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/whyc/controller/StatisticController.java b/src/main/java/com/whyc/controller/StatisticController.java
index 9761ee3..11f662e 100644
--- a/src/main/java/com/whyc/controller/StatisticController.java
+++ b/src/main/java/com/whyc/controller/StatisticController.java
@@ -90,7 +90,7 @@
     }
     @ApiOperation(value = "浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7)")
     @PostMapping("getPwr7Statistic")
-    public Response getPwr7Statistic(@RequestBody Pwr7Stic stic){
+    public Response getPwr7Statistic(@RequestBody Pwr7Stic stic) throws NoSuchFieldException, IllegalAccessException {
         User uinf= ActionUtil.getUser();
         stic.setUid(uinf.getId());
         return battTinfService.getPwr7Statistic(stic);
diff --git a/src/main/java/com/whyc/service/BatttestdataInfService.java b/src/main/java/com/whyc/service/BatttestdataInfService.java
index 89f956e..759b222 100644
--- a/src/main/java/com/whyc/service/BatttestdataInfService.java
+++ b/src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -939,7 +939,7 @@
         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()==1){
             //鎶曞叆浣跨敤鏃堕棿鏉′欢绛涢��
diff --git a/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java b/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java
index 2c3e675..896a094 100644
--- a/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java
+++ b/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java
@@ -20,6 +20,7 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.lang.reflect.Field;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.Date;
@@ -90,7 +91,7 @@
         return new Response().setIII(1,datalist.size()>0,datalist,modelCfg,"鑾峰彇鍗婂皬鏃跺唴鐩存祦杈撳嚭缁熻");
     }
     //1.2.7浼樿壇鐢垫簮缁熻涓婁竴瀛e害鐨勭數婧愭煇涓�灞炴�у拰鍙傛暟闃堝�艰秴杩囩殑娆℃暟
-    public Integer getPwrQuarter7(Integer powerId,Integer powerType) {
+    public Integer getPwrQuarter7(Integer powerId,Integer powerType) throws NoSuchFieldException, IllegalAccessException {
         Map<String,Integer> map=new HashMap<>();
         //鑾峰彇浼樿壇鐢垫簮鎬ц兘缁熻鍦ㄥ钩鍙颁笂鐨勬椂闂村弬鏁拌缃〃
         ApptimeParam apptimeParam=apptimeParamService.getPwrPerformanceStrartTime(powerId);
@@ -98,12 +99,12 @@
         List<String> datelist=ActionUtil.getDateListBetweenDates(apptimeParam.getParamValue(), new Date());
         //鑾峰彇鐢垫簮浼樿壇鍒ゆ柇鐨勬爣鍑嗗弬鏁板��
         List<PowerPropertyParam> paramList=propertyParamService.getPwrStandardParam(powerType);
-        Map<String,Float> paramValues=new HashMap<>();
+        /*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.getAlarmLimitlLower());
             map.put(param.getPropertyName(), 0);
-        }
+        }*/
         for (int i=0;i<datelist.size();i++) {
             String date=datelist.get(i);
             String tableName ="db_data_history.tb_pwrdev_historydata_"+powerId+"_"+date;
@@ -115,7 +116,7 @@
             List<QuarterPwr7Res> datalist=subTablePageInfoService.getPwrQuarter7(tableName);
             // 閬嶅巻 dataList 骞舵瘮杈冨睘鎬у��
             for (QuarterPwr7Res data : datalist) {
-                if(paramValues.get("acin1_vola_upper")!=null){
+                /*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);
                     }
@@ -134,6 +135,16 @@
                     if ((data.getDcoutCurr() > paramValues.get("dcout_curr_upper")) || (data.getDcoutCurr() < paramValues.get("dcout_curr_lower"))) {
                         map.put("dcout_curr", map.get("dcout_curr") + 1);
                     }
+                }*/
+                for (int j=0;j<paramList.size();j++) {
+                    PowerPropertyParam param = paramList.get(j);
+                    String propertyName = ActionUtil.toCamelCase(param.getPropertyName());
+                    Field field = QuarterPwr7Res.class.getDeclaredField(propertyName);
+                    field.setAccessible(true); // 濡傛灉瀛楁鏄鏈夌殑锛岄渶瑕佽缃负鍙闂�
+                    Float value = (Float) field.get(data);
+                    if ((value > (param.getBasisVal()*param.getAlarmLimithUpper()))||(value <(param.getBasisVal()*param.getAlarmLimitlLower()))) {
+                        map.put(param.getPropertyName(), map.get(param.getPropertyName())==null?0:map.get(param.getPropertyName())+ 1);
+                    }
                 }
             }
         }
diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java
index 1a61256..5e1e99e 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_curra,dcout_vol,dcout_curr " +
+        String sql=" select  distinct * " +
                 " from "+tableName+" " ;
         sql+=" order by record_datetime asc";
         List<QuarterPwr7Res> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
diff --git a/src/main/java/com/whyc/util/ActionUtil.java b/src/main/java/com/whyc/util/ActionUtil.java
index a961055..5611fa0 100644
--- a/src/main/java/com/whyc/util/ActionUtil.java
+++ b/src/main/java/com/whyc/util/ActionUtil.java
@@ -29,6 +29,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_yyyy_MM = "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");
@@ -647,7 +648,7 @@
 
 		List<String> dateList = new ArrayList<>();
 		LocalDate currentDate = startDate;
-		DateTimeFormatter formatter = DateTimeFormatter.ofPattern(ActionUtil.time_yyyyMM);
+		DateTimeFormatter formatter = DateTimeFormatter.ofPattern(ActionUtil.time_yyyy_MM);
 		while (!currentDate.isAfter(endDate)) {
 			String formattedDate = currentDate.format(formatter);
 			dateList.add(formattedDate);
@@ -655,11 +656,27 @@
 		}
 		return dateList;
 	}
+	// 鍖归厤 "_" 鍚庤窡涓�涓瓧姣嶏紙灏忓啓鎴栧ぇ鍐欙級
+	public static String toCamelCase(String input) {
+		// 鍖归厤 "_" 鍚庤窡涓�涓瓧姣嶏紙灏忓啓鎴栧ぇ鍐欙級
+		Pattern pattern = Pattern.compile("_(\\w)");
+		Matcher matcher = pattern.matcher(input);
+		StringBuffer result = new StringBuffer();
+
+		while (matcher.find()) {
+			// 灏嗗尮閰嶅埌鐨勫瓧姣嶈浆涓哄ぇ鍐欙紝骞舵浛鎹㈡帀鍓嶉潰鐨勪笅鍒掔嚎
+			matcher.appendReplacement(result, matcher.group(1).toUpperCase());
+		}
+		matcher.appendTail(result);
+
+		return result.toString();
+	}
 
 	public static void main(String[] args) throws ParseException {
-		List<String> dateList =getDateListBetweenDates(ActionUtil.sdf.parse("2025-01-01 00:00:00"),new Date());
+		/*List<String> dateList =getDateListBetweenDates(ActionUtil.sdf.parse("2025-01-01 00:00:00"),new Date());
 		for (String date : dateList) {
 			System.out.println(date);
-		}
+		}*/
+		System.out.println(toCamelCase("user_name_and_age"));
 	}
 }	
diff --git a/src/main/resources/mapper/PowerPropertyParamMapper.xml b/src/main/resources/mapper/PowerPropertyParamMapper.xml
index dde15eb..fb9f372 100644
--- a/src/main/resources/mapper/PowerPropertyParamMapper.xml
+++ b/src/main/resources/mapper/PowerPropertyParamMapper.xml
@@ -8,5 +8,6 @@
         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}
+              and tb_power_property_param.field_en=1
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1