From 97bb7a8832281eafe0ef947ea095258d355e52f5 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 30 十二月 2024 15:57:51 +0800
Subject: [PATCH] 无源器件的数采+电路模版查询

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java |  555 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 392 insertions(+), 163 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 a4f2008..c728dec 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,29 +1,37 @@
 package com.yuanchu.mom.service.impl;
 
+import cn.hutool.poi.excel.ExcelUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.excel.write.style.column.SimpleColumnWidthStyleStrategy;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 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.dto.*;
+import com.yuanchu.mom.exception.ErrorException;
 import com.yuanchu.mom.mapper.StandardProductListMapper;
-import com.yuanchu.mom.pojo.StandardMethodList;
-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 com.yuanchu.mom.pojo.*;
+import com.yuanchu.mom.service.*;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
 
-import java.time.LocalDateTime;
-import java.util.*;
-import java.util.concurrent.CompletableFuture;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Collectors;
 
 /**
  * @author Administrator
@@ -37,48 +45,59 @@
 
     private StandardTreeMapper standardTreeMapper;
 
-    private StandardMethodListMapper standardMethodListMapper;
-
     private StandardMethodListService standardMethodListService;
 
     private StandardProductListMapper standardProductListMapper;
 
     private StandardProductListService standardProductListService;
 
-    private GetLook getLook;
+    private StandardTemplateService standardTemplateService;
+
+    private EnumService enumService;
 
     @Override
     public List<FactoryDto> selectStandardTreeList() {
-        return standardTreeMapper.selectStandardTreeList();
+        List<FactoryDto> factoryDtos = standardTreeMapper.selectStandardTreeList();
+        for (FactoryDto factoryDto : factoryDtos) {
+            for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) {
+                for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) {
+                    if (sampleTypeDto.getChildren().size() == 0) {
+                        sampleTypeDto.setChildren(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue()));
+                    }
+                }
+            }
+        }
+        return factoryDtos;
+    }
+
+    @Override
+    public List<SampleTypeDto> selectStandardTreeList2() {
+        List<SampleTypeDto> sampleTypeDtos= new ArrayList<>();
+        List<FactoryDto> factoryDtos = standardTreeMapper.selectStandardTreeList();
+        for (FactoryDto factoryDto : factoryDtos) {
+            for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) {
+                for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) {
+                    if (sampleTypeDto.getChildren().size() == 0) {
+                        sampleTypeDto.setChildren(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue()));
+                    }
+                    sampleTypeDtos.add(sampleTypeDto);
+                }
+            }
+        }
+        return sampleTypeDtos;
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int addStandardTree(StandardTree standardTree) {
-        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(0);
-                standardProductList.setId(null);
-                standardProductList.setCreateUser(null);
-                standardProductList.setCreateTime(null);
-                standardProductList.setUpdateUser(null);
-                standardProductList.setUpdateTime(null);
-                standardProductListMapper.insert(standardProductList);
-            }
+        StandardTree tree = standardTreeMapper.selectOne(Wrappers.<StandardTree>lambdaQuery()
+                .eq(StandardTree::getFactory, standardTree.getFactory())
+                .eq(StandardTree::getLaboratory, standardTree.getLaboratory())
+                .eq(StandardTree::getSampleType, standardTree.getSampleType())
+                .eq(StandardTree::getSample, standardTree.getSample())
+                .eq(StandardTree::getModel, standardTree.getModel()));
+        if (tree != null) {
+            throw new ErrorException("璇ュ瀷鍙峰凡瀛樺湪");
         }
         return standardTreeMapper.insert(standardTree);
     }
@@ -89,9 +108,13 @@
         String[] trees = tree.split(" - ");
         switch (trees.length) {
             case 5:
-                standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).eq(StandardTree::getSample, trees[3]).eq(StandardTree::getModel, trees[4]));
+                if (trees[3] == null) {
+                    standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).isNull(StandardTree::getSample).eq(StandardTree::getModel, trees[4]));
+                } else {
+                    standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).eq(StandardTree::getSample, trees[3]).eq(StandardTree::getModel, trees[4]));
+                }
                 break;
-            case 4:
+            /*case 4:
                 standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).eq(StandardTree::getSample, trees[3]));
                 break;
             case 3:
@@ -102,18 +125,7 @@
                 break;
             case 1:
                 standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]));
-                break;
-        }
-        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"));
+                break;*/
         }
         return 1;
     }
