From 4696fd707f1c723970eac62d333588b51dffbd2b Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期四, 04 七月 2024 12:37:16 +0800
Subject: [PATCH] 检验对象导入完成

---
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 59 insertions(+), 1 deletions(-)

diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java
index 37e6f93..33d723d 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java
@@ -1,17 +1,26 @@
 package com.yuanchu.mom.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+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.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
 import com.yuanchu.mom.excel.StructureTestObjectData;
+import com.yuanchu.mom.exception.ErrorException;
 import com.yuanchu.mom.mapper.ProductMapper;
+import com.yuanchu.mom.mapper.StructureTestObjectMapper;
+import com.yuanchu.mom.pojo.Laboratory;
 import com.yuanchu.mom.pojo.Product;
+import com.yuanchu.mom.pojo.StructureTestObject;
+import com.yuanchu.mom.service.LaboratoryService;
 import com.yuanchu.mom.service.ProductService;
 import com.yuanchu.mom.utils.QueryWrappers;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -29,6 +38,10 @@
     private ProductMapper productMapper;
 
     private GetLook getLook;
+
+    private LaboratoryService laboratoryService;
+
+    private StructureTestObjectMapper structureTestObjectMapper;
 
     @Override
     public Map<String, Object> selectProductListByObjectId(Page page, Product product) {
@@ -55,9 +68,54 @@
         return productMapper.deleteById(id);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void importPartExcel(List<StructureTestObjectData> list) {
-        System.out.println(list);
+        List<StructureTestObject> addList = new ArrayList<>();
+        List<StructureTestObject> updateList = new ArrayList<>();
+        List<Product> addProductList = new ArrayList<>();
+        list.forEach(i -> {
+            // 妫�楠屽璞�
+            StructureTestObject structureTestObject1 = structureTestObjectMapper.selectOne(Wrappers.<StructureTestObject>lambdaQuery()
+                    .eq(StructureTestObject::getSpecimenName, i.getSpecimenName())
+                    .eq(StructureTestObject::getSpecimenNameEn, i.getSpecimenNameEn()));
+            Laboratory laboratory = laboratoryService.getOne(Wrappers.<Laboratory>lambdaQuery()
+                    .eq(Laboratory::getLaboratoryName, i.getLaboratory()));
+            if (ObjectUtils.isEmpty(laboratory)) {
+                throw new ErrorException("鏈壘鍒拌鍦烘墍锛�" + i.getLaboratory() + "锛岃妫�鏌ユ槸鍚﹀瓨鍦ㄨ鍦烘墍锛�");
+            }
+            // 濡傛灉涓虹┖杩涜鏂板
+            if(ObjectUtils.isEmpty(structureTestObject1)) {
+                StructureTestObject structureTestObject = new StructureTestObject();
+                structureTestObject.setLaboratoryId(laboratory.getId());
+                structureTestObject.setSpecimenName(i.getSpecimenName());
+                structureTestObject.setSpecimenNameEn(i.getSpecimenNameEn());
+                structureTestObject.setCode(i.getCode());
+                addList.add(structureTestObject);
+            } else {
+                structureTestObject1.setCode(i.getCode());
+                structureTestObject1.setLaboratoryId(laboratory.getId());
+                updateList.add(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());
+                addProductList.add(product1);
+            }
+        });
+        addList.forEach(i -> {
+            structureTestObjectMapper.insert(i);
+        });
+        saveBatch(addProductList);
+        updateList.forEach(i -> {
+            structureTestObjectMapper.updateById(i);
+        });
     }
 }
 

--
Gitblit v1.9.3