ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/ModelController.java
@@ -89,33 +89,60 @@ } Map<String, Object> data = mdkScheduleRespDTO.getResult(); if ("1".equals(reqVO.getType())) { switch (TransferTypeEnum.getEumByCode(reqVO.getType())) { case XF: // 高炉休风 result.setBestTotalPower(DecimalUtil.toBigDecimal(data.get("best_total_power"))); result.setBfgAdvice(DecimalUtil.toBigDecimal(data.get("BFGAdvice"))); result.setDemandAdvice(DecimalUtil.toBigDecimal(data.get("DemandAdvice"))); result.setJiaohuaAdviceTime(DecimalUtil.toBigDecimal(data.get("jiaohuaAdvice"), 0).intValue()); result.setJiaohuaAdviceAmount(DecimalUtil.toBigDecimal(data.get("jiaohuaAdvice"), 1).intValue()); result.setBestTotalPower(DecimalUtil.toBigDecimal(data.get("best_total_power")));//负荷调整总量 result.setBfgGap(DecimalUtil.toBigDecimal(data.get("bfg_gap")));//煤气送管网缺口 result.setDemand(DecimalUtil.toBigDecimal(data.get("demand")));//需量缺口 result.setCogGapTime(data.get("cog_gap") == null ? 0 : DecimalUtil.toBigDecimal(data.get("cog_gap"), 0).intValue()); //焦化减高炉煤气-时间 result.setCogGapAmount(data.get("cog_gap") == null ? 0 : DecimalUtil.toBigDecimal(data.get("cog_gap"), 1).intValue());//焦化减高炉煤气-数量 if (data.get("zhongabnAdvice") != null) { adviceList.add(DecimalUtil.toPowerTransferDetRespVO("中板工序", data.get("zhongabnAdvice"))); } if (data.get("houbanAdvice") != null) { adviceList.add(DecimalUtil.toPowerTransferDetRespVO("厚板工序", data.get("houbanAdvice"))); } if (data.get("rezhaAdvice") != null) { adviceList.add(DecimalUtil.toPowerTransferDetRespVO("热轧工序", data.get("rezhaAdvice"))); } if (data.get("baihuiAdvice") != null) { adviceList.add(DecimalUtil.toPowerTransferDetRespVO("白灰工序", data.get("baihuiAdvice"))); } if (data.get("zhiyangAdvice") != null) { adviceList.add(DecimalUtil.toPowerTransferDetRespVO("3#制氧机", data.get("zhiyangAdvice"))); } if (data.get("1LFAdvice") != null) { adviceList.add(DecimalUtil.toPowerTransferDetRespVO("1#LF炉", data.get("1LFAdvice"))); } if (data.get("2LFAdvice") != null) { adviceList.add(DecimalUtil.toPowerTransferDetRespVO("2#LF炉", data.get("2LFAdvice"))); } if (data.get("shaojieAdvice") != null) { adviceList.add(DecimalUtil.toPowerTransferDetRespVO("B系列烧结", data.get("shaojieAdvice"))); } if (data.get("shaojieAdvice") != null) { adviceList.add(DecimalUtil.toPowerTransferDetRespVO("CCPP", data.get("CCPPAdvice"))); } else if ("2".equals(reqVO.getType())) { } result.setAdviceList(adviceList); log.info("XFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXF"); break; case JX: // 产线检修 } log.info("JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX"); break; default: break; } } catch (Exception ex) { ex.printStackTrace(); return CommonResult.error(GlobalErrorCodeConstants.UNKNOWN.getCode(), ex.getMessage()); } log.info("result=" + JSONObject.toJSONString(result)); return CommonResult.success(result); } } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessConfEntity.java
@@ -28,6 +28,10 @@ */ private String indType; /** * 数据类型 */ private String dataType; /** * 测点编码 */ private String pointNo; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProdDayService.java
@@ -15,4 +15,6 @@ List<CokingProdDayEntity> list(Map<String, Object> params); void save(CokingProdDayEntity entity); void deleteByClock(String clock); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProdDayServiceImpl.java
@@ -44,4 +44,12 @@ public void save(CokingProdDayEntity entity) { cokingProdDayDao.insert(entity); } @Override public void deleteByClock(String clock) { QueryWrapper<CokingProdDayEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("clock", clock); cokingProdDayDao.delete(queryWrapper); } } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferReqVO.java
@@ -19,6 +19,9 @@ @Schema(description = "异常工况类型(1:高炉休风;2:产线检修)") private Integer type; @Schema(description = "当前时间") private Integer now; @Schema(description = "休风开始时间") private Integer start; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferRespVO.java
@@ -22,16 +22,16 @@ private BigDecimal bestTotalPower; @Schema(description = "煤气送管网缺口") private BigDecimal bfgAdvice; private BigDecimal bfgGap; @Schema(description = "需量缺口") private BigDecimal demandAdvice; private BigDecimal demand; @Schema(description = "焦化减高炉煤气-时间") private Integer jiaohuaAdviceTime; private Integer cogGapTime; @Schema(description = "焦化减高炉煤气-数量") private Integer jiaohuaAdviceAmount; private Integer cogGapAmount; @Schema(description = "建议列表") private List<PowerTransferDetRespVO> adviceList; ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/ProcessConfDataTypeEnum.java
对比新文件 @@ -0,0 +1,34 @@ package com.iailab.module.ansteel.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; /** * @author PanZhibao * @Description * @createTime 2025年04月13日 */ @Getter @AllArgsConstructor public enum ProcessConfDataTypeEnum { DATAPOINT("DATAPOINT", "测点值"), IND("IND", "指标值(double)"), IND_ASCII("IND_ASCII", "指标值(ASCII)"), PLAN("PLAN", "计划值"); private String code; private String desc; public static ProcessConfDataTypeEnum getEumByCode(String code) { if (code == null) { return null; } for (ProcessConfDataTypeEnum statusEnum : ProcessConfDataTypeEnum.values()) { if (statusEnum.getCode().equals(code)) { return statusEnum; } } return null; } } ansteel-biz/src/main/java/com/iailab/module/ansteel/framework/rpc/config/RpcConfiguration.java
@@ -1,5 +1,6 @@ package com.iailab.module.ansteel.framework.rpc.config; import com.iailab.module.data.api.ind.IndItemApi; import com.iailab.module.data.api.plan.PlanItemApi; import com.iailab.module.data.api.point.DataPointApi; import com.iailab.module.infra.api.config.ConfigApi; @@ -13,6 +14,6 @@ import org.springframework.context.annotation.Configuration; @Configuration(proxyBeanMethods = false) @EnableFeignClients(clients = {FileApi.class, WebSocketSenderApi.class, DataSourceConfigServiceApi.class, ConfigApi.class, TenantApi.class, McsApi.class, MdkApi.class, DataPointApi.class, PlanItemApi.class}) @EnableFeignClients(clients = {FileApi.class, WebSocketSenderApi.class, DataSourceConfigServiceApi.class, ConfigApi.class, TenantApi.class, McsApi.class, MdkApi.class, DataPointApi.class, PlanItemApi.class, IndItemApi.class}) public class RpcConfiguration { } ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdDayTask.java
@@ -1,9 +1,13 @@ package com.iailab.module.ansteel.job.task; import com.iailab.framework.common.util.date.DateUtils; import com.iailab.module.ansteel.api.entity.CokingProcessConfEntity; import com.iailab.module.ansteel.api.entity.CokingProdDayEntity; import com.iailab.module.ansteel.api.service.CokingProcessConfService; import com.iailab.module.ansteel.api.service.CokingProdDayService; import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum; 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 com.iailab.module.model.api.mcs.McsApi; import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO; @@ -26,6 +30,9 @@ import java.util.stream.Collectors; /** * 生成焦化日前生产信息 * 0 5 0 * * ? * * @author HouZhongjian * @Description * @createTime 2025年04月12日 @@ -44,6 +51,9 @@ @Resource private DataPointApi dataPointApi; @Resource private IndItemApi indItemApi; @Override public void run(String params) { logger.info("RunCokingProdDayTask,参数为:{}", params); @@ -51,38 +61,49 @@ Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); CokingProcessConfEntity queryParams = new CokingProcessConfEntity(); queryParams.setIndType("prod_day"); List<CokingProcessConfEntity> list = cokingProcessConfService.list(queryParams); if (ObjectUtils.isNotEmpty(list)) { // List<String> points = list.stream().map(CokingProcessConfEntity::getIndCode).collect(Collectors.toList()); // Map<String, Object> stringObjectMap = dataPointApi.queryPointsRealValue(points); // 获取当前日期时间 LocalDateTime now = LocalDateTime.now(); // 减去一天得到昨天同一时间 LocalDateTime yesterday = now.minusDays(1); // 格式化输出 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String formattedDateTime = yesterday.format(formatter); if (CollectionUtils.isEmpty(list)) { logger.info("ConfLis is Empty"); return; } list.stream().forEach(cokingProcessConfEntity -> { Calendar calendar1 = Calendar.getInstance(); calendar1.set(Calendar.MILLISECOND, 0); calendar1.set(Calendar.SECOND, 0); calendar1.add(Calendar.DAY_OF_YEAR, -1); String clock = DateUtils.format(calendar1.getTime(), DateUtils.FORMAT_YEAR_MONTH_DAY); logger.info("清理旧数据"); cokingProdDayService.deleteByClock(clock); for (CokingProcessConfEntity conf : list) { if (StringUtils.isBlank(conf.getDataType())) { logger.info("DataType is Empty"); continue; } if (StringUtils.isBlank(conf.getPointNo())) { logger.info("PointNo is Empty"); continue; } String value = ""; switch (ProcessConfDataTypeEnum.getEumByCode(conf.getDataType())) { case DATAPOINT: List<String> points = new ArrayList<>(); points.add(cokingProcessConfEntity.getPointNo()); Map<String, Object> stringObjectMap = dataPointApi.queryPointsRealValue(points); //保存数据 if(ObjectUtils.isNotEmpty(stringObjectMap.get(cokingProcessConfEntity.getPointNo()))) { CokingProdDayEntity cokingProdDayEntity = new CokingProdDayEntity(); cokingProdDayEntity.setInfoType("0"); cokingProdDayEntity.setSort(cokingProcessConfEntity.getSort()); cokingProdDayEntity.setIndName(cokingProcessConfEntity.getIndName()); cokingProdDayEntity.setIndUnit(cokingProcessConfEntity.getIndUnit()); cokingProdDayEntity.setIndValue(stringObjectMap.get(cokingProcessConfEntity.getPointNo()).toString()); cokingProdDayEntity.setClock(formattedDateTime); cokingProdDayService.save(cokingProdDayEntity); } }); points.add(conf.getPointNo()); Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points); value = pointsRealValue.get(conf.getPointNo()).toString(); break; case IND: List<ApiIndItemValueDTO> indValues = indItemApi.queryIndItemDefaultValue(conf.getPointNo()); break; default: break; } this.saveProdDay(conf, value, clock); } } catch (Exception ex) { logger.error("RunCokingProdDayTask运行异常"); ex.printStackTrace(); @@ -90,4 +111,15 @@ logger.info("RunCokingProdDayTask运行完成"); } private void saveProdDay(CokingProcessConfEntity conf, String value, String clock) { CokingProdDayEntity cokingProdDayEntity = new CokingProdDayEntity(); cokingProdDayEntity.setInfoType(conf.getInfoType()); cokingProdDayEntity.setSort(conf.getSort()); cokingProdDayEntity.setIndName(conf.getIndName()); cokingProdDayEntity.setIndUnit(conf.getIndUnit()); cokingProdDayEntity.setIndValue(value); cokingProdDayEntity.setClock(clock); cokingProdDayService.save(cokingProdDayEntity); } } doc/鞍钢数据接口文档_master.docBinary files differ