ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -16,10 +16,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Random; import java.util.*; import static com.iailab.framework.common.pojo.CommonResult.success; @@ -61,7 +58,7 @@ if (CollectionUtils.isEmpty(result)) { return success(result); } for(PowerNetFactorDTO dto : result) { for (PowerNetFactorDTO dto : result) { List<String> points = new ArrayList<>(); if (StringUtils.isNotBlank(dto.getCurP())) { points.add(dto.getCurP()); @@ -83,14 +80,54 @@ return success(result); } /*@GetMapping("/net-factor/alarm") * 判断 curCos 是否超上下限 * {nodeName}功率因数超上限/下限。 * * 判断 curQ * {nodeName}发生无功返送 * * */ /* * 判断 curCos 是否超上下限 * {nodeName}功率因数超上限/下限。 * * 判断 curQ * {nodeName}发生无功返送 * * */ @GetMapping("/net-factor/alarm") @Operation(summary = "功率因数-电网拓扑预警信息") public CommonResult<String> getPowerNetFactorAlarm(@RequestParam Map<String, Object> params) { String result = ""; PowerNetFactorDTO dto = powerNetFactorService.selectById(params); if (Objects.isNull(dto)) { return success(result); } List<String> points = new ArrayList<>(); if (StringUtils.isNotBlank(dto.getCurQ())) { points.add(dto.getCurQ()); } if (CollectionUtils.isEmpty(points)) { return success(result); } Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points); if (pointsRealValue.get(dto.getCurQ()) == null) { return success(result); } BigDecimal curQ = new BigDecimal(pointsRealValue.get(dto.getCurQ()).toString()); if (dto.getCurFlag().compareTo(BigDecimal.ZERO) > 0) { if (curQ.compareTo(BigDecimal.ZERO) > 0) { result = dto.getNodeName() + "发生无功返送;"; } } else { if (curQ.compareTo(BigDecimal.ZERO) < 0) { result = dto.getNodeName() + "发生无功返送;"; } } if (dto.getStatus() > 0) { BigDecimal curCos = new BigDecimal(dto.getCurCos()); if (curCos.compareTo(dto.getLimitH()) > 0) { result += dto.getNodeName() + "功率因数超上限"; }else if (curCos.compareTo(dto.getLimitL()) < 0) { result += dto.getNodeName() + "功率因数超下限"; } } return success(result); } @GetMapping("/gen-status/list") @Operation(summary = "功率因数-发电机组实时状态") @@ -100,7 +137,7 @@ if (CollectionUtils.isEmpty(result)) { return success(result); } for(PowerGenStatusDTO dto : result) { for (PowerGenStatusDTO dto : result) { List<String> points = new ArrayList<>(); if (StringUtils.isNotBlank(dto.getCurP())) { points.add(dto.getCurP()); @@ -154,7 +191,7 @@ @Operation(summary = "功率因数-管控功率因数详情") public CommonResult<List<PowerControlDetDTO>> getPowerControlDetList(@RequestParam Map<String, Object> params) { List<PowerControlDetDTO> result = new ArrayList<>(); String name = (String)params.get("name"); String name = (String) params.get("name"); if (StringUtils.isBlank(name)) { return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerNetFactorDTO.java
@@ -34,6 +34,9 @@ @Schema(description = "当前功率因数") private String curCos; @Schema(description = "无功返送判断条件(1判断cur_q>0,-1判断cur_q<0)") private BigDecimal curFlag; @Schema(description = "预测有功") private String preP; @@ -43,6 +46,9 @@ @Schema(description = "预测功率因数") private String preCos; @Schema(description = "上限") private BigDecimal limitH; @Schema(description = "下限") private BigDecimal limitL; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerNetFactorEntity.java
@@ -44,6 +44,10 @@ */ private String curCos; /** * 无功返送判断条件 */ private BigDecimal curFlag; /** * 预测有功 */ private String preP; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerNetFactorService.java
@@ -1,5 +1,6 @@ package com.iailab.module.ansteel.api.service; import com.iailab.module.ansteel.api.dto.PowerNetFactorDTO; import com.iailab.module.ansteel.api.entity.PowerNetFactorEntity; import java.util.List; @@ -13,4 +14,6 @@ public interface PowerNetFactorService { List<PowerNetFactorEntity> list(Map<String, Object> params); PowerNetFactorDTO selectById(Map<String, Object> params); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerNetFactorServiceImpl.java
@@ -1,15 +1,19 @@ package com.iailab.module.ansteel.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iailab.framework.common.util.object.ConvertUtils; import com.iailab.module.ansteel.api.dao.PowerNetFactorDao; import com.iailab.module.ansteel.api.dto.PowerNetFactorDTO; import com.iailab.module.ansteel.api.entity.PowerNetFactorEntity; import com.iailab.module.ansteel.api.service.PowerNetFactorService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.Map; import java.util.Objects; /** * @author PanZhibao @@ -30,4 +34,13 @@ return powerNetFactorDao.selectList(queryWrapper); } @Override public PowerNetFactorDTO selectById(Map<String, Object> params) { String id = (String) params.get("id"); if(!StringUtils.isNotBlank(id)) { return null; } return ConvertUtils.sourceToTarget(powerNetFactorDao.selectById(id),PowerNetFactorDTO.class); } }