From d0b101c3cdbd9c9b1929232e768b5b8f72b6352a Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 27 三月 2026 10:18:13 +0800
Subject: [PATCH] yys 1.生产逻辑修改

---
 src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java |   49 ++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 36 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java
index 26715f3..d98d0de 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java
@@ -16,20 +16,24 @@
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.other.mapper.TempFileMapper;
+import com.ruoyi.other.service.impl.TempFileServiceImpl;
+import com.ruoyi.production.mapper.ProductProcessMapper;
+import com.ruoyi.production.pojo.ProductProcess;
+import com.ruoyi.sales.mapper.CommonFileMapper;
 import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
 import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
 import lombok.AllArgsConstructor;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
-import java.util.AbstractMap;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -45,9 +49,13 @@
     private final ProductMapper productMapper;
     private final SalesLedgerProductMapper salesLedgerProductMapper;
     private ProductModelMapper productModelMapper;
+    private final CommonFileServiceImpl commonFileService;
+    private final ProductProcessMapper productProcessMapper;
+
+    private final TempFileServiceImpl tempFileService;
 
     @Override
-    public int addOrEditProductModel(ProductModelDto productModelDto) {
+    public int addOrEditProductModel(ProductModelDto productModelDto) throws IOException {
         if(StringUtils.isEmpty(productModelDto.getProductName())){
             throw new RuntimeException("浜у搧鍚嶇О涓嶈兘涓虹┖");
         }
@@ -63,16 +71,23 @@
             ProductModel productModel = new ProductModel();
             BeanUtils.copyProperties(productModelDto,productModel);
             productModel.setProductId(product.getId());
-            return productModelMapper.insert(productModel);
+            productModelMapper.insert(productModel);
+            if(CollectionUtils.isNotEmpty(productModelDto.getTempFileIds())){
+                commonFileService.migrateTempFilesToFormal(productModel.getId(), productModelDto.getTempFileIds());
+            }
+            return 1;
         } else {
             Product product1 = productMapper.selectById(productModelDto.getProductId());
             if(product1 != null){
                 product1.setProductName(productModelDto.getProductName());
                 productMapper.updateById(product1);
             }
-
+            if(CollectionUtils.isNotEmpty(productModelDto.getTempFileIds())){
+                commonFileService.migrateTempFilesToFormal(productModelDto.getId(), productModelDto.getTempFileIds());
+            }
             return productModelMapper.updateById(productModelDto);
         }
+
     }
 
 
@@ -116,11 +131,6 @@
         try {
             ExcelUtil<ProductModelExcelCopyDto> productModelExcelUtil = new ExcelUtil<>(ProductModelExcelCopyDto.class);
             List<ProductModelExcelCopyDto> productModelList = productModelExcelUtil.importExcel(file.getInputStream());
-//            List<Product> productList = productMapper.selectList(new LambdaQueryWrapper<Product>()
-//                    .isNull(Product::getParentId));
-//            if(CollectionUtils.isEmpty(productList)) {
-//                throw new RuntimeException("璇峰厛娣诲姞鐖剁骇浜у搧");
-//            }
             if(CollectionUtils.isNotEmpty(productModelList)){
                 // 2. 鎸変骇鍝佸悕绉�,鍥剧焊缂栧彿鍒嗙粍
                 Map<Map.Entry<String, String>, List<ProductModelExcelCopyDto>> groupedByProductNameAndDrawingNumber =
@@ -184,15 +194,27 @@
      */
     private void processProductModel(List<ProductModelExcelCopyDto> dtoList,
                                      Long productId, String model, String drawingNumber) {
+        // 鏌ヨ鎵�鏈夊伐鑹鸿矾绾�
+        List<ProductProcess> productRoutes = productProcessMapper.selectList(new QueryWrapper<ProductProcess>());
+        if(CollectionUtils.isEmpty(productRoutes)){
+            throw new RuntimeException("璇峰厛鍒涘缓浜у搧宸ヨ壓璺嚎");
+        }
         for (ProductModelExcelCopyDto dto : dtoList) {
             // 鏌ヨ鏉′欢锛氬瀷鍙�+鍥剧焊缂栧彿锛堟洿绮惧噯锛岀鍚堝垎缁勯�昏緫锛�
             ProductModel productModel = productModelMapper.selectOne(new LambdaQueryWrapper<ProductModel>()
                     .eq(ProductModel::getModel, model)
                     .last("limit 1"));
-
+            // 閫氳繃宸ヨ壓璺嚎鍚嶇О鍖归厤鏈�鏂颁竴鏉″伐鑹鸿矾绾�
+            ProductProcess productRoute = productRoutes.stream()
+                    .filter(route -> route.getName().equals(dto.getProcessRoute()))
+                    .max(Comparator.comparing(ProductProcess::getCreateTime))
+                    .orElse(null);
             if (productModel == null) {
                 productModel = new ProductModel();
                 BeanUtils.copyProperties(dto, productModel);
+                if (productRoute != null) {
+                    productModel.setRouteId(productRoute.getId());
+                }
                 // 鍏滃簳榛樿鍊硷紝閬垮厤绌哄��
                 if (productModel.getProductType() == null) {
                     productModel.setProductType(1);
@@ -200,6 +222,7 @@
                 productModel.setProductId(productId);
                 productModelMapper.insert(productModel);
             } else {
+                productModel.setRouteId(productRoute != null ? productRoute.getId() : null);
                 BeanUtils.copyProperties(dto, productModel);
                 productModel.setProductId(productId);
                 productModelMapper.updateById(productModel);

--
Gitblit v1.9.3