From eb34edfc7cf46e5cb5e3969d04315e6129dcbbd2 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期六, 26 八月 2023 11:43:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java |  101 ++++++++++++++++++++++++++++++++++----------------
 1 files changed, 69 insertions(+), 32 deletions(-)

diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
index 9187912..571f2dc 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.lang.Snowflake;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+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;
@@ -103,39 +104,46 @@
                 .build();
         inspectionMaterialMapper.insert(inspectionMaterial);
         /*鏂板妫�楠岄」鐩〃*/
-        //鑾峰彇鐗╂枡id
-        Material material = materialMapper.selectOne(Wrappers.<Material>query()
-                .eq("name", inspectionVo.getName())
-                .eq("code", inspectionVo.getMcode()));
-        //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
-        String specification = inspectionVo.getSpecifications();
-        String[] split = specification.split("-");
-        String stName = split[0];
-        String spName = split[1];
-        //鑾峰彇瑙勬牸id
-        Standard standard = standardService.getOne(Wrappers.<Standard>query()
-                .eq("name", stName)
-                .eq("material_id", material.getId()));
-        //鑾峰彇鍨嬪彿id
-        Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query()
-                .eq("name", spName)
-                .eq("standard_id", standard.getId()));
-        //鏍规嵁鍨嬪彿id鏌ヨ椤圭洰淇℃伅
-        List<Product> productList = productMapper.selectList(Wrappers.<Product>query().eq("specifications_id", specifications.getId()));
-        ArrayList<InspectionProduct> list = new ArrayList<>();
-        for (Product product : productList) {
-            InspectionProduct rawInsProduct = InspectionProduct.builder()
-                    .name(product.getName())
-                    .unit(product.getUnit())
-                    .required(product.getRequired())
-                    .internal(product.getInternal())
-                    .inspectionMaterialId(material.getId())
-                    .build();
-            list.add(rawInsProduct);
+        //鏍规嵁鏍峰搧鍚嶇О缂栧彿浠ュ強鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id
+        Integer specificationId = getSpecificationId(inspectionVo.getName(), inspectionVo.getMcode(), inspectionVo.getSpecifications());
+        //濡傛灉璇曢獙椤圭洰瀛楁涓嶄负绌�
+        if (ObjectUtils.isNotEmpty(inspectionVo.getExperiment())) {
+            //鑾峰彇璇曢獙椤圭洰淇℃伅(缁撴瀯,瀵肩嚎澶栧緞)
+            List<String> experiments = Arrays.stream(inspectionVo.getExperiment().split(",")).collect(Collectors.toList());
+            //鏍规嵁鍨嬪彿id鍜岄」鐩俊鎭煡璇㈤」鐩俊鎭�
+            List<Product> products = new ArrayList<>();
+            for (String experiment : experiments) {
+                List<Product> productList1 = productMapper.selectList(Wrappers.<Product>query()
+                        .eq("specifications_id", specificationId)
+                        .eq("father", experiment));
+                if (ObjectUtils.isEmpty(productList1)) {
+                    Product product = productMapper.selectOne(Wrappers.<Product>query()
+                            .eq("specifications_id", specificationId)
+                            .isNull("father")
+                            .eq("name", experiment));
+                    products.add(product);
+                } else products.addAll(productList1);
+            }
+
+            //灏嗘煡璇㈢殑椤圭洰淇℃伅鏋勫缓鎴愭楠岄」鐩�
+            ArrayList<InspectionProduct> list = new ArrayList<>();
+            for (Product product : products) {
+                InspectionProduct rawInsProduct = InspectionProduct.builder()
+                        .name(product.getName())
+                        .unit(product.getUnit())
+                        .required(product.getRequired())
+                        .internal(product.getInternal())
+                        .inspectionMaterialId(inspectionMaterial.getId())
+                        .build();
+                list.add(rawInsProduct);
+            }
+
+            //妫�楠岄」鐩壒閲忔坊鍔�
+            inspectionProductService.saveBatch(list);
+            return inspection.getId();
         }
-        //妫�楠岄」鐩壒閲忔坊鍔�
-        inspectionProductService.saveBatch(list);
-        return inspection.getId();
+        //todo:鏈畬
+        return null;
     }
 
     //鏍规嵁妫�楠屽崟id鏌ヨ鍘熸潗鏂欐楠屽崟璇︽儏
@@ -213,5 +221,34 @@
     }
 
 
+    //鏂板妫�楠屽崟-->閫夋嫨妫�楠岄」鐩増鏈�
+    @Override
+    public List<Map<String, Object>> chooseVer(String name, String mcode, String specifications) {
+        Integer specificationId = getSpecificationId(name, mcode, specifications);
+        return null;
+    }
+
+
+    /*鏍规嵁鏍峰搧鍚嶇О,鏍峰搧缂栧彿,鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id*/
+    private Integer getSpecificationId(String name, String mcode, String specification) {
+        //鑾峰彇鐗╂枡id
+        Material material = materialMapper.selectOne(Wrappers.<Material>query()
+                .eq("name", name)
+                .eq("code", mcode));
+        //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
+        String[] split = specification.split("-");
+        String stName = split[0];
+        String spName = split[1];
+        //鑾峰彇瑙勬牸id
+        Standard standard = standardService.getOne(Wrappers.<Standard>query()
+                .eq("name", stName)
+                .eq("material_id", material.getId()));
+        //鑾峰彇鍨嬪彿id
+        Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query()
+                .eq("name", spName)
+                .eq("standard_id", standard.getId()));
+        return specifications.getId();
+    }
+
 }
 

--
Gitblit v1.9.3