From a87fc3c9375d5d77017d9dff8dc1ea425acb932d Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期六, 21 六月 2025 16:07:37 +0800
Subject: [PATCH] 修改实时页面电源前N笔数据心跳包

---
 src/main/java/com/whyc/service/BattRealdataIdService.java |   69 +++++++++++++++++-----------------
 1 files changed, 34 insertions(+), 35 deletions(-)

diff --git a/src/main/java/com/whyc/service/BattRealdataIdService.java b/src/main/java/com/whyc/service/BattRealdataIdService.java
index 9641b67..1a7d628 100644
--- a/src/main/java/com/whyc/service/BattRealdataIdService.java
+++ b/src/main/java/com/whyc/service/BattRealdataIdService.java
@@ -9,6 +9,11 @@
 import com.whyc.mapper.CommonMapper;
 
 import com.whyc.pojo.db_data_history.BattRealdataId;
+import com.whyc.pojo.db_param.AlmAnalysisParam;
+import com.whyc.pojo.db_param.AppParam;
+import com.whyc.pojo.db_param.PowerheartParam;
+import com.whyc.pojo.db_ram_db.BattRtstate;
+import com.whyc.pojo.db_station.BattInf;
 import com.whyc.util.ActionUtil;
 import com.whyc.util.DateUtil;
 import com.whyc.util.ThreadLocalUtil;
@@ -40,6 +45,13 @@
 
     @Autowired
     private BattInfService binfService;
+
+    @Autowired(required = false)
+    private BattRtstateService rtstateService;
+
+    @Autowired
+    private PowerheartParamService heartService;
+
 
 
     //鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勫崟浣撴暟鎹�
@@ -162,14 +174,22 @@
         }
         return new Response().setII(1,map.size()>0,map,"鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勬俯搴︽暟鎹�");
     }
-    //绯荤粺姒傝鑾峰彇鍗婂皬鏃舵牳瀹硅澶囦俊鎭�
-    public Response getHalfHourBattDevData(Integer battgroupId,Integer granularity) {
+    //绯荤粺姒傝鑾峰彇鍓峃绗旀牳瀹硅澶囦俊鎭�
+    public Response getBattDevData100(Integer powerId,Integer battgroupId) {
         String dateTime = ActionUtil.sdfwithOutday.format(new Date());
         String tableName ="db_data_history.tb_batt_realdata_"+battgroupId+"_"+dateTime;
+        //鑾峰彇鍓嶇瑪鏁�*鏃堕棿闂撮殧
+        PowerheartParam heartParam=heartService.getHeartParamByPowerId(powerId);
+        Integer interverCount=100*10;//榛樿鍊�
+        Integer granularity=10;//榛樿鍊�
+        if(heartParam!=null){
+            interverCount=heartParam.getAcinInterverCfg()*heartParam.getAcinCountCfg();
+            granularity=heartParam.getAcinInterverCfg();
+        }
         //鑾峰彇鍓嶅崐涓皬鏃舵暟鎹�
         LocalDateTime now = LocalDateTime.now();
         // 璁$畻鍗婂皬鏃跺墠鐨勬椂闂寸偣
-        LocalDateTime halfHourAgo = now.minusMinutes(30);
+        LocalDateTime halfHourAgo = now.minusMinutes(interverCount);
         // 鏍煎紡鍖栬緭鍑�
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         String halfHourAgoTime=halfHourAgo.format(formatter);
@@ -182,6 +202,16 @@
     }
     //鍘嗗彶瀹炴椂鏁版嵁
     public Response getBattRealDataHis(Integer battgroupId, Integer granularity,String startTime,String endTime) throws ParseException, InterruptedException {
+        Map<String,Object> map=new HashMap<>();
+        //瀹炴椂鑾峰彇鐢垫睜缁勪俊鎭�
+        BattRtstate battRtstate = rtstateService.getBattRealInfo(battgroupId);
+        //鑾峰彇鐢垫睜缁勪俊鎭�
+        BattInf binf = binfService.getBinfByBattgroupId(battgroupId);
+        map.put("鏍囩О瀹归噺",binf.getMoncapstd());
+        map.put("钃勭數姹犳暟閲�",binf.getMoncount());
+        map.put("鏍囩О鐢靛帇",binf.getMonvolstd());
+        map.put("娴厖鐢靛帇",battRtstate.getGroupVol());
+
         List<RealDateDTO> dataList = new LinkedList<>();
         List<List<Date>> monthTimeList = DateUtil.getMonthTime(ThreadLocalUtil.parse(startTime,1), ThreadLocalUtil.parse(endTime,1));
         ThreadPoolExecutor pool = ThreadPoolExecutorFactory.getPoolExecutor();
@@ -216,37 +246,6 @@
         }
         latch.await(10, TimeUnit.MINUTES);
         List dataListSorted = dataList.stream().sorted(Comparator.comparing(RealDateDTO::getRecordTime)).collect(Collectors.toList());
-        return new Response().set(1, dataListSorted);
-    }
-    //鐢垫睜鍛婅鐐瑰嚮鍏蜂綋鍛婅淇℃伅鏌ョ湅浠庡憡璀﹀紑濮嬫椂闂村埌鐜板湪鐨勫巻鍙插疄鏃舵暟鎹�
-    public Response getBattHisRealInAlm(Integer battgroupId, String startTime, Integer almId) throws ParseException, InterruptedException {
-        List<RealDateDTO> dataList = new LinkedList<>();
-        List<List<Date>> monthTimeList = DateUtil.getMonthTime(ThreadLocalUtil.parse(startTime,1),new Date());
-        ThreadPoolExecutor pool = ThreadPoolExecutorFactory.getPoolExecutor();
-        CountDownLatch latch = new CountDownLatch(monthTimeList.size());
-        for (int i = 0; i < monthTimeList.size(); i++) {
-            int finalI = i;
-            pool.execute(() -> {
-                int finalII = finalI;
-                BattRealdataId realdata = new BattRealdataId();
-                realdata.setRecordTime(monthTimeList.get(finalII).get(0));
-                realdata.setRecordTime1(monthTimeList.get(finalII).get(1));
-                String table = battgroupId + "_" + ThreadLocalUtil.format(realdata.getRecordTime(),2);
-                realdata.setTableName(table);//琛ㄥ悕鏃堕棿鏍煎紡閮ㄥ垎
-                //鍒ゆ柇琛ㄦ槸鍚﹀瓨鍦�
-                int tableNum = subTablePageInfoService.judgeTable_realdata(table);
-                List<RealDateDTO> list = new ArrayList();
-                if (tableNum > 0) {
-                    list = subTablePageInfoService.getBattHisRealInAlm(realdata);
-                }
-                dataList.addAll(list);
-                latch.countDown();
-            });
-            sleep(200);
-        }
-        latch.await(10, TimeUnit.MINUTES);
-        List dataListSorted = dataList.stream().sorted(Comparator.comparing(RealDateDTO::getRecordTime)).collect(Collectors.toList());
-        return new Response().set(1, dataListSorted);
-
+        return new Response().setIII(1, dataListSorted!=null,dataListSorted,map,"鍘嗗彶瀹炴椂鏌ヨ");
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1