From 8dd6db3f6fd9d92ba8c26dbd91f8764f4623e3e0 Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期五, 06 六月 2025 17:23:05 +0800 Subject: [PATCH] 历史实时测试数据 --- src/main/java/com/whyc/service/BattRealdataIdService.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/whyc/service/BattRealdataIdService.java b/src/main/java/com/whyc/service/BattRealdataIdService.java index dcf709e..cf13d1a 100644 --- a/src/main/java/com/whyc/service/BattRealdataIdService.java +++ b/src/main/java/com/whyc/service/BattRealdataIdService.java @@ -3,20 +3,28 @@ import com.whyc.dto.Real.BattHisRealDto; import com.whyc.dto.Real.CompareDto; import com.whyc.dto.Real.QuarterDto; +import com.whyc.dto.Real.RealDateDTO; import com.whyc.dto.Response; +import com.whyc.factory.ThreadPoolExecutorFactory; import com.whyc.mapper.CommonMapper; -import com.whyc.pojo.db_batt_testdata.BattresdataId; -import com.whyc.pojo.db_batt_testdata.BattresdataInf; + import com.whyc.pojo.db_data_history.BattRealdataId; -import com.whyc.pojo.db_station.BattInf; import com.whyc.util.ActionUtil; +import com.whyc.util.DateUtil; +import com.whyc.util.ThreadLocalUtil; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; +import java.text.ParseException; +import java.util.*; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import static java.lang.Thread.sleep; @Service public class BattRealdataIdService { @@ -163,4 +171,36 @@ List<BattHisRealDto> datalist=subTablePageInfoService.getHalfHourBattDevData(tableName,granularity); return new Response().setII(1,datalist.size()>0,datalist,"鑾峰彇鍗婂皬鏃跺唴鏍稿璁惧淇℃伅"); } + //鍘嗗彶瀹炴椂鏁版嵁 + public Response getBattRealDataHis(Integer battgroupId, Integer granularity,String startTime,String endTime) throws ParseException, InterruptedException { + List<RealDateDTO> dataList = new LinkedList<>(); + List<List<Date>> monthTimeList = DateUtil.getMonthTime(ThreadLocalUtil.parse(startTime,1), ThreadLocalUtil.parse(endTime,1)); + + 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.serchByCondition2(realdata,granularity); + } + 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); + + } } \ No newline at end of file -- Gitblit v1.9.1