From f7a525edfb0b085636837e186c00720e16e4e701 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 14 八月 2025 13:13:17 +0800
Subject: [PATCH] 能力范围:导入功能调整

---
 basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java |   64 +++++++++++++++-----------------
 basic-server/src/main/java/com/ruoyi/basic/excel/StructureTestObjectData.java   |    4 +-
 2 files changed, 32 insertions(+), 36 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/excel/StructureTestObjectData.java b/basic-server/src/main/java/com/ruoyi/basic/excel/StructureTestObjectData.java
index 4fc2fd2..3bf6112 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/excel/StructureTestObjectData.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/excel/StructureTestObjectData.java
@@ -8,7 +8,7 @@
     @ExcelProperty(value = "鍦烘墍")
     private String laboratory;
 
-    @ExcelProperty(value = "妫�娴嬪璞�")
+    @ExcelProperty(value = "娴嬭瘯瀵硅薄")
     private String specimenName;
 
     @ExcelProperty(value = "妫�娴嬪璞�(EN)")
@@ -17,7 +17,7 @@
     @ExcelProperty(value = "瀵硅薄浠e彿")
     private String code;
 
-    @ExcelProperty(value = "浜у搧鍚嶇О")
+    @ExcelProperty(value = "浜у搧")
     private String name;
 
     @ExcelProperty(value = "浜у搧鍚嶇О(EN)")
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
index d1786cb..a0ac313 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
@@ -21,6 +21,7 @@
 import com.ruoyi.basic.service.ProductService;
 import com.ruoyi.basic.service.StandardProductListService;
 import com.ruoyi.basic.service.StructureItemParameterService;
+import com.ruoyi.common.utils.StringUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -134,55 +135,50 @@
     public void importPartExcel(List<StructureTestObjectData> list) {
         list.forEach(i -> {
             // 妫�楠屽璞�
+            if(StringUtils.isBlank(i.getSpecimenName())){
+                throw new RuntimeException("妫�娴嬪璞′笉鑳戒负绌�");
+            }
             StructureTestObject structureTestObject1 = structureTestObjectMapper.selectOne(Wrappers.<StructureTestObject>lambdaQuery()
                     .eq(StructureTestObject::getSpecimenName, i.getSpecimenName())
-                    .eq(StructureTestObject::getSpecimenNameEn, i.getSpecimenNameEn()));
+                    .eq(StringUtils.isNotBlank(i.getSpecimenNameEn()),StructureTestObject::getSpecimenNameEn, i.getSpecimenNameEn()));
             Laboratory laboratory = laboratoryService.getOne(Wrappers.<Laboratory>lambdaQuery()
                     .eq(Laboratory::getLaboratoryName, i.getLaboratory()));
             if (ObjectUtils.isEmpty(laboratory)) {
                 throw new BaseException("鏈壘鍒拌鍦烘墍锛�" + i.getLaboratory() + "锛岃妫�鏌ユ槸鍚﹀瓨鍦ㄨ鍦烘墍锛�");
             }
+            StructureTestObject structureTestObject = new StructureTestObject();
+            structureTestObject.setCode(i.getCode());
+            structureTestObject.setLaboratoryId(laboratory.getId());
             // 濡傛灉涓虹┖杩涜鏂板
             if(ObjectUtils.isEmpty(structureTestObject1)) {
-                StructureTestObject structureTestObject = new StructureTestObject();
-                structureTestObject.setLaboratoryId(laboratory.getId());
                 structureTestObject.setSpecimenName(i.getSpecimenName());
                 structureTestObject.setSpecimenNameEn(i.getSpecimenNameEn());
-                structureTestObject.setCode(i.getCode());
                 structureTestObjectMapper.insert(structureTestObject);
-
-                // 浜у搧
-                Product product = productMapper.selectOne(Wrappers.<Product>lambdaQuery()
-                        .eq(Product::getName, i.getName())
-                        .eq(Product::getNameEn, i.getNameEn()));
-                if (ObjectUtils.isEmpty(product)){
-                    Product product1 = new Product();
-                    product1.setName(i.getName());
-                    product1.setNameEn(i.getNameEn());
-                    product1.setObjectId(structureTestObject.getId());
-                    baseMapper.insert(product1);
-                }
             } else {
-                structureTestObject1.setCode(i.getCode());
-                structureTestObject1.setLaboratoryId(laboratory.getId());
+//                structureTestObject1.setCode(i.getCode());
+//                structureTestObject1.setLaboratoryId(laboratory.getId());
                 structureTestObjectMapper.updateById(structureTestObject1);
-                // 浜у搧
-                Product product = productMapper.selectOne(Wrappers.<Product>lambdaQuery()
-                        .eq(Product::getName, i.getName())
-                        .eq(Product::getNameEn, i.getNameEn()));
-                if (ObjectUtils.isEmpty(product)){
-                    Product product1 = new Product();
-                    product1.setName(i.getName());
-                    product1.setNameEn(i.getNameEn());
-                    product1.setObjectId(structureTestObject1.getId());
-                    baseMapper.insert(product1);
-                } else {
-                    product.setName(i.getName());
-                    product.setNameEn(i.getNameEn());
-                    product.setObjectId(structureTestObject1.getId());
-                    baseMapper.updateById(product);
-                }
             }
+            if(StringUtils.isNotBlank(i.getName())){
+                insertProduct(i.getName(),i.getNameEn(),structureTestObject.getId());
+            }
+
         });
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void insertProduct(String name,String nameEN,Integer structureId){
+        // 浜у搧
+        Product product = productMapper.selectOne(Wrappers.<Product>lambdaQuery()
+                .eq(Product::getName, name)
+                .eq(Product::getNameEn, nameEN));
+        if (ObjectUtils.isEmpty(product)){
+            product = new Product();
+            product.setName(name);
+            product.setNameEn(nameEN);
+        }
+        product.setObjectId(structureId);
+        this.saveOrUpdate(product);
+    }
+
 }

--
Gitblit v1.9.3