From 80d5a608f4543a68a30bab5842d9f793702d6b53 Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期三, 23 四月 2025 13:36:47 +0800 Subject: [PATCH] 焦化 异常数据建议生成 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java | 86 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 83 insertions(+), 3 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 4ffecf8..d9ac9c3 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,34 @@ 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.CokingOverviewDTO; 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 +71,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) { @@ -97,9 +117,16 @@ @GetMapping("/overview/list") - @Operation(summary = "各工序-概况") + @Operation(summary = "各工序-概况数据") public CommonResult<Map<String,List<CokingOverviewDTO>>> getOverviewList(@RequestParam Map<String, Object> params) { Map<String,List<CokingOverviewDTO>> result = cokingOverviewService.list(params); + return success(result); + } + + @GetMapping("/overview/abnormal-data") + @Operation(summary = "各工序-异常数据") + public CommonResult<List<CokingTraceSuggestEntity>> getAbnormalData(@RequestParam Map<String, Object> params) { + List<CokingTraceSuggestEntity> result = cokingTraceSuggestService.getAbnormalData(params); return success(result); } @@ -116,4 +143,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 -- Gitblit v1.9.3