From ed56ae711e18c6f7624dac633c4af3ecfcf09520 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 18 九月 2026 16:40:19 +0800
Subject: [PATCH] fix:报告生成所有带导出值批注的检验项

---
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java |   79 +++++++++++++++++++++------------------
 1 files changed, 42 insertions(+), 37 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
index c9d4bb2..f09b388 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -820,12 +820,12 @@
 
             JSONObject recordValues = StrUtil.isBlank(snapshot.getRecordValues())
                     ? new JSONObject() : JSON.parseObject(snapshot.getRecordValues());
-            // 淇濆瓨鏃跺悓鏍峰彧鍙栨ā鏉夸腑鐨勭涓�涓鍑哄�硷紝鎻愪氦鏍¢獙涓庝繚瀛樺彛寰勪繚鎸佷竴鑷淬��
-            String coordinate = coordinates.get(0);
-            JSONObject cell = recordValues.getJSONObject(coordinate);
-            Object value = cell == null ? null : cell.get("v");
-            if (value == null || StringUtils.isBlank(String.valueOf(value))) {
-                missing.add(templateName + "锛�" + coordinate + "锛�");
+            for (String coordinate : coordinates) {
+                JSONObject cell = recordValues.getJSONObject(coordinate);
+                Object value = cell == null ? null : cell.get("v");
+                if (value == null || StringUtils.isBlank(String.valueOf(value))) {
+                    missing.add(templateName + "锛�" + coordinate + "锛�");
+                }
             }
         }
         return missing;
