From 3ca415190b5a8fa0ff5f4782fb7ab4cfeb026705 Mon Sep 17 00:00:00 2001
From: dongyukun <1208714201@qq.com>
Date: 星期二, 25 二月 2025 15:04:18 +0800
Subject: [PATCH] 时序数据归档

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/ArcPointSettingPageReqVO.java             |   63 ++++++++++++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/ArcPointSettingService.java          |   14 ++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dao/ArcPointSettingDao.java                  |   13 ++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/ArcPointDataPageReqVO.java                |   36 +++++++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/ArcPointDataServiceImpl.java    |   11 ++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/ArcPointSettingServiceImpl.java |   44 ++++++++
 iailab-module-data/iailab-module-data-biz/src/main/resources/application.yaml                                                     |    2 
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/ArcPointDataService.java             |    6 +
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/controller/admin/ArcPointController.java     |   74 +++++++++++++-
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dao/ArcPointDataDao.java                     |   15 ++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/entity/ArcPointSettingEntity.java            |    6 
 11 files changed, 274 insertions(+), 10 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/controller/admin/ArcPointController.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/controller/admin/ArcPointController.java
index 29ccd1c..c8bd879 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/controller/admin/ArcPointController.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/controller/admin/ArcPointController.java
@@ -1,26 +1,36 @@
 package com.iailab.module.data.point.controller.admin;
 
 import com.iailab.framework.common.pojo.CommonResult;
-import com.iailab.module.data.point.dto.DaPointDTO;
+import com.iailab.framework.common.pojo.PageResult;
+import com.iailab.module.data.point.entity.ArcPointDataEntity;
+import com.iailab.module.data.point.entity.ArcPointSettingEntity;
 import com.iailab.module.data.point.service.ArcPointDataService;
+import com.iailab.module.data.point.service.ArcPointSettingService;
+import com.iailab.module.data.point.vo.ArcPointDataPageReqVO;
+import com.iailab.module.data.point.vo.ArcPointSettingPageReqVO;
+import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 
 import static com.iailab.framework.common.pojo.CommonResult.success;
 
 @Tag(name = "数据归档,测点")
 @RestController
-@RequestMapping("/data/da/point")
+@RequestMapping("/data/da/arc")
 @Validated
 public class ArcPointController {
+
+    @Autowired
+    private ArcPointSettingService arcPointSettingService;
 
     @Autowired
     private ArcPointDataService arcPointDataService;
@@ -31,4 +41,56 @@
         arcPointDataService.archiving(type);
         return success(true);
     }
+
+    @GetMapping("page")
+    public CommonResult<PageResult<ArcPointSettingEntity>> page(@Valid ArcPointSettingPageReqVO reqVO) {
+        PageResult<ArcPointSettingEntity> page = arcPointSettingService.queryPage(reqVO);
+        return success(page);
+    }
+
+    @GetMapping("dataPage")
+    public CommonResult<PageResult<ArcPointDataEntity>> dataPage(@Valid ArcPointDataPageReqVO reqVO) {
+        PageResult<ArcPointDataEntity> page = arcPointDataService.queryPage(reqVO);
+        return success(page);
+    }
+
+    @GetMapping("/list")
+    @Operation(summary = "列表")
+    public CommonResult<List<ArcPointSettingEntity>> list(@Valid @RequestParam Map<String, Object> params) {
+        List<ArcPointSettingEntity> list = arcPointSettingService.list(params);
+        return success(list);
+    }
+
+    @GetMapping("/info/{id}")
+    public CommonResult<ArcPointSettingEntity> info(@PathVariable("id") String id) {
+        ArcPointSettingEntity info = arcPointSettingService.info(id);
+        return success(info);
+    }
+
+    @PostMapping("create")
+    public CommonResult<Boolean> create(@RequestBody ArcPointSettingEntity arcPointSettingEntity) {
+        String id = UUID.randomUUID().toString();
+        arcPointSettingEntity.setId(id);
+        arcPointSettingService.add(arcPointSettingEntity);
+        return success(true);
+    }
+
+    @PutMapping("/update")
+    public CommonResult<Boolean> update(@RequestBody ArcPointSettingEntity arcPointSettingEntity) {
+        arcPointSettingService.update(arcPointSettingEntity);
+        return success(true);
+    }
+    
+    @DeleteMapping("/delete")
+    public CommonResult<Boolean> delete(String id) {
+        arcPointSettingService.delete(id);
+        return success(true);
+    }
+    
+    @PutMapping("/enable")
+    @Operation(summary = "启用")
+    public CommonResult<Boolean> enable(@RequestBody String[] ids) {
+        arcPointSettingService.enableByIds(ids);
+        return success(true);
+    }
 }
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dao/ArcPointDataDao.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dao/ArcPointDataDao.java
index 83dc064..4f64d33 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dao/ArcPointDataDao.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dao/ArcPointDataDao.java
@@ -1,11 +1,24 @@
 package com.iailab.module.data.point.dao;
 
 import com.iailab.framework.common.dao.BaseDao;
