From 51d7b5b62db52c8c80d0bac9d42c37e33ce48a5d Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 29 七月 2026 17:20:45 +0800
Subject: [PATCH] 1.手动下单:修复选择样品后查询的检测项缺失问题 2.人员考勤:修复同步ICC考勤数据报错问题

---
 basic-server/src/main/resources/mapper/StandardProductListMapper.xml                                              |    1 +
 basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java                                  |    2 +-
 performance-server/src/main/java/com/ruoyi/performance/service/impl/StaffAttendanceTrackingRecordServiceImpl.java |   26 +++++++++++++++++++-------
 basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java                       |   13 ++++++++-----
 4 files changed, 29 insertions(+), 13 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java b/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java
index 9be3c8c..22af01e 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java
@@ -23,7 +23,7 @@
 
     StandardProductList getOne(@Param("standardMethodListId") Integer standardMethodListId, @Param("inspectionItem") String inspectionItem, @Param("sample") String sample, @Param("inspectionItemSubclass") String inspectionItemSubclass, @Param("model") String model, @Param("inspectionItemClass") String inspectionItemClass);
 
-    List<StandardProductList> selectDetail(@Param("standardMethodListId") Integer standardMethodListId, @Param("state") int state, @Param("model") String model, @Param("isCableTag") String isCableTag);
+    List<StandardProductList> selectDetail(@Param("standardMethodListId") Integer standardMethodListId, @Param("state") int state, @Param("model") String model,@Param("tree") String tree, @Param("isCableTag") String isCableTag);
 
     List<StandardProductList> selectDetail2(@Param("standardMethodListId") Integer standardMethodListId, @Param("state") int state, @Param("tree") String tree, @Param("isCableTag") String isCableTag);
 
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
index 945a26a..97b846d 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
@@ -63,8 +63,8 @@
 //        String[] models = insSample.getModel().split("-(?=[^-]*$)");//鎷嗗垎鏈�鍚庝竴涓��-銆�
         String model = insSample.getModel();
         String modelNum = insSample.getModelNum();
-        List<StandardProductList> list = standardProductListMapper.selectDetail(insSample.getStandardMethodListId(), 1, model, insSample.getIsCableTag());
-        if (list.size() == 0) {
+        List<StandardProductList> list = standardProductListMapper.selectDetail(insSample.getStandardMethodListId(), 1, model,insSample.getFactory(), insSample.getIsCableTag());
+        if (list.isEmpty()) {
             if (Objects.equals(insSample.getFactory(), "") || insSample.getFactory() == null) {
                 return null;
             }
@@ -72,12 +72,12 @@
             split[3] = split[3].replace("- ", "");
             String tree = split[0] + " - " + split[1] + " - " + split[2] + " - " + split[3] + " - null";
             list = standardProductListMapper.selectDetail2(insSample.getStandardMethodListId(), 1, tree, insSample.getIsCableTag());
-            if (list.size() == 0) {
+            if (list.isEmpty()) {
                 String tree1 = split[0] + " - " + split[1] + " - " + split[2] + " - null - " + split[3];
                 list = standardProductListMapper.selectDetail2(insSample.getStandardMethodListId(), 1, tree1, insSample.getIsCableTag());
 
                 // 鍙湁瀵硅薄鐨勪竴灞�
-                if (list.size() == 0) {
+                if (list.isEmpty()) {
                     String tree2 = split[0] + " - " + split[1] + " - " + split[2] + " - null - null";
                     list = standardProductListMapper.selectDetail2(insSample.getStandardMethodListId(), 1, tree2, insSample.getIsCableTag());
                     // 鏍峰搧鐩存帴璧嬪�兼牱鍝佸垎绫�
@@ -87,12 +87,15 @@
             }
         }
         String[] split1 = insSample.getFactory().split(" - ");
+        if(split1[3].equals("null")){
+            split1[3] = "";
+        }
         if (!isNoSample) {
             //鍒ゆ柇闀垮害
             if (split1.length > 4) {
                 if (ObjectUtils.isNotEmpty(split1[3])) {
                     list = list.stream().filter(list1 -> Objects.nonNull(list1.getSample()) && Objects.equals(list1.getSample(), split1[3])).collect(Collectors.toList());
-                } else if (split1[3].equals("")) {
+                } else if (split1[3].isEmpty()) {
                     list = list.stream().filter(list1 -> Objects.nonNull(list1.getSampleType()) && Objects.equals(list1.getSampleType(), split1[2])).collect(Collectors.toList());
                 }
             }
diff --git a/basic-server/src/main/resources/mapper/StandardProductListMapper.xml b/basic-server/src/main/resources/mapper/StandardProductListMapper.xml
index 4482e24..8822e34 100644
--- a/basic-server/src/main/resources/mapper/StandardProductListMapper.xml
+++ b/basic-server/src/main/resources/mapper/StandardProductListMapper.xml
@@ -110,6 +110,7 @@
         where standard_method_list_id = #{standardMethodListId}
         and state =#{state}
         and model=#{model}
+        and tree=#{tree}
         <if test="isCableTag != null and isCableTag != ''">
             and (inspection_item_class like concat('%缁撴瀯灏哄%') or
             inspection_item_class like concat('%鐢电紗鐢垫�ц兘%')or
diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/impl/StaffAttendanceTrackingRecordServiceImpl.java b/performance-server/src/main/java/com/ruoyi/performance/service/impl/StaffAttendanceTrackingRecordServiceImpl.java
index 4ecc238..825b21b 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/service/impl/StaffAttendanceTrackingRecordServiceImpl.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/service/impl/StaffAttendanceTrackingRecordServiceImpl.java
@@ -768,22 +768,34 @@
     public static String restorePersonCode(Object number) {
         // 1. 绌哄�兼牎楠�
         if (number == null) {
-            throw new IllegalArgumentException("浼犲叆鏁板瓧涓嶈兘涓虹┖");
+            return "";
         }
 
+        String original = number.toString();
+        try {
         // 2. 缁熶竴杞崲涓哄瓧绗︿覆骞跺幓闄ら灏剧┖鏍�
-        String numStr = number.toString().trim();
+            String numStr = original.trim();
 
         // 3. 鏍¢獙鏄惁涓虹函鏁板瓧锛堟帓闄よ礋鏁般�侀潪鏁板瓧瀛楃锛�
-        if (!numStr.matches("\\d+")) {
-            throw new IllegalArgumentException("浼犲叆鐨勪笉鏄湁鏁堟鏁存暟锛�" + numStr);
-        }
+            String digitStr;
+            if (numStr.matches("\\d+")) {
+                digitStr = numStr;
+            } else if (numStr.matches("(?i)^ZT\\d+$")) {
+                digitStr = numStr.substring(2);
+            } else if (numStr.matches("(?i)^ZT-\\d+$")) {
+                digitStr = numStr.substring(3);
+            } else {
+                return original;
+            }
 
         // 4. 琛ュ墠缃�0鍒版寚瀹氶暱搴︼紙6浣嶏級锛岃秴鍑哄垯淇濈暀鍘熸暟瀛�
-        String paddedNum = String.format("%0" + DIGIT_LENGTH + "d", Long.parseLong(numStr));
+            String paddedNum = StringUtils.leftPad(digitStr, DIGIT_LENGTH, '0');
 
         // 5. 鎷兼帴鍓嶇紑杩斿洖
-        return PREFIX + paddedNum;
+            return PREFIX + paddedNum;
+        } catch (Exception e) {
+            return original;
+        }
     }
 
 }

--
Gitblit v1.9.3