From 2917cb5d06bcdf78327ce84ba5b9b36076adb4af Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期二, 01 四月 2025 15:06:44 +0800
Subject: [PATCH] Merge branch 'radio_frequency' of http://114.132.189.42:9002/r/lims-ruoyi-after into radio_frequency

---
 basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java |   30 ++++++++++++++++++------------
 1 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
index d59f70f..4f790a1 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
@@ -7,6 +7,7 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.dto.StructureTestObjectDto;
 import com.ruoyi.basic.excel.StructureTestObjectData;
 import com.ruoyi.basic.service.*;
 import com.ruoyi.common.exception.base.BaseException;
@@ -189,25 +190,25 @@
     public List<TestItemDto> getItemTree() {
         return structureItemParameterMapper.getItemTree();
     }
+
+    @Override
+    public List<TestItemDto> getItemTreeProduct(StructureTestObjectDto structureTestObjectDto) {
+        return structureItemParameterMapper.getItemTreeProduct(structureTestObjectDto.getObjectType());
+    }
     
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void importPartExcel(List<StructureTestObjectData> list) {
-        // 闃舵1: 鏁版嵁棰勫鐞�
-        // 鏀堕泦鎵�鏈夐渶瑕佹煡璇㈢殑鏍囨湰淇℃伅
-        Set<String> specimenKeys = list.stream()
-                .map(i -> i.getSpecimenName() + "|" + i.getSpecimenNameEn())
-                .collect(Collectors.toSet());
-
         // 闃舵2: 鎵归噺鏌ヨ鐜版湁缁撴瀯娴嬭瘯瀵硅薄
         Map<String, StructureTestObject> existStructureTestObjects = structureTestObjectMapper.selectList(
                 Wrappers.<StructureTestObject>lambdaQuery()
                         .in(StructureTestObject::getSpecimenName, list.stream().map(StructureTestObjectData::getSpecimenName).collect(Collectors.toSet()))
                         .in(StructureTestObject::getSpecimenNameEn, list.stream().map(StructureTestObjectData::getSpecimenNameEn).collect(Collectors.toSet()))
+                        .in(StructureTestObject::getObjectType, list.stream().map(StructureTestObjectData::getObjectType).collect(Collectors.toSet()))
         ).stream().collect(Collectors.toMap(
-                obj -> obj.getSpecimenName() + "|" + obj.getSpecimenNameEn(),
+                obj -> generateStructureKey(obj.getSpecimenName(), obj.getSpecimenNameEn(), obj.getObjectType()), // 缁熶竴閿敓鎴�
                 Function.identity(),
-                (existing, replacement) -> existing  // 澶勭悊閲嶅閿�
+                (existing, replacement) -> existing
         ));
 
         // 闃舵3: 棰勫鐞嗚溅闂翠俊鎭�
@@ -234,7 +235,7 @@
 
         for (StructureTestObjectData i : list) {
             // 澶勭悊缁撴瀯娴嬭瘯瀵硅薄锛堥�昏緫涓嶅彉锛�
-            String specimenKey = i.getSpecimenName() + "|" + i.getSpecimenNameEn();
+            String specimenKey = i.getSpecimenName() + "|" + i.getSpecimenNameEn() + "|" + i.getObjectType();
             StructureTestObject structureTestObject = existStructureTestObjects.get(specimenKey);
 
             if (structureTestObject == null) {
@@ -270,6 +271,11 @@
         obj.setLaboratoryId(9);
     }
 
+    // 缁熶竴閿敓鎴愭柟娉�
+    private String generateStructureKey(String name, String nameEn, String objectType) {
+        return name + "|" + nameEn + "|" + objectType;
+    }
+
     // 澶勭悊浜у搧鏁版嵁
     private void processProductData(StructureTestObjectData data,
                                     Integer objectId,
@@ -277,7 +283,7 @@
                                     List<Product> insertList,
                                     List<Product> updateList) {
         // 鏋勫缓浜у搧鍞竴鏍囪瘑
-        String productKey = data.getName() + "|" + data.getNameEn();
+        String productKey = data.getName() + "|" + data.getNameEn() + "|" + data.getObjectType();
 
         // 妫�鏌ュ唴瀛樹腑鏄惁宸插鐞嗚繃璇ヤ骇鍝�
         Optional<Product> existingProduct = findProductInBatchLists(productKey, insertList, updateList);
@@ -364,7 +370,7 @@
             List<StructureTestObject> insertedObjects) {
 
         insertedObjects.forEach(obj -> {
-            String key = obj.getSpecimenName() + "|" + obj.getSpecimenNameEn();
+            String key = obj.getSpecimenName() + "|" + obj.getSpecimenNameEn()+ "|" + obj.getObjectType();
             existStructureTestObjects.get(key).setId(obj.getId()); // 鏇存柊缂撳瓨涓殑ID
         });
     }
@@ -378,7 +384,7 @@
 
         // 闃舵5鍘熸湁浜у搧澶勭悊閫昏緫杩佺Щ鑷虫
         pendingProducts.forEach(i -> {
-            String specimenKey = i.getSpecimenName() + "|" + i.getSpecimenNameEn();
+            String specimenKey = i.getSpecimenName() + "|" + i.getSpecimenNameEn()+ "|" + i.getObjectType();
             StructureTestObject sto = structureTestObjectCache.get(specimenKey);
 
             processProductData(

--
Gitblit v1.9.3