From f1d445b9d51abb020cbcd4a61b4edd36fbe75216 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 26 八月 2023 15:57:38 +0800
Subject: [PATCH] 新增检验修改

---
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardServiceImpl.java |   96 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 82 insertions(+), 14 deletions(-)

diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardServiceImpl.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardServiceImpl.java
index 5aed855..479ea03 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardServiceImpl.java
@@ -1,17 +1,29 @@
 package com.yuanchu.limslaboratory.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.yuanchu.limslaboratory.mapper.MaterialMapper;
+import com.yuanchu.limslaboratory.mapper.ProductModelMapper;
 import com.yuanchu.limslaboratory.mapper.StandardMapper;
+import com.yuanchu.limslaboratory.pojo.Material;
+import com.yuanchu.limslaboratory.pojo.Product;
+import com.yuanchu.limslaboratory.pojo.Specifications;
 import com.yuanchu.limslaboratory.pojo.Standard;
+import com.yuanchu.limslaboratory.pojo.dto.AddStandardDto;
 import com.yuanchu.limslaboratory.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
-import org.springframework.util.ObjectUtils;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -27,36 +39,92 @@
     @Resource
     private StandardMapper standardMapper;
 
-    @Autowired
-    private UserService userService;
-
     @Lazy
     @Autowired
     private SpecificationsService specificationsService;
 
     @Autowired
-    private MaterialService materialService;
-
-    @Autowired
     private ProductService productService;
+
+    @Resource
+    ProductModelMapper productModelMapper;
+
+    @Resource
+    MaterialMapper materialMapper;
 
 
     @Override
-    public Integer deleteStandardsInformation(String standardsId) {
+    public List<Integer> deleteStandardsInformation(Integer materialId) {
+        LambdaQueryWrapper<Standard> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Standard::getMaterialId, materialId);
+        wrapper.select(Standard::getId);
+        List<Integer> list = new ArrayList<>();
+        List<Standard> standards = standardMapper.selectList(wrapper);
+        for (Standard standard : standards){
+            LambdaUpdateWrapper<Standard> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.eq(Standard::getMaterialId, materialId);
+            updateWrapper.set(Standard::getState, 0);
+            standardMapper.update(new Standard(), updateWrapper);
+            list.add(standard.getId());
+        }
+        return list;
+    }
+
+    @Override
+    public Integer deleteStandardInformation(Integer standardsId) {
         LambdaUpdateWrapper<Standard> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.eq(Standard::getId, standardsId);
         updateWrapper.set(Standard::getState, 0);
+        List<Integer> list = new ArrayList<>();
         int isDeleteSuccess = standardMapper.update(new Standard(), updateWrapper);
         if (isDeleteSuccess == 1){
-            List<Integer> deleteSpecificationsId = specificationsService.SerialNumberIdDeleteSpecifications(null);
-            if (!ObjectUtils.isEmpty(deleteSpecificationsId)){
-                List<String> deleteMaterialId = materialService.specificationsIdDeleteMaterial(deleteSpecificationsId);
-                if (!ObjectUtils.isEmpty(deleteMaterialId)){
-                    productService.MaterialIdDeleteProduct(deleteMaterialId);
-                }
+            list.add(standardsId);
+            List<Integer> idDeleteSpecifications = specificationsService.StandardIdDeleteSpecifications(list);
+            if (!ObjectUtils.isEmpty(idDeleteSpecifications)){
+                productService.deleteProductInformation(idDeleteSpecifications);
             }
             return 1;
         }
         return 0;
     }
+
+    //浜岀骇鏂板
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Integer addStandardInformation(AddStandardDto addStandardDto) {
+        Standard standard = new Standard()
+                .setMaterialId(addStandardDto.getMaterialId())
+                .setName(addStandardDto.getStandardName());
+        int save = standardMapper.insert(standard);
+        if (save == 1){
+            Specifications specifications = new Specifications()
+                    .setName(addStandardDto.getSpecificationsName())
+                    .setStandardId(standard.getId());
+            boolean save1 = specificationsService.save(specifications);
+            if (save1){
+                //娣诲姞鍨嬪彿涔嬪悗娣诲姞椤圭洰
+                List<Map<String, Object>> productModel=productModelMapper.seleMode(materialMapper.selectById(addStandardDto.getMaterialId()).getName());
+                List<Product> productList = productModel.stream().map(stringObjectMap -> {
+                    Product product = new Product();
+                    product.setName(stringObjectMap.get("name").toString());
+                    if (ObjectUtils.isNotEmpty(stringObjectMap.get("father"))) {
+                        product.setFather(stringObjectMap.get("father").toString());
+                    }
+                    if (ObjectUtils.isNotEmpty(stringObjectMap.get("unit"))) {
+                        product.setUnit(stringObjectMap.get("unit").toString());
+                    }
+                    product.setSpecifications_id(specifications.getId());
+                    return product;
+                }).collect(Collectors.toList());
+                productService.saveBatch(productList);
+                return 1;
+            }
+        }
+        return 0;
+    }
+
+    @Override
+    public List<Map<String, Object>> getSpecificationIdAndName(String materialId) {
+        return standardMapper.getSpecificationIdAndName(materialId);
+    }
 }

--
Gitblit v1.9.3