@@ -3598,7 +3598,7 @@
     }
 
     /**
-     * 鏂拌仛鐩寸粦妯℃澘璁㈠崟锛氫竴涓ā鏉块〉绛惧湪鎶ュ憡涓彧瀵瑰簲涓�鏉℃娴嬮」鐩��
+     * 鏂拌仛鐩寸粦妯℃澘璁㈠崟锛氭ā鏉夸腑姣忎竴涓�滃鍑哄�尖�濇壒娉ㄩ兘瀵瑰簲鎶ュ憡涓殑涓�鏉℃娴嬮」鐩��
      */
     private List<Map<String, String>> buildTemplateDetectionResultRows(Integer orderId) {
         List<InsOrderStandardTemplate> snapshots = insOrderStandardTemplateService.list(
@@ -3608,27 +3608,29 @@
         List<Map<String, String>> rows = new ArrayList<>();
         int sequence = 1;
         for (InsOrderStandardTemplate snapshot : snapshots) {
-            TemplateExportCell exportCell = getFirstTemplateExportCell(snapshot.getThing());
+            List<TemplateExportCell> exportCells = getTemplateExportCells(snapshot.getThing());
             JSONObject recordValues = StrUtil.isBlank(snapshot.getRecordValues())
                     ? new JSONObject() : JSON.parseObject(snapshot.getRecordValues());
-            String result = readTemplateCellText(recordValues, exportCell.resultCoordinate, exportCell.templateValues);
-            if (StringUtils.isBlank(result)) {
-                throw new ErrorException("妯℃澘鈥�" + defaultReportText(snapshot.getName(), "妯℃澘ID " + snapshot.getTemplateId())
-                        + "鈥濈殑瀵煎嚭鍊间笉鑳戒负绌�");
-            }
-            String unit = exportCell.unitCoordinate == null ? null
-                    : readTemplateCellText(recordValues, exportCell.unitCoordinate, exportCell.templateValues);
-            String itemName = exportCell.itemCoordinate == null ? null
-                    : readTemplateCellText(recordValues, exportCell.itemCoordinate, exportCell.templateValues);
+            for (TemplateExportCell exportCell : exportCells) {
+                String result = readTemplateCellText(recordValues, exportCell.resultCoordinate, exportCell.templateValues);
+                if (StringUtils.isBlank(result)) {
+                    throw new ErrorException("妯℃澘鈥�" + defaultReportText(snapshot.getName(), "妯℃澘ID " + snapshot.getTemplateId())
+                            + "鈥濈殑瀵煎嚭鍊间笉鑳戒负绌猴紙" + exportCell.resultCoordinate + "锛�");
+                }
+                String unit = exportCell.unitCoordinate == null ? null
+                        : readTemplateCellText(recordValues, exportCell.unitCoordinate, exportCell.templateValues);
+                String itemName = exportCell.itemCoordinate == null ? null
+                        : readTemplateCellText(recordValues, exportCell.itemCoordinate, exportCell.templateValues);
 
-            Map<String, String> row = new LinkedHashMap<>();
-            row.put("seq", String.valueOf(sequence++));
-            String reportItemName = defaultReportText(itemName,
-                    defaultReportText(snapshot.getName(), "妯℃澘ID " + snapshot.getTemplateId()));
-            row.put("itemName", formatExportItemName(reportItemName));
-            row.put("unit", defaultReportText(unit, "/"));
-            row.put("result", result);
-            rows.add(row);
+                Map<String, String> row = new LinkedHashMap<>();
+                row.put("seq", String.valueOf(sequence++));
+                String reportItemName = defaultReportText(itemName,
+                        defaultReportText(snapshot.getName(), "妯℃澘ID " + snapshot.getTemplateId()));
+                row.put("itemName", formatExportItemName(reportItemName));
+                row.put("unit", defaultReportText(unit, "/"));
+                row.put("result", result);
+                rows.add(row);
+            }
         }
         if (rows.isEmpty()) {
             throw new ErrorException("褰撳墠璁㈠崟鏈壘鍒板彲鐢熸垚鎶ュ憡鐨勫師濮嬭褰曟ā鏉�");
@@ -3636,7 +3638,7 @@
         return rows;
     }
 
-    private TemplateExportCell getFirstTemplateExportCell(String compressedThing) {
+    private List<TemplateExportCell> getTemplateExportCells(String compressedThing) {
         if (StrUtil.isBlank(compressedThing)) {
             throw new ErrorException("鍘熷璁板綍妯℃澘涓虹┖");
         }
@@ -3681,17 +3683,20 @@
             throw new ErrorException("妯℃澘蹇呴』鑷冲皯閰嶇疆涓�涓鍑哄�兼壒娉�");
         }
         exportCells.sort(Comparator.comparingInt((int[] cell) -> cell[0]).thenComparingInt(cell -> cell[1]));
-        int[] firstExport = exportCells.get(0);
-        int resultColumnForRow = resultColumn == null ? firstExport[1] : resultColumn;
-        // 閫氬父鈥滃鍑哄�尖�濇壒娉ㄩ厤缃湪椤圭洰鍚嶇О鍗曞厓鏍硷紱鑻ラ厤缃湪缁撴灉鍗曞厓鏍硷紝鍒欏洖鍒扳�滄娴嬮」鐩�濆垪鍙栧悕绉般��
-        Integer itemColumnForRow = !Objects.equals(firstExport[1], resultColumnForRow)
-                ? firstExport[1] : itemColumn;
-        TemplateExportCell result = new TemplateExportCell();
-        result.resultCoordinate = firstExport[0] + "-" + resultColumnForRow;
-        result.itemCoordinate = itemColumnForRow == null ? null : firstExport[0] + "-" + itemColumnForRow;
-        result.unitCoordinate = unitColumn == null ? null : firstExport[0] + "-" + unitColumn;
-        result.templateValues = templateValues;
-        return result;
+        List<TemplateExportCell> results = new ArrayList<>();
+        for (int[] exportCell : exportCells) {
+            int resultColumnForRow = resultColumn == null ? exportCell[1] : resultColumn;
+            // 閫氬父鈥滃鍑哄�尖�濇壒娉ㄩ厤缃湪椤圭洰鍚嶇О鍗曞厓鏍硷紱鑻ラ厤缃湪缁撴灉鍗曞厓鏍硷紝鍒欏洖鍒扳�滄娴嬮」鐩�濆垪鍙栧悕绉般��
+            Integer itemColumnForRow = !Objects.equals(exportCell[1], resultColumnForRow)
+                    ? exportCell[1] : itemColumn;
+            TemplateExportCell result = new TemplateExportCell();
+            result.resultCoordinate = exportCell[0] + "-" + resultColumnForRow;
+            result.itemCoordinate = itemColumnForRow == null ? null : exportCell[0] + "-" + itemColumnForRow;
+            result.unitCoordinate = unitColumn == null ? null : exportCell[0] + "-" + unitColumn;
+            result.templateValues = templateValues;
+            results.add(result);
+        }
+        return results;
     }
 
     private String readTemplateCellText(JSONObject recordValues, String coordinate, Map<String, String> templateValues) {

--
Gitblit v1.9.3