@@ -148,116 +160,333 @@
     }
 
     @Override
+    public List<SampleTypeDto> getStandardTree2() {
+        return standardTreeMapper.getStandardTree2();
+    }
+
+    @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);
-                            //閫氳繃妫�楠屾爣鍑唅d鏌ヨ妫�楠岄」鐩�(鏍囧噯搴�)
-                            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());
-                                        pl2.setDic(pl1.getDic());
-                                        //濡傛灉鏍囧噯搴撻噷闈㈢殑瑕佹眰鏈夊�煎垯涓嶆洿鏂�,瑕佹眰涓簄ull鍒欏悓姝ユ洿鏂�
-                                        if (ObjectUtils.isNotEmpty(pl1.getAsk())){
-                                            pl2.setAsk(null);
-                                        }
-                                        if (ObjectUtils.isNotEmpty(pl1.getTell())){
-                                            pl2.setTell(null);
-                                        }
-                                        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(0);
-                                    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(0);
-                            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);
-            }
+    public int upStandardProducts(Map<String, Object> product) {
+        List<Integer> ids = JSON.parseArray(product.get("ids") + "");
+        StandardProductList productList = JSON.parseObject(JSON.toJSONString(product.get("standardProductList")), StandardProductList.class);
+        if (productList.getMethodS() != null) {
+            standardProductListMapper.update(productList, Wrappers.<StandardProductList>lambdaUpdate().in(StandardProductList::getId, ids).like(StandardProductList::getMethod, productList.getMethodS()));
             return 1;
-        }).thenAccept(res -> {
-        }).exceptionally(e -> {
-            e.printStackTrace();
-            return null;
+        }
+        standardProductListMapper.update(productList, Wrappers.<StandardProductList>lambdaUpdate().in(StandardProductList::getId, ids));
+        return 1;
+    }
+
+    @Override
+    public List<StandardTree> getStandTreeBySampleType(String laboratory, String sampleType) {
+        return standardTreeMapper.selectList(Wrappers.<StandardTree>lambdaQuery()
+                .eq(StandardTree::getLaboratory, laboratory)
+                .eq(StandardTree::getSampleType, sampleType)
+                .select(StandardTree::getModel, StandardTree::getSample));
+    }
+
+    /**
+     * 娌冲彛妫�娴嬩腑蹇冨鍏�
+     * @param file
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void inExcelOfTree(MultipartFile file) {
+        InputStream inputStream;
+        try {
+            inputStream = file.getInputStream();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        List<StandardProductList> lists = new ArrayList<>();
+        AtomicReference<String> laboratory = new AtomicReference<>();
+        ExcelUtil.readBySax(inputStream, 0, (i, l, list) -> {
+            StandardProductList str = new StandardProductList();
+            if (i == 0 && l == 1) {
+                laboratory.set(standardTreeMapper.getLaboratory(list.get(1) + ""));
+                if (laboratory.get() == null) {
+                    throw new ErrorException("妫�楠屽璞′笉瀛樺湪锛�" + list.get(1));
+                }
+            }
+            if (i == 0 && l >= 1) {
+                Integer standardMethodId = standardMethodListService.getStandardMethodId(list.get(0) + "");
+                if (standardMethodId == null) {
+                    throw new ErrorException("鏍囧噯缂栧彿涓嶅瓨鍦細" + list.get(0));
+                }
+                str.setStandardMethodListId(standardMethodId);
+                str.setSampleType(list.get(1) + "");
+                if (list.get(2) != null) {
+                    String sample = baseMapper.selSample(list.get(2) + "");
+                    if (sample == null) {
+                        throw new ErrorException("鏍峰搧涓嶅瓨鍦細" + list.get(2));
+                    }
+                    str.setSample(list.get(2) + "");
+                } else {
+                    str.setSample(null);
+                }
+                if (list.get(3) != null) {
+                    str.setModel(list.get(3) + "");
+                    Long aLong = standardTreeMapper.selectCount(Wrappers.<StandardTree>lambdaQuery()
+                            .eq(StandardTree::getModel, str.getModel())
+                            .eq(StandardTree::getSampleType, list.get(1) + ""));
+                    if (aLong == 0) {
+                        StandardTree standardTree = new StandardTree();
+                        standardTree.setFactory("涓ぉ绉戞妧妫�娴嬩腑蹇�");
+                        standardTree.setLaboratory(laboratory.get());
+                        standardTree.setSampleType(str.getSampleType());
+                        standardTree.setSample(str.getSample());
+                        standardTree.setModel(str.getModel());
+                        standardTreeMapper.insert(standardTree);
+                    }
+                } else {
+                    str.setModel(null);
+                }
+                str.setInspectionItem(list.get(4) + "");
+                if (list.get(6) == null) {
+                    str.setInspectionItemSubclass("");
+                } else {
+                    str.setInspectionItemSubclass(list.get(6).toString());
+                }
+                StandardProductList db_str;
+                try {
+                    db_str = standardProductListMapper.getOne(str.getStandardMethodListId(), str.getInspectionItem(), str.getSample(), str.getInspectionItemSubclass(), str.getModel(), str.getInspectionItemClass());
+                } catch (Exception e) {
+                    throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass());
+                }
+                if (ObjectUtils.isNotEmpty(db_str)) {
+                    str.setId(db_str.getId());
+                    str.setStructureItemParameterId(db_str.getStructureItemParameterId());
+                }
+                if (list.get(8) != null) {
+                    str.setMethodS(list.get(8) + "");
+                }
+
+                if (list.get(11) == null) {
+                    str.setTell(null);
+                } else {
+                    str.setTell(list.get(11).toString());
+                }
+
+                if (list.get(12) == null) {
+                    str.setAsk(null);
+                } else {
+                    str.setAsk(list.get(12).toString());
+                }
+
+                if (list.get(13) == null) {
+                    str.setPrice(null);
+                } else {
+                    str.setPrice((list.get(13).toString()));
+                }
+
+                if (list.get(14) == null) {
+                    str.setManHour(null);
+                } else {
+                    str.setManHour(list.get(14).toString());
+                }
+
+                StandardTemplate standTempIdByName = standardTemplateService.getStandTempIdByName(String.valueOf(list.get(21)));
+                if (standTempIdByName != null) {
+                    str.setTemplateId(standTempIdByName.getId());
+                } else {
+                    throw new ErrorException("妯℃澘涓嶅瓨鍦細" + list.get(21));
+                }
+                str.setFactory("涓ぉ绉戞妧妫�娴嬩腑蹇�");
+                str.setLaboratory(laboratory.get());
+                str.setState(1);
+                str.setTree(str.getFactory() + " - " + str.getLaboratory() + " - " + str.getSampleType() + " - " + str.getSample() + " - " + (str.getModel() == null ? "" : str.getModel()));
+                try {
+                    str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass(), str.getInspectionItemClass()));
+                } catch (Exception e) {
+                    str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\",\"" + str.getSample() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass(), str.getInspectionItemClass()));
+                }
+                if (str.getStructureItemParameterId() == null) {
+                    throw new ErrorException("妫�楠岄」鐩笉瀛樺湪锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass());
+                }
+                lists.add(str);
+            }
         });
+        lists.forEach(a -> {
+            if (a.getId() != null) {
+                standardProductListMapper.updateById(a);
+            } else {
+                standardProductListMapper.insert(a);
+            }
+        });
+    }
+
+    @Override
+    public void importWorkstationExcel(MultipartFile file) {
+        InputStream inputStream;
+        try {
+            inputStream = file.getInputStream();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        List<StandardProductList> lists = new ArrayList<>();
+        AtomicReference<String> laboratory = new AtomicReference<>();
+        ExcelUtil.readBySax(inputStream, 0, (i, l, list) -> {
+            StandardProductList str = new StandardProductList();
+            if (i == 0 && l == 1) {
+                laboratory.set(standardTreeMapper.getLaboratory(list.get(1) + ""));
+                if (laboratory.get() == null) {
+                    throw new ErrorException("妫�楠屽璞′笉瀛樺湪锛�" + list.get(1));
+                }
+            }
+            if (i == 0 && l >= 1) {
+                Integer standardMethodId = standardMethodListService.getStandardMethodId(list.get(0) + "");
+                if (standardMethodId == null) {
+                    throw new ErrorException("鏍囧噯缂栧彿涓嶅瓨鍦細" + list.get(0));
+                }
+                str.setStandardMethodListId(standardMethodId);
+                str.setSampleType(list.get(1) + "");
+                if (list.get(2) != null) {
+                    String sample = baseMapper.selSample(list.get(2) + "");
+                    if (sample == null) {
+                        throw new ErrorException("鏍峰搧涓嶅瓨鍦細" + list.get(2));
+                    }
+                    str.setSample(list.get(2) + "");
+                } else {
+                    str.setSample(null);
+                }
+                if (list.get(3) != null) {
+                    str.setModel(list.get(3) + "");
+                    Long aLong = standardTreeMapper.selectCount(Wrappers.<StandardTree>lambdaQuery()
+                            .eq(StandardTree::getModel, str.getModel())
+                            .eq(StandardTree::getSampleType, list.get(1) + ""));
+                    if (aLong == 0) {
+                        StandardTree standardTree = new StandardTree();
+                        standardTree.setFactory("涓ぉ绉戞妧妫�娴嬩腑蹇�");
+                        standardTree.setLaboratory(laboratory.get());
+                        standardTree.setSampleType(str.getSampleType());
+                        standardTree.setSample(str.getSample());
+                        standardTree.setModel(str.getModel());
+                        standardTreeMapper.insert(standardTree);
+                    }
+                } else {
+                    str.setModel(null);
+                }
+                str.setInspectionItemClass(list.get(4).toString());
+                str.setInspectionItemClassEn(list.get(5).toString());
+                // 寮�濮嬪姞2
+                str.setInspectionItem(list.get(6) + "");
+                if (list.get(8) == null) {
+                    str.setInspectionItemSubclass("");
+                } else {
+                    str.setInspectionItemSubclass(list.get(8).toString());
+                }
+                StandardProductList db_str;
+                try {
+                    db_str = standardProductListMapper.getOne(str.getStandardMethodListId(), str.getInspectionItem(), str.getSample(), str.getInspectionItemSubclass(), str.getModel(), str.getInspectionItemClass());
+                } catch (Exception e) {
+                    throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass());
+                }
+                if (ObjectUtils.isNotEmpty(db_str)) {
+                    str.setId(db_str.getId());
+                    str.setStructureItemParameterId(db_str.getStructureItemParameterId());
+                }
+                if (list.get(10) != null) {
+                    str.setMethodS(list.get(10) + "");
+                }
+                if (list.get(13) == null) {
+                    str.setTell(null);
+                } else {
+                    str.setTell(list.get(13).toString());
+                }
+
+                if (list.get(14) == null) {
+                    str.setAsk(null);
+                } else {
+                    str.setAsk(list.get(14).toString());
+                }
+
+                if (list.get(15) == null) {
+                    str.setPrice(null);
+                } else {
+                    str.setPrice((list.get(15).toString()));
+                }
+
+                if (list.get(16) == null) {
+                    str.setManHour(null);
+                } else {
+                    str.setManHour(list.get(16).toString());
+                }
+
+                StandardTemplate standTempIdByName = standardTemplateService.getStandTempIdByName(String.valueOf(list.get(23)));
+                if (standTempIdByName != null) {
+                    str.setTemplateId(standTempIdByName.getId());
+                } else {
+                    throw new ErrorException("妯℃澘涓嶅瓨鍦細" + list.get(23));
+                }
+                str.setFactory("涓ぉ绉戞妧妫�娴嬩腑蹇�");
+                str.setLaboratory(laboratory.get());
+                str.setState(1);
+                str.setTree(str.getFactory() + " - " + str.getLaboratory() + " - " + str.getSampleType() + " - " + str.getSample() + " - " + (str.getModel() == null ? "" : str.getModel()));
+                try {
+                    str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass(), str.getInspectionItemClass()));
+                } catch (Exception e) {
+                    str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\",\"" + str.getSample() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass(), str.getInspectionItemClass()));
+                }
+                if (str.getStructureItemParameterId() == null) {
+                    throw new ErrorException("妫�楠岄」鐩笉瀛樺湪锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass());
+                }
+                lists.add(str);
+            }
+        });
+        lists.forEach(a -> {
+            if (a.getId() != null) {
+                standardProductListMapper.updateById(a);
+            } else {
+                standardProductListMapper.insert(a);
+            }
+        });
+    }
+
+    //瀵煎嚭
+    @Override
+    public void exportStandTree(HttpServletResponse response) throws IOException  {
+        //鏌ヨ鏍囧噯搴撴暟鎹�,鎸夌収浜у搧澶х被鍒嗙被
+        List<standardTreeDto> standardTreeDtos = standardTreeMapper.exportStandTree();
+        Map<String, List<standardTreeDto>> collect = standardTreeDtos.stream().collect(Collectors.groupingBy(standardTreeDto -> standardTreeDto.getSampleType()));
+        List<Map.Entry<String, List<standardTreeDto>>> entryList = new ArrayList<>(collect.entrySet());
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("UTF-8");
+        // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
+        String fileName = URLEncoder.encode("鏍囧噯搴撳鍑�", "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+        try {
+            // 鏂板缓ExcelWriter
+            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+            for (int i = 0; i < collect.size(); i++) {
+                Map.Entry<String, List<standardTreeDto>> entry = entryList.get(i);
+                WriteSheet mainSheet = EasyExcel.writerSheet(i, entry.getKey()+"鏍囧噯搴撳鍑�").head(standardTreeDto.class).build();
+                excelWriter.write(entry.getValue(), mainSheet);
+            }
+            // 鍏抽棴娴�
+            excelWriter.finish();
+        } catch (IOException e) {
+            throw new RuntimeException("瀵煎嚭澶辫触");
+        }
+    }
+
+    @Override
+    public void resetTreeOfPrice(String tree, Integer standardId) {
+        standardProductListMapper.update(null, Wrappers.<StandardProductList>lambdaUpdate().like(StandardProductList::getTree, tree).eq(StandardProductList::getStandardMethodListId, standardId).set(StandardProductList::getPrice, null));
+    }
+
+    @Override
+    public void resetTreeOfHour(String tree, Integer standardId) {
+        standardProductListMapper.update(null, Wrappers.<StandardProductList>lambdaUpdate().like(StandardProductList::getTree, tree).eq(StandardProductList::getStandardMethodListId, standardId).set(StandardProductList::getManHour, null));
+    }
+
+    @Override
+    public void resetTreeOfAsk(String tree, Integer standardId) {
+        standardProductListMapper.update(null, Wrappers.<StandardProductList>lambdaUpdate().like(StandardProductList::getTree, tree).eq(StandardProductList::getStandardMethodListId, standardId)
+                .set(StandardProductList::getAsk, null)
+                .set(StandardProductList::getTell, null)
+                .set(StandardProductList::getSection, null)
+                .set(StandardProductList::getPrice, null)
+                .set(StandardProductList::getManHour, null));
     }
 }
 

--
Gitblit v1.9.3