From 1d02b4887665a616697af9bd92885ba6db4ed838 Mon Sep 17 00:00:00 2001 From: Jay <csj123456> Date: 星期三, 19 二月 2025 14:11:05 +0800 Subject: [PATCH] 新增固化标识,新增保存指标历史值job,以及查询指标历史值功能 --- iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemEntity.java | 5 ++ iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemSaveReqVO.java | 3 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/admin/IndItemValueController.java | 12 +++++ iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemPageReqVO.java | 3 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java | 14 +++++++ iailab-module-data/iailab-module-data-biz/src/main/resources/application.yaml | 1 iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/ind/IndItemDao.xml | 3 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/package-info.java | 1 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/IndItemValueService.java | 3 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/IndCollectTaskNetDay.java | 73 ++++++++++++++++++++++++++++++++++++ 10 files changed, 116 insertions(+), 2 deletions(-) diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemEntity.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemEntity.java index 812ef07..26e6d13 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemEntity.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemEntity.java @@ -78,6 +78,11 @@ private Integer status; /** + * 固化标识 + */ + private String solidifyFlag; + + /** * 创建者 */ private String creator; diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemPageReqVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemPageReqVO.java index 4d6a865..6fe17c5 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemPageReqVO.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemPageReqVO.java @@ -28,4 +28,7 @@ @Schema(description = "指标分类", example = "") private String itemCategory; + + @Schema(description = "固化标识", example = "") + private String solidifyFlag; } \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemSaveReqVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemSaveReqVO.java index 0658f90..d0cd3ef 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemSaveReqVO.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemSaveReqVO.java @@ -59,4 +59,7 @@ @Schema(description = "计算指标") private IndItemCalVO calItem; + + @Schema(description = "固化标识") + private String solidifyFlag; } \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/IndItemValueController.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/admin/IndItemValueController.java similarity index 87% rename from iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/IndItemValueController.java rename to iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/admin/IndItemValueController.java index beeb841..2455281 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/IndItemValueController.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/admin/IndItemValueController.java @@ -1,9 +1,10 @@ -package com.iailab.module.data.ind.value.controller; +package com.iailab.module.data.ind.value.controller.admin; import com.iailab.framework.common.pojo.CommonResult; import com.iailab.framework.common.pojo.PageResult; import com.iailab.framework.common.util.object.BeanUtils; import com.iailab.module.data.ind.item.vo.IndItemRespVO; +import com.iailab.module.data.ind.item.vo.IndItemValueVO; import com.iailab.module.data.ind.value.entity.IndItemValueEntity; import com.iailab.module.data.ind.value.service.IndItemValueService; import com.iailab.module.data.ind.value.vo.IndItemValuePageReqVO; @@ -17,6 +18,8 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; + +import java.util.List; import static com.iailab.framework.common.pojo.CommonResult.success; @@ -74,4 +77,11 @@ IndItemValueEntity entity = indItemValueService.get(id); return success(BeanUtils.toBean(entity, IndItemRespVO.class)); } + + @GetMapping("/getList") + @Operation(summary = "获取指标项数据集合信息") + public CommonResult<List<IndItemValueVO>> getList(@Valid IndItemValuePageReqVO reqVO) { + List<IndItemValueVO> list = indItemValueService.getValueList(reqVO); + return success(list); + } } \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/package-info.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/package-info.java new file mode 100644 index 0000000..107f995 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/package-info.java @@ -0,0 +1 @@ +package com.iailab.module.data.ind.value.controller; \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/IndItemValueService.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/IndItemValueService.java index 621b442..ff06038 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/IndItemValueService.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/IndItemValueService.java @@ -9,7 +9,6 @@ import com.iailab.module.data.ind.value.vo.IndItemValueSaveReqVO; import java.util.List; -import java.util.Map; /** * @author PanZhibao @@ -29,4 +28,6 @@ void delete(String id); List<IndItemValueVO> getSourceValue(QuerySourceValueDTO dto); + + List<IndItemValueVO> getValueList(IndItemValuePageReqVO reqVO); } diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java index ed1c49d..2453ea2 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java @@ -3,7 +3,10 @@ import com.iailab.framework.common.pojo.PageResult; import com.iailab.framework.common.service.impl.BaseServiceImpl; import com.iailab.framework.common.util.object.BeanUtils; +import com.iailab.framework.common.util.object.ConvertUtils; +import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; import com.iailab.framework.tenant.core.context.DataContextHolder; +import com.iailab.module.data.common.utils.DateUtils; import com.iailab.module.data.common.xss.SQLFilter; import com.iailab.module.data.ind.item.vo.IndItemValueVO; import com.iailab.module.data.ind.value.dao.IndItemValueDao; @@ -73,4 +76,15 @@ DataContextHolder.setDataSourceId(Long.valueOf(dto.getDataSource())); return baseDao.getSourceValue(dto); } + + @Override + public List<IndItemValueVO> getValueList(IndItemValuePageReqVO reqVO) { + List<IndItemValueEntity> entities = baseDao.selectList( new LambdaQueryWrapperX<IndItemValueEntity>() + .eq(StringUtils.isNotBlank(reqVO.getItemNo()), IndItemValueEntity::getItemNo, reqVO.getItemNo()) + .geIfPresent(IndItemValueEntity::getDataTime, DateUtils.stringToDate(reqVO.getStartTime(), DateUtils.DATE_TIME_PATTERN)) + .leIfPresent(IndItemValueEntity::getDataTime, DateUtils.stringToDate(reqVO.getEndTime(), DateUtils.DATE_TIME_PATTERN)) + .orderByDesc(IndItemValueEntity::getDataTime) + ); + return ConvertUtils.sourceToTarget(entities, IndItemValueVO.class); + } } \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/IndCollectTaskNetDay.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/IndCollectTaskNetDay.java new file mode 100644 index 0000000..a775710 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/IndCollectTaskNetDay.java @@ -0,0 +1,73 @@ +package com.iailab.module.data.job.task; + +import com.alibaba.nacos.common.utils.StringUtils; +import com.iailab.module.data.api.ind.IndItemApi; +import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO; +import com.iailab.module.data.ind.item.service.IndItemService; +import com.iailab.module.data.ind.item.vo.IndItemPageReqVO; +import com.iailab.module.data.ind.item.vo.IndItemRespVO; +import com.iailab.module.data.ind.value.service.IndItemValueService; +import com.iailab.module.data.ind.value.vo.IndItemValueSaveReqVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Calendar; +import java.util.List; + +/** + * @description: Point采集器1h + * @author: dzd + * @date: 2025/1/18 14:07 + **/ +@Component("indCollectTaskNetDay") +public class IndCollectTaskNetDay implements ITask { + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private IndItemService indItemService; + + @Autowired + private IndItemValueService indItemValueService; + + @Autowired + private IndItemApi indItemApi; + @Override + public void run(String params){ + logger.debug("indCollectTaskNetDay定时任务正在执行,参数为:{}", params); + try { + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.MILLISECOND, 0); + IndItemPageReqVO reqVO = new IndItemPageReqVO(); + if (StringUtils.isNotBlank(params)){ + reqVO.setSolidifyFlag(params); + }else { + reqVO.setSolidifyFlag("DAY"); + } + List<IndItemRespVO> indItemList = indItemService.getList(reqVO); + if (!CollectionUtils.isEmpty(indItemList)){ + for (IndItemRespVO indItem : indItemList) { + logger.info("开始查询指标数据,指标编号:" + indItem.getItemNo()); + List<ApiIndItemValueDTO> indItemValueList = indItemApi.queryIndItemDefaultValue(indItem.getItemNo()); + for (ApiIndItemValueDTO indItemValue : indItemValueList) { + logger.info("开始保存指标数据,指标编号:" + indItem.getItemNo() + ", 指标数据:" + indItemValue.getDataValue()); + IndItemValueSaveReqVO saveReqVO = new IndItemValueSaveReqVO(); + saveReqVO.setItemNo(indItem.getItemNo()); + saveReqVO.setDataTime(indItemValue.getDataTime()); + saveReqVO.setDataValue(BigDecimal.valueOf(indItemValue.getDataValue())); + indItemValueService.create(saveReqVO); + } + } + } + logger.info("indCollectTaskNetDay定时任务完成时间:" + LocalDateTime.now()); + } catch (Exception ex) { + ex.printStackTrace(); + logger.error("indCollectTaskNetDay定时任务失败时间:" + LocalDateTime.now()); + } + + } +} 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 7c52b23..ffa76bf 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 @@ -176,6 +176,7 @@ - t_ind_item_atom - t_ind_item_der - t_ind_item_cal + - t_ind_item_value - t_video_nvr - t_video_log - t_video_camera diff --git a/iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/ind/IndItemDao.xml b/iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/ind/IndItemDao.xml index 556b99f..bc2a643 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/ind/IndItemDao.xml +++ b/iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/ind/IndItemDao.xml @@ -22,6 +22,9 @@ <if test="params.itemCategory != null and params.itemCategory != ''"> and t1.item_category = #{params.itemCategory} </if> + <if test="params.solidifyFlag != null and params.solidifyFlag != ''"> + and t1.solidify_flag = #{params.solidifyFlag} + </if> </where> </select> -- Gitblit v1.9.3