From 51786b723d0a91d11476776d9ce50af7994dc4bd Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 23 九月 2026 15:58:53 +0800
Subject: [PATCH] feat(inspect): 完善检验订单状态管理和样品接收流程

---
 basic-server/src/main/java/com/ruoyi/basic/utils/StandardTemplateInspectionItemParser.java |   35 +++++++++++++++++++++++++++++++----
 1 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/utils/StandardTemplateInspectionItemParser.java b/basic-server/src/main/java/com/ruoyi/basic/utils/StandardTemplateInspectionItemParser.java
index d2fd833..fe80870 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/utils/StandardTemplateInspectionItemParser.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/utils/StandardTemplateInspectionItemParser.java
@@ -52,10 +52,7 @@
                     continue;
                 }
                 Integer row = cell.getInteger("r");
-                String item = value.getString("v");
-                if (!StringUtils.hasText(item)) {
-                    item = value.getString("m");
-                }
+                String item = getCellText(value);
                 if (row == null || !StringUtils.hasText(item)) {
                     throw new BaseException("鈥滄楠岄」鈥濇爣璁版墍鍦ㄥ崟鍏冩牸蹇呴』濉啓妫�楠岄」鍚嶇О");
                 }
@@ -74,6 +71,36 @@
         return result;
     }
 
+    /**
+     * 璇诲彇 Luckysheet 鍗曞厓鏍兼枃鏈紝鍏煎鏅�氭枃鏈拰 inlineStr 瀵屾枃鏈��
+     */
+    private static String getCellText(JSONObject value) {
+        String text = value.getString("v");
+        if (StringUtils.hasText(text)) {
+            return text;
+        }
+        text = value.getString("m");
+        if (StringUtils.hasText(text)) {
+            return text;
+        }
+
+        JSONObject cellType = value.getJSONObject("ct");
+        JSONArray segments = cellType == null ? null : cellType.getJSONArray("s");
+        if (segments == null || segments.isEmpty()) {
+            return text;
+        }
+        StringBuilder richText = new StringBuilder();
+        for (Object segmentObject : segments) {
+            if (segmentObject instanceof JSONObject) {
+                String segmentText = ((JSONObject) segmentObject).getString("v");
+                if (segmentText != null) {
+                    richText.append(segmentText);
+                }
+            }
+        }
+        return richText.toString();
+    }
+
     private static boolean isInspectionItem(JSONObject value) {
         JSONObject ps = value.getJSONObject("ps");
         return ps != null && INSPECTION_ITEM_MARK.equals(ps.getString("value"));

--
Gitblit v1.9.3