From 2dbc49184bd74845c8da694c20d6fd03d7ac87e0 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 21 九月 2023 16:16:21 +0800
Subject: [PATCH] 修改   9.21

---
 inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java |   91 +++++++++++++++++++++++++++++++++++----------
 1 files changed, 70 insertions(+), 21 deletions(-)

diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java
index 8fa48b7..7c6d1f2 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java
@@ -1,21 +1,22 @@
 package com.yuanchu.mom.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.mapper.*;
 import com.yuanchu.mom.pojo.*;
-import com.yuanchu.mom.service.OrdersService;
-import com.yuanchu.mom.service.SpecificationsService;
-import com.yuanchu.mom.service.StandardService;
+import com.yuanchu.mom.service.*;
 import com.yuanchu.mom.utils.MyUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 璁㈠崟(Order)琛ㄦ湇鍔″疄鐜扮被
@@ -45,13 +46,22 @@
     ManufactureOrderMapper manufactureOrderMapper;
 
     @Resource
-    ManualTechnologyMapper manualTechnologyMapper;
-
-    @Resource
-    SpecificationsMapper specificationsMapper;
+    ManualTechnologyService manualTechnologyService;
 
     @Resource
     TechnologyMapper technologyMapper;
+
+    @Resource
+    ProductMapper productMapper;
+
+    @Resource
+    MbomMapper mbomMapper;
+
+    @Resource
+    ManualProductService manualProductService;
+
+    @Resource
+    ManualMbomService manualMbomService;
 
 
     //鏌ヨ鎵�鏈夎鍗曞垪琛�
@@ -87,27 +97,66 @@
                 .build();
         //鏂板鐢熶骇璁㈠崟
         manufactureOrderMapper.insert(manufactureOrder);
-        //鏌ヨ浜у搧鐨勬渶鏂板伐搴�
         //浜у搧缂栫爜
         String code = materialMapper.selMcode(manufactureOrder.getName());
         //鍨嬪彿id
         Integer specificationId = getSpecificationId(manufactureOrder.getName(), code, manufactureOrder.getSpecifications());
         //榛樿鏈�鏂扮増鏈�
         Integer version = technologyMapper.selectVerByTec(specificationId).get(0);
-        List<Technology> technologyList = technologyMapper.selectList(Wrappers.<Technology>query()
-                .eq("specifications_id", specificationId)
-                .eq("version", version));
-        for (Technology technology : technologyList) {
+        /*姝e簭鏌ヨ璇ュ瀷鍙锋渶鏂扮増鏈笅鐨勫伐鑹鸿矾绾�*/
+        LambdaQueryWrapper<Technology> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Technology::getSpecificationsId,specificationId);
+        queryWrapper.eq(Technology::getVersion,version);
+        queryWrapper.orderByAsc(Technology::getFather);
+        List<Technology> technologyList = technologyMapper.selectList(queryWrapper);
+        List<ManualTechnology> manualTechnologyList = technologyList.stream().map(technology -> {
             ManualTechnology manualTechnology = ManualTechnology.builder()
-                    .techname(technology.getName())
-                    .techfather(technology.getFather())
-                    .deviceGroup(technology.getDeviceGroup())
-                    .manufactureOrderId(manufactureOrder.getId())
-                    .productionQuota(technology.getProductionQuota())
-                    .technologyId(technology.getId())
+                    .techname(technology.getName()) //宸ヨ壓
+                    .techfather(technology.getFather()) //宸ュ簭
+                    .deviceGroup(technology.getDeviceGroup()) //鐢熶骇璁惧缁�
+                    .manufactureOrderId(manufactureOrder.getId()) //鐢熶骇璁㈠崟id
+                    .productionQuota(technology.getProductionQuota()) //鐢熶骇鏁堢巼
+                    .technologyId(technology.getId()) //鏍囧噯bom涓伐鑹鸿矾绾縤d
                     .build();
-            //鏂板缂栧埗宸ュ簭琛�
-            manualTechnologyMapper.insert(manualTechnology);
+            return manualTechnology;
+        }).collect(Collectors.toList());
+        /*鏂板缂栧埗宸ヨ壓琛�*/
+        manualTechnologyService.saveBatch(manualTechnologyList);
+        //鏍规嵁鏍囧噯bom鐨勫伐鑹鸿矾绾縤d鏌ヨ鏍囧噯bom涓殑鎶�鏈寚鏍�
+        for (ManualTechnology manualTechnology : manualTechnologyList) {
+            List<Product> productList = productMapper.selProByVerSpe(manualTechnology.getTechnologyId());
+            List<ManualProduct> manualProducts = new ArrayList<>();
+            for (Product product : productList) {
+                ManualProduct manualProduct = ManualProduct.builder()
+                        .manualTechnologyId(manualTechnology.getId()) //鍏宠仈 鐢熶骇璁㈠崟id
+                        .name(product.getName())
+                        .father(product.getFather())
+                        .unit(product.getUnit())
+                        .required(product.getRequired())
+                        .internal(product.getInternal())
+                        .build();
+                manualProducts.add(manualProduct);
+            }
+            /*鏂板缂栧埗鎶�鏈寚鏍囪〃*/
+            manualProductService.saveBatch(manualProducts);
+        }
+        //鏍规嵁鏍囧噯bom鐨勫伐鑹鸿矾绾縤d鏌ヨ鏍囧噯bom涓殑鐗╂枡娓呭崟
+        for (ManualTechnology manualTechnology : manualTechnologyList) {
+            List<Mbom> mbomList = mbomMapper.selectList(Wrappers.<Mbom>query().eq("technology_id",manualTechnology.getTechnologyId()));
+            List<ManualMbom> manualMboms = new ArrayList<>();
+            for (Mbom mbom : mbomList) {
+                ManualMbom manualMbom = ManualMbom.builder()
+                        .manualTechnologyId(manualTechnology.getId()) //鍏宠仈 鐢熶骇璁㈠崟id
+                        .name(mbom.getName())
+                        .unit(mbom.getUnit())
+                        .num(mbom.getNum())
+                        .qualityTraceability(mbom.getQualityTraceability())
+                        .specifications(mbom.getSpecifications())
+                        .build();
+                manualMboms.add(manualMbom);
+            }
+            /*鏂板缂栧埗鐗╂枡娓呭崟琛�*/
+            manualMbomService.saveBatch(manualMboms);
         }
     }
 
@@ -123,7 +172,7 @@
         //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
         String[] split = specification.split("-");
         String stName = split[0];
-        String spName = split[1];
+        String spName = split[1]+split[2];
         //鑾峰彇瑙勬牸id
         Standard standard = standardService.getOne(Wrappers.<Standard>query()
                 .eq("name", stName)

--
Gitblit v1.9.3