From 0780b7a22e2ee023c0381f088caca1f20ff2c8a6 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期一, 21 四月 2025 17:41:47 +0800
Subject: [PATCH] 焦化工序-异常溯源折线图 查询接口

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceChartDTO.java                      |   11 +----
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java                |    2 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDeviationServiceImpl.java |    5 ++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java               |   84 ++++++++++++++++++++++++++++++++++++++---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceDeviationDTO.java                  |    4 +-
 5 files changed, 87 insertions(+), 19 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java
index e945f45..f48c1bf 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java
@@ -1,23 +1,31 @@
 package com.iailab.module.ansteel.api.controller.admin;
 
 import com.iailab.framework.common.pojo.CommonResult;
+import com.iailab.framework.common.util.date.DateUtils;
 import com.iailab.framework.common.util.object.ConvertUtils;
 import com.iailab.module.ansteel.api.dto.*;
-import com.iailab.module.ansteel.coking.dto.CokingTraceEnergyDTO;
-import com.iailab.module.ansteel.coking.dto.CokingTraceIndDTO;
-import com.iailab.module.ansteel.coking.dto.CokingTraceSuggestDTO;
+import com.iailab.module.ansteel.coking.dto.*;
 import com.iailab.module.ansteel.coking.entity.*;
 import com.iailab.module.ansteel.coking.service.*;
+import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum;
+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.point.DataPointApi;
+import com.iailab.module.data.api.point.dto.ApiPointValueDTO;
+import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO;
 import io.swagger.v3.oas.annotations.Operation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 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 java.util.List;
-import java.util.Map;
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.*;
 
 import static com.iailab.framework.common.pojo.CommonResult.success;
 
@@ -60,6 +68,15 @@
     @Autowired
     private CokingTraceDeviationService cokingTraceDeviationService;
 
+    @Autowired
+    private CokingTraceChartService cokingTraceChartService;
+
+    @Resource
+    private DataPointApi dataPointApi;
+
+    @Resource
+    private IndItemApi indItemApi;
+
     @GetMapping("/analy-ind/list")
     @Operation(summary = "焦化工序-指标分析")
     public CommonResult<List<CokingAnalyIndDTO>> getCokingAnalyIndList(@RequestParam Map<String, Object> params) {
@@ -98,8 +115,8 @@
 
     @GetMapping("/trace-energy/list")
     @Operation(summary = "焦化工序-能耗整体情况")
-    public CommonResult<Map<String,List<CokingTraceEnergyDTO>>> getEnergyConsumptionList(@RequestParam Map<String, Object> params) {
-        Map<String,List<CokingTraceEnergyDTO>> result = cokingTraceEnergyService.list(params);
+    public CommonResult<Map<String, List<CokingTraceEnergyDTO>>> getEnergyConsumptionList(@RequestParam Map<String, Object> params) {
+        Map<String, List<CokingTraceEnergyDTO>> result = cokingTraceEnergyService.list(params);
         return success(result);
     }
 
@@ -116,4 +133,57 @@
         List<CokingTraceIndEntity> list = cokingTraceIndService.list(params);
         return success(ConvertUtils.sourceToTarget(list, CokingTraceIndDTO.class));
     }
+
+    @GetMapping("/trace-deviation/list")
+    @Operation(summary = "焦化工序-异常溯源影响因素偏差值")
+    public CommonResult<List<CokingTraceDeviationDTO>> getTraceDeviationList(@RequestParam Map<String, Object> params) {
+        List<CokingTraceDeviationEntity> list = cokingTraceDeviationService.list(params);
+        return success(ConvertUtils.sourceToTarget(list, CokingTraceDeviationDTO.class));
+    }
+
+    @GetMapping("/trace-chart/list")
+    @Operation(summary = "焦化工序-异常溯源折线图")
+    public CommonResult<List<CokingTraceChartDTO>> getCokingTraceChartList(@RequestParam Map<String, Object> params) {
+        List<CokingTraceChartEntity> list = cokingTraceChartService.list(params);
+        List<CokingTraceChartDTO> result = new ArrayList<>();
+        if (CollectionUtils.isEmpty(list)) {
+            return success(result);
+        }
+        for (CokingTraceChartEntity entity : list) {
+            CokingTraceChartDTO dto = ConvertUtils.sourceToTarget(entity, CokingTraceChartDTO.class);
+            List<Object[]> dataList = new ArrayList<>();
+            switch (ProcessConfDataTypeEnum.getEumByCode(entity.getDataType())) {
+                case DATAPOINT:
+                    ApiPointValueQueryDTO queryParams1 = new ApiPointValueQueryDTO();
+                    queryParams1.setPointNo(entity.getDataNo());
+                    queryParams1.setStart(entity.getStartTime());
+                    queryParams1.setEnd(entity.getEndTime());
+                    List<ApiPointValueDTO> pointHisValue = dataPointApi.queryPointHistoryValue(queryParams1);
+                    pointHisValue.forEach(item -> {
+                        Object[] values = new Object[2];
+                        values[0] = DateUtils.format(item.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
+                        values[1] = new BigDecimal(item.getV()).setScale(3, BigDecimal.ROUND_HALF_UP);
+                        dataList.add(values);
+                    });
+                    break;
+                case IND:
+                    ApiIndItemQueryDTO queryParams2 = new ApiIndItemQueryDTO();
+                    queryParams2.setItemNo(entity.getDataNo());
+                    queryParams2.setStart(entity.getStartTime());
+                    queryParams2.setEnd(entity.getEndTime());
+                    List<ApiIndItemValueDTO> indValues = indItemApi.queryIndItemHistoryValue(queryParams2);
+                    indValues.forEach(item -> {
+                        Object[] values = new Object[2];
+                        values[0] = item.getDataTime();
+                        values[1] = item.getDataValue();
+                        dataList.add(values);
+                    });
+                    break;
+                default:
+                    break;
+            }
+            dto.setDataList(dataList);
+        }
+        return success(result);
+    }
 }
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
index 6a820f5..5469334 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -417,7 +417,7 @@
             data.add(value);
             dataList.add(data);
         }
