From c79bc0566e67eabd4715d854a2306e2451983e7b Mon Sep 17 00:00:00 2001
From: liriming <1343021927@qq.com>
Date: 星期一, 23 六月 2025 18:03:57 +0800
Subject: [PATCH] 新增135机组指标趋势线接口

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/entity/PlantChartConfEntity.java            |   42 ++++++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/dao/PlantChartConfDao.java                  |   14 +++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/vo/PlantChartDataVO.java                    |   37 +++++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/impl/PlantChartConfServiceImpl.java |   74 ++++++++++++++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PlantController.java         |   18 +++-
 ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/PlantChartConfService.java          |   15 +++
 6 files changed, 196 insertions(+), 4 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PlantController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PlantController.java
index 1f0a725..ffe4ec9 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PlantController.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PlantController.java
@@ -1,19 +1,19 @@
 package com.iailab.module.ansteel.api.controller.admin;
 
 import com.iailab.framework.common.pojo.CommonResult;
+import com.iailab.module.ansteel.plant.service.PlantChartConfService;
 import com.iailab.module.ansteel.plant.service.PlantConfService;
 import com.iailab.module.ansteel.plant.service.PlantIndexConfService;
+import com.iailab.module.ansteel.plant.vo.PlantChartDataVO;
 import com.iailab.module.ansteel.plant.vo.PlantDataVO;
 import com.iailab.module.ansteel.plant.vo.PlantIndexDataVO;
 import io.swagger.v3.oas.annotations.Operation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 
 import static com.iailab.framework.common.pojo.CommonResult.success;
 
@@ -33,6 +33,9 @@
     @Autowired
      private PlantIndexConfService plantIndexConfService;
 
+    @Autowired
+    private PlantChartConfService plantChartConfService;
+
     @GetMapping("/data")
     @Operation(summary = "135机组数据")
     public CommonResult<List<PlantDataVO>> getPlantData(@RequestParam("businessType") String businessType) {
@@ -46,4 +49,11 @@
         List<PlantIndexDataVO> result = plantIndexConfService.getPlantIndexData(businessType);
         return success(result);
     }
