From 4336d99906953517399187638925817d969c4e10 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期四, 14 五月 2026 14:18:14 +0800
Subject: [PATCH] refactor(stock): 优化库存管理和产品模型查询功能

---
 src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java |  133 ++++++++++++++++++++------------------------
 1 files changed, 60 insertions(+), 73 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index 20f4bfc..c753b0c 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -9,12 +9,8 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.basic.mapper.ProductMapper;
 import com.ruoyi.basic.mapper.ProductModelMapper;
-import com.ruoyi.basic.pojo.Product;
 import com.ruoyi.basic.pojo.ProductModel;
-import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
 import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.procurementrecord.utils.StockUtils;
 import com.ruoyi.production.bean.dto.ProductStructureDto;
 import com.ruoyi.production.bean.dto.ProductionProductMainDto;
@@ -25,8 +21,7 @@
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
 import com.ruoyi.quality.mapper.*;
-import com.ruoyi.quality.pojo.*;
-import com.ruoyi.stock.dto.StockInventoryDto;
+import com.ruoyi.quality.pojo.QualityInspect;
 import com.ruoyi.stock.service.StockInventoryService;
 import com.ruoyi.technology.mapper.TechnologyOperationMapper;
 import com.ruoyi.technology.mapper.TechnologyRoutingOperationMapper;
@@ -40,15 +35,7 @@
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -314,45 +301,45 @@
                         .eq(ProductionOrderRoutingOperation::getProductionOrderId, routingOperation.getProductionOrderId()));
         boolean isLastOperation = routingOperation.getDragSort() != null && routingOperation.getDragSort().equals(routingOperationList.size());
         if (productQty.compareTo(BigDecimal.ZERO) > 0) {
-            if (Boolean.TRUE.equals(routingOperation.getIsQuality())) {
-                // 璐ㄦ宸ュ簭鍏堢敓鎴愭楠屽崟锛岄潪璐ㄦ宸ュ簭鐩存帴鍏ュ悎鏍煎搧搴撳瓨銆�
-                int inspectType = isLastOperation ? 2 : 1;
-                String process = isLastOperation ? null : technologyOperation == null ? null : technologyOperation.getName();
-                Product product = productMapper.selectById(productModel.getProductId());
-                QualityInspect qualityInspect = new QualityInspect();
-                qualityInspect.setProductId(product.getId());
-                qualityInspect.setProductName(product.getProductName());
-                qualityInspect.setModel(productModel.getModel());
-                qualityInspect.setUnit(productModel.getUnit());
-                qualityInspect.setQuantity(productQty);
-                qualityInspect.setProcess(process);
-                qualityInspect.setInspectState(0);
-                qualityInspect.setInspectType(inspectType);
-                qualityInspect.setProductMainId(productionProductMain.getId());
-                qualityInspect.setProductModelId(productModel.getId());
-                qualityInspectMapper.insert(qualityInspect);
-                List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(product.getId(), inspectType, process);
-                if (!qualityTestStandard.isEmpty()) {
-                    qualityInspect.setTestStandardId(qualityTestStandard.get(0).getId());
-                    qualityInspectMapper.updateById(qualityInspect);
-                    qualityTestStandardParamMapper.selectList(Wrappers.<QualityTestStandardParam>lambdaQuery()
-                                    .eq(QualityTestStandardParam::getTestStandardId, qualityTestStandard.get(0).getId()))
-                            .forEach(qualityTestStandardParam -> {
-                                QualityInspectParam param = new QualityInspectParam();
-                                BeanUtils.copyProperties(qualityTestStandardParam, param);
-                                param.setId(null);
-                                param.setInspectId(qualityInspect.getId());
-                                qualityInspectParamMapper.insert(param);
-                            });
-                }
-            } else {
-                StockInventoryDto stockInventoryDto = new StockInventoryDto();
-                stockInventoryDto.setRecordId(productionProductMain.getId());
-                stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode()));
-                stockInventoryDto.setQualitity(productQty);
-                stockInventoryDto.setProductModelId(productModel.getId());
-                stockInventoryService.addStockInRecordOnly(stockInventoryDto);
-            }
+//            if (Boolean.TRUE.equals(routingOperation.getIsQuality())) {
+//                // 璐ㄦ宸ュ簭鍏堢敓鎴愭楠屽崟锛岄潪璐ㄦ宸ュ簭鐩存帴鍏ュ悎鏍煎搧搴撳瓨銆�
+//                int inspectType = isLastOperation ? 2 : 1;
+//                String process = isLastOperation ? null : technologyOperation == null ? null : technologyOperation.getName();
+//                Product product = productMapper.selectById(productModel.getProductId());
+//                QualityInspect qualityInspect = new QualityInspect();
+//                qualityInspect.setProductId(product.getId());
+//                qualityInspect.setProductName(product.getProductName());
+//                qualityInspect.setModel(productModel.getModel());
+//                qualityInspect.setUnit(productModel.getUnit());
+//                qualityInspect.setQuantity(productQty);
+//                qualityInspect.setProcess(process);
+//                qualityInspect.setInspectState(0);
+//                qualityInspect.setInspectType(inspectType);
+//                qualityInspect.setProductMainId(productionProductMain.getId());
+//                qualityInspect.setProductModelId(productModel.getId());
+//                qualityInspectMapper.insert(qualityInspect);
+//                List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(product.getId(), inspectType, process);
+//                if (!qualityTestStandard.isEmpty()) {
+//                    qualityInspect.setTestStandardId(qualityTestStandard.get(0).getId());
+//                    qualityInspectMapper.updateById(qualityInspect);
+//                    qualityTestStandardParamMapper.selectList(Wrappers.<QualityTestStandardParam>lambdaQuery()
+//                                    .eq(QualityTestStandardParam::getTestStandardId, qualityTestStandard.get(0).getId()))
+//                            .forEach(qualityTestStandardParam -> {
+//                                QualityInspectParam param = new QualityInspectParam();
+//                                BeanUtils.copyProperties(qualityTestStandardParam, param);
+//                                param.setId(null);
+//                                param.setInspectId(qualityInspect.getId());
+//                                qualityInspectParamMapper.insert(param);
+//                            });
+//                }
+//            } else {
+//                StockInventoryDto stockInventoryDto = new StockInventoryDto();
+//                stockInventoryDto.setRecordId(productionProductMain.getId());
+//                stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode()));
+//                stockInventoryDto.setQualitity(productQty);
+//                stockInventoryDto.setProductModelId(productModel.getId());
+//                stockInventoryService.addStockInRecordOnly(stockInventoryDto);
+//            }
 
             productionOperationTask.setCompleteQuantity(defaultDecimal(productionOperationTask.getCompleteQuantity()).add(productQty));
             if (ObjectUtils.isNull(productionOperationTask.getActualStartTime())) {
@@ -529,15 +516,15 @@
         List<QualityInspect> qualityInspects = qualityInspectMapper.selectList(
                 Wrappers.<QualityInspect>lambdaQuery().eq(QualityInspect::getProductMainId, productionProductMain.getId()));
         // 鍙傛暟涓庡墠缃潯浠舵牎楠�
-        if (qualityInspects.size() > 0) {
-            List<QualityUnqualified> qualityUnqualifieds = qualityUnqualifiedMapper.selectList(
-                    Wrappers.<QualityUnqualified>lambdaQuery()
-        // 閬嶅巻澶勭悊鏁版嵁骞剁粍瑁呯粨鏋�
-                            .in(QualityUnqualified::getInspectId, qualityInspects.stream().map(QualityInspect::getId).collect(Collectors.toList())));
-            if (qualityUnqualifieds.size() > 0 && qualityUnqualifieds.get(0).getInspectState() == 1) {
-                throw new ServiceException("璇ユ潯鎶ュ伐宸茬粡涓嶅悎鏍煎鐞嗕簡锛屼笉鍏佽鍒犻櫎");
-            }
-        }
+//        if (!qualityInspects.isEmpty()) {
+//            List<QualityUnqualified> qualityUnqualifieds = qualityUnqualifiedMapper.selectList(
+//                    Wrappers.<QualityUnqualified>lambdaQuery()
+//        // 閬嶅巻澶勭悊鏁版嵁骞剁粍瑁呯粨鏋�
+//                            .in(QualityUnqualified::getInspectId, qualityInspects.stream().map(QualityInspect::getId).collect(Collectors.toList())));
+//            if (!qualityUnqualifieds.isEmpty() && qualityUnqualifieds.getFirst().getInspectState() == 1) {
+//                throw new ServiceException("璇ユ潯鎶ュ伐宸茬粡涓嶅悎鏍煎鐞嗕簡锛屼笉鍏佽鍒犻櫎");
+//            }
+//        }
         ProductionProductOutput productionProductOutput = productionProductOutputMapper.selectList(
                 Wrappers.<ProductionProductOutput>lambdaQuery()
                         .eq(ProductionProductOutput::getProductionProductMainId, productionProductMain.getId()))
@@ -584,13 +571,13 @@
             }
         }
 