+import com.iailab.framework.common.pojo.PageResult;
+import com.iailab.framework.mybatis.core.mapper.BaseMapperX;
+import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.iailab.framework.tenant.core.db.dynamic.TenantDS;
 import com.iailab.module.data.point.entity.ArcPointDataEntity;
+import com.iailab.module.data.point.entity.ArcPointDataEntity;
+import com.iailab.module.data.point.vo.ArcPointDataPageReqVO;
 import org.apache.ibatis.annotations.Mapper;
 
 @TenantDS
 @Mapper
-public interface ArcPointDataDao extends BaseDao<ArcPointDataEntity> {
+public interface ArcPointDataDao extends BaseMapperX<ArcPointDataEntity> {
+
+    default PageResult<ArcPointDataEntity> selectPage(ArcPointDataPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<ArcPointDataEntity>()
+                .eq(ArcPointDataEntity::getArcId, reqVO.getArcId())
+                .ge(reqVO.getStartTime()!=null, ArcPointDataEntity::getCreateTime, reqVO.getStartTime())
+                .le(reqVO.getEndTime()!=null, ArcPointDataEntity::getCreateTime, reqVO.getEndTime())
+                .orderByDesc(ArcPointDataEntity::getCreateTime));
+    }
 }
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dao/ArcPointSettingDao.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dao/ArcPointSettingDao.java
index 6c2d62e..44c2f69 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dao/ArcPointSettingDao.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dao/ArcPointSettingDao.java
@@ -1,11 +1,22 @@
 package com.iailab.module.data.point.dao;
 
 import com.iailab.framework.common.dao.BaseDao;
+import com.iailab.framework.common.pojo.PageResult;
+import com.iailab.framework.mybatis.core.mapper.BaseMapperX;
+import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.iailab.framework.tenant.core.db.dynamic.TenantDS;
 import com.iailab.module.data.point.entity.ArcPointSettingEntity;
+import com.iailab.module.data.point.vo.ArcPointSettingPageReqVO;
 import org.apache.ibatis.annotations.Mapper;
 
 @TenantDS
 @Mapper
-public interface ArcPointSettingDao extends BaseDao<ArcPointSettingEntity> {
+public interface ArcPointSettingDao extends BaseMapperX<ArcPointSettingEntity> {
+
+    default PageResult<ArcPointSettingEntity> selectPage(ArcPointSettingPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<ArcPointSettingEntity>()
+                .likeIfPresent(ArcPointSettingEntity::getName, reqVO.getName())
+                .likeIfPresent(ArcPointSettingEntity::getType, reqVO.getType())
+                .orderByDesc(ArcPointSettingEntity::getCreateTime));
+    }
 }
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/entity/ArcPointSettingEntity.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/entity/ArcPointSettingEntity.java
index 02f61d7..8608ef4 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/entity/ArcPointSettingEntity.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/entity/ArcPointSettingEntity.java
@@ -4,8 +4,10 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
+import org.joda.time.DateTime;
 
 import java.io.Serializable;
