From cddc46a1ba318426cf01ae3fd354807c3b3b2465 Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期三, 17 四月 2024 13:44:14 +0800
Subject: [PATCH] 调整模板功能;生成检验人员的三层架构文件

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java |  164 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 149 insertions(+), 15 deletions(-)

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java
index 9afd65f..4e5b974 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java
@@ -1,9 +1,12 @@
 package com.yuanchu.mom.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.dto.FactoryDto;
 import com.yuanchu.mom.mapper.StandardMethodListMapper;
 import com.yuanchu.mom.mapper.StandardProductListMapper;
@@ -11,15 +14,17 @@
 import com.yuanchu.mom.pojo.StandardProductList;
 import com.yuanchu.mom.pojo.StandardTree;
 import com.yuanchu.mom.service.StandardMethodListService;
+import com.yuanchu.mom.service.StandardProductListService;
 import com.yuanchu.mom.service.StandardTreeService;
 import com.yuanchu.mom.mapper.StandardTreeMapper;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.concurrent.CompletableFuture;
 
 /**
  * @author Administrator
@@ -39,6 +44,10 @@
 
     private StandardProductListMapper standardProductListMapper;
 
+    private StandardProductListService standardProductListService;
+
+    private GetLook getLook;
+
     @Override
     public List<FactoryDto> selectStandardTreeList() {
         return standardTreeMapper.selectStandardTreeList();
@@ -47,14 +56,28 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int addStandardTree(StandardTree standardTree) {
-        if(standardTree.getSample()!=null){
-            List<StandardProductList> list = standardTreeMapper.getStandardProductListBySample(standardTree.getSample());
-            for (StandardProductList standardProductList : list) {
+        List<StandardProductList> productList = standardTreeMapper.getStandardProductListBySample(standardTree.getSampleType());
+        List<StandardMethodList> methodList = standardTreeMapper.getStandardMethodListBySample(standardTree.getSampleType());
+        for (StandardMethodList standardMethod : methodList) {
+            standardMethod.setFactory(standardTree.getFactory());
+            standardMethod.setLaboratory(standardTree.getLaboratory());
+            standardMethod.setSampleType(standardTree.getSampleType());
+            standardMethod.setSample(standardTree.getSample());
+            standardMethod.setModel(standardTree.getModel());
+            standardMethodListMapper.insert(standardMethod);
+            for (StandardProductList standardProductList : productList) {
                 standardProductList.setFactory(standardTree.getFactory());
                 standardProductList.setLaboratory(standardTree.getLaboratory());
                 standardProductList.setSampleType(standardTree.getSampleType());
                 standardProductList.setSample(standardTree.getSample());
                 standardProductList.setModel(standardTree.getModel());
+                standardProductList.setStandardMethodListId(standardMethod.getId());
+                standardProductList.setState(1);
+                standardProductList.setId(null);
+                standardProductList.setCreateUser(null);
+                standardProductList.setCreateTime(null);
+                standardProductList.setUpdateUser(null);
+                standardProductList.setUpdateTime(null);
                 standardProductListMapper.insert(standardProductList);
             }
         }
@@ -82,12 +105,16 @@
                 standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]));
                 break;
         }
-        Map<String, List<?>> listMap = standardMethodListService.selectsStandardMethodByFLSSM(tree);
-        if(listMap.get("standardMethodList").size() != 0){
+        Map<String, List<?>> listMap = standardMethodListService.selectsStandardMethodByFLSSM2(tree);
+        if (listMap.get("standardMethodList").size() != 0) {
+            for (Object o : listMap.get("standardMethodList")) {
+                JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(o));
+                List<StandardProductList> list = standardProductListService.selectStandardProductListByMethodId((Integer) jsonObject.get("id"));
+                if (list.size() != 0) {
+                    standardProductListMapper.deleteBatchIds(list);
+                }
+            }
             standardMethodListMapper.deleteBatchIds(listMap.get("standardMethodList"));
-        }
-        if(listMap.get("standardProductList").size() != 0){
-            standardProductListMapper.deleteBatchIds(listMap.get("standardProductList"));
         }
         return 1;
     }
@@ -102,20 +129,127 @@
             standardProductList.setFactory(trees[0]);
             try {
                 standardProductList.setLaboratory(trees[1]);
-            }catch (Exception e){}
+            } catch (Exception e) {
+            }
             try {
                 standardProductList.setSampleType(trees[2]);
-            }catch (Exception e){}
+            } catch (Exception e) {
+            }
             try {
                 standardProductList.setSample(trees[3]);
-            }catch (Exception e){}
+            } catch (Exception e) {
+            }
             try {
                 standardProductList.setModel(trees[4]);
-            }catch (Exception e){}
+            } catch (Exception e) {
+            }
             standardProductListMapper.insert(standardProductList);
         }
         return 1;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void reTreeBySampleType(String sampleType) {
+        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
+        CompletableFuture.supplyAsync(() -> {
+            List<StandardProductList> productList = standardTreeMapper.getStandardProductListBySample(sampleType);
+            List<StandardProductList> productList1 = JSON.parseArray(JSON.toJSONString(productList), StandardProductList.class);
+            List<StandardMethodList> methodList = standardTreeMapper.getStandardMethodListBySample(sampleType);
+            List<StandardMethodList> methodList1 = JSON.parseArray(JSON.toJSONString(methodList), StandardMethodList.class);
+            List<StandardTree> treeList = standardTreeMapper.selectList(Wrappers.<StandardTree>lambdaQuery().eq(StandardTree::getSampleType, sampleType));
+            for (StandardTree tree : treeList) {
+                String treeStr = tree.getFactory() + " - " + tree.getLaboratory() + " - " + tree.getSampleType() + (tree.getSample() == null ? "" : " - " + tree.getSample()) + (tree.getModel() == null ? "" : " - " + tree.getModel());
+                List<StandardMethodList> standardMethodList = JSON.parseArray(JSON.toJSONString(standardMethodListService.selectsStandardMethodByFLSSM(treeStr).get("standardMethodList")), StandardMethodList.class);
+                for (StandardMethodList sl1 : standardMethodList) {
+                    int count1 = 0;
+                    for (StandardMethodList sl2 : methodList) {
+                        if (sl1.getCode().equals(sl2.getCode())) {
+                            sl1.setName(sl2.getName());
+                            sl1.setRemark(sl2.getRemark());
+                            sl2.setId(sl1.getId());
+                            standardMethodListMapper.updateById(sl1);
+                            List<StandardProductList> standardProductList = standardProductListService.selectStandardProductListByMethodId(sl1.getId());
+                            for (StandardProductList pl1 : standardProductList) {
+                                int count2 = 0;
+                                for (StandardProductList pl2 : productList) {
+                                    if (Objects.equals(pl1.getInspectionItemSubclass(), pl2.getInspectionItemSubclass()) && Objects.equals(pl1.getInspectionItem(), pl2.getInspectionItem())) {
+                                        pl2.setUpdateUser(userId);
+                                        pl2.setUpdateTime(LocalDateTime.now());
+                                        pl2.setId(pl1.getId());
+                                        pl2.setSample(tree.getSample());
+                                        standardProductListMapper.updateById(pl2);
+                                        break;
+                                    } else {
+                                        count2++;
+                                    }
+                                }
+                                if (count2 == productList.size()) {
+                                    standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate().eq(StandardProductList::getStandardMethodListId, sl1.getId()));
+                                }
+                            }
+                            for (StandardProductList pl2 : productList) {
+                                if (pl2.getId() == null) {
+                                    pl2.setFactory(tree.getFactory());
+                                    pl2.setLaboratory(tree.getLaboratory());
+                                    pl2.setSampleType(tree.getSampleType());
+                                    pl2.setSample(tree.getSample());
+                                    pl2.setModel(tree.getModel());
+                                    pl2.setStandardMethodListId(sl1.getId());
+                                    pl2.setState(1);
+                                    pl2.setId(null);
+                                    pl2.setCreateUser(null);
+                                    pl2.setCreateTime(null);
+                                    pl2.setUpdateUser(null);
+                                    pl2.setUpdateTime(null);
+                                    standardProductListMapper.insert(pl2);
+                                }
+                            }
+                            break;
+                        } else {
+                            count1++;
+                        }
+                    }
+                    if (count1 == methodList.size()) {
+                        standardMethodListMapper.deleteById(sl1);
+                        standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate().eq(StandardProductList::getStandardMethodListId, sl1.getId()));
+                    }
+                }
+                for (StandardMethodList sl2 : methodList) {
+                    if (sl2.getId() == null) {
+                        sl2.setFactory(tree.getFactory());
+                        sl2.setLaboratory(tree.getLaboratory());
+                        sl2.setSampleType(tree.getSampleType());
+                        sl2.setSample(tree.getSample());
+                        sl2.setModel(tree.getModel());
+                        standardMethodListMapper.insert(sl2);
+                        for (StandardProductList standardProductList : productList) {
+                            standardProductList.setFactory(tree.getFactory());
+                            standardProductList.setLaboratory(tree.getLaboratory());
+                            standardProductList.setSampleType(tree.getSampleType());
+                            standardProductList.setSample(tree.getSample());
+                            standardProductList.setModel(tree.getModel());
+                            standardProductList.setStandardMethodListId(sl2.getId());
+                            standardProductList.setState(1);
+                            standardProductList.setId(null);
+                            standardProductList.setCreateUser(null);
+                            standardProductList.setCreateTime(null);
+                            standardProductList.setUpdateUser(null);
+                            standardProductList.setUpdateTime(null);
+                            standardProductListMapper.insert(standardProductList);
+                        }
+                    }
+                }
+                methodList = JSON.parseArray(JSON.toJSONString(methodList1), StandardMethodList.class);
+                productList = JSON.parseArray(JSON.toJSONString(productList1), StandardProductList.class);
+            }
+            return 1;
+        }).thenAccept(res -> {
+        }).exceptionally(e -> {
+            e.printStackTrace();
+            return null;
+        });
+    }
 }
 
 

--
Gitblit v1.9.3