-        qualityInspectMapper.selectList(new LambdaQueryWrapper<QualityInspect>()
-                .eq(QualityInspect::getProductMainId, productionProductMain.getId())).forEach(q -> {
-            qualityInspectParamMapper.delete(new LambdaQueryWrapper<QualityInspectParam>()
-                    .eq(QualityInspectParam::getInspectId, q.getId()));
-            qualityInspectMapper.deleteById(q.getId());
-            stockUtils.deleteStockInRecord(q.getId(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode());
-        });
+//        qualityInspectMapper.selectList(new LambdaQueryWrapper<QualityInspect>()
+//                .eq(QualityInspect::getProductMainId, productionProductMain.getId())).forEach(q -> {
+//            qualityInspectParamMapper.delete(new LambdaQueryWrapper<QualityInspectParam>()
+//                    .eq(QualityInspectParam::getInspectId, q.getId()));
+//            qualityInspectMapper.deleteById(q.getId());
+//            stockUtils.deleteStockInRecord(q.getId(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode());
+//        });
         productionProductOutputMapper.delete(new LambdaQueryWrapper<ProductionProductOutput>()
                 .eq(ProductionProductOutput::getProductionProductMainId, productionProductMain.getId()));
         productionProductInputMapper.delete(new LambdaQueryWrapper<ProductionProductInput>()
@@ -598,9 +585,9 @@
         productionOrderRoutingOperationParamMapper.delete(
                 Wrappers.<ProductionOrderRoutingOperationParam>lambdaQuery()
                         .eq(ProductionOrderRoutingOperationParam::getProductionProductMainId, productionProductMain.getId()));
-        stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode());
-        stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode());
-        stockUtils.deleteStockOutRecord(productionProductMain.getId(), StockOutQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_OUT.getCode());
+//        stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode());
+//        stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode());
+//        stockUtils.deleteStockOutRecord(productionProductMain.getId(), StockOutQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_OUT.getCode());
         productionProductMainMapper.deleteById(productionProductMain.getId());
         return true;
     }

--
Gitblit v1.9.3