鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
2 天以前 d185f87b74ae43ed649bcec3ea9fcb3bad6e428a
焦化总图-异常数据
已修改7个文件
143 ■■■■ 文件已修改
ansteel-biz/db/mysql.sql 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceDataDTO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingTraceDataEntity.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingTraceDataService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDataServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 '焦化工序数据异常';
-- ----------------------------
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")
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;
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;
}
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);
}
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);
    }
}
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);
                }