From dd301742784e570ec01098907f56e5c9c19b5a99 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 23 七月 2024 17:26:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java |  209 +++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 190 insertions(+), 19 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 f96abd5..41a8ecc 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,10 +1,8 @@
 package com.yuanchu.mom.service.impl;
 
-import cn.hutool.core.lang.Console;
 import cn.hutool.poi.excel.ExcelUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.dto.FactoryDto;
@@ -70,6 +68,15 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int addStandardTree(StandardTree standardTree) {
+        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);
     }
 
@@ -79,7 +86,11 @@
         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:
                 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]));
@@ -136,6 +147,10 @@
     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;
+        }
         standardProductListMapper.update(productList, Wrappers.<StandardProductList>lambdaUpdate().in(StandardProductList::getId, ids));
         return 1;
     }
@@ -148,6 +163,10 @@
                 .select(StandardTree::getModel, StandardTree::getSample));
     }
 
+    /**
+     * 娌冲彛妫�娴嬩腑蹇冨鍏�
+     * @param file
+     */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void inExcelOfTree(MultipartFile file) {
@@ -175,6 +194,10 @@
                 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);
@@ -198,13 +221,13 @@
                 }
                 str.setInspectionItem(list.get(4) + "");
                 if (list.get(6) == null) {
-                    str.setInspectionItemSubclass(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());
+                    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());
                 }
@@ -213,16 +236,7 @@
                     str.setStructureItemParameterId(db_str.getStructureItemParameterId());
                 }
                 if (list.get(8) != null) {
-                    StringBuilder buffer = new StringBuilder();
-                    String input = list.get(8).toString();
-                    buffer.append("[");
-                    String[] values = input.split("銆�");
-                    for (String value : values) {
-                        buffer.append("\"").append(value.trim()).append("\",");
-                    }
-                    buffer.deleteCharAt(buffer.length() - 1);
-                    buffer.append("]");
-                    str.setMethod(buffer.toString());
+                    str.setMethodS(list.get(8) + "");
                 }
 
                 if (list.get(11) == null) {
@@ -255,19 +269,176 @@
                 } 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){
+        lists.forEach(a -> {
+            if (a.getId() != null) {
                 standardProductListMapper.updateById(a);
-            }else{
+            } 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 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