Jay
2025-02-19 1d02b4887665a616697af9bd92885ba6db4ed838
新增固化标识,新增保存指标历史值job,以及查询指标历史值功能
已添加2个文件
已重命名1个文件
已修改7个文件
118 ■■■■■ 文件已修改
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemEntity.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemPageReqVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemSaveReqVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/admin/IndItemValueController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/package-info.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/IndItemValueService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/IndCollectTaskNetDay.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/resources/application.yaml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/ind/IndItemDao.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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;
}
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;
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/admin/IndItemValueController.java
文件名从 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/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);
    }
}
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;
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);
}
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);
    }
}
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());
        }
    }
}
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
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>