ansteel-biz/db/mysql.sql
@@ -386,7 +386,9 @@ `analy_title` varchar(20) NULL DEFAULT NULL COMMENT '分析标题', `analy_date` varchar(20) NULL DEFAULT NULL COMMENT '分析日期', `analy_class` varchar(20) NULL DEFAULT NULL COMMENT '分析班次', `analy_content` varchar(20) NULL DEFAULT NULL COMMENT '内容', `analy_value` varchar(20) NULL DEFAULT NULL COMMENT '分析值', `analy_content` varchar(100) NULL DEFAULT NULL COMMENT '内容', `sort` int NULL DEFAULT NULL COMMENT '排序', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC COMMENT '焦化工序趋势分析'; @@ -399,6 +401,7 @@ `analy_type` varchar(20) NULL DEFAULT NULL COMMENT '分析类型', `analy_date` varchar(20) NULL DEFAULT NULL COMMENT '分析日期', `analy_class` varchar(20) NULL DEFAULT NULL COMMENT '分析班次', `analy_content` varchar(20) NULL DEFAULT NULL COMMENT '内容', `analy_content` varchar(100) NULL DEFAULT NULL COMMENT '内容', `sort` int NULL DEFAULT NULL COMMENT '排序', PRIMARY KEY (`id`) USING BTREE ) 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/ModelController.java
@@ -7,6 +7,7 @@ import com.iailab.module.ansteel.api.vo.PowerTransferDetRespVO; import com.iailab.module.ansteel.api.vo.PowerTransferReqVO; import com.iailab.module.ansteel.api.vo.PowerTransferRespVO; import com.iailab.module.ansteel.common.enums.TransferTypeEnum; import com.iailab.module.ansteel.common.utils.DecimalUtil; import com.iailab.module.model.api.mdk.MdkApi; import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO; @@ -55,21 +56,25 @@ MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); dto.setScheduleTime(calendar.getTime()); if ("1".equals(reqVO.getType())) { // 高炉休风 dto.setScheduleCode("AnSteelpowertransfer"); Map<String, String> dynamicSettings = new HashMap<>(); Integer[] xiufengOrder = {reqVO.getBfg(), reqVO.getStart(), reqVO.getMins()}; dynamicSettings.put("xiufeng_order", JSONArray.toJSONString(xiufengOrder)); dynamicSettings.put("jiaohua_BFG_down", reqVO.getLimit().toString()); dto.setDynamicSettings(dynamicSettings); } else if ("2".equals(reqVO.getType())) { // 产线检修 switch (TransferTypeEnum.getEumByCode(reqVO.getType())) { case XF: // 高炉休风 dto.setScheduleCode("AnSteelpowertransfer"); Map<String, String> dynamicSettings = new HashMap<>(); Integer[] xiufengOrder = {reqVO.getBfg(), reqVO.getStart(), reqVO.getMins()}; dynamicSettings.put("xiufeng_order", JSONArray.toJSONString(xiufengOrder)); dynamicSettings.put("jiaohua_BFG_down", reqVO.getLimit().toString()); dto.setDynamicSettings(dynamicSettings); break; case JX: // 产线检修 break; default: return CommonResult.error(GlobalErrorCodeConstants.NOT_FOUND, "Type参数错误"); } log.info("调度方案开始执行," + JSONObject.toJSONString(dto)); MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); log.info("调度方案执行完成," + mdkScheduleRespDTO); ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -1,27 +1,28 @@ package com.iailab.module.ansteel.api.controller.admin; import com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants; import com.iailab.framework.common.pojo.CommonResult; import com.iailab.framework.common.util.object.ConvertUtils; import com.iailab.module.ansteel.api.dto.PowerCapacitorStatusDTO; import com.iailab.module.ansteel.api.dto.PowerControlDetDTO; import com.iailab.module.ansteel.api.dto.PowerControlMainDTO; import com.iailab.module.ansteel.api.dto.PowerNetFactorDTO; import com.iailab.module.ansteel.api.entity.PowerControlMainEntity; import com.iailab.module.ansteel.api.entity.PowerNetFactorEntity; import com.iailab.module.ansteel.api.entity.PowerRunStateEntity; import com.iailab.module.ansteel.api.service.PowerControlMainService; import com.iailab.module.ansteel.api.service.PowerNetFactorService; import com.iailab.module.ansteel.api.service.PowerRunStateService; import com.iailab.module.ansteel.api.entity.*; import com.iailab.module.ansteel.api.service.*; 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.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Random; import static com.iailab.framework.common.pojo.CommonResult.success; @@ -41,36 +42,64 @@ private PowerNetFactorService powerNetFactorService; @Autowired private PowerRunStateService powerRunStateService; private PowerCapacitorStatusService powerCapacitorStatusService; @Autowired private PowerControlMainService powerControlMainService; @Autowired private PowerControlDetService powerControlDetService; @GetMapping("/net-factor/list") @Operation(summary = "电力功率因数-电网拓扑") @Operation(summary = "功率因数-电网拓扑") public CommonResult<List<PowerNetFactorDTO>> getPowerNetFactorList(@RequestParam Map<String, Object> params) { List<PowerNetFactorEntity> list = powerNetFactorService.list(params); return success(ConvertUtils.sourceToTarget(list, PowerNetFactorDTO.class)); } @GetMapping("/capacitor-status/list") @Operation(summary = "电力功率因数-电容器投运状态") @Operation(summary = "功率因数-电容器投运状态") public CommonResult<List<PowerCapacitorStatusDTO>> getPowerCapacitorStatusList(@RequestParam Map<String, Object> params) { List<PowerRunStateEntity> list = powerRunStateService.list(params); List<PowerCapacitorStatusEntity> list = powerCapacitorStatusService.list(params); return success(ConvertUtils.sourceToTarget(list, PowerCapacitorStatusDTO.class)); } @GetMapping("/control-main/list") @Operation(summary = "电力功率因数-管控功率因数主表") @Operation(summary = "功率因数-管控变电站列表") public CommonResult<List<PowerControlMainDTO>> getPowerControlMainList(@RequestParam Map<String, Object> params) { List<PowerControlMainEntity> list = powerControlMainService.list(params); return success(ConvertUtils.sourceToTarget(list, PowerControlMainDTO.class)); } @GetMapping("/control-det/list") @Operation(summary = "电力功率因数-管控功率因数子表") @Operation(summary = "功率因数-管控功率因数详情") public CommonResult<List<PowerControlDetDTO>> getPowerControlDetList(@RequestParam Map<String, Object> params) { List<PowerControlMainEntity> list = powerControlMainService.list(params); return success(ConvertUtils.sourceToTarget(list, PowerControlDetDTO.class)); List<PowerControlDetDTO> result = new ArrayList<>(); String name = (String)params.get("name"); if (StringUtils.isBlank(name)) { return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST); } PowerControlMainEntity main = powerControlMainService.getByName(name); if (main == null) { return CommonResult.error(GlobalErrorCodeConstants.NOT_FOUND); } List<PowerControlDetEntity> list = powerControlDetService.list(main.getId()); result = ConvertUtils.sourceToTarget(list, PowerControlDetDTO.class); result.forEach(item -> { // 设置随机数据,0.8左右 Random rand = new Random(); int min = 700; int max = 900; int randomNumber = rand.nextInt(max - min + 1) + min; BigDecimal rv = new BigDecimal(randomNumber * 0.001).setScale(4, BigDecimal.ROUND_HALF_UP); item.setValue(rv); if (item.getLimitL() != null && rv.compareTo(item.getLimitL()) < 0) { item.setStatus(1); } else { item.setStatus(0); } }); return success(result); } } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/CokingAnalyIndDTO.java
@@ -29,4 +29,7 @@ @Schema(description = "内容") private String analyContent; @Schema(description = "排序") private Integer sort; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/CokingAnalyTrendDTO.java
@@ -30,6 +30,12 @@ @Schema(description = "分析班次") private String analyClass; @Schema(description = "分析值") private String analyValue; @Schema(description = "内容") private String analyContent; @Schema(description = "排序") private Integer sort; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/CokingProcessMainDTO.java
@@ -37,13 +37,13 @@ private String theoryValue; @Schema(description = "实际值") private String actual_value; private String actualValue; @Schema(description = "基准值") private String stand_value; private String standValue; @Schema(description = "实时数据") private String real_value; private String realValue; @Schema(description = "排序") private Integer sort; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerCapacitorStatusDTO.java
@@ -25,14 +25,8 @@ @Schema(description = "主变数量") private String mainCount; @Schema(description = "主变测点编码") private String mainPoint; @Schema(description = "下属数量") private String childCount; @Schema(description = "下属测点编码") private String childPoint; @Schema(description = "投运数量") private String onCount; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerControlDetDTO.java
@@ -19,14 +19,11 @@ @Schema(description = "id") private String id; @Schema(description = "主表ID") private String controlId; @Schema(description = "名称") private String name; @Schema(description = "测点") private String point; @Schema(description = "值") private BigDecimal value; @Schema(description = "下限") private BigDecimal limitL; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerNetFactorDTO.java
@@ -43,15 +43,6 @@ @Schema(description = "预测功率因数") private String preCos; @Schema(description = "预测项ID") private String itemId; @Schema(description = "预测项输出ID") private String outId; @Schema(description = "上限") private BigDecimal limitH; @Schema(description = "下限") private BigDecimal limitL; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingAnalyIndEntity.java
@@ -26,4 +26,6 @@ private String analyClass; private String analyContent; private Integer sort; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingAnalyTrendEntity.java
@@ -27,5 +27,9 @@ private String analyClass; private String analyValue; private String analyContent; private Integer sort; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessMainEntity.java
@@ -32,11 +32,11 @@ private String theoryValue; private String actual_value; private String actualValue; private String stand_value; private String standValue; private String real_value; private String realValue; private Integer sort; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerControlMainEntity.java
@@ -18,17 +18,17 @@ * id */ @TableId private String id; private String id; /** * 名称 */ private String name; private String name; /** * 备注 */ private String remark; private String remark; /** * 排序 */ private Integer sort; private Integer sort; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerControlDetService.java
@@ -3,7 +3,6 @@ import com.iailab.module.ansteel.api.entity.PowerControlDetEntity; import java.util.List; import java.util.Map; /** * @author PanZhibao @@ -12,5 +11,5 @@ */ public interface PowerControlDetService { List<PowerControlDetEntity> list(Map<String, Object> params); List<PowerControlDetEntity> list(String controlId); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerControlMainService.java
@@ -12,5 +12,7 @@ */ public interface PowerControlMainService { PowerControlMainEntity getByName(String name); List<PowerControlMainEntity> list(Map<String, Object> params); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProcessChildServiceImpl.java
@@ -1,13 +1,17 @@ package com.iailab.module.ansteel.api.service.impl; import com.iailab.framework.common.util.date.DateUtils; import com.iailab.module.ansteel.api.entity.CokingProcessChildEntity; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iailab.module.ansteel.api.dao.CokingProcessChildDao; import com.iailab.module.ansteel.api.service.CokingProcessChildService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; @@ -25,8 +29,22 @@ @Override public List<CokingProcessChildEntity> list(Map<String, Object> params) { String indType = (String) params.get("indType"); String category = (String) params.get("category"); String clock = (String) params.get("clock"); if (StringUtils.isBlank(indType) || StringUtils.isBlank(category)) { return new ArrayList<>(); } if (StringUtils.isBlank(clock)) { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_YEAR, -1); clock = DateUtils.format(calendar.getTime(), "yyyy-MM-dd"); } QueryWrapper<CokingProcessChildEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.orderByAsc("sort"); queryWrapper.eq("ind_type", indType) .eq("category", category) .eq("clock", clock) .orderByAsc("sort"); return cokingProcessChildDao.selectList(queryWrapper); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProcessMainServiceImpl.java
@@ -1,13 +1,17 @@ package com.iailab.module.ansteel.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iailab.framework.common.util.date.DateUtils; import com.iailab.module.ansteel.api.dao.CokingProcessMainDao; import com.iailab.module.ansteel.api.entity.CokingProcessMainEntity; import com.iailab.module.ansteel.api.service.CokingProcessMainService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; @@ -25,8 +29,20 @@ @Override public List<CokingProcessMainEntity> list(Map<String, Object> params) { String category = (String) params.get("category"); String clock = (String) params.get("clock"); if (StringUtils.isBlank(category)) { return new ArrayList<>(); } if (StringUtils.isBlank(clock)) { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_YEAR, -1); clock = DateUtils.format(calendar.getTime(), "yyyy-MM-dd"); } QueryWrapper<CokingProcessMainEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.orderByAsc("sort"); queryWrapper.eq("category", category) .eq("clock", clock) .orderByAsc("sort"); return cokingProcessMainDao.selectList(queryWrapper); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProdDayServiceImpl.java
@@ -1,13 +1,16 @@ package com.iailab.module.ansteel.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iailab.framework.common.util.date.DateUtils; import com.iailab.module.ansteel.api.dao.CokingProdDayDao; import com.iailab.module.ansteel.api.entity.CokingProdDayEntity; import com.iailab.module.ansteel.api.service.CokingProdDayService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Calendar; import java.util.List; import java.util.Map; @@ -25,8 +28,15 @@ @Override public List<CokingProdDayEntity> list(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"); } QueryWrapper<CokingProdDayEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.orderByAsc("sort"); queryWrapper.eq("clock", clock) .orderByAsc("sort"); return cokingProdDayDao.selectList(queryWrapper); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerControlDetServiceImpl.java
@@ -24,8 +24,9 @@ private PowerControlDetDao powerControlDetDao; @Override public List<PowerControlDetEntity> list(Map<String, Object> params) { public List<PowerControlDetEntity> list(String controlId) { QueryWrapper<PowerControlDetEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("control_id", controlId); queryWrapper.orderByAsc("sort"); return powerControlDetDao.selectList(queryWrapper); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerControlMainServiceImpl.java
@@ -24,6 +24,13 @@ private PowerControlMainDao powerControlMainDao; @Override public PowerControlMainEntity getByName(String name) { QueryWrapper<PowerControlMainEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("name", name); return powerControlMainDao.selectOne(queryWrapper); } @Override public List<PowerControlMainEntity> list(Map<String, Object> params) { QueryWrapper<PowerControlMainEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.orderByAsc("sort"); ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/TransferTypeEnum.java
对比新文件 @@ -0,0 +1,32 @@ package com.iailab.module.ansteel.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; /** * @author PanZhibao * @Description * @createTime 2025年04月13日 */ @Getter @AllArgsConstructor public enum TransferTypeEnum { XF(1, "高炉休风"), JX(2, "产线检修"); private Integer code; private String desc; public static TransferTypeEnum getEumByCode(Integer code) { if (code == null) { return null; } for (TransferTypeEnum statusEnum : TransferTypeEnum.values()) { if (statusEnum.getCode().equals(code)) { return statusEnum; } } return null; } } ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingMainDayTask.java
@@ -100,11 +100,11 @@ } else if(cokingProcessConfEntity.getIndCode().endsWith("LLZ")) { cokingProcessMainEntity.setTheoryValue(value.toString()); } else if(cokingProcessConfEntity.getIndCode().endsWith("SJZ")) { cokingProcessMainEntity.setActual_value(value.toString()); cokingProcessMainEntity.setActualValue(value.toString()); } else if(cokingProcessConfEntity.getIndCode().endsWith("JZZ")) { cokingProcessMainEntity.setStand_value(value.toString()); cokingProcessMainEntity.setStandValue(value.toString()); } else if(cokingProcessConfEntity.getIndCode().endsWith("SSSJ")) { cokingProcessMainEntity.setReal_value(value.toString()); cokingProcessMainEntity.setRealValue(value.toString()); } } }); doc/鞍钢数据接口文档_master.docBinary files differ