From c8a889c3e0577005b455a998b502a2a60df5bf0c Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期三, 16 四月 2025 16:37:15 +0800
Subject: [PATCH] 无功优化建议

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java |   38 +++++++++++++++++++-------------------
 1 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
index 7e9bf92..9ee6709 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -1,5 +1,7 @@
 package com.iailab.module.ansteel.api.controller.admin;
 
+import cn.hutool.core.util.NumberUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants;
 import com.iailab.framework.common.pojo.CommonResult;
 import com.iailab.framework.common.util.object.ConvertUtils;
@@ -70,6 +72,7 @@
         calendar.set(Calendar.HOUR_OF_DAY, 0);
 
         for (PowerNetFactorDTO dto : result) {
+            boolean cosFlag = false;
             try {
                 List<String> points = new ArrayList<>();
                 if (StringUtils.isNotBlank(dto.getCurP())) {
@@ -82,27 +85,17 @@
                     Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points);
                     if (pointsRealValue.get(dto.getCurP()) != null) {
                         dto.setCurP(pointsRealValue.get(dto.getCurP()).toString());
-                    } else {
-                        dto.setCurP("");
                     }
                     if (pointsRealValue.get(dto.getCurQ()) != null) {
                         dto.setCurQ(pointsRealValue.get(dto.getCurQ()).toString());
-                    } else {
-                        dto.setCurQ("");
                     }
                     if (pointsRealValue.get(dto.getCurCos()) != null) {
                         dto.setCurCos(pointsRealValue.get(dto.getCurCos()).toString());
-                    } else {
-                        dto.setCurCos("");
+                        cosFlag = true;
                     }
-                } else {
-                    dto.setCurP("");
-                    dto.setCurQ("");
-                    dto.setCurCos("");
                 }
-            } catch (Exception e) {
-                log.info(dto.getNodeName() + "获取当前值异常");
-                e.printStackTrace();
+            } catch (Exception ex) {
+                log.info(dto.getNodeName() + "获取当前值异常" + ex.getMessage());
             }
 
             try {
@@ -120,6 +113,7 @@
                 }
                 if (!CollectionUtils.isEmpty(itemNos)) {
                     reqVO.setItemNos(itemNos);
+                    log.info("reqVO=" + JSONObject.toJSONString(reqVO));
                     Map<String, BigDecimal> preValues = mcsApi.getPredictValueByTime(reqVO);
                     if (StringUtils.isNotBlank(dto.getPreP()) && preValues.get(dto.getPreP()) != null) {
                         dto.setPreP(preValues.get(dto.getPreP()).toString());
@@ -130,14 +124,20 @@
                     if (StringUtils.isNotBlank(dto.getPreCos()) && preValues.get(dto.getPreCos()) != null) {
                         dto.setPreCos(preValues.get(dto.getPreCos()).toString());
                     }
-                } else {
-                    dto.setPreP("");
-                    dto.setPreQ("");
-                    dto.setPreCos("");
                 }
             } catch (Exception ex) {
-                log.info(dto.getNodeName() + "获取预测值异常");
-                ex.printStackTrace();
+                log.info(dto.getNodeName() + "获取预测值异常," + ex.getMessage());
+            }
+
+            // 设置状态
+            if (cosFlag && StringUtils.isNotBlank(dto.getCurCos()) && NumberUtil.isNumber(dto.getCurCos())) {
+                BigDecimal curCos = new BigDecimal(dto.getCurCos());
+                if (dto.getLimitL() != null && dto.getLimitH() != null &&
+                        curCos.compareTo(dto.getLimitL()) < 0 || curCos.compareTo(dto.getLimitH()) > 0) {
+                    dto.setStatus(1);
+                } else {
+                    dto.setStatus(0);
+                }
             }
         }
         return success(result);

--
Gitblit v1.9.3