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