From 3eeb371074147941d587bb87ebb3b9c0d866c998 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期一, 05 五月 2025 17:48:08 +0800
Subject: [PATCH] ADD COLUMN `is_cumu_neg` tinyint(1) DEFAULT 0 COMMENT '是否累计负数'

---
 iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql                                                               |    3 ++-
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaPointDTO.java                    |    3 +++
 iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/point/DaPointDao.xml                                    |    3 ++-
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java |   13 ++++++++++++-
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/entity/DaCumulatePointEntity.java      |    5 +++++
 5 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql b/iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql
index 78635e5..7ca3548 100644
--- a/iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql
+++ b/iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql
@@ -444,4 +444,5 @@
                                  UNIQUE KEY `uk_code` (`code`) USING BTREE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='定时归档设置表';
 
-ALTER TABLE `t_da_cumulate_point` ADD COLUMN `cumulate_unit` varchar(10) DEFAULT 'min' COMMENT '累计单位';
\ No newline at end of file
+ALTER TABLE `t_da_cumulate_point` ADD COLUMN `cumulate_unit` varchar(10) DEFAULT 'min' COMMENT '累计单位';
+ALTER TABLE `t_da_cumulate_point` ADD COLUMN `is_cumu_neg` tinyint(1) DEFAULT 0 COMMENT '是否累计负数';
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java
index 58625db..ae3e12e 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java
@@ -119,7 +119,18 @@
         queryDto.setEnd(endTime);
         queryDto.setPointNo(dto.getMomentPoint());
         log.info("queryDto=" + JSONObject.toJSONString(queryDto));
-        List<ApiPointValueDTO> dataList = dataPointApi.queryPointHistoryValue(queryDto);
+        List<ApiPointValueDTO> dataList = new ArrayList<>();
+        List<ApiPointValueDTO> dataListTemp = dataPointApi.queryPointHistoryValue(queryDto);
+        if (dto.getIsCumuNeg() != null && dto.getIsCumuNeg().equals(0)) {
+            for(ApiPointValueDTO item : dataListTemp) {
+                if (item.getV() > 0) {
+                    dataList.add(item);
+                }
+            }
+        } else {
+            dataList = dataListTemp;
+        }
+
         if (CollectionUtils.isEmpty(dataList)) {
             log.info("dataList is empty");
             if (listGood != null) {
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaPointDTO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaPointDTO.java
index 1a48545..ff49fd3 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaPointDTO.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaPointDTO.java
@@ -120,6 +120,9 @@
     @Schema(description = "除数")
     private Integer divisor;
 
+    @Schema(description = "是否累计负数")
+    private Integer isCumuNeg;
+
     @Schema(description = "数据源选项")
     private List<String> sourceOption;
 
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/entity/DaCumulatePointEntity.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/entity/DaCumulatePointEntity.java
index 1a5706f..54459d2 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/entity/DaCumulatePointEntity.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/entity/DaCumulatePointEntity.java
@@ -49,4 +49,9 @@
      * 除数
      */
     private Integer divisor;
+
+    /**
+     * 是否累计负数
+     */
+    private Integer isCumuNeg;
 }
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/point/DaPointDao.xml b/iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/point/DaPointDao.xml
index 96cfa3f..07dba14 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/point/DaPointDao.xml
+++ b/iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/point/DaPointDao.xml
@@ -280,7 +280,8 @@
         t2.moment_point,
         t2.length,
         t2.cumulate_unit,
-        t2.divisor
+        t2.divisor,
+        t2.is_cumu_neg
         FROM t_da_point t1
         LEFT JOIN t_da_cumulate_point t2 ON t2.point_id = t1.id
         <where>

--
Gitblit v1.9.3