From 16f4bb3c28fc85cffcc511718c903ada9fdab134 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期五, 26 十二月 2025 16:59:45 +0800
Subject: [PATCH] 调用mes导入工程参数修改,Excel表数据流程卡号一致;增加读取层号/工程号方法; 工程号一致覆盖更新

---
 mes-common/serverBase/src/main/java/com/mes/s7/enhanced/EnhancedS7Serializer.java |   20 +++++++++++++++++++-
 1 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/mes-common/serverBase/src/main/java/com/mes/s7/enhanced/EnhancedS7Serializer.java b/mes-common/serverBase/src/main/java/com/mes/s7/enhanced/EnhancedS7Serializer.java
index 3831e13..d4c24ef 100644
--- a/mes-common/serverBase/src/main/java/com/mes/s7/enhanced/EnhancedS7Serializer.java
+++ b/mes-common/serverBase/src/main/java/com/mes/s7/enhanced/EnhancedS7Serializer.java
@@ -487,7 +487,25 @@
     private void extractField(S7ParseData item, Object data) {
         switch (item.getDataType()) {
             case BOOL:
-                item.setDataItem(DataItem.createReqByBoolean((Boolean) data));
+                // 绫诲瀷杞崲瀹归敊锛氭敮鎸� Integer/Number 杞� Boolean
+                Boolean boolValue;
+                if (data instanceof Boolean) {
+                    boolValue = (Boolean) data;
+                } else if (data instanceof Number) {
+                    boolValue = ((Number) data).intValue() != 0;
+                } else if (data instanceof String) {
+                    String str = ((String) data).trim().toLowerCase();
+                    boolValue = "true".equals(str) || "1".equals(str) || "on".equals(str);
+                } else {
+                    // 灏濊瘯杞崲涓烘暟瀛楀啀杞珺oolean
+                    try {
+                        int intValue = Integer.parseInt(String.valueOf(data));
+                        boolValue = intValue != 0;
+                    } catch (NumberFormatException e) {
+                        throw new S7CommException("鏃犳硶灏嗗�艰浆鎹负Boolean: " + data + " (绫诲瀷: " + (data != null ? data.getClass().getName() : "null") + ")");
+                    }
+                }
+                item.setDataItem(DataItem.createReqByBoolean(boolValue));
                 break;
             case BYTE:
                 item.setDataItem(DataItem.createReqByByte(ByteReadBuff.newInstance((byte[]) data)

--
Gitblit v1.8.0