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