ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -3,6 +3,7 @@ import cn.hutool.core.util.NumberUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iailab.framework.common.exception.ErrorCode; import com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants; import com.iailab.framework.common.pojo.CommonResult; import com.iailab.framework.common.pojo.PageResult; @@ -38,6 +39,7 @@ import java.util.*; import java.util.stream.Collectors; import static com.iailab.framework.common.pojo.CommonResult.error; import static com.iailab.framework.common.pojo.CommonResult.success; /** @@ -93,6 +95,7 @@ @Autowired private PowerMaxdemandMainService powerMaxDemandMainService; @Autowired private PowerMaxdemandDetService powerMaxdemandDetService; @@ -431,8 +434,51 @@ @GetMapping("/capacitor-status/list") @Operation(summary = "功率因数-电容器投退状态") public CommonResult<List<PowerCapacitorStatusDTO>> getPowerCapacitorStatusList(@RequestParam Map<String, Object> params) { List<PowerCapacitorStatusDTO> result = new ArrayList<>(); List<PowerCapacitorStatusEntity> list = powerCapacitorStatusService.list(params); return success(ConvertUtils.sourceToTarget(list, PowerCapacitorStatusDTO.class)); for (PowerCapacitorStatusEntity entity : list) { PowerCapacitorStatusDTO dto = new PowerCapacitorStatusDTO(); dto.setId(entity.getId()); dto.setName(entity.getName()); dto.setRemark(entity.getRemark()); dto.setMainCount(DecimalUtil.toBigDecimal(entity.getMainCount()).intValue()); dto.setChildCount(DecimalUtil.toBigDecimal(entity.getChildCount()).intValue()); int onCount = 0; Map<String, Object> params1 = new HashMap<>(); params1.put("statusId", entity.getId()); List<PowerCapacitorDetEntity> detList = powerCapacitorDetService.list(params1); if (CollectionUtils.isEmpty(detList)) { dto.setOnCount(onCount); continue; } List<String> points = new ArrayList<>(); Map<String, Object> pointsRealValue = new HashMap<>(); for (PowerCapacitorDetEntity det : detList) { if (StringUtils.isNotBlank(det.getPointNo())) { points.add(det.getPointNo()); } } if (!CollectionUtils.isEmpty(points)) { pointsRealValue = dataPointApi.queryPointsRealValue(points); } for (PowerCapacitorDetEntity det : detList) { if (StringUtils.isBlank(det.getId())) { continue; } Object obj = pointsRealValue.get(det.getPointNo()); if (obj == null) { continue; } BigDecimal pv = new BigDecimal(obj.toString()); if (pv.compareTo(BigDecimal.ZERO) <= 0) { continue; } onCount ++; } dto.setOnCount(onCount); result.add(dto); } return success(result); } @GetMapping("/capacitor-det/list") @@ -440,10 +486,13 @@ public CommonResult<List<PowerCapacitorDetDTO>> getPowerCapacitorDetList(@RequestParam Map<String, Object> params) { List<PowerCapacitorDetEntity> list = powerCapacitorDetService.list(params); log.info("list.size=" + list.size()); List<String> points = list.stream().map(item -> { return item.getPointNo(); }).collect(Collectors.toList()); List<String> points = new ArrayList<>(); Map<String, Object> pointsRealValue = new HashMap<>(); for (PowerCapacitorDetEntity det : list) { if (StringUtils.isNotBlank(det.getPointNo())) { points.add(det.getPointNo()); } } if (!CollectionUtils.isEmpty(points)) { pointsRealValue = dataPointApi.queryPointsRealValue(points); } @@ -802,7 +851,7 @@ apiPointValueQueryDTO.setEnd(new Date()); List<ApiPointValueDTO> monthChartData = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO); List<Double> monthValues = new ArrayList<>(); if (CollectionUtils.isEmpty(monthChartData)) { if (!CollectionUtils.isEmpty(monthChartData)) { monthValues = monthChartData.stream().map(item -> item.getV()).collect(Collectors.toList()); result.setMax(monthValues.stream().max(Double::compareTo).get()); result.setMin(monthValues.stream().min(Double::compareTo).get()); @@ -1107,15 +1156,12 @@ @PostMapping("/power-maxdemand/page") @Operation(summary = "负荷移植-最大需量发生记录分页") public CommonResult<PageResult<PowerMaxDemandMainDTO>> getPowerMaxDemandMainPage(@RequestBody PowerMaxDemandMainPageReqVO reqVO) { if (StringUtils.isBlank(reqVO.getCode())) { log.info("code is blank"); return error(GlobalErrorCodeConstants.BAD_REQUEST); } PageResult<PowerMaxdemandMainEntity> page = powerMaxDemandMainService.page(reqVO); PageResult<PowerMaxDemandMainDTO> result = BeanUtils.toBean(page, PowerMaxDemandMainDTO.class); /*List<String> parentIds = result.getList() .stream() .map(PowerMaxDemandMainDTO::getId) .collect(Collectors.toList()); List<PowerMaxdemandDetEntity> children = powerMaxdemandDetService.selectListByRelIds(parentIds); Map<String, List<PowerMaxdemandDetEntity>> childrenMap = children.stream() .collect(Collectors.groupingBy(PowerMaxdemandDetEntity::getRelId));*/ result.getList().forEach(dto0 -> { List<PowerMaxdemandDetEntity> detList0 = powerMaxdemandDetService.selectListByRelId(dto0.getId(), dto0.getOccurTime()); dto0.setChildren(ConvertUtils.sourceToTarget(detList0, PowerMaxdemandDetDTO.class)); @@ -1128,4 +1174,15 @@ }); return success(result); } @PostMapping("/power-maxdemand/det-list") @Operation(summary = "负荷移植-最大需量发生记录详情") public CommonResult<List<PowerMaxdemandDetDTO>> getPowerMaxDemandDetList(@RequestParam Map<String, Object> params) { String relId = (String) params.get("relId"); if (StringUtils.isBlank(relId)) { return error(GlobalErrorCodeConstants.BAD_REQUEST); } List<PowerMaxdemandDetEntity> list = powerMaxdemandDetService.selectListByRelId(relId); return success(ConvertUtils.sourceToTarget(list, PowerMaxdemandDetDTO.class)); } } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerCapacitorHisDTO.java
@@ -1,9 +1,11 @@ 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.util.Date; /** * @author PanZhibao @@ -30,6 +32,7 @@ @Schema(description = "备注") private String remark; @Schema(description = "i创建时间d") private String createDate; @Schema(description = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createDate; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerCapacitorStatusDTO.java
@@ -23,13 +23,13 @@ private String name; @Schema(description = "主变数量") private String mainCount; private Integer mainCount; @Schema(description = "下属数量") private String childCount; private Integer childCount; @Schema(description = "投运数量") private String onCount; private Integer onCount; @Schema(description = "备注") private String remark; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerMaxDemandMainPageReqVO.java
@@ -1,5 +1,6 @@ package com.iailab.module.ansteel.api.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.iailab.framework.common.pojo.PageParam; import com.iailab.module.ansteel.power.entity.PowerMaxdemandDetEntity; import io.swagger.v3.oas.annotations.media.Schema; @@ -25,4 +26,12 @@ @Schema(description = "名称") private String code; @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/job/task/RunPowerMaxdemandTask.java
@@ -109,42 +109,15 @@ mainEntity.setOccurTime(occurTime); mainEntity.setMaxDemand(todayMax); String mainId = powerMaxdemandMainService.add(mainEntity); Map<String, Object> params1 = new HashMap<>(); params1.put("groupName", demand.getName()); List<PowerNetDropdownEntity> dropdownList = powerNetDropdownService.list(params1); if (CollectionUtils.isEmpty(dropdownList)) { logger.info("dropdownList is empty"); // 插入第一层children List<PowerMaxdemandDetEntity> detList0 = powerMaxdemandDetService.addList(mainId, demand.getName(), occurTime); if(CollectionUtils.isEmpty(detList0)){ logger.info("detList0 is empty"); continue; } Calendar calendar1 = Calendar.getInstance(); calendar1.setTime(occurTime); calendar1.add(Calendar.MINUTE, 1); int sort = 0; for (PowerNetDropdownEntity dropdown : dropdownList) { if (StringUtils.isBlank(dropdown.getExt1())) { logger.info(dropdown.getNodeCode() + ":dropdown.getExt1() is empty"); continue; } logger.info(dropdown.getNodeCode() + ":dropdown.getExt1() = " + dropdown.getExt1()); ApiPointValueQueryDTO pointValueQuery1 = new ApiPointValueQueryDTO(); pointValueQuery1.setStart(occurTime); pointValueQuery1.setEnd(calendar1.getTime()); pointValueQuery1.setPointNo(dropdown.getExt1()); List<ApiPointValueDTO> valueList1 = dataPointApi.queryPointHistoryValue(pointValueQuery1); if (CollectionUtils.isEmpty(valueList1)) { logger.info("valueList1 is empty"); continue; } PowerMaxdemandDetEntity detEntity = new PowerMaxdemandDetEntity(); detEntity.setRelId(mainId); detEntity.setCode(dropdown.getNodeCode()); detEntity.setName(dropdown.getNodeName()); detEntity.setOccurTime(occurTime); detEntity.setMaxDemand(BigDecimal.valueOf(valueList1.get(0).getV())); detEntity.setSort(sort); powerMaxdemandDetService.add(detEntity); sort ++; for (PowerMaxdemandDetEntity detEntity : detList0) { // 插入第二层children powerMaxdemandDetService.addList(detEntity.getId(), detEntity.getName(), occurTime); } } logger.info("RunPowerMaxdemandTask end"); ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerMaxdemandMainDao.java
@@ -19,6 +19,8 @@ return selectPage(reqVO, new LambdaQueryWrapperX<PowerMaxdemandMainEntity>() .likeIfPresent(PowerMaxdemandMainEntity::getName, reqVO.getName()) .eqIfPresent(PowerMaxdemandMainEntity::getCode, reqVO.getCode()) .geIfPresent(PowerMaxdemandMainEntity::getOccurTime, reqVO.getStartTime()) .le(PowerMaxdemandMainEntity::getOccurTime, reqVO.getEndTime()) .orderByDesc(PowerMaxdemandMainEntity::getOccurTime)); } ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PowerCapacitorHisEntity.java
@@ -5,6 +5,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; /** * @author PanZhibao @@ -50,5 +51,5 @@ /** * 创建时间 */ private String createDate; private Date createDate; } ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandDetService.java
@@ -1,6 +1,5 @@ package com.iailab.module.ansteel.power.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iailab.module.ansteel.power.entity.PowerMaxdemandDetEntity; import java.util.Date; @@ -15,7 +14,11 @@ void add(PowerMaxdemandDetEntity entity); List<PowerMaxdemandDetEntity> addList(String relId, String groupName, Date occurTime); List<PowerMaxdemandDetEntity> selectListByRelIds(List<String> relIds); List<PowerMaxdemandDetEntity> selectListByRelId(String relId, Date occurTime); List<PowerMaxdemandDetEntity> selectListByRelId(String relId); } ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerCapacitorHisServiceImpl.java
@@ -9,8 +9,10 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; import java.util.Map; import java.util.UUID; /** * @author PanZhibao @@ -32,4 +34,10 @@ .orderByDesc("create_date"); return powerCapacitorHisDao.selectList(queryWrapper); } public void add(PowerCapacitorHisEntity entity) { entity.setId(UUID.randomUUID().toString()); entity.setCreateDate(new Date()); powerCapacitorHisDao.insert(entity); } } ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandDetServiceImpl.java
@@ -3,15 +3,21 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iailab.module.ansteel.power.dao.PowerMaxdemandDetDao; import com.iailab.module.ansteel.power.entity.PowerMaxdemandDetEntity; import com.iailab.module.ansteel.power.entity.PowerNetDropdownEntity; import com.iailab.module.ansteel.power.service.PowerMaxdemandDetService; import com.iailab.module.ansteel.power.service.PowerNetDropdownService; import com.iailab.module.data.api.point.DataPointApi; import com.iailab.module.data.api.point.dto.ApiPointValueDTO; import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.Collections; import java.util.Date; import java.util.List; import java.util.UUID; import java.math.BigDecimal; import java.util.*; /** * @author PanZhibao @@ -25,10 +31,59 @@ @Resource private PowerMaxdemandDetDao powerMaxdemandDetDao; @Autowired private PowerNetDropdownService powerNetDropdownService; @Resource private DataPointApi dataPointApi; @Override public void add(PowerMaxdemandDetEntity entity) { entity.setId(UUID.randomUUID().toString()); powerMaxdemandDetDao.insert(entity); } @Override public List<PowerMaxdemandDetEntity> addList(String relId, String groupName, Date occurTime) { List<PowerMaxdemandDetEntity> result = new ArrayList<>(); Map<String, Object> params1 = new HashMap<>(); params1.put("groupName", groupName); List<PowerNetDropdownEntity> dropdownList = powerNetDropdownService.list(params1); if (CollectionUtils.isEmpty(dropdownList)) { log.info("dropdownList is empty"); return result; } Calendar calendar1 = Calendar.getInstance(); calendar1.setTime(occurTime); calendar1.add(Calendar.MINUTE, 1); int sort0 = 0; for (PowerNetDropdownEntity dropdown : dropdownList) { if (StringUtils.isBlank(dropdown.getExt1())) { log.info(dropdown.getNodeCode() + ":dropdown.getExt1() is empty"); continue; } log.info(dropdown.getNodeCode() + ":dropdown.getExt1() = " + dropdown.getExt1()); ApiPointValueQueryDTO pointValueQuery1 = new ApiPointValueQueryDTO(); pointValueQuery1.setStart(occurTime); pointValueQuery1.setEnd(calendar1.getTime()); pointValueQuery1.setPointNo(dropdown.getExt1()); List<ApiPointValueDTO> valueList1 = dataPointApi.queryPointHistoryValue(pointValueQuery1); if (CollectionUtils.isEmpty(valueList1)) { log.info("valueList1 is empty"); continue; } PowerMaxdemandDetEntity detEntity0 = new PowerMaxdemandDetEntity(); detEntity0.setRelId(relId); detEntity0.setCode(dropdown.getNodeCode()); detEntity0.setName(dropdown.getNodeName()); detEntity0.setOccurTime(occurTime); detEntity0.setMaxDemand(BigDecimal.valueOf(valueList1.get(0).getV())); detEntity0.setSort(sort0); this.add(detEntity0); sort0 ++; result.add(detEntity0); } return result; } @Override @@ -42,6 +97,15 @@ return powerMaxdemandDetDao.selectList( new QueryWrapper<PowerMaxdemandDetEntity>() .eq("rel_id", relId) .eq("occur_time", occurTime)); .eq("occur_time", occurTime) .orderByAsc("sort")); } @Override public List<PowerMaxdemandDetEntity> selectListByRelId(String relId) { return powerMaxdemandDetDao.selectList( new QueryWrapper<PowerMaxdemandDetEntity>() .eq("rel_id", relId) .orderByAsc("sort")); } } doc/鞍钢数据接口文档_250512.docBinary files differ
doc/鞍钢数据接口文档_master.docBinary files differ