From 3fa4371a1b425963c2a0a7f5e3fee08749e5b148 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期三, 18 六月 2025 17:39:33 +0800
Subject: [PATCH] 折线图时间格式华

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java |   24 ++++++++++++++++++++----
 1 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java
index 61824d5..a94fd15 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java
@@ -175,7 +175,7 @@
         if (predictItem == null || predictItem.getLastTime() == null) {
             return null;
         }
-        String timeFormat = StringUtils.isBlank(reqVO.getTimeFormat()) ? DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND : reqVO.getTimeFormat();
+
         int lengthLeft = tMap.get(CommonConstant.LENGTH_LEFT) == null ? predictItem.getPredictLength() : new BigDecimal(tMap.get(CommonConstant.LENGTH_LEFT)).intValue();
         int lengthRight = tMap.get(CommonConstant.LENGTH_RIGHT) == null ? predictItem.getPredictLength() : new BigDecimal(tMap.get(CommonConstant.LENGTH_RIGHT)).intValue();
         String trendsDataH = tMap.get(CommonConstant.TRENDSDATA_H) == null ? null : tMap.get(CommonConstant.TRENDSDATA_H);
@@ -186,10 +186,24 @@
         Date[] timeArray = calResultTime(predictItem, reqVO.getStartTime(), reqVO.getEndTime(), lengthLeft, lengthRight);
         Date startTime = timeArray[1];
         Date endTime = timeArray[2];
+        String timeFormat = null;
+        if (StringUtils.isNotBlank(reqVO.getTimeFormat())) {
+            timeFormat = reqVO.getTimeFormat();
+        } else if ((endTime.getTime() - startTime.getTime()) < 1000 * 60 * 60 * 24 ) {
+            // 时间范围短,默认使用短时间格式 "HH:mm"
+            timeFormat = DateUtils.FORMAT_SIMPLE_TIME;
+        } else {
+            timeFormat = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+        }
+        final String finalTimeFormat = timeFormat;
+        reqVO.setTimeFormat(finalTimeFormat);
 
         PreDataSingleChartRespVO resultOld = mcsApi.getPreDataSingleChart(reqVO);
         PreDataChartRespVO result = ConvertUtils.sourceToTarget(resultOld, PreDataChartRespVO.class);
+        result.setPredictTime(DateUtils.format(resultOld.getPredictTime(), finalTimeFormat));
         PreDataViewDTO preDataView = ConvertUtils.sourceToTarget(resultOld.getDataView(), PreDataViewDTO.class);
+        preDataView.setPredictTime(DateUtils.format(resultOld.getDataView().getPredictTime(), finalTimeFormat));
+
         if (StringUtils.isNotBlank(trendsDataH)) {
             // 动态上限
             ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO();
@@ -200,7 +214,7 @@
             List<Object[]> newList = new ArrayList<>();
             trendsDataHList.forEach(item -> {
                 Object[] dataItem = new Object[2];
-                dataItem[0] = DateUtils.format(item.getT(), "yyyy-MM-dd HH:mm:00");
+                dataItem[0] = DateUtils.format(item.getT(), finalTimeFormat);
                 dataItem[1] = item.getV();
                 newList.add(dataItem);
             });
@@ -216,7 +230,7 @@
             List<Object[]> newList = new ArrayList<>();
             trendsDataLList.forEach(item -> {
                 Object[] dataItem = new Object[2];
-                dataItem[0] = DateUtils.format(item.getT(), "yyyy-MM-dd HH:mm:00");
+                dataItem[0] = DateUtils.format(item.getT(), finalTimeFormat);
                 dataItem[1] = item.getV();
                 newList.add(dataItem);
             });
@@ -478,11 +492,13 @@
     @Override
     public List<PreDataViewSimpleDTO> getPreDataByOutIds(PreDataBarLineReqVO reqVO) {
         PreDataBarLineRespVO preDataBarLineRespVO = mcsApi.getPreDataCharts(reqVO);
+        String predictTime = DateUtils.format(preDataBarLineRespVO.getPredictTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
+
         List<PreDataViewSimpleDTO> preDataViewSimpleDTOList = new ArrayList<>();
         preDataBarLineRespVO.getDataViewList().forEach(item -> {
             PreDataViewSimpleDTO preDataViewSimpleDTO = new PreDataViewSimpleDTO();
             preDataViewSimpleDTO.setItemName(item.getResultName());
-            preDataViewSimpleDTO.setPredictTime(preDataBarLineRespVO.getPredictTime());
+            preDataViewSimpleDTO.setPredictTime(predictTime);
             preDataViewSimpleDTO.setCurData(item.getCurData());
             preDataViewSimpleDTO.setRealData(item.getRealData());
             preDataViewSimpleDTO.setPreDataN(item.getPreDataN().stream()

--
Gitblit v1.9.3