ansteel-biz/db/mysql.sql
@@ -721,4 +721,28 @@ `create_date` datetime DEFAULT NULL COMMENT '创建时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_rel_id` (`rel_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='焦化工序概况指标数据结果'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='焦化工序概况指标数据结果'; -- ---------------------------- -- 电力下拉关系表 -- ---------------------------- CREATE TABLE `t_power_net_dropdown` ( `id` varchar(36) NOT NULL, `p_code` varchar(50) DEFAULT NULL COMMENT '父编码', `group_name` varchar(50) NULL DEFAULT NULL COMMENT '分组名称', `node_code` varchar(50) DEFAULT NULL COMMENT '编码', `node_name` varchar(50) DEFAULT NULL COMMENT '名称', `cur_p` varchar(50) NULL DEFAULT NULL COMMENT '当前有功', `cur_q` varchar(50) NULL DEFAULT NULL COMMENT '当前无功', `cur_cos` varchar(50) NULL DEFAULT NULL COMMENT '当前功率因数', `ext1` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段1', `ext2` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段2', `ext3` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段3', `ext4` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段4', `ext5` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段5', `sort` int DEFAULT NULL COMMENT '排序', PRIMARY KEY (`id`), key uk_p_code (p_code), UNIQUE key uk_node_code (node_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='电力下拉关系表'; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/ModelController.java
@@ -64,8 +64,8 @@ Map<String, String> dynamicSettings = new HashMap<>(); Integer[] xiufengOrder = { reqVO.getBfg(), reqVO.getStart(), reqVO.getNow() == null ? Integer.parseInt(nowH) : reqVO.getNow(), reqVO.getStart(), reqVO.getMins()}; dynamicSettings.put("xiufeng_order", JSONArray.toJSONString(xiufengOrder)); dynamicSettings.put("jiaohua_BFG_down", reqVO.getLimit().toString()); @@ -89,6 +89,8 @@ } Map<String, Object> data = mdkScheduleRespDTO.getResult(); // String fakeData = "{\"houbanAdvice\":[1000.0,150.0,16.97],\"2#LFAdvice\":[1000.0,150.0,11.8],\"1#2#zhiyangAdvice\":[1000.0,150.0,3.0],\"shaojieAdvice\":[1000.0,150.0,8.25],\"CCPPAdvice\":[1000.0,150.0,47.3],\"demand\":[34.4,0.0,3.0,0.0,0.0],\"rezhaAdvice\":[1000.0,150.0,45.86],\"best_total_power\":129.27,\"bfg_gap\":377924.37,\"zhongbanAdvice\":[1000.0,150.0,4.12],\"3#zhiyangAdvice\":[1000.0,150.0,25.3],\"cog_gap\":[800.0,59113.58],\"baihuiAdvice\":[1000.0,150.0,1.0],\"1#LFAdvice\":[1000.0,150.0,15.98]}"; // Map<String, Object> data = JSONObject.parseObject(fakeData, Map.class); switch (TransferTypeEnum.getEumByCode(reqVO.getType())) { case XF: // 高炉休风 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -7,6 +7,7 @@ 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.common.utils.DecimalUtil; import com.iailab.module.ansteel.power.entity.*; import com.iailab.module.ansteel.power.service.*; import com.iailab.module.data.api.point.DataPointApi; @@ -22,10 +23,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -75,6 +73,9 @@ @Autowired private PowerCapacitorDetService powerCapacitorDetService; @Autowired private PowerNetDropdownService powerNetDropdownService; @GetMapping("/net-factor/list") @Operation(summary = "功率因数-电网拓扑") @@ -164,10 +165,39 @@ @GetMapping("/net-factor-dropdown/list") @Operation(summary = "功率因数-电网拓扑下拉列表") public CommonResult<List<PowerNetFactorDropdownDTO>> getPowerNetFactorDropdownList(@RequestParam String nodeCode) { public CommonResult<List<PowerNetDropdownDTO>> getPowerNetFactorDropdownList(@RequestParam String nodeCode) { log.info("nodeCode=" + nodeCode); List<PowerNetFactorEntity> list = powerNetFactorService.listDropdown(nodeCode); return success(ConvertUtils.sourceToTarget(list, PowerNetFactorDropdownDTO.class)); List<PowerNetDropdownDTO> result = new ArrayList<>(); PowerNetFactorEntity entity = powerNetFactorService.getByNodeCode(nodeCode); if (entity == null) { return success(result); } List<PowerNetDropdownEntity> list = new ArrayList<>(); Map<String, Object> params = new HashMap<>(); if ("望铁关口".equals(entity.getGroupName())) { params.put("groupName", entity.getGroupName()); params.put("neNodeName", entity.getNodeName()); } else { params.put("groupName", entity.getNodeName()); } list = powerNetDropdownService.list(params); List<String> points = list.stream().map(item -> { return item.getCurCos(); }).collect(Collectors.toList()); Map<String, Object> pointsRealValue = new HashMap<>(); if (!CollectionUtils.isEmpty(points)) { pointsRealValue = dataPointApi.queryPointsRealValue(points); } for (PowerNetDropdownEntity netDropdown : list) { PowerNetDropdownDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerNetDropdownDTO.class); BigDecimal curCos = BigDecimal.ZERO; if (pointsRealValue.get(netDropdown.getCurCos()) != null) { curCos = new BigDecimal(pointsRealValue.get(netDropdown.getCurCos()).toString()); } dto.setCurCos(curCos); result.add(dto); } return success(result); } /** @@ -336,7 +366,7 @@ @Operation(summary = "功率因数-电容器投退指示灯") public CommonResult<List<PowerCapacitorDetDTO>> getPowerCapacitorDetList(@RequestParam Map<String, Object> params) { List<PowerCapacitorDetEntity> list = powerCapacitorDetService.list(params); log.info("list.size=" + list.size()); log.info("list.size=" + list.size()); List<String> points = list.stream().map(item -> { return item.getPointNo(); }).collect(Collectors.toList()); @@ -429,6 +459,13 @@ if (CollectionUtils.isEmpty(result)) { return success(result); } Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_MONTH, 1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); for (PowerDemandDTO dto : result) { List<String> points = new ArrayList<>(); if (StringUtils.isNotBlank(dto.getCurDemand())) { @@ -437,11 +474,8 @@ if (StringUtils.isNotBlank(dto.getActivePower())) { points.add(dto.getActivePower()); } if (!CollectionUtils.isEmpty(points)) { Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points); if (pointsRealValue.get(dto.getCurDemand()) != null) { dto.setCurDemand(pointsRealValue.get(dto.getCurDemand()).toString()); } @@ -451,31 +485,164 @@ } if (!StringUtils.isEmpty(dto.getMaxDemand())) { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_MONTH, 1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Date start = calendar.getTime(); ApiPointValueQueryDTO apiPointValueQueryDTO = new ApiPointValueQueryDTO(); apiPointValueQueryDTO.setStart(start); apiPointValueQueryDTO.setEnd(new Date()); apiPointValueQueryDTO.setPointNo(dto.getMaxDemand()); List<ApiPointValueDTO> monthValues = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO); double max = 0; for (int i = 0; i < monthValues.size() - 1; i++) { if (max < monthValues.get(i).getV()) { max = monthValues.get(i).getV(); } Map<String, Object> maxValue = dataPointApi.queryPointMaxValue(apiPointValueQueryDTO); if (maxValue != null) { dto.setMaxDemand(maxValue.get(dto.getMaxDemand()) == null ? "" : maxValue.get(dto.getMaxDemand()).toString()); } dto.setMaxDemand(String.valueOf(max)); } } return success(result); } @GetMapping("/demand-dropdown/list") @Operation(summary = "负荷移植-功率因数下拉列表") public CommonResult<List<PowerNetDropdownDTO>> getDemandDropdownList(@RequestParam String code) { if (StringUtils.isBlank(code)) { log.info("code isBlank"); return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST); } log.info("code=" + code); List<PowerNetDropdownDTO> result = new ArrayList<>(); PowerDemandEntity entity = powerDemandService.getByCode(code); if (entity == null) { log.info("PowerDemandEntity is null"); return success(result); } Map<String, Object> params0 = new HashMap<>(); params0.put("groupName", entity.getName()); List<PowerNetDropdownEntity> list = powerNetDropdownService.list(params0); List<String> points = list.stream().map(item -> { return item.getCurCos(); }).collect(Collectors.toList()); Map<String, Object> pointsRealValue = new HashMap<>(); if (!CollectionUtils.isEmpty(points)) { pointsRealValue = dataPointApi.queryPointsRealValue(points); } for (PowerNetDropdownEntity netDropdown : list) { PowerNetDropdownDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerNetDropdownDTO.class); BigDecimal curCos = BigDecimal.ZERO; if (pointsRealValue.get(netDropdown.getCurCos()) != null) { curCos = new BigDecimal(pointsRealValue.get(netDropdown.getCurCos()).toString()); } dto.setCurCos(curCos); result.add(dto); } return success(result); } @PostMapping("/demand-query/list") @Operation(summary = "负荷移植-功率因数查询") public CommonResult<List<PowerNetDropdownDTO>> getDemandDropdownList(@RequestBody PowerDemandQueryDTO queryDto) { List<PowerNetDropdownDTO> result = new ArrayList<>(); if (StringUtils.isBlank(queryDto.getCode())) { log.info("code isBlank"); } log.info("code=" + queryDto.getCode()); if (StringUtils.isBlank(queryDto.getNodeCode())) { log.info("NodeCode isBlank"); } PowerDemandEntity entity = powerDemandService.getByCode(queryDto.getCode()); if (entity == null) { log.info("PowerDemandEntity is null"); return success(result); } Map<String, Object> params0 = new HashMap<>(); params0.put("groupName", entity.getName()); List<PowerNetDropdownEntity> list = powerNetDropdownService.list(params0); List<String> points = list.stream().map(item -> { return item.getCurCos(); }).collect(Collectors.toList()); if (queryDto.getCurCos() == null) { log.info("查询当前值"); Map<String, Object> pointsRealValue = new HashMap<>(); if (!CollectionUtils.isEmpty(points)) { pointsRealValue = dataPointApi.queryPointsRealValue(points); } for (PowerNetDropdownEntity netDropdown : list) { PowerNetDropdownDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerNetDropdownDTO.class); BigDecimal curCos = BigDecimal.ZERO; if (pointsRealValue.get(netDropdown.getCurCos()) != null) { curCos = new BigDecimal(pointsRealValue.get(netDropdown.getCurCos()).toString()); } dto.setCurCos(curCos); result.add(dto); } } else { log.info("查询历史值"); String nodeCode = queryDto.getNodeCode(); if (StringUtils.isBlank(nodeCode)) { log.info("nodeCode isBlank"); return success(result); } PowerNetDropdownEntity powerNetDropdownEntity = powerNetDropdownService.getByNodeCode(nodeCode); if (powerNetDropdownEntity == null) { log.info("PowerNetDropdownEntity is null"); return success(result); } ApiPointsValueQueryDTO valueQueryDTO = new ApiPointsValueQueryDTO(); valueQueryDTO.setPointNos(points); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); Date startTime = queryDto.getStartTime(); Date endTime = queryDto.getEndTime(); if (endTime == null) { endTime = calendar.getTime(); } if (startTime == null) { calendar.add(Calendar.DAY_OF_YEAR, -1); startTime = calendar.getTime(); } valueQueryDTO.setStart(startTime); valueQueryDTO.setEnd(endTime); Map<String, List<Map<String, Object>>> pointsHisValues = dataPointApi.queryPointsHistoryValue(valueQueryDTO); if (CollectionUtils.isEmpty(pointsHisValues)) { log.info("pointsHisValues is null"); return success(result); } ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO(); pointValueQueryDTO.setStart(startTime); pointValueQueryDTO.setEnd(endTime); pointValueQueryDTO.setPointNo(powerNetDropdownEntity.getCurCos()); List<ApiPointValueDTO> hisValue = dataPointApi.queryPointHistoryValue(pointValueQueryDTO); if (CollectionUtils.isEmpty(hisValue)) { log.info("hisValue is null"); } ApiPointValueDTO curValue = null; Collections.reverse(hisValue); for (ApiPointValueDTO valueDTO : hisValue) { curValue = valueDTO; if ((queryDto.getCurCos().doubleValue() - valueDTO.getV()) <= 0.0001) { break; } } if (curValue == null) { log.info("curValue is null"); return success(result); } log.info("curValue=" + curValue); for (PowerNetDropdownEntity netDropdown : list) { PowerNetDropdownDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerNetDropdownDTO.class); if (CollectionUtils.isEmpty(pointsHisValues.get(netDropdown.getCurCos()))) { continue; } Map<String, BigDecimal> pointValueMap = new HashMap<>(); pointsHisValues.get(netDropdown.getCurCos()).forEach(item -> { pointValueMap.put(item.get("time").toString(), DecimalUtil.toBigDecimal(item.get("value"))); }); dto.setCurCos(pointValueMap.get(DateUtils.format(curValue.getT(),DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND))); result.add(dto); } } return success(result); } @@ -483,6 +650,7 @@ @Operation(summary = "功率因数-根据nodeName获取最近1440min历史数据,月最大,最小值") public CommonResult<PowerHistoryDTO> getPowerHistoryData(@RequestBody PowerNetFactorHisReqDTO dto) { log.info("PowerNetFactorHisReqDTO=" + JSONObject.toJSONString(dto)); PowerHistoryDTO result = new PowerHistoryDTO(); String nodeCode = dto.getNodeCode(); if (StringUtils.isBlank(nodeCode)) { return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST); @@ -491,25 +659,30 @@ if (StringUtils.isBlank(queryType)) { return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST); } PowerNetFactorEntity powerNetFactor = powerNetFactorService.getByNodeCode(nodeCode); PowerHistoryDTO result = new PowerHistoryDTO(); if (powerNetFactor == null) { PowerNetFactorQuery powerNetFactorQuery = null; PowerNetFactorEntity powerNetFactorEntity = powerNetFactorService.getByNodeCode(nodeCode); PowerNetDropdownEntity powerNetDropdownEntity = powerNetDropdownService.getByNodeCode(nodeCode); if (powerNetFactorEntity != null) { powerNetFactorQuery = ConvertUtils.sourceToTarget(powerNetFactorEntity, PowerNetFactorQuery.class); } else if (powerNetDropdownEntity != null) { powerNetFactorQuery = ConvertUtils.sourceToTarget(powerNetDropdownEntity, PowerNetFactorQuery.class); } if (powerNetFactorQuery == null) { log.info("powerNetFactor is null"); return success(result); } log.info("开始查询,"); ApiPointValueQueryDTO apiPointValueQueryDTO = new ApiPointValueQueryDTO(); String pointNo = ""; switch (queryType.toUpperCase()) { case "P": pointNo = powerNetFactor.getCurP(); pointNo = powerNetFactorQuery.getCurP(); break; case "Q": pointNo = powerNetFactor.getCurQ(); pointNo = powerNetFactorQuery.getCurQ(); break; case "COS": pointNo = powerNetFactor.getCurCos(); pointNo = powerNetFactorQuery.getCurCos(); break; default: break; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerDemandQueryDTO.java
对比新文件 @@ -0,0 +1,39 @@ package com.iailab.module.ansteel.api.dto; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; /** * @author PanZhibao * @Description * @createTime 2025年04月28日 */ @Data public class PowerDemandQueryDTO implements Serializable { private static final long serialVersionUID = 1L; @Schema(description = "编码") private String code; @Schema(description = "节点编码") private String nodeCode; @Schema(description = "节点名称") private String nodeName; @Schema(description = "当前功率因数") private BigDecimal curCos; @Schema(description = "开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date startTime; @Schema(description = "结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date endTime; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerNetDropdownDTO.java
文件名从 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerNetFactorDropdownDTO.java 修改 @@ -5,6 +5,7 @@ import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; /** * 电力功率因数电网拓扑下拉列表 @@ -13,7 +14,7 @@ * @since 1.0.0 2025-04-11 */ @Data public class PowerNetFactorDropdownDTO implements Serializable { public class PowerNetDropdownDTO implements Serializable { private static final long serialVersionUID = 1L; @Schema(description = "节点编码") @@ -23,7 +24,9 @@ private String nodeName; @Schema(description = "当前功率因数") private String curCos; private BigDecimal curCos; @Schema(description = "数据时间") private Date dataTime; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerNetFactorQuery.java
对比新文件 @@ -0,0 +1,28 @@ package com.iailab.module.ansteel.api.dto; import lombok.Data; import java.io.Serializable; /** * @author PanZhibao * @Description * @createTime 2025年04月28日 */ @Data public class PowerNetFactorQuery implements Serializable { private static final long serialVersionUID = 1L; /** * 当前有功 */ private String curP; /** * 当前无功 */ private String curQ; /** * 当前功率因数 */ private String curCos; } ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunOffPowerOptimTask.java
@@ -37,20 +37,25 @@ logger.info("runPredictModuleTask定时任务正在执行,参数为:{}", params); try { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.SECOND,0); calendar.set(Calendar.MILLISECOND,0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); dto.setScheduleTime(calendar.getTime()); dto.setScheduleCode(params); MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); logger.info(params + "调度方案执行完成," + mdkScheduleRespDTO); Map<String, Object> result = mdkScheduleRespDTO.getResult(); for(Map.Entry<String, Object> entry : result.entrySet()) { for (Map.Entry<String, Object> entry : result.entrySet()) { String key = entry.getKey(); this.saveScheduleSuggest("无功优化", entry.getValue(), "WGYH", calendar.getTime()); } if (mdkApi.scheduleModelOut(mdkScheduleRespDTO)) { logger.info("调度方案结果下发成功"); } else { logger.error("调度方案结果下发失败"); } } catch (Exception ex) { logger.error("runPredictModuleTask运行异常",ex); logger.error("runPredictModuleTask运行异常", ex); } logger.info("runPredictModuleTask运行完成"); } ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunScheduleModuleTask.java
@@ -1,34 +1,43 @@ package com.iailab.module.ansteel.job.task; import com.iailab.module.model.api.mcs.McsApi; import com.iailab.module.model.api.mcs.dto.ScheduleSuggestRespDTO; import com.iailab.module.model.api.mdk.MdkApi; import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO; import com.iailab.module.model.api.mdk.dto.MdkScheduleRespDTO; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Calendar; import java.util.Map; /** * 执行调度方案定时任务 * */ @Component("runScheduleModuleTask") public class RunScheduleModuleTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); private String GasCode = "AnSteelGasSchedule"; //日平衡 private String LdgCode = "AnSteelldgstrategy"; //转炉实时调度 private String CogCode = "AnSteelcogstrategy"; //焦炉实时调度 private String BfgCode = "AnSteelbfgstrategy"; //高炉实时调度 @Autowired private MdkApi mdkApi; @Autowired private McsApi mcsApi; @Override public void run(String params) { logger.info("runScheduleModuleTask定时任务正在执行,参数为:{}",params ); logger.info("runScheduleModuleTask定时任务正在执行,参数为:{}", params); try { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.SECOND,0); calendar.set(Calendar.MILLISECOND,0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); dto.setScheduleTime(calendar.getTime()); @@ -38,10 +47,67 @@ logger.info("调度方案结果开始下发"); if (mdkApi.scheduleModelOut(mdkScheduleRespDTO)) { logger.info("调度方案结果下发成功"); }else { } else { logger.error("调度方案结果下发失败"); } //日平衡调度建议保存 if (GasCode.equals(params)) { Map<String, Object> result = mdkScheduleRespDTO.getResult(); result.entrySet().stream().forEach(entry -> { ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO(); suggestDto.setTitle("日平衡建议"); suggestDto.setContent(entry.getValue().toString()); suggestDto.setScheduleObj("GAS"); suggestDto.setCreateTime(calendar.getTime()); if (mcsApi.createScheduleSuggest(suggestDto)) { logger.info("日平衡建议{" + entry.getValue().toString() + "}保存成功"); } else { logger.error("日平衡建议保存失败"); } }); } //转炉实时调度建议保存 Object LDG = mdkScheduleRespDTO.getResult().get("ldgdiaodu"); if (LdgCode.equals(params) && LDG != null) { ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO(); suggestDto.setTitle("转炉实时调度建议"); suggestDto.setContent(LDG.toString()); suggestDto.setScheduleObj("LDG"); suggestDto.setCreateTime(calendar.getTime()); if (mcsApi.createScheduleSuggest(suggestDto)) { logger.info("转炉实时调度建议{" + LDG + "}保存成功"); } else { logger.error("转炉实时调度建议保存失败"); } } //焦炉实时调度建议保存 Object COG = mdkScheduleRespDTO.getResult().get("suggestions"); if (CogCode.equals(params) && COG != null) { ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO(); suggestDto.setTitle("焦炉实时调度建议"); suggestDto.setContent(COG.toString()); suggestDto.setScheduleObj("COG"); suggestDto.setCreateTime(calendar.getTime()); if (mcsApi.createScheduleSuggest(suggestDto)) { logger.info("焦炉实时调度建议{" + COG + "}保存成功"); } else { logger.error("焦炉实时调度建议保存失败"); } } //高炉实时调度建议保存 Object BFG = mdkScheduleRespDTO.getResult().get("suggestions"); if (BfgCode.equals(params) && BFG != null) { ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO(); suggestDto.setTitle("高炉实时调度建议"); suggestDto.setContent(BFG.toString()); suggestDto.setScheduleObj("BFG"); suggestDto.setCreateTime(calendar.getTime()); if (mcsApi.createScheduleSuggest(suggestDto)) { logger.info("高炉实时调度建议{" + BFG + "}保存成功"); } else { logger.error("高炉实时调度建议保存失败"); } } } catch (Exception ex) { logger.error("runScheduleModuleTask运行异常"); ex.printStackTrace(); ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerNetDropdownDao.java
对比新文件 @@ -0,0 +1,14 @@ package com.iailab.module.ansteel.power.dao; import com.iailab.framework.common.dao.BaseDao; import com.iailab.module.ansteel.power.entity.PowerNetDropdownEntity; import org.apache.ibatis.annotations.Mapper; /** * @author PanZhibao * @Description * @createTime 2025年04月28日 */ @Mapper public interface PowerNetDropdownDao extends BaseDao<PowerNetDropdownEntity> { } ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PowerNetDropdownEntity.java
对比新文件 @@ -0,0 +1,51 @@ package com.iailab.module.ansteel.power.entity; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; /** * @author PanZhibao * @Description * @createTime 2025年04月28日 */ @Data @TableName("t_power_net_dropdown") public class PowerNetDropdownEntity implements Serializable { private static final long serialVersionUID = 1L; /** * id */ @TableId private String id; private String pCode; private String groupName; private String nodeCode; private String nodeName; private String curP; private String curQ; private String curCos; private String ext1; private String ext2; private String ext3; private String ext4; private String ext5; private Integer sort; } ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerNetDropdownService.java
对比新文件 @@ -0,0 +1,18 @@ package com.iailab.module.ansteel.power.service; import com.iailab.module.ansteel.power.entity.PowerNetDropdownEntity; import java.util.List; import java.util.Map; /** * @author PanZhibao * @Description * @createTime 2025年04月28日 */ public interface PowerNetDropdownService { PowerNetDropdownEntity getByNodeCode(String nodeCode); List<PowerNetDropdownEntity> list(Map<String, Object> params); } ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerNetDropdownServiceImpl.java
对比新文件 @@ -0,0 +1,46 @@ package com.iailab.module.ansteel.power.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iailab.module.ansteel.power.dao.PowerNetDropdownDao; import com.iailab.module.ansteel.power.entity.PowerNetDropdownEntity; import com.iailab.module.ansteel.power.service.PowerNetDropdownService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; /** * @author PanZhibao * @Description * @createTime 2025年04月28日 */ @Slf4j @Service public class PowerNetDropdownServiceImpl implements PowerNetDropdownService { @Autowired private PowerNetDropdownDao powerNetDropdownDao; @Override public PowerNetDropdownEntity getByNodeCode(String nodeCode) { QueryWrapper<PowerNetDropdownEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("node_code", nodeCode); return powerNetDropdownDao.selectOne(queryWrapper); } @Override public List<PowerNetDropdownEntity> list(Map<String, Object> params) { String pCode = (String) params.get("pCode"); String groupName = (String) params.get("groupName"); String neNodeName = (String) params.get("neNodeName"); QueryWrapper<PowerNetDropdownEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.eq(StringUtils.isNotBlank(pCode), "p_code", pCode) .eq(StringUtils.isNotBlank(groupName), "group_name", groupName) .ne(StringUtils.isNotBlank(neNodeName), "node_name", neNodeName) .orderByAsc("sort"); return powerNetDropdownDao.selectList(queryWrapper); } } ansteel-biz/src/main/resources/application.yaml
@@ -177,6 +177,7 @@ - t_coking_trace_ind - t_power_demand - t_power_adjusted_factor - t_power_net_dropdown - t_coking_overview_ind swagger: title: 鞍钢鲅鱼圈能源管控系统 doc/鞍钢数据接口文档_master.docBinary files differ