+
+    @PostMapping("/chart-data")
+    @Operation(summary = "135机组指标趋势数据")
+    public CommonResult<PlantChartDataVO> getPlantChartData(@RequestBody Map tMap) {
+        PlantChartDataVO result = plantChartConfService.getPlantChartData(tMap);
+        return success(result);
+    }
 }
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/dao/PlantChartConfDao.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/dao/PlantChartConfDao.java
new file mode 100644
index 0000000..ad0dd6d
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/dao/PlantChartConfDao.java
@@ -0,0 +1,14 @@
+package com.iailab.module.ansteel.plant.dao;
+
+import com.iailab.framework.common.dao.BaseDao;
+import com.iailab.module.ansteel.plant.entity.PlantChartConfEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @description:
+ * @author: lirm
+ * @date: 2025/6/20 13:59
+ **/
+@Mapper
+public interface PlantChartConfDao extends BaseDao<PlantChartConfEntity> {
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/entity/PlantChartConfEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/entity/PlantChartConfEntity.java
new file mode 100644
index 0000000..2a99802
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/entity/PlantChartConfEntity.java
@@ -0,0 +1,42 @@
+package com.iailab.module.ansteel.plant.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: lirm
+ * @date: 2025/6/20 13:59
+ **/
+@Data
+@TableName("t_plant_chart_conf")
+public class PlantChartConfEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    private String indType;
+
+    private String indCode;
+
+    private String indName;
+
+    private String indAvg;
+
+    private String indTheory;
+
+    private String indOptimal;
+
+    private String indReal;
+
+    private String indPower;
+
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/PlantChartConfService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/PlantChartConfService.java
new file mode 100644
index 0000000..bacd409
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/PlantChartConfService.java
@@ -0,0 +1,15 @@
+package com.iailab.module.ansteel.plant.service;
+
+import com.iailab.module.ansteel.plant.vo.PlantChartDataVO;
+
+import java.util.Map;
+
+/**
+ * @description:
+ * @author: lirm
+ * @date: 2025/6/20 13:59
+ **/
+public interface PlantChartConfService {
+
+    PlantChartDataVO getPlantChartData(Map tMap);
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/impl/PlantChartConfServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/impl/PlantChartConfServiceImpl.java
new file mode 100644
index 0000000..e907a10
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/impl/PlantChartConfServiceImpl.java
@@ -0,0 +1,74 @@
+package com.iailab.module.ansteel.plant.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.iailab.module.ansteel.plant.dao.PlantChartConfDao;
+import com.iailab.module.ansteel.plant.entity.PlantChartConfEntity;
+import com.iailab.module.ansteel.plant.service.PlantChartConfService;
+import com.iailab.module.ansteel.plant.vo.PlantChartDataVO;
+import com.iailab.module.data.api.point.DataPointApi;
+import com.iailab.module.data.api.point.dto.ApiPointsValueQueryDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.ObjectUtils;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * @description:
+ * @author: lirm
+ * @date: 2025/6/20 13:59
+ **/
+@Slf4j
+@Service
+public class PlantChartConfServiceImpl implements PlantChartConfService {
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Resource
+    private PlantChartConfDao plantChartConfDao;
+    @Resource
+    private DataPointApi dataPointApi;
+
+    @Override
+    public PlantChartDataVO getPlantChartData(Map tMap) {
+        PlantChartDataVO result = new PlantChartDataVO();
+        if(ObjectUtils.isEmpty(tMap.get("indType")) || ObjectUtils.isEmpty(tMap.get("indCode"))){
+            logger.info("输入参数为空");
+            return result;
+        }
+        QueryWrapper<PlantChartConfEntity> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("ind_type",tMap.get("indType"));
+        queryWrapper.eq("indCode",tMap.get("indCode"));
+        List<PlantChartConfEntity> plantChartConfList = plantChartConfDao.selectList(queryWrapper);
+        if (CollectionUtils.isEmpty(plantChartConfList)) {
+            log.info("plantChartConfList is null");
+            return result;
+        }
+        PlantChartConfEntity plantChartConfEntity = plantChartConfList.get(0);
+        // 筛选DATAPOINT一次性查询出全部
+        List<String> pointNos = Stream.of(plantChartConfEntity.getIndAvg(),plantChartConfEntity.getIndTheory(),plantChartConfEntity.getIndOptimal(),plantChartConfEntity.getIndReal()).collect(Collectors.toList());
+        if (!CollectionUtils.isEmpty(pointNos)) {
+            ApiPointsValueQueryDTO queryDTO = new ApiPointsValueQueryDTO();
+            queryDTO.setPointNos(pointNos);
+            Map<String, List<Map<String, Object>>>  pointsHisValues = dataPointApi.queryPointsHistoryValue(queryDTO);
+            if (CollectionUtils.isEmpty(pointsHisValues)) {
+                log.info("pointsHisValues is null");
+                return result;
+            }
+            result.setIndCode(plantChartConfEntity.getIndCode());
+            result.setIndName(plantChartConfEntity.getIndName());
+            result.setIndAvgHisList(pointsHisValues.get(plantChartConfEntity.getIndAvg()));
+            result.setIndTheoryHisList(pointsHisValues.get(plantChartConfEntity.getIndTheory()));
+            result.setIndOptimalHisList(pointsHisValues.get(plantChartConfEntity.getIndOptimal()));
+            result.setIndRealHisList(pointsHisValues.get(plantChartConfEntity.getIndReal()));
+            result.setIndPowerHisList(pointsHisValues.get(plantChartConfEntity.getIndPower()));
+        }
+        return result;
+    }
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/vo/PlantChartDataVO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/vo/PlantChartDataVO.java
new file mode 100644
index 0000000..02edafb
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/vo/PlantChartDataVO.java
@@ -0,0 +1,37 @@
+package com.iailab.module.ansteel.plant.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @description:
+ * @author: lirm
+ * @date: 2025/6/23
+ **/
+@Data
+public class PlantChartDataVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    private String indCode;
+
+    private String indName;
+
+    private String indType;
+
+    private List<Map<String, Object>> indAvgHisList;
+
+    private List<Map<String, Object>> indTheoryHisList;
+
+    private List<Map<String, Object>> indOptimalHisList;
+
+    private List<Map<String, Object>> indRealHisList;
+
+    private List<Map<String, Object>> indPowerHisList;
+
+}
\ No newline at end of file

--
Gitblit v1.9.3