+import java.util.Date;
 
 @Data
 @TableName("t_arc_setting")
@@ -47,10 +49,10 @@
     /**
      * 创建时间
      */
-    private String createTime;
+    private Date createTime;
 
     /**
      * 更新时间
      */
-    private String updateTime;
+    private Date updateTime;
 }
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/ArcPointDataService.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/ArcPointDataService.java
index cdec3bb..1117671 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/ArcPointDataService.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/ArcPointDataService.java
@@ -1,9 +1,15 @@
 package com.iailab.module.data.point.service;
 
+import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.service.BaseService;
 import com.iailab.module.data.point.entity.ArcPointDataEntity;
+import com.iailab.module.data.point.vo.ArcPointDataPageReqVO;
+
+import javax.validation.Valid;
 
 public interface ArcPointDataService extends BaseService<ArcPointDataEntity> {
     //根据归档类型进行归档
     void archiving(String type);
+
+    PageResult<ArcPointDataEntity> queryPage(ArcPointDataPageReqVO reqVO);
 }
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/ArcPointSettingService.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/ArcPointSettingService.java
index fa69c09..fd8e6eb 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/ArcPointSettingService.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/ArcPointSettingService.java
@@ -1,8 +1,10 @@
 package com.iailab.module.data.point.service;
 
+import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.service.BaseService;
 import com.iailab.module.data.point.entity.ArcPointSettingEntity;
 import com.iailab.module.data.point.entity.DaCumulatePointEntity;
+import com.iailab.module.data.point.vo.ArcPointSettingPageReqVO;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -12,4 +14,16 @@
 public interface ArcPointSettingService extends BaseService<ArcPointSettingEntity> {
 
     List<ArcPointSettingEntity> list(Map<String, Object> params);
+
+    void update(ArcPointSettingEntity arcPointSettingEntity);
+
+    void delete(String id);
+
+    void enableByIds(String[] ids);
+
+    void add(ArcPointSettingEntity arcPointSettingEntity);
+
+    ArcPointSettingEntity info(String id);
+
+    PageResult<ArcPointSettingEntity> queryPage(ArcPointSettingPageReqVO reqVO);
 }
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/ArcPointDataServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/ArcPointDataServiceImpl.java
index 03907c8..cd5b092 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/ArcPointDataServiceImpl.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/ArcPointDataServiceImpl.java
@@ -1,5 +1,6 @@
 package com.iailab.module.data.point.service.impl;
 
+import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.service.impl.BaseServiceImpl;
 import com.iailab.module.data.api.point.DataPointApiImpl;
 import com.iailab.module.data.api.point.dto.ApiPointValueDTO;
@@ -11,6 +12,8 @@
 import com.iailab.module.data.point.service.ArcPointDataService;
 import com.iailab.module.data.common.enums.ArcTypeEnum;
 import com.iailab.module.data.point.service.ArcPointSettingService;
+import com.iailab.module.data.point.vo.ArcPointDataPageReqVO;
+import com.iailab.module.data.point.vo.ArcPointSettingPageReqVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -27,6 +30,9 @@
 
     @Autowired
     private DataPointApiImpl dataPointApi;
+
+    @Autowired
+    private ArcPointDataDao arcPointDataDao;
 
     //根据归档类型进行归档
     @Override
@@ -228,4 +234,9 @@
         }
         return value;
     }
+
+    @Override
+    public PageResult<ArcPointDataEntity> queryPage(ArcPointDataPageReqVO reqVO) {
+        return arcPointDataDao.selectPage(reqVO);
+    }
 }
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/ArcPointSettingServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/ArcPointSettingServiceImpl.java
index 7606b99..7885a24 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/ArcPointSettingServiceImpl.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/ArcPointSettingServiceImpl.java
@@ -1,13 +1,18 @@
 package com.iailab.module.data.point.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.service.impl.BaseServiceImpl;
