From cc6270c5f434f93bf51f4c454e3de512be70b584 Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期三, 02 四月 2025 13:10:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
index 0911d2f..50f8413 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -215,7 +215,7 @@
             viewDto.setOutId(outId);
             viewDto.setResultstr(output.getResultstr());
             viewDto.setResultName(output.getResultName());
-            viewDto.setRealData(getHisData(output.getPointid(), startTime, endTime));
+            viewDto.setRealData(getHisData(output.getPointid(), startTime, endTime, reqVO.getPrec()));
             viewDto.setPreDataN(mmItemResultService.getData(output.getId(), startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
             viewDto.setPreDataL(mmItemResultLastPointService.getData(output.getId(), startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
             viewDto.setCurData(mmItemResultJsonService.getData(output.getId(), predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
@@ -271,7 +271,7 @@
             //处理预测累计
             if (output.getIscumulant() == 1) {
                 if (StringUtils.isNotBlank(output.getCumulpoint())) {
-                    viewDto.setCumulantRealData(getHisData(output.getCumulpoint(), startTime, endTime));
+                    viewDto.setCumulantRealData(getHisData(output.getCumulpoint(), startTime, endTime, reqVO.getPrec()));
                 }
                 viewDto.setCumulantPreData(mmItemResultService.getData(output.getId() + CommonDict.CUMULANT_SUFFIX, startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
             }
@@ -330,13 +330,13 @@
             legend.add(out.getResultName());
             PreDataSampleViewRespDTO viewDto = new PreDataSampleViewRespDTO();
             if (StringUtils.isNotBlank(out.getPointid())) {
-                viewDto.setRealData(getHisData(out.getPointid(), startTime, endTime));
+                viewDto.setRealData(getHisData(out.getPointid(), startTime, endTime, reqVO.getPrec()));
             }
             viewDto.setPreDataN(mmItemResultService.getData(out.getId(), startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
             //处理预测累计
             if (out.getIscumulant() == 1) {
                 if (StringUtils.isNotBlank(out.getCumulpoint())) {
-                    viewDto.setCumulantRealData(getHisData(out.getCumulpoint(), startTime, endTime));
+                    viewDto.setCumulantRealData(getHisData(out.getCumulpoint(), startTime, endTime, reqVO.getPrec()));
                 }
                 viewDto.setCumulantPreData(mmItemResultService.getData(out.getId() + CommonDict.CUMULANT_SUFFIX, startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
             }
@@ -561,9 +561,10 @@
      * @param pointId
      * @param startTime
      * @param endTime
+     * @param prec
      * @return
      */
-    private List<Object[]> getHisData(String pointId, Date startTime, Date endTime) {
+    private List<Object[]> getHisData(String pointId, Date startTime, Date endTime, Integer prec) {
         List<Object[]> result = new ArrayList<>();
         if (StringUtils.isBlank(pointId)) {
             return result;
@@ -577,10 +578,17 @@
         if (CollectionUtils.isEmpty(valueDTOS)) {
             return result;
         }
+        int defaultPrec = 3;
         valueDTOS.forEach(item -> {
             Object[] values = new Object[2];
             values[0] = DateUtils.format(item.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
-            values[1] = new BigDecimal(item.getV()).setScale(3, BigDecimal.ROUND_HALF_UP);
+            if (prec != null && prec < 0) {
+                values[1] = item.getV();
+            } else if (prec != null && prec > 0) {
+                values[1] = new BigDecimal(item.getV()).setScale(prec, BigDecimal.ROUND_HALF_UP);
+            } else {
+                values[1] = new BigDecimal(item.getV()).setScale(defaultPrec, BigDecimal.ROUND_HALF_UP);
+            }
             result.add(values);
         });
         return result;

--
Gitblit v1.9.3