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

---
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java |   93 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 75 insertions(+), 18 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 571f2dc..4f5f9c1 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
@@ -60,6 +60,12 @@
     @Resource
     UserMapper userMapper;
 
+    @Resource
+    RawMaterialMapper rawMaterialMapper;
+
+    @Resource
+    LinkDetectionMapper linkDetectionMapper;
+
 
     /**
      * 鏌ヨ妫�楠岀敵璇峰崟鍒楄〃
@@ -72,10 +78,40 @@
         return inspectionMapper.selectInspectsList(page, message);
     }
 
+    //鏂板妫�楠屽崟-->閫夋嫨妫�楠岄」鐩増鏈�
+    @Override
+    public List<Integer> chooseVer(String name, String mcode, String specifications) {
+        Integer specificationId = getSpecificationId(name, mcode, specifications);
+        return productMapper.chooseVersion(specificationId);
+    }
+
+    //鏂板妫�楠屽崟-->閫夋嫨妫�楠岄」鐩増鏈�-->鏌ョ湅璇ョ増鏈笅鎴戜滑瑕佸仛鐨勯」鐩姹�
+    @Override
+    public List<Map<String, Object>> lookProByVer(String name, String mcode, String specifications, Integer version, String experiment) {
+        Integer specificationId = getSpecificationId(name, mcode, specifications);
+        /*濡傛灉璇曢獙椤圭洰涓虹┖鍒欐槸鎴愬搧妫�楠屾垨鑰呭師鏉愭枡妫�楠屽垯鏄睍绀鸿鐗堟湰鐨勬墍鏈夐」鐩楠岃姹傚弬鏁�*/
+        if (ObjectUtils.isEmpty(experiment)) {
+            return productMapper.pageProductInformation(specificationId, version);
+        }
+        /*濡傛灉涓嶄负绌哄垯鏄鎵樻楠�,鍙睍绀烘垜浠妫�楠岀殑椤圭洰瑕佹眰鍙傛暟*/
+        //鑾峰彇璇曢獙椤圭洰淇℃伅(缁撴瀯,瀵肩嚎澶栧緞)
+        List<String> experiments = Arrays.stream(experiment.split(",")).collect(Collectors.toList());
+        //鏍规嵁鍨嬪彿id鍜岄」鐩俊鎭煡璇㈤」鐩俊鎭�
+        List<Map<String, Object>> products = new ArrayList<>();
+        for (String exper : experiments) {
+            List<Map<String, Object>> list = productMapper.selFath(specificationId, exper, version);
+            if (ObjectUtils.isEmpty(list)) {
+                Map<String, Object> project = productMapper.selNam(specificationId, exper, version);
+                products.add(project);
+            }
+            products.addAll(list);
+        }
+        return products;
+    }
+
     /**
      * 鏂板妫�楠岀敵璇疯〃
-     *
-     * @param id
+     * @param id 鐢ㄦ埛id
      * @param
      * @return
      */
@@ -91,6 +127,21 @@
                 .userId(id)
                 .build();
         inspectionMapper.insert(inspection);
+        /*濡傛灉鏄師鏉愭枡妫�楠�,鏂板涔嬪悗瑕佹洿鏀瑰師鏉愭枡鎶ユ鐨勭姸鎬佸拰妫�楠屼汉,妫�楠屾棩鏈�*/
+        if (inspectionVo.getType()==0) {
+            RawMaterial rawMaterial = new RawMaterial();
+            rawMaterial.setId(inspectionVo.getId());
+            rawMaterial.setType(1);
+            rawMaterial.setSurveyor(userMapper.selectById(id).getName());
+            rawMaterialMapper.updateById(rawMaterial);
+        }
+        /*濡傛灉鏄鎵樻楠�,鏂板涔嬪悗瑕佹洿鏀瑰鎵樻姤妫�鐨勭姸鎬�*/
+        else if (inspectionVo.getType()==2){
+            LinkDetection linkDetection = new LinkDetection();
+            linkDetection.setId(inspectionVo.getId());
+            linkDetection.setInspectionStatus(2);
+            linkDetectionMapper.updateById(linkDetection);
+        }
         /*鏂板妫�楠屾牱鍝佽〃*/
         InspectionMaterial inspectionMaterial = InspectionMaterial.builder()
                 .code(inspectionVo.getMcode())
@@ -106,7 +157,7 @@
         /*鏂板妫�楠岄」鐩〃*/
         //鏍规嵁鏍峰搧鍚嶇О缂栧彿浠ュ強鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿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());
@@ -115,16 +166,17 @@
             for (String experiment : experiments) {
                 List<Product> productList1 = productMapper.selectList(Wrappers.<Product>query()
                         .eq("specifications_id", specificationId)
-                        .eq("father", experiment));
+                        .eq("father", experiment)
+                        .eq("version", inspectionVo.getVersion()));
                 if (ObjectUtils.isEmpty(productList1)) {
                     Product product = productMapper.selectOne(Wrappers.<Product>query()
                             .eq("specifications_id", specificationId)
                             .isNull("father")
-                            .eq("name", experiment));
+                            .eq("name", experiment)
+                            .eq("version", inspectionVo.getVersion()));
                     products.add(product);
                 } else products.addAll(productList1);
             }
-
             //灏嗘煡璇㈢殑椤圭洰淇℃伅鏋勫缓鎴愭楠岄」鐩�
             ArrayList<InspectionProduct> list = new ArrayList<>();
             for (Product product : products) {
@@ -137,13 +189,27 @@
                         .build();
                 list.add(rawInsProduct);
             }
-
             //妫�楠岄」鐩壒閲忔坊鍔�
             inspectionProductService.saveBatch(list);
             return inspection.getId();
         }
-        //todo:鏈畬
-        return null;
+        //濡傛灉璇曢獙椤圭洰涓虹┖鍒欐寜鐓у瀷鍙穒d鍦ㄦ爣鍑嗗簱閲岄潰鍏ㄩ儴鍖归厤
+        List<Product> productList = productMapper.selectList(Wrappers.<Product>query().eq("specifications_id", specificationId));
+        //灏嗘煡璇㈢殑椤圭洰淇℃伅鏋勫缓鎴愭楠岄」鐩�
+        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(inspectionMaterial.getId())
+                    .build();
+            list.add(rawInsProduct);
+        }
+        //妫�楠岄」鐩壒閲忔坊鍔�
+        inspectionProductService.saveBatch(list);
+        return inspection.getId();
     }
 
     //鏍规嵁妫�楠屽崟id鏌ヨ鍘熸潗鏂欐楠屽崟璇︽儏
@@ -219,15 +285,6 @@
         inspectionProductMapper.updateById(inspectionProduct);
         return "淇濆瓨鎴愬姛!";
     }
-
-
-    //鏂板妫�楠屽崟-->閫夋嫨妫�楠岄」鐩増鏈�
-    @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) {

--
Gitblit v1.9.3