From a62666cf3a69198d68cce5c9890f0a038315d3bc Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 09 九月 2023 17:00:15 +0800
Subject: [PATCH] 修改bug6.0  9.9

---
 standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java |  110 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 100 insertions(+), 10 deletions(-)

diff --git a/standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java b/standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java
index 5833ad8..35e9113 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java
@@ -61,6 +61,18 @@
     @Resource
     DeviceMapper deviceMapper;
 
+    @Resource
+    TechnologyMapper technologyMapper;
+
+    @Resource
+    ProductMapper productMapper;
+
+    @Resource
+    MbomMapper mbomMapper;
+
+    @Resource
+    TechniqueMapper techniqueMapper;
+
     //鏍囧噯MOM-->宸︿晶浜旂骇鏍戝睍绀�
     @Override
     public List<Map<String, Object>> selectTreeByMaterial() {
@@ -72,10 +84,13 @@
     @Transactional(rollbackFor = Exception.class)
     public String addMaterial(MaterialDto materialDto) {
         //鏍¢獙娣诲姞鐗╂枡鏄惁閲嶅
-        if (materialMapper.selectOne(Wrappers.<Material>query()
+        List<Material> materialList = materialMapper.selectList(Wrappers.<Material>query()
                 .eq("type", materialDto.getType())
-                .eq("father", materialDto.getFather())).getName().equals(materialDto.getName())) {
-            return "璇ョ被鍨嬩骇鍝佸ぇ绫讳笅鏈夎浜у搧鍚嶇О";
+                .eq("father", materialDto.getFather()));
+        for (Material material : materialList) {
+            if (material.getName().equals(materialDto.getName())) {
+                return "璇ョ被鍨嬩骇鍝佸ぇ绫讳笅鏈夎浜у搧鍚嶇О";
+            }
         }
         /*鏂板鐗╂枡琛�*/
         Material material = new Material();
@@ -94,8 +109,18 @@
         specifications.setName(materialDto.getSpecifications());
         specifications.setStandardId(standard.getId());
         specificationsMapper.insert(specifications);
-        /*鏂板鏍囧噯BOM-->宸ヨ壓璺嚎(鎵归噺娣诲姞)*/
-        List<TechnologyTemplate> technologyTemplateList = technologyTemplateMapper.selectList(Wrappers.<TechnologyTemplate>query().eq("type", materialDto.getFather()));
+        /*鏂板鏍囧噯BOM-->宸ヨ壓璺嚎(鎵归噺娣诲姞)*///0锛氭鑳惰繛鎺ュ櫒锛�1锛氶噾灞炶繛鎺ュ櫒锛�2锛氭箍鎻掓嫈鐢佃繛鎺ュ櫒锛�3锛氬垎鏀粍浠�
+        Integer type = null;
+        if (materialDto.getFather().equals("姗¤兌杩炴帴鍣�")){
+            type=0;
+        }else if (materialDto.getFather().equals("閲戝睘杩炴帴鍣�")){
+            type=1;
+        }else if(materialDto.getFather().equals("婀挎彃鎷旂數杩炴帴鍣�")){
+            type=2;
+        }else if(materialDto.getFather().equals("鍒嗘敮缁勪欢")){
+            type=3;
+        }else return "娣诲姞鐗╂枡銆�" + materialDto.getName() + "銆戞垚鍔�";
+        List<TechnologyTemplate> technologyTemplateList = technologyTemplateMapper.selectList(Wrappers.<TechnologyTemplate>query().eq("type", type));
         List<Technology> technologyList = technologyTemplateList.stream().map(technologyTemplate -> {
             Technology technology = new Technology();
             technology.setSpecificationsId(specifications.getId());
@@ -162,12 +187,77 @@
         return "娣诲姞鐗╂枡銆�" + materialDto.getName() + "銆戞垚鍔�";
     }
 
-    //妫�楠屾ā鍧�-->QMS绠$悊-->鎴愬搧妫�楠�-->鏂板(椤圭洰鍚嶇О涓嬫媺妗嗭細Id涓庡悕绉帮紝缂栫爜)
+
+    //娣诲姞鍚屼竴涓瀷鍙峰伐鑹鸿矾绾�,鎶�鏈寚鏍�,鐗╂枡娓呭崟,鐢熶骇宸ヨ壓鐨勭増鏈�
     @Override
-    public List<Map<String, Object>> selectMaterialIdAndNameAndCode() {
-        LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>();
-        wrapper.select(Material::getId, Material::getName, Material::getCode);
-        return materialMapper.selectMaps(wrapper);
+    @Transactional(rollbackFor = Exception.class)
+    public Integer addVersion(Integer specificationsId, Integer version) {
+        List<Technology> technologyList = technologyMapper.selectList(Wrappers.<Technology>query()
+                .eq("specifications_id", specificationsId)
+                .eq("version", version));
+        /*涓婁竴涓増鏈殑宸ヨ壓璺嚎id闆嗗悎*/
+        List<Integer> techTemIds = technologyList.stream().map(Technology::getId).collect(Collectors.toList());
+        for (Technology technology : technologyList) {
+            technology.setId(null);
+            //鏈�鏂扮増鏈�+1
+            technology.setVersion(technologyMapper.selectVerByTec(specificationsId).get(0) + 1);
+        }
+        technologyService.saveBatch(technologyList);
+        /*宸ヨ壓璺嚎鐨勭増鏈柊澧炵殑鍚屾椂璇ュ伐鑹鸿矾绾夸笅涓嬬殑鎶�鏈寚鏍�,鐢熶骇宸ヨ壓,鐗╂枡娓呭崟閮借鏂板*/
+        //鏂板鐗堟湰鐨勫伐鑹鸿矾绾縤d闆嗗悎
+        List<Integer> technologyIds = technologyList.stream().map(Technology::getId).collect(Collectors.toList());
+        //涓よ�呴暱搴︿竴瀹氫竴鏍�
+        List<Product> productList = new ArrayList<>();
+        for (int i = 0; i < technologyIds.size(); i++) {
+            List<Product> products = productMapper.selectList(Wrappers.<Product>query().eq("technology_id", techTemIds.get(i)));
+            for (Product pro : products) {
+                Product product = new Product();
+                product.setFather(pro.getFather());
+                product.setName(pro.getName());
+                product.setUnit(pro.getUnit());
+                product.setRequired(pro.getRequired());
+                product.setInternal(pro.getInternal());
+                product.setVersion(pro.getVersion()+1);
+                product.setTechnologyId(technologyIds.get(i));
+                productList.add(product);
+            }
+        }
+        productService.saveBatch(productList);
+        /*鏂板鏍囧噯BOM-->鐗╂枡娓呭崟(鎵归噺娣诲姞)*/
+        List<Mbom> mbomList = new ArrayList<>();
+        for (int i = 0; i < technologyIds.size(); i++) {
+            List<Mbom> mboms = mbomMapper.selectList(Wrappers.<Mbom>query().eq("technology_id", techTemIds.get(i)));
+            for (Mbom mb : mboms) {
+                Mbom mbom = new Mbom();
+                mbom.setUnit(mb.getUnit());
+                mbom.setName(mb.getName());
+                mbom.setSupplier(mb.getSupplier());
+                mbom.setQualityTraceability(mb.getQualityTraceability());
+                mbom.setSpecifications(mb.getSpecifications());
+                mbom.setVersion(mb.getVersion()+1);
+                mbom.setNum(mb.getNum());
+                mbom.setTechnologyId(technologyIds.get(i));
+                mbomList.add(mbom);
+            }
+        }
+        mbomService.saveBatch(mbomList);
+        /*鏂板鏍囧噯BOM-->鐢熶骇宸ヨ壓(鎵归噺娣诲姞)*/
+        List<Technique> techniqueList = new ArrayList<>();
+        for (int i = 0; i < technologyIds.size(); i++) {
+            List<Technique> techniques = techniqueMapper.selectList(Wrappers.<Technique>query().eq("technology_id", techTemIds.get(i)));
+            for (Technique teque : techniques) {
+                Technique technique = new Technique();
+                technique.setTechnologyId(technologyIds.get(i));
+                technique.setDevice(teque.getDevice());
+                technique.setProductFather(teque.getProductFather());
+                technique.setProduct(teque.getProduct());
+                technique.setUnit(teque.getUnit());
+                technique.setVersion(teque.getVersion()+1);
+                techniqueList.add(technique);
+            }
+        }
+        techniqueService.saveBatch(techniqueList);
+        return technologyList.get(0).getVersion();
     }
 
 }

--
Gitblit v1.9.3