+import com.iailab.module.data.common.enums.IsEnableEnum;
 import com.iailab.module.data.point.dao.ArcPointSettingDao;
 import com.iailab.module.data.point.entity.ArcPointSettingEntity;
+import com.iailab.module.data.point.entity.DaPointEntity;
 import com.iailab.module.data.point.service.ArcPointSettingService;
+import com.iailab.module.data.point.vo.ArcPointSettingPageReqVO;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.util.*;
 
@@ -24,4 +29,43 @@
         queryWrapper.eq(!ObjectUtils.isEmpty(type), "type", type);
         return arcPointSettingDao.selectList(queryWrapper);
     }
+
+    @Override
+    public void update(ArcPointSettingEntity arcPointSettingEntity) {
+        arcPointSettingDao.updateById(arcPointSettingEntity);
+    }
+
+    @Override
+    public void delete(String id) {
+        arcPointSettingDao.deleteById(id);
+    }
+
+    @Override
+    public void enableByIds(String[] ids) {
+        if (CollectionUtils.isEmpty(Arrays.asList(ids))) {
+            return;
+        }
+        Arrays.asList(ids).forEach(item -> {
+            ArcPointSettingEntity entity = new ArcPointSettingEntity();
+            entity.setId(item);
+            entity.setIsEnable(IsEnableEnum.ENABLE.getCode().toString());
+            entity.setUpdateTime(new Date());
+            arcPointSettingDao.updateById(entity);
+        });
+    }
+
+    @Override
+    public void add(ArcPointSettingEntity arcPointSettingEntity) {
+        arcPointSettingDao.insert(arcPointSettingEntity);
+    }
+
+    @Override
+    public ArcPointSettingEntity info(String id) {
+        return arcPointSettingDao.selectById(id);
+    }
+
+    @Override
+    public PageResult<ArcPointSettingEntity> queryPage(ArcPointSettingPageReqVO reqVO) {
+        return arcPointSettingDao.selectPage(reqVO);
+    }
 }
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/ArcPointDataPageReqVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/ArcPointDataPageReqVO.java
new file mode 100644
index 0000000..c25faca
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/ArcPointDataPageReqVO.java
@@ -0,0 +1,36 @@
+package com.iailab.module.data.point.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.iailab.framework.common.pojo.PageParam;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+import static com.iailab.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class ArcPointDataPageReqVO extends PageParam {
+
+    /**
+     * 归档id
+     */
+    private String arcId;
+
+    /**
+     * 开始时间
+     */
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private Date endTime;
+}
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/ArcPointSettingPageReqVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/ArcPointSettingPageReqVO.java
new file mode 100644
index 0000000..24b11c2
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/ArcPointSettingPageReqVO.java
@@ -0,0 +1,63 @@
+package com.iailab.module.data.point.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.iailab.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+import java.util.List;
+
+/**
+ * @author lirm
+ * @Description
+ * @createTime 2024年09月2日
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class ArcPointSettingPageReqVO extends PageParam {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 归档周期(shift、day、month、year)
+     */
+    private String type;
+
+    /**
+     * 归档点位
+     */
+    private String point;
+
+    /**
+     * 计算方法(none、sum、diff、avg)
+     */
+    private String calculate;
+
+    /**
+     * 是否启用
+     */
+    private String isEnable;
+
+    /**
+     * 创建时间
+     */
+    private String createTime;
+
+    /**
+     * 更新时间
+     */
+    private String updateTime;
+}
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/resources/application.yaml b/iailab-module-data/iailab-module-data-biz/src/main/resources/application.yaml
index ffa76bf..f11ec42 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/resources/application.yaml
+++ b/iailab-module-data/iailab-module-data-biz/src/main/resources/application.yaml
@@ -186,6 +186,8 @@
       - t_plan_item
       - t_da_cumulate_point
       - t_da_point_collect_status
+      - t_arc_data
+      - t_arc_setting
   app:
     app-key: data
     app-secret: 85b0df7edc3df3611913df34ed695011

--
Gitblit v1.9.3