From b465d9c6020d70fd8c91690fdff8de71665b516b Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期一, 21 四月 2025 17:33:47 +0800 Subject: [PATCH] 焦化 概况-整体情况数据定时任务+查询 --- ansteel-biz/db/mysql.sql | 58 ++--- ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java | 12 ansteel-biz/src/main/resources/application.yaml | 6 /dev/null | 11 - ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dao/CokingOverviewDao.java | 14 + ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingOverviewDTO.java | 93 +++++++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/SubProcessTypeEnum.java | 47 ++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/ProcessTypeEnum.java | 31 +- ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingOverviewEntity.java | 87 ++++++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingOverviewService.java | 19 + ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java | 137 +++++++++++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingOverviewServiceImpl.java | 82 ++++++++ doc/鞍钢数据接口文档_dev_deng.doc | 0 13 files changed, 525 insertions(+), 72 deletions(-) diff --git a/ansteel-biz/db/mysql.sql b/ansteel-biz/db/mysql.sql index d7c0ce3..3f279dd 100644 --- a/ansteel-biz/db/mysql.sql +++ b/ansteel-biz/db/mysql.sql @@ -561,41 +561,29 @@ -- ---------------------------- -- 焦化工序-能耗整体情况 -- ---------------------------- -DROP TABLE IF EXISTS `t_coking_trace_energy`; -CREATE TABLE `t_coking_trace_energy` -( - `id` varchar(36) NOT NULL COMMENT 'id', - `rel_id` varchar(36) NULL DEFAULT NULL COMMENT '关联ID', - `type` varchar(20) NULL DEFAULT NULL COMMENT '类型', - `clock` varchar(20) NULL DEFAULT NULL COMMENT '查询时间', - `steam_p` decimal(10, 4) NULL DEFAULT NULL COMMENT '蒸汽发生', - `steam_c` decimal(10, 4) NULL DEFAULT NULL COMMENT '蒸汽消耗', - `gas_p` decimal(10, 4) NULL DEFAULT NULL COMMENT '煤气发生', - `gas_c` decimal(10, 4) NULL DEFAULT NULL COMMENT '煤气消耗', - `power_c` decimal(10, 4) NULL DEFAULT NULL 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 '焦化工序能耗整体情况'; - - --- ---------------------------- --- 焦化工序-能耗整体情况 --- ---------------------------- -DROP TABLE IF EXISTS `t_coking_trace_energy`; -CREATE TABLE `t_coking_trace_energy` -( - `id` varchar(36) NOT NULL COMMENT 'id', - `rel_id` varchar(36) NULL DEFAULT NULL COMMENT '关联ID', - `type` varchar(20) NULL DEFAULT NULL COMMENT '类型', - `clock` varchar(20) NULL DEFAULT NULL COMMENT '查询时间', - `steam_p` decimal(10, 4) NULL DEFAULT NULL COMMENT '蒸汽发生', - `steam_c` decimal(10, 4) NULL DEFAULT NULL COMMENT '蒸汽消耗', - `gas_p` decimal(10, 4) NULL DEFAULT NULL COMMENT '煤气发生', - `gas_c` decimal(10, 4) NULL DEFAULT NULL COMMENT '煤气消耗', - `power_c` decimal(10, 4) NULL DEFAULT NULL 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 '焦化工序能耗整体情况'; +DROP TABLE IF EXISTS `t_coking_overview`; +CREATE TABLE `t_coking_overview` ( + `id` varchar(36) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'id', + `rel_id` varchar(36) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '关联ID', + `process_type` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '工序类型', + `sub_process_type` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '子工序类型', + `clock` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '查询时间', + `steam_p` decimal(10,4) DEFAULT NULL COMMENT '蒸汽发生', + `steam_c` decimal(10,4) DEFAULT NULL COMMENT '蒸汽消耗', + `steam_v` decimal(10,4) DEFAULT NULL COMMENT '蒸汽量', + `gas_p` decimal(10,4) DEFAULT NULL COMMENT '煤气发生', + `gas_c` decimal(10,4) DEFAULT NULL COMMENT '煤气消耗', + `power_c` decimal(10,4) DEFAULT NULL COMMENT '电力消耗', + `idle_time` decimal(10,4) DEFAULT NULL COMMENT '空转时间', + `bfg_c` decimal(10,4) DEFAULT NULL COMMENT 'BFG消耗', + `cog_p` decimal(10,4) DEFAULT NULL COMMENT 'COG回收', + `cog_c` decimal(10,4) DEFAULT NULL COMMENT 'COG消耗', + `bfg_only_c` decimal(10,4) DEFAULT NULL COMMENT 'BFG单耗', + `cog_only_c` decimal(10,4) DEFAULT NULL COMMENT 'COG单耗', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `process_type_clock_unique` (`process_type`,`sub_process_type`,`clock`), + KEY `idx_rel_id` (`rel_id`) +) ENGINE=InnoDB DEFAULT CHARSET=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 e945f45..4ffecf8 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 @@ -3,7 +3,7 @@ import com.iailab.framework.common.pojo.CommonResult; 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.CokingOverviewDTO; import com.iailab.module.ansteel.coking.dto.CokingTraceIndDTO; import com.iailab.module.ansteel.coking.dto.CokingTraceSuggestDTO; import com.iailab.module.ansteel.coking.entity.*; @@ -49,7 +49,7 @@ private CokingProdDayService cokingProdDayService; @Autowired - private CokingTraceEnergyService cokingTraceEnergyService; + private CokingOverviewService cokingOverviewService; @Autowired private CokingTraceSuggestService cokingTraceSuggestService; @@ -96,10 +96,10 @@ } - @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); + @GetMapping("/overview/list") + @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); } diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dao/CokingOverviewDao.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dao/CokingOverviewDao.java new file mode 100644 index 0000000..3715a83 --- /dev/null +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dao/CokingOverviewDao.java @@ -0,0 +1,14 @@ +package com.iailab.module.ansteel.coking.dao; + +import com.iailab.framework.common.dao.BaseDao; +import com.iailab.module.ansteel.coking.entity.CokingOverviewEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @description: + * @author: dzd + * @date: 2025/4/21 13:56 + **/ +@Mapper +public interface CokingOverviewDao extends BaseDao<CokingOverviewEntity> { +} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dao/CokingTraceEnergyDao.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dao/CokingTraceEnergyDao.java deleted file mode 100644 index d63984c..0000000 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dao/CokingTraceEnergyDao.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.iailab.module.ansteel.coking.dao; - -import com.iailab.framework.common.dao.BaseDao; -import com.iailab.module.ansteel.coking.entity.CokingTraceEnergyEntity; -import org.apache.ibatis.annotations.Mapper; - -/** - * 焦化工序能耗整体情况 - * - * @author lirm ${email} - * @since 1.0.0 2025-04-16 - */ -@Mapper -public interface CokingTraceEnergyDao extends BaseDao<CokingTraceEnergyEntity> { - -} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingOverviewDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingOverviewDTO.java new file mode 100644 index 0000000..5955cfc --- /dev/null +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingOverviewDTO.java @@ -0,0 +1,93 @@ +package com.iailab.module.ansteel.coking.dto; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @description: 工序概况情况 + * @author: dzd + * @date: 2025/4/21 11:50 + **/ +@Data +public class CokingOverviewDTO { + + @TableId(type = IdType.ASSIGN_UUID) + private String id; + /** + * 关联ID + */ + private String relId; + /** + * 工序类型 + */ + private String processType; + /** + * 工序类型名称 + */ + private String processTypeName; + /** + * 子工序类型 + */ + private String subProcessType; + /** + * 子工序类型名称 + */ + private String subProcessTypeName; + /** + * 查询时间 + */ + private String clock; + /** + * 蒸汽发生 + */ + private BigDecimal steamP; + /** + * 蒸汽消耗 + */ + private BigDecimal steamC; + /** + * 蒸汽量 + */ + private BigDecimal steamV; + /** + * 煤气发生 + */ + private BigDecimal gasP; + /** + * 煤气消耗 + */ + private BigDecimal gasC; + /** + * 电力消耗 + */ + private BigDecimal powerC; + /** + * 空转时间 + */ + private BigDecimal idleTime; + /** + * BFG消耗 + */ + private BigDecimal bfgC; + /** + * cog回收 + */ + private BigDecimal cogP; + /** + * cog消耗 + */ + private BigDecimal cogC; + + /** + * BFG单耗 + */ + private BigDecimal bfgOnlyC; + + /** + * cog单耗 + */ + private BigDecimal cogOnlyC; +} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceEnergyDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceEnergyDTO.java deleted file mode 100644 index dbb6bf2..0000000 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceEnergyDTO.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.iailab.module.ansteel.coking.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; - -/** - * 焦化工序能耗整体情况 - * - * @author lirm ${email} - * @since 1.0.0 2025-04-16 - */ -@Data -@Schema(description = "焦化工序能耗整体情况") -public class CokingTraceEnergyDTO implements Serializable { - private static final long serialVersionUID = 1L; - - @Schema(description = "id") - private String id; - - @Schema(description = "关联ID") - private String relId; - - @Schema(description = "类型") - private String type; - - @Schema(description = "查询时间") - private String clock; - - @Schema(description = "蒸汽发生") - private BigDecimal steamP; - - @Schema(description = "蒸汽消耗") - private BigDecimal steamC; - - @Schema(description = "煤气发生") - private BigDecimal gasP; - - @Schema(description = "煤气消耗") - private BigDecimal gasC; - - @Schema(description = "电力消耗") - private BigDecimal powerC; - - -} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingOverviewEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingOverviewEntity.java new file mode 100644 index 0000000..15a84a7 --- /dev/null +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingOverviewEntity.java @@ -0,0 +1,87 @@ +package com.iailab.module.ansteel.coking.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @description: 工序概况情况 + * @author: dzd + * @date: 2025/4/21 11:50 + **/ +@Data +@TableName("t_coking_overview") +public class CokingOverviewEntity { + + @TableId(type = IdType.ASSIGN_UUID) + private String id; + /** + * 关联ID + */ + private String relId; + /** + * 工序类型 + */ + private String processType; + /** + * 子工序类型 + */ + private String subProcessType; + /** + * 查询时间 + */ + private String clock; + /** + * 蒸汽发生 + */ + private BigDecimal steamP; + /** + * 蒸汽消耗 + */ + private BigDecimal steamC; + /** + * 蒸汽量 + */ + private BigDecimal steamV; + /** + * 煤气发生 + */ + private BigDecimal gasP; + /** + * 煤气消耗 + */ + private BigDecimal gasC; + /** + * 电力消耗 + */ + private BigDecimal powerC; + /** + * 空转时间 + */ + private BigDecimal idleTime; + /** + * BFG消耗 + */ + private BigDecimal bfgC; + /** + * COG回收 + */ + private BigDecimal cogP; + /** + * COG消耗 + */ + private BigDecimal cogC; + + /** + * BFG单耗 + */ + private BigDecimal bfgOnlyC; + + /** + * cog单耗 + */ + private BigDecimal cogOnlyC; +} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingTraceEnergyEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingTraceEnergyEntity.java deleted file mode 100644 index 33c00e2..0000000 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingTraceEnergyEntity.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.iailab.module.ansteel.coking.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.math.BigDecimal; -import java.util.Date; - -/** - * 焦化工序能耗整体情况 - * - * @author lirm ${email} - * @since 1.0.0 2025-04-16 - */ -@Data -@TableName("t_coking_trace_energy") -public class CokingTraceEnergyEntity { - - @TableId(type = IdType.ASSIGN_UUID) - private String id; - /** - * 关联ID - */ - private String relId; - /** - * 类型 - */ - private String type; - /** - * 查询时间 - */ - private String clock; - /** - * 蒸汽发生 - */ - private BigDecimal steamP; - /** - * 蒸汽消耗 - */ - private BigDecimal steamC; - /** - * 煤气发生 - */ - private BigDecimal gasP; - /** - * 煤气消耗 - */ - private BigDecimal gasC; - /** - * 电力消耗 - */ - private BigDecimal powerC; -} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingOverviewService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingOverviewService.java new file mode 100644 index 0000000..4bf8398 --- /dev/null +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingOverviewService.java @@ -0,0 +1,19 @@ +package com.iailab.module.ansteel.coking.service; + + +import com.iailab.module.ansteel.coking.dto.CokingOverviewDTO; +import com.iailab.module.ansteel.coking.entity.CokingOverviewEntity; + +import java.util.List; +import java.util.Map; + +/** + * @description: 概况 + * @author: dzd + * @date: 2025/4/21 10:15 + **/ +public interface CokingOverviewService { + Map<String,List<CokingOverviewDTO>> list(Map<String, Object> params); + + void insert(List<CokingOverviewEntity> result); +} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingTraceEnergyService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingTraceEnergyService.java deleted file mode 100644 index 4c65e9c..0000000 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingTraceEnergyService.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.iailab.module.ansteel.coking.service; - - -import com.iailab.module.ansteel.coking.dto.CokingTraceEnergyDTO; -import com.iailab.module.ansteel.coking.entity.CokingTraceEnergyEntity; - -import java.util.List; -import java.util.Map; - -/** - * 焦化工序能耗整体情况 - * - * @author lirm ${email} - * @since 1.0.0 2025-04-16 - */ -public interface CokingTraceEnergyService { - Map<String,List<CokingTraceEnergyDTO>> list(Map<String, Object> params); -} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingOverviewServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingOverviewServiceImpl.java new file mode 100644 index 0000000..ce3acbe --- /dev/null +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingOverviewServiceImpl.java @@ -0,0 +1,82 @@ +package com.iailab.module.ansteel.coking.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.util.date.DateUtils; +import com.iailab.framework.common.util.object.ConvertUtils; +import com.iailab.module.ansteel.coking.dao.CokingOverviewDao; +import com.iailab.module.ansteel.coking.dto.CokingOverviewDTO; +import com.iailab.module.ansteel.coking.entity.CokingOverviewEntity; +import com.iailab.module.ansteel.coking.service.CokingOverviewService; +import com.iailab.module.ansteel.common.enums.ProcessTypeEnum; +import com.iailab.module.ansteel.common.enums.SubProcessTypeEnum; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +@Slf4j +@Service +public class CokingOverviewServiceImpl implements CokingOverviewService { + @Resource + private CokingOverviewDao cokingOverviewDao; + + @Override + public Map<String, List<CokingOverviewDTO>> list(Map<String, Object> params) { + Map<String,List<CokingOverviewDTO>> result = new HashMap<>(2); + + String processType = (String) params.get("processType"); + if (StringUtils.isBlank(processType)) { + return result; + } + + String clock = (String) params.get("clock"); + String month; + if (StringUtils.isBlank(clock)) { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DAY_OF_YEAR, -1); + clock = DateUtils.format(calendar.getTime(), "yyyy-MM-dd"); + month = DateUtils.format(calendar.getTime(), "yyyy-MM"); + }else { + Date parse = DateUtils.parse(clock, "yyyy-MM-dd"); + month = DateUtils.format(parse, "yyyy-MM"); + } + + // 天数据 + QueryWrapper<CokingOverviewEntity> queryWrapperDay = new QueryWrapper<>(); + queryWrapperDay.eq("process_type", processType); + queryWrapperDay.eq("clock", clock); + List<CokingOverviewEntity> dayList = cokingOverviewDao.selectList(queryWrapperDay); + List<CokingOverviewDTO> dayDTOList = ConvertUtils.sourceToTarget(dayList, CokingOverviewDTO.class); + String processName = ProcessTypeEnum.getEumByCode(processType).getProcess(); + dayDTOList.forEach(e -> { + e.setProcessTypeName(processName); + e.setSubProcessTypeName(SubProcessTypeEnum.getEumByCode(e.getSubProcessType()).getProcess()); + }); + result.put("day", dayDTOList); + + // 月数据 + QueryWrapper<CokingOverviewEntity> queryWrapperMonth = new QueryWrapper<>(); + queryWrapperMonth.eq("process_type", processType); + queryWrapperMonth.like("clock", month); + queryWrapperMonth.select("sub_process_type","SUM(steam_p) as steam_p","SUM(steam_c) as steam_c","SUM(steam_v) as steam_v","SUM(gas_p) as gas_p","SUM(gas_c) as gas_c","SUM(power_c) as power_c","SUM(idle_time) as idle_time","SUM(bfg_c) as bfg_c","SUM(cog_p) as cog_p","SUM(cog_c) as cog_c","SUM(bfg_only_c) as bfg_only_c","SUM(cog_only_c) as cog_only_c") + .groupBy("sub_process_type"); + + List<CokingOverviewEntity> monthList = cokingOverviewDao.selectList(queryWrapperMonth); + monthList.forEach(e -> e.setClock(month)); + List<CokingOverviewDTO> monthDTOList = ConvertUtils.sourceToTarget(monthList, CokingOverviewDTO.class); + monthDTOList.forEach(e -> { + e.setProcessTypeName(processName); + e.setSubProcessTypeName(SubProcessTypeEnum.getEumByCode(e.getSubProcessType()).getProcess()); + }); + result.put("month", monthDTOList); + + return result; + } + + @Override + public void insert(List<CokingOverviewEntity> result) { + cokingOverviewDao.insert(result); + } +} diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceEnergyServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceEnergyServiceImpl.java deleted file mode 100644 index d3da0e8..0000000 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceEnergyServiceImpl.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.iailab.module.ansteel.coking.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.iailab.framework.common.util.date.DateUtils; -import com.iailab.framework.common.util.object.ConvertUtils; -import com.iailab.module.ansteel.coking.dao.CokingTraceEnergyDao; -import com.iailab.module.ansteel.coking.dto.CokingTraceEnergyDTO; -import com.iailab.module.ansteel.coking.entity.CokingProdDayEntity; -import com.iailab.module.ansteel.coking.entity.CokingTraceEnergyEntity; -import com.iailab.module.ansteel.coking.service.CokingTraceEnergyService; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.*; - -import static com.iailab.framework.common.pojo.CommonResult.success; - -/** - * 焦化工序能耗整体情况 - * - * @author lirm ${email} - * @since 1.0.0 2025-04-16 - */ -@Service -public class CokingTraceEnergyServiceImpl implements CokingTraceEnergyService { - - @Autowired - private CokingTraceEnergyDao cokingTraceEnergyDao; - - @Override - public Map<String,List<CokingTraceEnergyDTO>> list(Map<String, Object> params) { - Map<String,List<CokingTraceEnergyDTO>> result = new HashMap<>(2); - - String clock = (String) params.get("clock"); - String month; - if (StringUtils.isBlank(clock)) { - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DAY_OF_YEAR, -1); - clock = DateUtils.format(calendar.getTime(), "yyyy-MM-dd"); - month = DateUtils.format(calendar.getTime(), "yyyy-MM"); - }else { - Date parse = DateUtils.parse(clock, "yyyy-MM-dd"); - month = DateUtils.format(parse, "yyyy-MM"); - } - - // 天数据 - QueryWrapper<CokingTraceEnergyEntity> queryWrapperDay = new QueryWrapper<>(); - queryWrapperDay.eq("clock", clock); - List<CokingTraceEnergyEntity> dayList = cokingTraceEnergyDao.selectList(queryWrapperDay); - result.put("day",ConvertUtils.sourceToTarget(dayList,CokingTraceEnergyDTO.class)); - - // 月数据 - QueryWrapper<CokingTraceEnergyEntity> queryWrapperMonth = new QueryWrapper<>(); - queryWrapperMonth.like("clock", month); - queryWrapperMonth.select("type","SUM(steam_p) as steam_p","SUM(steam_c) as steam_c","SUM(gas_p) as gas_p","SUM(gas_c) as gas_c","SUM(power_c) as power_c") - .groupBy("type"); - - List<CokingTraceEnergyEntity> monthList = cokingTraceEnergyDao.selectList(queryWrapperMonth); - monthList.forEach(e -> e.setClock(month)); - result.put("month",ConvertUtils.sourceToTarget(monthList,CokingTraceEnergyDTO.class)); - - return result; - } -} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/ProcessTypeEnum.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/ProcessTypeEnum.java index 87c231a..2f1695b 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/ProcessTypeEnum.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/ProcessTypeEnum.java @@ -4,35 +4,32 @@ import lombok.Getter; /** - * @description: 工序 + * @description: 工序类型 * @author: dzd - * @date: 2025/4/17 15:58 + * @date: 2025/4/21 10:17 **/ @Getter @AllArgsConstructor public enum ProcessTypeEnum { - GL("GL", "鼓冷"), - LA("LA", "硫铵"), - CB("CB", "粗苯"), - TL("TL", "脱硫"), - GXJ_1("GXJ_1", "1#干熄焦"), - GXJ_2("GXJ_2", "2#干熄焦"), - GXJ_3("GXJ_3", "3#干熄焦"), - ALL("ALL", "总体"); + BM("bm", "备煤", "备煤工序-概况"), + LJ("lj", "炼焦", "炼焦工序-概况"), + GXJ("gxj", "干熄焦", "干熄焦工序-概况"), + HC("hc", "化产", "化产工序-概况"), + MQ("mq", "煤气", "焦化能源介质概况-煤气"), + ZQ("zq", "蒸汽", "焦化能源介质概况-蒸汽"), + DL("dl", "电力", "焦化能源介质概况-电力"), + UNKNOW("unkuow", "未知", "未知"); private String code; - private String desc; + private String process; + private String reportName; - public static ProcessTypeEnum getEumByCode(Integer code) { - if (code == null) { - return null; - } - + public static ProcessTypeEnum getEumByCode(String code) { for (ProcessTypeEnum statusEnum : ProcessTypeEnum.values()) { if (statusEnum.getCode().equals(code)) { return statusEnum; } } - return null; + return UNKNOW; } } \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/SubProcessTypeEnum.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/SubProcessTypeEnum.java new file mode 100644 index 0000000..3045d35 --- /dev/null +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/SubProcessTypeEnum.java @@ -0,0 +1,47 @@ +package com.iailab.module.ansteel.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @description: 子工序类型 + * @author: dzd + * @date: 2025/4/17 15:58 + **/ +@Getter +@AllArgsConstructor +public enum SubProcessTypeEnum { + YFSJ("YFSJ", "预粉碎机"), + FSJ("FSJ", "粉碎机"), + PSJ("PSJ", "破碎机"), + JL_12("JL_12", "1#2#焦炉"), + JL_34("JL_34", "3#4#焦炉"), + GL("GL", "鼓冷"), + LA("LA", "硫铵"), + CB("CB", "粗苯"), + TL("TL", "脱硫"), + GXJ_1("GXJ_1", "1#干熄焦"), + GXJ_2("GXJ_2", "2#干熄焦"), + GXJ_3("GXJ_3", "3#干熄焦"), + BMGX("BMGX", "备煤工序"), + JLLQ("JLLQ", "焦炉炉区"), + GXJ("GXJ", "干熄焦"), + HCHS("HCHS", "化产回收"), + ZT("ZT", "总体"); + private String code; + private String process; + + public static SubProcessTypeEnum getEumByCode(String code) { + if (code == null) { + return null; + } + + for (SubProcessTypeEnum statusEnum : SubProcessTypeEnum.values()) { + if (statusEnum.getCode().equals(code)) { + return statusEnum; + } + } + return null; + } + +} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview0Task.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview0Task.java deleted file mode 100644 index b216777..0000000 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview0Task.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.iailab.module.ansteel.job.task; - -/** - * 干熄焦工序-概况 - * - * @author PanZhibao - * @Description - * @createTime 2025年04月21日 - */ -public class RunCokingOverview0Task { -} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview1Task.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview1Task.java deleted file mode 100644 index 318fa22..0000000 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview1Task.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.iailab.module.ansteel.job.task; - -/** - * 化产工序-概况 - * - * @author PanZhibao - * @Description - * @createTime 2025年04月21日 - */ -public class RunCokingOverview1Task { -} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview2Task.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview2Task.java deleted file mode 100644 index 0dd8f99..0000000 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview2Task.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.iailab.module.ansteel.job.task; - -/** - * 焦化能源介质概况-煤气 - * - * @author PanZhibao - * @Description - * @createTime 2025年04月21日 - */ -public class RunCokingOverview2Task { -} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview3Task.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview3Task.java deleted file mode 100644 index c5eb429..0000000 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview3Task.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.iailab.module.ansteel.job.task; - -/** - * 焦化能源介质概况-蒸汽 - * - * @author PanZhibao - * @Description - * @createTime 2025年04月21日 - */ -public class RunCokingOverview3Task { -} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview4Task.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview4Task.java deleted file mode 100644 index 6d5f423..0000000 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverview4Task.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.iailab.module.ansteel.job.task; - -/** - * 焦化能源介质概况-电力 - * - * @author PanZhibao - * @Description - * @createTime 2025年04月21日 - */ -public class RunCokingOverview4Task { -} \ 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 new file mode 100644 index 0000000..0b9df33 --- /dev/null +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java @@ -0,0 +1,137 @@ +package com.iailab.module.ansteel.job.task; + +import cn.hutool.core.bean.BeanUtil; +import com.iailab.framework.common.util.date.DateUtils; +import com.iailab.module.ansteel.coking.entity.CokingOverviewEntity; +import com.iailab.module.ansteel.coking.entity.CokingProcessConfEntity; +import com.iailab.module.ansteel.coking.entity.CokingTraceReportEntity; +import com.iailab.module.ansteel.coking.service.CokingOverviewService; +import com.iailab.module.ansteel.coking.service.CokingProcessConfService; +import com.iailab.module.ansteel.coking.service.CokingTraceReportService; +import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum; +import com.iailab.module.ansteel.common.enums.ProcessTypeEnum; +import com.iailab.module.data.api.ind.IndItemApi; +import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO; +import com.iailab.module.data.api.point.DataPointApi; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 备煤工序-概况 + * + * @author PanZhibao + * @Description + * @createTime 2025年04月21日 + */ +@Slf4j +@Component("runCokingOverviewTask") +public class RunCokingOverviewTask implements ITask{ + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Resource + private CokingProcessConfService cokingProcessConfService; + @Resource + private CokingOverviewService cokingOverviewService; + @Resource + private DataPointApi dataPointApi; + @Resource + private IndItemApi indItemApi; + @Resource + private CokingTraceReportService cokingTraceReportService; + + @Override + public void run(String processTypes) { + logger.info("runCokingOverviewTask,参数为:{}", processTypes); + try { + + String[] split = processTypes.split(","); + + for (String processType : split) { + CokingProcessConfEntity queryParams = new CokingProcessConfEntity(); + queryParams.setIndType(processType); + List<CokingProcessConfEntity> list = cokingProcessConfService.list(queryParams); + if (CollectionUtils.isEmpty(list)) { + logger.info("ConfLis is Empty"); + return; + } + + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.MILLISECOND, 0); + calendar.set(Calendar.SECOND, 0); + calendar.add(Calendar.DAY_OF_YEAR, -1); + String clock = DateUtils.format(calendar.getTime(), DateUtils.FORMAT_YEAR_MONTH_DAY); + // 插入溯源报告 + CokingTraceReportEntity reportEntity = new CokingTraceReportEntity(); + String relId = UUID.randomUUID().toString(); + reportEntity.setId(relId); + reportEntity.setProcess(ProcessTypeEnum.getEumByCode(processType).getProcess()); + reportEntity.setReportName(ProcessTypeEnum.getEumByCode(processType).getReportName()); + reportEntity.setAnalyDate(clock); + reportEntity.setClock(clock); + cokingTraceReportService.save(reportEntity); + + // 按照子工序类型分组 + Map<String, List<CokingProcessConfEntity>> processTypeMap = list.stream().collect(Collectors.groupingBy(CokingProcessConfEntity::getExt2)); + // 结果 <子工序类型,<数据key,数据value>> + List<CokingOverviewEntity> result = new ArrayList<>(processTypeMap.size()); + + for (Map.Entry<String, List<CokingProcessConfEntity>> entry : processTypeMap.entrySet()) { + Map<String,Double> values = new HashMap<>(entry.getValue().size()); + for (CokingProcessConfEntity conf : entry.getValue()) { + if (StringUtils.isBlank(conf.getDataType())) { + logger.info("DataType is Empty"); + continue; + } + if (StringUtils.isBlank(conf.getPointNo())) { + logger.info("PointNo is Empty"); + continue; + } + Double value = 0.0; + switch (ProcessConfDataTypeEnum.getEumByCode(conf.getDataType())) { + case DATAPOINT: + List<String> points = new ArrayList<>(); + points.add(conf.getPointNo()); + Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points); + value = Double.valueOf(pointsRealValue.get(conf.getPointNo()).toString()); + break; + case IND: + List<ApiIndItemValueDTO> indValues = indItemApi.queryIndItemDefaultValue(conf.getPointNo()); + if (!CollectionUtils.isEmpty(indValues)) { + value = Double.valueOf(indValues.get(indValues.size() - 1).getDataValue().toString()); + } + break; + case MODEL: + break; + default: + break; + + } + values.put(conf.getExt1(),value); + } + CokingOverviewEntity overviewEntity = new CokingOverviewEntity(); + BeanUtil.fillBeanWithMap(values,overviewEntity,true); + overviewEntity.setId(UUID.randomUUID().toString()); + overviewEntity.setRelId(relId); + overviewEntity.setProcessType(processType); + overviewEntity.setSubProcessType(entry.getKey()); + overviewEntity.setClock(clock); + result.add(overviewEntity); + } + cokingOverviewService.insert(result); + } + } catch (Exception ex) { + logger.error("runCokingOverviewTask运行异常"); + ex.printStackTrace(); + } + logger.info("runCokingOverviewTask运行完成"); + + } +} \ No newline at end of file diff --git a/ansteel-biz/src/main/resources/application.yaml b/ansteel-biz/src/main/resources/application.yaml index 50f43db..407f6a3 100644 --- a/ansteel-biz/src/main/resources/application.yaml +++ b/ansteel-biz/src/main/resources/application.yaml @@ -4,7 +4,7 @@ name: ansteel-server profiles: - active: test + active: dev cloud: nacos: @@ -169,14 +169,14 @@ - t_coking_trace_conf - t_coking_trace_data - t_coking_trace_deviation - - t_coking_trace_energy - t_coking_trace_report - t_coking_trace_suggest + - t_coking_overview - t_coking_trace_ind swagger: title: 鞍钢鲅鱼圈能源管控系统 description: 鞍钢鲅鱼圈能源管控系统 version: ${iailab.info.version} - log-path: D:\DLUT\ansteel + log-path: . debug: false \ No newline at end of file diff --git "a/doc/\351\236\215\351\222\242\346\225\260\346\215\256\346\216\245\345\217\243\346\226\207\346\241\243_dev_deng.doc" "b/doc/\351\236\215\351\222\242\346\225\260\346\215\256\346\216\245\345\217\243\346\226\207\346\241\243_dev_deng.doc" index a459c73..ec302e2 100644 --- "a/doc/\351\236\215\351\222\242\346\225\260\346\215\256\346\216\245\345\217\243\346\226\207\346\241\243_dev_deng.doc" +++ "b/doc/\351\236\215\351\222\242\346\225\260\346\215\256\346\216\245\345\217\243\346\226\207\346\241\243_dev_deng.doc" Binary files differ -- Gitblit v1.9.3