From 75f043dfa6660716364e66ee0b3cf99f44255686 Mon Sep 17 00:00:00 2001 From: DYL0109 <dn18191638832@163.com> Date: 星期三, 16 四月 2025 19:20:36 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/develop1.0' into dyl_dev --- zhitan-admin/src/main/java/com/zhitan/web/controller/history/HistoryDataTrendController.java | 97 +++++++++++++++++++----------------------------- 1 files changed, 39 insertions(+), 58 deletions(-) diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/history/HistoryDataTrendController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/history/HistoryDataTrendController.java index e1f067b..5b5bd17 100644 --- a/zhitan-admin/src/main/java/com/zhitan/web/controller/history/HistoryDataTrendController.java +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/history/HistoryDataTrendController.java @@ -4,10 +4,15 @@ import com.zhitan.basicdata.domain.MeterImplement; import com.zhitan.basicdata.services.IMeterImplementService; import com.zhitan.common.annotation.Log; +import com.zhitan.common.constant.CommonConst; +import com.zhitan.common.constant.TimeTypeConst; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.enums.RetrievalModes; +import com.zhitan.common.enums.TimeType; +import com.zhitan.common.utils.ChartUtils; +import com.zhitan.common.utils.DateTimeUtil; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.history.domain.dto.HistoricalDataDTO; import com.zhitan.history.domain.vo.HistoricalDataExcel; @@ -16,7 +21,9 @@ import com.zhitan.model.service.IEnergyIndexService; import com.zhitan.realtimedata.domain.TagValue; import com.zhitan.realtimedata.service.RealtimeDatabaseService; +import io.swagger.annotations.Api; import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -29,11 +36,12 @@ import java.util.List; /** - * 璁惧鍚仠瀹炴椂鐩戞祴Controller + * 鍘嗗彶鏁版嵁瓒嬪娍Controller * * @author sys * @date 2020-03-30 */ +@Api(tags = "鍘嗗彶鏁版嵁瓒嬪娍") @RestController @RequestMapping("/dataMonitoring/historyDataTrend") public class HistoryDataTrendController extends BaseController { @@ -61,9 +69,6 @@ public AjaxResult getSettingIndex(EnergyIndex energyIndex) { try { List<EnergyIndex> infoList = energyIndexService.selectEnergyIndexList(energyIndex); -// List<String> codeList= infoList.stream().map(EnergyIndex::getCode).collect(Collectors.toList()); -// List<TagValue> valList = realtimeDatabaseService.retrieve(codeList); -// List resultList = new ArrayList(); return AjaxResult.success(infoList); } catch (Exception ex) { logger.error("鑾峰彇鍏宠仈閲囬泦鎸囨爣鍑洪敊锛�", ex); @@ -80,68 +85,44 @@ if (ObjectUtils.isEmpty(energyIndex)) { return AjaxResult.error("鏈壘鍒扮偣浣嶄俊鎭�"); } - Date beginTime = dto.getDataTime(); - Date endTime; - // 鏌ヨ鏉℃暟 - int count = 1440; - if ("DAY".equals(dto.getTimeType())) { - endTime = DateUtil.endOfDay(beginTime); + List<Date> dateList = new ArrayList<>(); + if (TimeType.DAY.name().equals(dto.getTimeType())) { + String timeCode = DateTimeUtil.getDateTime(dto.getDataTime(), DateTimeUtil.COMMON_PATTERN_TO_DAY); + ChartUtils.generateDateList(TimeTypeConst.TIME_TYPE_DAY, timeCode, dateList); + } else if (TimeType.HOUR.name().equals(dto.getTimeType())) { + String timeCode = DateTimeUtil.getDateTime(dto.getDataTime(), DateTimeUtil.COMMON_PATTERN_TO_HOUR); + ChartUtils.generateDateList(TimeTypeConst.TIME_TYPE_HOUR, timeCode, dateList); } else { - count = 3600; - endTime = DateUtil.offsetSecond(DateUtil.offsetHour(beginTime, 1), -1); + return AjaxResult.error("鏃堕棿闂撮殧绫诲瀷涓嶆纭�"); } // 鏌ヨ璁¢噺鍣ㄥ叿 - MeterImplement info = meterImplementService.selectMeterImplementById(energyIndex.getMeterId()); - List<TagValue> tagValueList = realtimeDatabaseService.retrieve(energyIndex.getCode(), beginTime, endTime, - RetrievalModes.BestFit, count); + MeterImplement meterInfo = meterImplementService.selectMeterImplementById(energyIndex.getMeterId()); + if (ObjectUtils.isEmpty(meterInfo)) { + return AjaxResult.error("鏈壘鍒拌閲忓櫒鍏蜂俊鎭�"); + } List<HistoricalDataVO> voList = new ArrayList<>(); - Date date = DateUtil.date(); - for (int i = 0; i < count + 1; i++) { + for (Date date : dateList) { + List<TagValue> tagValues = new ArrayList<>(); + if(TimeType.DAY.name().equals(dto.getTimeType())){ + Date beginTime = date; + Date endTime = DateUtil.offsetHour(DateUtil.offsetMinute(date, CommonConst.DIGIT_MINUS_1), CommonConst.DIGIT_1); + tagValues = realtimeDatabaseService.retrieve(energyIndex.getCode(), beginTime,endTime,CommonConst.DIGIT_1); + } + if(TimeType.HOUR.name().equals(dto.getTimeType())){ + Date beginTime = date; + Date endTime = DateUtil.offsetMinute(DateUtil.offsetSecond(date, CommonConst.DIGIT_MINUS_1), CommonConst.DIGIT_1); + tagValues = realtimeDatabaseService.retrieve(energyIndex.getCode(), beginTime,endTime,CommonConst.DIGIT_1); + } + HistoricalDataVO vo = new HistoricalDataVO(); + vo.setDataTime(DateUtil.formatDateTime(date)); vo.setIndexId(energyIndex.getIndexId()); - String indexName = energyIndex.getName(); - if (ObjectUtils.isNotEmpty(info)) { - indexName = info.getInstallactionLocation() + "_" + info.getMeterName() + "_" + indexName; + vo.setIndexName(meterInfo.getInstallactionLocation() + "_" + meterInfo.getMeterName() + "_" + energyIndex.getName()); + vo.setValue(CommonConst.DOUBLE_MINUS_SIGN); + if(ObjectUtils.isNotEmpty(tagValues)){ + vo.setValue(tagValues.get(0).getValue().toString()); } - vo.setIndexName(indexName); - // 鍙栧�� - String value = "--"; - String usedValue = "--"; - if (beginTime.getTime() <= date.getTime()) { - try { - TagValue tagValue = tagValueList.get(i); - BigDecimal cumulative = BigDecimal.valueOf(tagValue.getValue()); - if ("SWWSDJ_SD".equals(energyIndex.getCode()) || "SWWSDJ_WD".equals(energyIndex.getCode())) { - cumulative = cumulative.multiply(BigDecimal.valueOf(0.1)); - } - if (i > 0) { - TagValue previousTagValue = tagValueList.get(i - 1); - BigDecimal previousValue = BigDecimal.ZERO; - if (ObjectUtils.isNotEmpty(previousTagValue.getValue())) { - previousValue = BigDecimal.valueOf(previousTagValue.getValue()); - } - if ("SWWSDJ_SD".equals(energyIndex.getCode()) || "SWWSDJ_WD".equals(energyIndex.getCode())) { - previousValue = previousValue.multiply(BigDecimal.valueOf(0.1)); - - } - usedValue = String.valueOf(cumulative.subtract(previousValue).setScale(2, RoundingMode.HALF_UP)); - } - - value = String.valueOf(cumulative.setScale(2, RoundingMode.HALF_UP)); - } catch (Exception ignored) { - } - } - // 鏃堕棿 - String timeName = DateUtil.formatDateTime(beginTime); - vo.setDataTime(timeName); - if ("DAY".equals(dto.getTimeType())) { - beginTime = DateUtil.offsetMinute(beginTime, 1); - } else { - beginTime = DateUtil.offsetSecond(beginTime, 1); - } - vo.setUsedValue(String.valueOf(usedValue)); - vo.setValue(String.valueOf(value)); voList.add(vo); } return AjaxResult.success(voList); -- Gitblit v1.9.3