From d185f87b74ae43ed649bcec3ea9fcb3bad6e428a Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期三, 23 四月 2025 15:38:05 +0800 Subject: [PATCH] 焦化总图-异常数据 --- ansteel-biz/db/mysql.sql | 11 ++- ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingTraceDataEntity.java | 22 +++++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDataServiceImpl.java | 15 ++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java | 35 +++++++++-- ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java | 47 +++++++++++++-- ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingTraceDataService.java | 2 ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceDataDTO.java | 11 +++ 7 files changed, 122 insertions(+), 21 deletions(-) diff --git a/ansteel-biz/db/mysql.sql b/ansteel-biz/db/mysql.sql index bc1754e..4b6443c 100644 --- a/ansteel-biz/db/mysql.sql +++ b/ansteel-biz/db/mysql.sql @@ -553,12 +553,17 @@ ( `id` varchar(36) NOT NULL COMMENT 'id', `rel_id` varchar(36) NULL DEFAULT NULL COMMENT '关联ID', + `process` varchar(20) NULL DEFAULT NULL COMMENT '工序名称', + `ex_obj` varchar(20) NULL DEFAULT NULL COMMENT '异常对象', + `clock` varchar(20) NULL DEFAULT NULL COMMENT '查询时间', `data_type` varchar(20) NULL DEFAULT NULL COMMENT '数据类型', `point_no` varchar(20) NULL DEFAULT NULL COMMENT '异常点位编号', `point_name` varchar(20) NULL DEFAULT NULL COMMENT '异常点位名称', - `ex_date` datetime NULL DEFAULT NULL COMMENT '异常时间', - `ex_type` varchar(20) NULL DEFAULT NULL COMMENT '异常原因', - PRIMARY KEY (`id`) USING BTREE + `ex_time` datetime NULL DEFAULT NULL COMMENT '异常时间', + `ex_type` varchar(200) NULL DEFAULT NULL COMMENT '异常原因', + `create_date` datetime COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE, + key idx_rel_id (rel_id) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC COMMENT '焦化工序数据异常'; -- ---------------------------- 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 d9ac9c3..c394d54 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 @@ -19,6 +19,7 @@ import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO; import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.GetMapping; @@ -74,6 +75,9 @@ @Autowired private CokingTraceChartService cokingTraceChartService; + @Autowired + private CokingTraceDataService cokingTraceDataService; + @Resource private DataPointApi dataPointApi; @@ -81,38 +85,53 @@ private IndItemApi indItemApi; @GetMapping("/analy-ind/list") - @Operation(summary = "焦化工序-指标分析") + @Operation(summary = "焦化总图-指标分析") public CommonResult<List<CokingAnalyIndDTO>> getCokingAnalyIndList(@RequestParam Map<String, Object> params) { List<CokingAnalyIndEntity> list = cokingAnalyIndService.list(params); return success(ConvertUtils.sourceToTarget(list, CokingAnalyIndDTO.class)); } @GetMapping("/analy-trend/list") - @Operation(summary = "焦化工序-趋势分析") + @Operation(summary = "焦化工序-趋势分析(废弃)") public CommonResult<List<CokingAnalyTrendDTO>> getCokingAnalyTrendList(@RequestParam Map<String, Object> params) { List<CokingAnalyTrendEntity> list = cokingAnalyTrendService.list(params); return success(ConvertUtils.sourceToTarget(list, CokingAnalyTrendDTO.class)); } @GetMapping("/process-child/list") - @Operation(summary = "焦化工序-子工序指标") + @Operation(summary = "焦化总图-子工序指标") public CommonResult<List<CokingProcessChildDTO>> getCokingProcessChildList(@RequestParam Map<String, Object> params) { List<CokingProcessChildEntity> list = cokingProcessChildService.list(params); return success(ConvertUtils.sourceToTarget(list, CokingProcessChildDTO.class)); } @GetMapping("/process-main/list") - @Operation(summary = "焦化工序-主工序指标") + @Operation(summary = "焦化总图-主工序指标") public CommonResult<List<CokingProcessMainDTO>> getCokingProcessMainList(@RequestParam Map<String, Object> params) { List<CokingProcessMainEntity> list = cokingProcessMainService.list(params); return success(ConvertUtils.sourceToTarget(list, CokingProcessMainDTO.class)); } @GetMapping("/prod-day/list") - @Operation(summary = "焦化工序-日生产信息") + @Operation(summary = "焦化总图-日生产信息") public CommonResult<List<CokingProdDayDTO>> getCokingProdDayList(@RequestParam Map<String, Object> params) { List<CokingProdDayEntity> list = cokingProdDayService.list(params); return success(ConvertUtils.sourceToTarget(list, CokingProdDayDTO.class)); + } + + @GetMapping("/ex-data/list") + @Operation(summary = "焦化总图-异常数据") + public CommonResult<List<CokingTraceDataDTO>> getExDataList(@RequestParam Map<String, Object> params) { + String clock = (String) params.get("clock"); + if (StringUtils.isBlank(clock)) { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DAY_OF_YEAR, -1); + clock = DateUtils.format(calendar.getTime(), "yyyy-MM-dd"); + params.put("clock", clock); + } + + List<CokingTraceDataEntity> list = cokingTraceDataService.list(params); + return success(ConvertUtils.sourceToTarget(list, CokingTraceDataDTO.class)); } @@ -125,9 +144,21 @@ @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); + public CommonResult<List<CokingTraceDataDTO>> getAbnormalData(@RequestParam Map<String, Object> params) { + String processType = (String) params.get("processType"); + if (StringUtils.isBlank(processType)) { + return success(new ArrayList<>()); + } + + String clock = (String) params.get("clock"); + if (StringUtils.isBlank(clock)) { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DAY_OF_YEAR, -1); + clock = DateUtils.format(calendar.getTime(), "yyyy-MM-dd"); + params.put("clock", clock); + } + List<CokingTraceDataEntity> list = cokingTraceDataService.list(params); + return success(ConvertUtils.sourceToTarget(list, CokingTraceDataDTO.class)); } @GetMapping("/trace-suggest/list") diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceDataDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceDataDTO.java index f6c4462..80062d2 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceDataDTO.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceDataDTO.java @@ -24,6 +24,15 @@ @Schema(description = "关联ID") private String relId; + @Schema(description = "工序名称") + private String process; + + @Schema(description = "异常对象") + private String exObj; + + @Schema(description = "查询时间") + private String clock; + @Schema(description = "数据类型") private String dataType; @@ -34,7 +43,7 @@ private String pointName; @Schema(description = "异常时间") - private Date exDate; + private Date exTime; @Schema(description = "异常原因") private String exType; diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingTraceDataEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingTraceDataEntity.java index 55d3486..8ce2caf 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingTraceDataEntity.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingTraceDataEntity.java @@ -23,6 +23,21 @@ * 关联ID */ private String relId; + + /** + * 工序名称 + */ + private String process; + + /** + * 异常对象 + */ + private String exObj; + + /** + * 查询时间 + */ + private String clock; /** * 数据类型 */ @@ -38,9 +53,14 @@ /** * 异常时间 */ - private Date exDate; + private Date exTime; /** * 异常原因 */ private String exType; + + /** + * 创建时间 + */ + private Date createDate; } \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingTraceDataService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingTraceDataService.java index b311dae..bbbdaee 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingTraceDataService.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingTraceDataService.java @@ -14,4 +14,6 @@ */ public interface CokingTraceDataService { List<CokingTraceDataEntity> list(Map<String, Object> params); + + void insertList(List<CokingTraceDataEntity> list); } \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDataServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDataServiceImpl.java index 448ea5c..8ebd8fc 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDataServiceImpl.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDataServiceImpl.java @@ -4,6 +4,7 @@ import com.iailab.module.ansteel.coking.dao.CokingTraceDataDao; import com.iailab.module.ansteel.coking.entity.CokingTraceDataEntity; import com.iailab.module.ansteel.coking.service.CokingTraceDataService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,6 +25,18 @@ @Override public List<CokingTraceDataEntity> list(Map<String, Object> params) { - return cokingTraceDataDao.selectList(new QueryWrapper<>()); + String processType = (String) params.get("processType"); + String clock = (String) params.get("clock"); + QueryWrapper<CokingTraceDataEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(StringUtils.isNotBlank(processType), "ex_obj", processType) + .eq(StringUtils.isNotBlank(clock), "clock", clock) + .orderByAsc("create_date"); + + return cokingTraceDataDao.selectList(queryWrapper); + } + + @Override + public void insertList(List<CokingTraceDataEntity> list) { + cokingTraceDataDao.insert(list); } } \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java index 0f79733..88d6168 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java @@ -49,6 +49,8 @@ private CokingTraceChartService cokingTraceChartService; @Resource private CokingTraceSuggestService cokingTraceSuggestService; + @Resource + private CokingTraceDataService cokingTraceDataService; @Override public void run(String processTypes) { @@ -137,7 +139,8 @@ // 指标运行趋势 List<CokingProcessConfEntity> indRunTrend = list.stream().filter(e -> e.getInfoType().equals("1")).collect(Collectors.toList()); List<CokingTraceChartEntity> cokingTraceChartEntityList = new ArrayList<>(indRunTrend.size()); - List<CokingTraceSuggestEntity> suggestEntitieList = new ArrayList<>(); + // List<CokingTraceSuggestEntity> suggestEntitieList = new ArrayList<>(); + List<CokingTraceDataEntity> exDatalist = new ArrayList<>(indRunTrend.size()); indRunTrend.forEach(e -> { CokingTraceChartEntity cokingTraceChartEntity = new CokingTraceChartEntity(); cokingTraceChartEntity.setRelId(relId); @@ -158,10 +161,11 @@ cokingTraceChartEntityList.add(cokingTraceChartEntity); // 异常数据处理 - suggestEntitieList.addAll(handleAbnormalData(e, cokingTraceChartEntity.getStartTime(), cokingTraceChartEntity.getEndTime(),relId,clock)); + exDatalist.addAll(handleAbnormalData(e, cokingTraceChartEntity.getStartTime(), cokingTraceChartEntity.getEndTime(),relId,clock)); }); cokingTraceChartService.insert(cokingTraceChartEntityList); - cokingTraceSuggestService.insert(suggestEntitieList); + // cokingTraceSuggestService.insert(suggestEntitieList); + cokingTraceDataService.insertList(exDatalist); } } catch (Exception ex) { @@ -171,8 +175,8 @@ } - private List<CokingTraceSuggestEntity> handleAbnormalData(CokingProcessConfEntity e, Date startTime, Date endTime, String relId, String clock) { - List<CokingTraceSuggestEntity> suggestEntities = new ArrayList<>(); + private List<CokingTraceDataEntity> handleAbnormalData(CokingProcessConfEntity e, Date startTime, Date endTime, String relId, String clock) { + List<CokingTraceDataEntity> suggestEntities = new ArrayList<>(); switch (ProcessConfDataTypeEnum.getEumByCode(e.getDataType())) { case DATAPOINT: ApiPointValueQueryDTO queryDTO = new ApiPointValueQueryDTO(); @@ -198,7 +202,15 @@ content = DateUtils.format(calendar.getTime()) + " " + e.getIndName() + "数据异常(无数据)"; } if (StringUtils.isNotBlank(content)) { - suggestEntities.add(new CokingTraceSuggestEntity(UUID.randomUUID().toString(),relId,ProcessTypeEnum.getEumByCode(e.getIndType()).getReportName(),e.getIndType()+"_AD",clock,content,new Date())); + CokingTraceDataEntity ctd = new CokingTraceDataEntity(); + ctd.setId(UUID.randomUUID().toString()); + ctd.setRelId(relId); + ctd.setProcess(ProcessTypeEnum.getEumByCode(e.getIndType()).getReportName()); + ctd.setClock(clock); + ctd.setExObj(e.getIndType()+"_AD"); + ctd.setExTime(calendar.getTime()); + ctd.setExType(content); + suggestEntities.add(ctd); } calendar.add(Calendar.DAY_OF_YEAR,1); } @@ -228,7 +240,16 @@ content = time + " " + e.getIndName() + "数据异常(无数据)"; } if (StringUtils.isNotBlank(content)) { - suggestEntities.add(new CokingTraceSuggestEntity(UUID.randomUUID().toString(),relId,ProcessTypeEnum.getEumByCode(e.getIndType()).getReportName(),e.getIndType()+"_AD",clock,content,new Date())); + CokingTraceDataEntity ctd = new CokingTraceDataEntity(); + ctd.setId(UUID.randomUUID().toString()); + ctd.setRelId(relId); + ctd.setProcess(ProcessTypeEnum.getEumByCode(e.getIndType()).getReportName()); + ctd.setClock(clock); + ctd.setExObj(e.getIndType()+"_AD"); + ctd.setExTime(intCalendar.getTime()); + ctd.setExType(content); + suggestEntities.add(ctd); + // suggestEntities.add(new CokingTraceSuggestEntity(UUID.randomUUID().toString(),relId,ProcessTypeEnum.getEumByCode(e.getIndType()).getReportName(),e.getIndType()+"_AD",clock,content,new Date())); } intCalendar.add(Calendar.DAY_OF_YEAR,1); } -- Gitblit v1.9.3