From d8489770304385821159bbd5b62b6f2a9e4c8ba1 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期四, 06 十一月 2025 13:37:33 +0800
Subject: [PATCH] feat(dry): 添加设备启用状态及配方查询优化- 启用设备默认设置为 "Y" - 配方实体增加启用状态字段并支持 Excel 导出 - 查询配方时过滤启用状态为 "true" 的记录 - 优化功率和蒸汽计算逻辑,防止空指针异常 - 新增设备保存后清理 Redis 缓存 - 注释掉未使用的配方自动创建逻辑- 调整配方实体部分字段的 Excel 注解显示名称 -修复 IpUtils 工具类中代理 IP 获取逻辑的注释问题

---
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java |   24 ++++++-----
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryEquipment.java                     |    1 
 jeecg-boot-base-core/src/main/java/org/jeecg/common/util/IpUtils.java                                                  |   12 +++---
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/HerbFormulaVo.java                        |    2 +
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormula.java                   |   28 ++++++++-----
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java    |    1 
 6 files changed, 40 insertions(+), 28 deletions(-)

diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/IpUtils.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/IpUtils.java
index 01b9d6b..e7e1663 100755
--- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/IpUtils.java
+++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/IpUtils.java
@@ -46,12 +46,12 @@
         	logger.error("IPUtils ERROR ", e);
         }
         
-//        //浣跨敤浠g悊锛屽垯鑾峰彇绗竴涓狪P鍦板潃
-//        if(StringUtils.isEmpty(ip) && ip.length() > 15) {
-//			if(ip.indexOf(",") > 0) {
-//				ip = ip.substring(0, ip.indexOf(","));
-//			}
-//		}
+        //浣跨敤浠g悊锛屽垯鑾峰彇绗竴涓狪P鍦板潃
+        if(StringUtils.isEmpty(ip) && ip.length() > 15) {
+			if(ip.indexOf(",") > 0) {
+				ip = ip.substring(0, ip.indexOf(","));
+			}
+		}
         
         return ip;
     }
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryEquipment.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryEquipment.java
index 2a8392b..1ac21ab 100755
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryEquipment.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryEquipment.java
@@ -125,5 +125,6 @@
     public DryEquipment(RealTimeDataVo realTimeDataVo) {
         this.code = realTimeDataVo.getMachineid();
         this.tenantId = realTimeDataVo.getTenantid();
+        this.enable = "Y";
     }
 }
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormula.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormula.java
index a04fef7..14ebc66 100755
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormula.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormula.java
@@ -36,13 +36,13 @@
     @ApiModelProperty(value = "id")
     private String id;
     /**閰嶆柟缂栧彿*/
-    @Excel(name = "閰嶆柟缂栧彿", width = 15)
+
     @ApiModelProperty(value = "閰嶆柟缂栧彿")
     private String code;
 	/**鑽潗id*/
-	@Excel(name = "鑽潗id", width = 15, dictTable = "dry_herb_info", dicText = "name", dicCode = "id")
+	@Excel(name = "鑽潗", width = 15, dictTable = "dry_herb_info", dicText = "name", dicCode = "id")
 	@Dict(dictTable = "dry_herb_info", dicText = "name", dicCode = "id")
-    @ApiModelProperty(value = "鑽潗id")
+    @ApiModelProperty(value = "鑽潗")
     private String herbId;
 	/**閰嶆柟鍚嶇О*/
 	@Excel(name = "閰嶆柟鍚嶇О", width = 15)
@@ -53,7 +53,7 @@
     @ApiModelProperty(value = "缂╁啓")
     private String abbr;
 	/**鑽潗鎷奸煶*/
-    @Excel(name = "鑽潗鎷奸煶", width = 15)
+
     @ApiModelProperty(value = "鑽潗鎷奸煶")
     private String pinyin;
 	/**璁惧绫诲瀷*/
@@ -70,7 +70,7 @@
     @ApiModelProperty(value = "杞昏川鐗╂枡")
     private String light;
     /**閰嶆柟鍒嗙被*/
-    @Excel(name = "閰嶆柟鍒嗙被", width = 15)
+//    @Excel(name = "閰嶆柟鍒嗙被", width = 15)
     @ApiModelProperty(value = "閰嶆柟鍒嗙被")
     private String category;
     /**鍒濆鍚按鐜�*/
@@ -98,11 +98,11 @@
     @ApiModelProperty(value = "鍒濆椋庢満棰戠巼")
     private Integer fanSpeed;
 	/**鐜娓╁害*/
-	@Excel(name = "鐜娓╁害", width = 15)
+
     @ApiModelProperty(value = "鐜娓╁害")
     private Double envTemp;
 	/**鐜婀垮害*/
-	@Excel(name = "鐜婀垮害", width = 15)
+
     @ApiModelProperty(value = "鐜婀垮害")
     private Double envHum;
     /**缈绘枡绛栫暐*/
@@ -110,15 +110,15 @@
     @ApiModelProperty(value = "缈绘枡绛栫暐")
     private String strategy;
 	/**鑽℃枡寤舵椂ms*/
