From 7e7fbe6c20432ba65e8501e109d305666ce68afa Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期二, 22 四月 2025 08:42:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/api/ind/dto/ApiIndItemValuePageReqVO.java   |   28 ++++++++++++++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/ind/IndItemApiImpl.java                 |   16 ++++++++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java |    8 ++++
 iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/api/ind/IndItemApi.java                     |    6 +++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/IndCollectTaskNetDay.java          |   22 ++++++++++
 5 files changed, 79 insertions(+), 1 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/api/ind/IndItemApi.java b/iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/api/ind/IndItemApi.java
index 0e0fe93..39957bb 100644
--- a/iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/api/ind/IndItemApi.java
+++ b/iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/api/ind/IndItemApi.java
@@ -1,8 +1,10 @@
 package com.iailab.module.data.api.ind;
 
+import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.module.data.api.ind.dto.ApiIndItemDTO;
 import com.iailab.module.data.api.ind.dto.ApiIndItemQueryDTO;
 import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
+import com.iailab.module.data.api.ind.dto.ApiIndItemValuePageReqVO;
 import com.iailab.module.data.enums.ApiConstants;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -38,4 +40,8 @@
     @PostMapping(PREFIX + "/info/ids")
     @Operation(summary = "根据多个id查询指标数据信息")
     List<ApiIndItemDTO> getInfoByIds(@RequestParam("indIds") Set<String> indIds);
+
+    @PostMapping(PREFIX + "/query-ind-value/page")
+    @Operation(summary = "查询指标历史值分页")
+    PageResult<ApiIndItemValueDTO> queryIndItemValuePage(@RequestBody ApiIndItemValuePageReqVO dto);
 }
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/api/ind/dto/ApiIndItemValuePageReqVO.java b/iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/api/ind/dto/ApiIndItemValuePageReqVO.java
new file mode 100644
index 0000000..4493d78
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/api/ind/dto/ApiIndItemValuePageReqVO.java
@@ -0,0 +1,28 @@
+package com.iailab.module.data.api.ind.dto;
+
+import com.iailab.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年09月11日
+ */
+@Schema(description = "数据平台 - 指标值分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class ApiIndItemValuePageReqVO extends PageParam {
+
+    @Schema(description = "指标编码", example = "")
+    private String itemNo;
+
+    @Schema(description = "开始时间", example = "")
+    private String startTime;
+
+    @Schema(description = "结束时间", example = "")
+    private String endTime;
+}
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java
index 7effc8c..c0f3c5b 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java
@@ -11,6 +11,7 @@
 import com.iailab.module.data.api.ind.IndItemApi;
 import com.iailab.module.data.api.ind.dto.ApiIndItemQueryDTO;
 import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
+import com.iailab.module.data.api.ind.dto.ApiIndItemValuePageReqVO;
 import com.iailab.module.data.api.plan.PlanItemApi;
 import com.iailab.module.data.api.plan.dto.ApiPlanDataDTO;
 import com.iailab.module.data.api.point.DataPointApi;
@@ -321,4 +322,11 @@
         return success(data);
     }
 
+    @PermitAll
+    @PostMapping("/query-ind-value/page")
+    @Operation(summary = "查询指标数据值分页")
+    public CommonResult<PageResult<ApiIndItemValueDTO>> queryIndItemValuePage(@RequestBody ApiIndItemValuePageReqVO dto) {
+        return success(indItemApi.queryIndItemValuePage(dto));
+    }
+
 }
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/ind/IndItemApiImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/ind/IndItemApiImpl.java
index d6edd26..cf5cefd 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/ind/IndItemApiImpl.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/ind/IndItemApiImpl.java
@@ -1,13 +1,17 @@
 package com.iailab.module.data.api.ind;
 
+import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.util.object.ConvertUtils;
 import com.iailab.module.data.api.ind.dto.ApiIndItemDTO;
 import com.iailab.module.data.api.ind.dto.ApiIndItemQueryDTO;
 import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
+import com.iailab.module.data.api.ind.dto.ApiIndItemValuePageReqVO;
 import com.iailab.module.data.ind.collection.IndItemCollector;
 import com.iailab.module.data.ind.item.entity.IndItemEntity;
 import com.iailab.module.data.ind.item.service.IndItemService;
 import com.iailab.module.data.ind.item.vo.IndItemValueVO;
+import com.iailab.module.data.ind.value.service.IndItemValueService;
+import com.iailab.module.data.ind.value.vo.IndItemValuePageReqVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.validation.annotation.Validated;
@@ -31,6 +35,10 @@
 
     @Autowired
     private IndItemService indItemService;
+
+    @Autowired
+    private IndItemValueService indItemValueService;
+
 
     @Override
     public List<ApiIndItemValueDTO> queryIndItemDefaultValue(String itemNo){
@@ -75,4 +83,12 @@
         List<IndItemEntity> inds = indItemService.getInfoByIds(indIds);
         return ConvertUtils.sourceToTarget(inds,ApiIndItemDTO.class);
     }
+
+    @Override
+    public PageResult<ApiIndItemValueDTO> queryIndItemValuePage(ApiIndItemValuePageReqVO dto) {
+        IndItemValuePageReqVO reqVO = ConvertUtils.sourceToTarget(dto, IndItemValuePageReqVO.class);
+        List<IndItemValueVO> result = indItemValueService.getValueList(reqVO);
+        List<ApiIndItemValueDTO> list = ConvertUtils.sourceToTarget(result, ApiIndItemValueDTO.class);
+        return new PageResult<>(list, (long) list.size());
+    }
 }
\ 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
index 44c197a..904cc5d 100644
--- 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
@@ -59,7 +59,7 @@
                         IndItemValueSaveReqVO saveReqVO = new IndItemValueSaveReqVO();
                         saveReqVO.setItemNo(indItem.getItemNo());
                         saveReqVO.setDataTime(DateUtils.format(calendar.getTime(), DateUtils.DATE_TIME_PATTERN));
-                        saveReqVO.setDataValue((BigDecimal) indItemValue.getDataValue());
+                        saveReqVO.setDataValue(convertToBigDecimal(indItemValue.getDataValue()));
                         indItemValueService.create(saveReqVO);
                     }
                 }
@@ -67,8 +67,28 @@
             logger.info("indCollectTaskNetDay定时任务完成时间:" + LocalDateTime.now());
         } catch (Exception ex) {
             ex.printStackTrace();
+            logger.error("indCollectTaskNetDay定时任务错误信息:" + ex.getMessage());
             logger.error("indCollectTaskNetDay定时任务失败时间:" + LocalDateTime.now());
         }
 
     }
+
+    public static BigDecimal convertToBigDecimal(Object value){
+        if (value == null){
+            return null;
+        }
+        if (value instanceof BigDecimal){
+            return (BigDecimal) value;
+        }else if (value instanceof Double){
+            return BigDecimal.valueOf((Double) value);
+        }else if (value instanceof Integer){
+            return BigDecimal.valueOf((Integer) value);
+        }else if (value instanceof Long){
+            return BigDecimal.valueOf((Long) value);
+        }else if (value instanceof String){
+            return new BigDecimal((String) value);
+        }else {
+            throw new RuntimeException("不支持的类型:" + value.getClass().getName());
+        }
+    }
 }

--
Gitblit v1.9.3