鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
7 天以前 ad206fa1da1f115b641234dd332b00aa53a1fd70
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -594,11 +594,12 @@
    }
    @PostMapping("/demand-query/list")
    @Operation(summary = "负荷移植-功率因数查询")
    public CommonResult<List<PowerNetDropdownDTO>> getDemandDropdownList(@RequestBody PowerDemandQueryDTO queryDto) {
        List<PowerNetDropdownDTO> result = new ArrayList<>();
    @Operation(summary = "负荷移植-需量值查询")
    public CommonResult<List<PowerDemandQueryRespDTO>> getDemandDropdownList(@RequestBody PowerDemandQueryDTO queryDto) {
        List<PowerDemandQueryRespDTO> result = new ArrayList<>();
        if (StringUtils.isBlank(queryDto.getCode())) {
            log.info("code isBlank");
            return success(result);
        }
        log.info("code=" + queryDto.getCode());
        if (StringUtils.isBlank(queryDto.getNodeCode())) {
@@ -609,25 +610,42 @@
            log.info("PowerDemandEntity is null");
            return success(result);
        }
        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();
        }
        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) {
        List<PowerNetDropdownEntity> dropdownList = powerNetDropdownService.list(params0);
        List<String> pointNos = new ArrayList<>();
        for (PowerNetDropdownEntity netDropdown : dropdownList) {
            if (StringUtils.isNotBlank(netDropdown.getExt1())) {
                pointNos.add(netDropdown.getExt1());
            }
        }
        if (StringUtils.isBlank(queryDto.getNodeCode()) || queryDto.getCurDemand() == null) {
            log.info("查询当前值");
            Map<String, Object> pointsRealValue = new HashMap<>();
            if (!CollectionUtils.isEmpty(points)) {
                pointsRealValue = dataPointApi.queryPointsRealValue(points);
            if (!CollectionUtils.isEmpty(pointNos)) {
                pointsRealValue = dataPointApi.queryPointsRealValue(pointNos);
            }
            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());
            for (PowerNetDropdownEntity netDropdown : dropdownList) {
                PowerDemandQueryRespDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerDemandQueryRespDTO.class);
                BigDecimal demand = null;
                if (pointsRealValue.get(netDropdown.getExt1()) != null) {
                    demand = new BigDecimal(pointsRealValue.get(netDropdown.getExt1()).toString());
                }
                dto.setCurCos(curCos);
                dto.setCurDemand(demand);
                dto.setDataTime(calendar.getTime());
                result.add(dto);
            }
        } else {
@@ -643,19 +661,7 @@
                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.setPointNos(pointNos);
            valueQueryDTO.setStart(startTime);
            valueQueryDTO.setEnd(endTime);
            Map<String, List<Map<String, Object>>> pointsHisValues = dataPointApi.queryPointsHistoryValue(valueQueryDTO);
@@ -676,27 +682,33 @@
            Collections.reverse(hisValue);
            for (ApiPointValueDTO valueDTO : hisValue) {
                curValue = valueDTO;
                if ((queryDto.getCurCos().doubleValue() - valueDTO.getV()) <= 0.0001) {
                if ((queryDto.getCurDemand().doubleValue() - valueDTO.getV()) <= 0.0001) {
                    break;
                }
            }
            if (curValue == null) {
                log.info("curValue is null");
                for (PowerNetDropdownEntity netDropdown : dropdownList){
                    PowerDemandQueryRespDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerDemandQueryRespDTO.class);
                    if (dto.getNodeCode().equals(nodeCode)) {
                        dto.setCurDemand(queryDto.getCurDemand());
                    }
                    result.add(dto);
                }
                return success(result);
            }
            log.info("curValue=" + curValue);
            for (PowerNetDropdownEntity netDropdown : list) {
                PowerNetDropdownDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerNetDropdownDTO.class);
            for (PowerNetDropdownEntity netDropdown : dropdownList) {
                PowerDemandQueryRespDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerDemandQueryRespDTO.class);
                if (!CollectionUtils.isEmpty(pointsHisValues.get(netDropdown.getExt1()))) {
                    Map<String, BigDecimal> pointValueMap = new HashMap<>();
                    pointsHisValues.get(netDropdown.getExt1()).forEach(item -> {
                        pointValueMap.put(item.get("time").toString(), DecimalUtil.toBigDecimal(item.get("value")));
                if (CollectionUtils.isEmpty(pointsHisValues.get(netDropdown.getCurCos()))) {
                    continue;
                    });
                    dto.setCurDemand(pointValueMap.get(DateUtils.format(curValue.getT(),DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)));
                    dto.setDataTime(curValue.getT());
                }
                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);
            }
        }
@@ -999,7 +1011,7 @@
        }
        for (String code : dto.getCodeList()) {
            PowerNetFactorQuery powerNetFactorQuery = null;
            PowerNetFactorQuery powerNetFactorQuery = new PowerNetFactorQuery();
            PowerDemandEntity powerDemandEntity = powerDemandService.getByCode(code);
            PowerNetDropdownEntity powerNetDropdownEntity = powerNetDropdownService.getByNodeCode(code);
            if (powerDemandEntity != null) {