-        List<String> categories = DateUtils.getTimeScale(start, end, 5);
+        List<String> categories = DateUtils.getTimeScale(start, end, 60);
         result.setCategories(categories);
         result.setDataList(dataList);
 
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceChartDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceChartDTO.java
index e987a39..502881d 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceChartDTO.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceChartDTO.java
@@ -4,7 +4,7 @@
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -30,14 +30,9 @@
 	@Schema(description = "查询时间")
 	private String clock;
 
-	@Schema(description = "值")
-	private String valueJson;
+	@Schema(description = "图表数据")
+	private List<Object[]> dataList;
 
-	@Schema(description = "排序")
-	private Integer sort;
-
-	@Schema(description = "创建时间")
-	private Date createDate;
 
 
 }
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceDeviationDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceDeviationDTO.java
index 4af9c82..2014f4e 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceDeviationDTO.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceDeviationDTO.java
@@ -8,13 +8,13 @@
 
 
 /**
- * 焦化工序影响因数偏差值
+ * 焦化工序影响因素偏差值
  *
  * @author lirm ${email}
  * @since 1.0.0 2025-04-16
  */
 @Data
-@Schema(description = "焦化工序影响因数偏差值")
+@Schema(description = "焦化工序影响因素偏差值")
 public class CokingTraceDeviationDTO implements Serializable {
     private static final long serialVersionUID = 1L;
 
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDeviationServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDeviationServiceImpl.java
index 955820f..d4f6f27 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDeviationServiceImpl.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDeviationServiceImpl.java
@@ -4,6 +4,7 @@
 import com.iailab.module.ansteel.coking.dao.CokingTraceDeviationDao;
 import com.iailab.module.ansteel.coking.entity.CokingTraceDeviationEntity;
 import com.iailab.module.ansteel.coking.service.CokingTraceDeviationService;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -25,9 +26,11 @@
     @Override
     public List<CokingTraceDeviationEntity> list(Map<String, Object> params) {
         String relId = (String) params.get("relId");
+        String sugObj = (String) params.get("sugObj");
 
         QueryWrapper<CokingTraceDeviationEntity> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("rel_id", relId);
+        queryWrapper.eq("rel_id", relId)
+                .eq(StringUtils.isNotBlank(sugObj),"sug_obj", sugObj);
         return cokingTraceDeviationDao.selectList(new QueryWrapper<>());
     }
 

--
Gitblit v1.9.3