-	@Excel(name = "鑽℃枡寤舵椂ms", width = 15)
+
     @ApiModelProperty(value = "鑽℃枡寤舵椂ms")
     private Integer delay;
 	/**缈绘枡娆℃暟*/
-	@Excel(name = "缈绘枡娆℃暟", width = 15)
+
     @ApiModelProperty(value = "缈绘枡娆℃暟")
     private Integer turn;
     /**鍚按鐜囪ˉ鍋�*/
-    @Excel(name = "鍚按鐜囪ˉ鍋�", width = 15)
+//    @Excel(name = "鍚按鐜囪ˉ鍋�", width = 15)
     @ApiModelProperty(value = "鍚按鐜囪ˉ鍋�")
     private Double moisOffset;
 
@@ -126,8 +126,14 @@
     @Excel(name = "鍐烽鏃堕暱", width = 15)
     @ApiModelProperty(value = "鍐烽鏃堕暱")
     private Integer coolingDuration;
+
+
+    /**鏄惁鍚敤*/
+    @Excel(name = "鏄惁鍚敤", width = 15)
+    @ApiModelProperty(value = "鏄惁鍚敤")
+    private String enabled;
+
 	/**绉熸埛id*/
-	@Excel(name = "绉熸埛id", width = 15)
     @ApiModelProperty(value = "绉熸埛id")
     private Integer tenantId;
 	/**鍒涘缓浜�*/
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/HerbFormulaVo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/HerbFormulaVo.java
index 6cc264c..cbc650c 100644
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/HerbFormulaVo.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/HerbFormulaVo.java
@@ -33,4 +33,6 @@
     private String strategy;
     @ApiModelProperty(value = "鍐烽鏃堕暱")
     private Integer coolingDuration;
+    @ApiModelProperty(value = "鍚敤鏍囧織")
+    private String enabled;
 }
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
index 3d9e86f..a401283 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
@@ -209,6 +209,7 @@
         }
         LambdaQueryWrapper<DryHerbFormula> queryWrapper = new LambdaQueryWrapper<DryHerbFormula>();
         queryWrapper.eq(DryHerbFormula::getEqpType, dryEquipment.getType())
+                .eq(DryHerbFormula::getEnabled, "true")
                 .eq(DryHerbFormula::getTenantId, tenantId);
         List<DryHerbFormula> list = dryHerbFormulaService.list(queryWrapper);
 
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java
index d5eeea1..648ddcc 100755
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java
@@ -407,6 +407,8 @@
                     log.error("鏂板璁惧澶辫触锛氭暟鎹簱淇濆瓨寮傚父锛乪quipment={}", addEqu);
                     return null;
                 }
+                redisUtil.del(CommonCacheConstant.DRY_CACHE_TENANT_EQUS_LIST);
+                redisUtil.del(CommonCacheConstant.DRY_CACHE_TENANT_EQUS);
             } catch (Exception e) {
                 e.printStackTrace();
             } finally {
@@ -520,15 +522,15 @@
         queryWrapper.last("LIMIT 1");
         DryHerbFormula one = dryHerbFormulaService.getOne(queryWrapper);
 
-        if (one == null) {
-            one = new DryHerbFormula(realTimeDataVo);
-            DryEquipment dryEquipment = equipmentService.selectByTenantIdEquipmentId(realTimeDataVo.getTenantid() + "", realTimeDataVo.getMachineid());
-            if (dryEquipment != null && dryEquipment.getType() != null) {
-                one.setEqpType(dryEquipment.getType());
-            }
-
-            dryHerbFormulaService.save(one);
-        }
+//        if (one == null) {
+//            one = new DryHerbFormula(realTimeDataVo);
+//            DryEquipment dryEquipment = equipmentService.selectByTenantIdEquipmentId(realTimeDataVo.getTenantid() + "", realTimeDataVo.getMachineid());
+//            if (dryEquipment != null && dryEquipment.getType() != null) {
+//                one.setEqpType(dryEquipment.getType());
+//            }
+//
+//            dryHerbFormulaService.save(one);
+//        }
         return one;
     }
 
@@ -668,9 +670,9 @@
                 if (order != null) {
                     orderVo.setEnvHum(order.getEnvHum());
                     orderVo.setEnvTemp(order.getEnvTemp());
-                    double watt = order.getWatt() - order.getDetailList().get(0).getWatt();
+                    double watt = order.getWatt() - (order.getDetailList().size() > 0 ?order.getDetailList().get(0).getWatt():0);
                     orderVo.setWatt(orderVo.getWatt() == null ? watt : orderVo.getWatt() + watt);
-                    double steam = order.getSteam() - order.getDetailList().get(0).getSteam();
+                    double steam = order.getSteam() - ( order.getDetailList().size() > 0 ?order.getDetailList().get(0).getSteam():0);
                     orderVo.setSteam(orderVo.getSteam() == null ? steam : orderVo.getSteam() + steam);
                     orderVo.setOriginWeight(orderVo.getOriginWeight() == null ? order.getOriginWeight() : orderVo.getOriginWeight() + order.getOriginWeight());
 

--
Gitblit v1.9.3