From c33a626ce057f185c97928e3cdfec48e76a74531 Mon Sep 17 00:00:00 2001
From: dongyukun <1208714201@qq.com>
Date: 星期一, 05 五月 2025 14:26:58 +0800
Subject: [PATCH] 数据归档时先删后增

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java |   32 +++++++++++++++++++++++++++++++-
 1 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java
index d1dca00..1ff3198 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java
@@ -2,6 +2,8 @@
 
 import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.service.impl.BaseServiceImpl;
+import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.iailab.framework.mybatis.core.query.QueryWrapperX;
 import com.iailab.module.data.api.point.DataPointApiImpl;
 import com.iailab.module.data.api.point.dto.ApiPointValueDTO;
 import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO;
@@ -65,6 +67,10 @@
                     arcDataEntity.setArcTime(arcTime);
                     arcDataEntity.setArcId(item.getId());
                     arcDataEntity.setArcValue(value);
+                    arcDataDao.delete(new LambdaQueryWrapperX<ArcDataEntity>()
+                            .eq(ArcDataEntity::getArcId, arcDataEntity.getArcId())
+                            .eq(ArcDataEntity::getArcTime, arcDataEntity.getArcId())
+                    );
                     insert(arcDataEntity);
                     log.debug("归档完成,point:"+item.getPoint());
                 });
@@ -95,6 +101,10 @@
                     arcDataEntity.setArcTime(arcTime);
                     arcDataEntity.setArcId(item.getId());
                     arcDataEntity.setArcValue(value);
+                    arcDataDao.delete(new LambdaQueryWrapperX<ArcDataEntity>()
+                            .eq(ArcDataEntity::getArcId, arcDataEntity.getArcId())
+                            .eq(ArcDataEntity::getArcTime, arcDataEntity.getArcId())
+                    );
                     insert(arcDataEntity);
                     log.debug("归档完成,point:"+item.getPoint());
                 });
@@ -125,6 +135,12 @@
                     arcDataEntity.setArcTime(arcTime);
                     arcDataEntity.setArcId(item.getId());
                     arcDataEntity.setArcValue(value);
+                    arcDataEntity.setCode(item.getCode());
+                    arcDataEntity.setCreateTime(new Date());
+                    arcDataDao.delete(new LambdaQueryWrapperX<ArcDataEntity>()
+                            .eq(ArcDataEntity::getArcId, arcDataEntity.getArcId())
+                            .eq(ArcDataEntity::getArcTime, arcDataEntity.getArcId())
+                    );
                     insert(arcDataEntity);
                     log.debug("归档完成,point:"+item.getPoint());
                 });
@@ -155,6 +171,12 @@
                     arcDataEntity.setArcTime(arcTime);
                     arcDataEntity.setArcId(item.getId());
                     arcDataEntity.setArcValue(value);
+                    arcDataEntity.setCode(item.getCode());
+                    arcDataEntity.setCreateTime(new Date());
+                    arcDataDao.delete(new LambdaQueryWrapperX<ArcDataEntity>()
+                            .eq(ArcDataEntity::getArcId, arcDataEntity.getArcId())
+                            .eq(ArcDataEntity::getArcTime, arcDataEntity.getArcId())
+                    );
                     insert(arcDataEntity);
                     log.debug("归档完成,point:"+item.getPoint());
                 });
@@ -185,6 +207,12 @@
                     arcDataEntity.setArcTime(arcTime);
                     arcDataEntity.setArcId(item.getId());
                     arcDataEntity.setArcValue(value);
+                    arcDataEntity.setCode(item.getCode());
+                    arcDataEntity.setCreateTime(new Date());
+                    arcDataDao.delete(new LambdaQueryWrapperX<ArcDataEntity>()
+                            .eq(ArcDataEntity::getArcId, arcDataEntity.getArcId())
+                            .eq(ArcDataEntity::getArcTime, arcDataEntity.getArcId())
+                    );
                     insert(arcDataEntity);
                     log.debug("归档完成,point:"+item.getPoint());
                 });
@@ -218,7 +246,9 @@
                 BigDecimal prev = BigDecimal.valueOf(valueList.get(0).getV());
                 for (int i = 1; i < valueList.size(); i++) {
                     BigDecimal curr = BigDecimal.valueOf(valueList.get(i).getV());
-                    value = value.add(curr.subtract(prev));
+                    if(curr.compareTo(prev) > 0) {
+                        value = value.add(curr.subtract(prev));
+                    }
                     prev = curr;
                 }
                 break;

--
Gitblit v1.9.3