From 17a7a0c0df3dbc3e6225dddb55f6332deccdb201 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 03 六月 2026 11:38:30 +0800
Subject: [PATCH] 浪潮部署

---
 src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java |  141 ++++++++++++++++++++--------------------------
 1 files changed, 61 insertions(+), 80 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 175dd30..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,13 +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.StockInUnQualifiedRecordTypeEnum;
-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;
@@ -26,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;
@@ -41,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
@@ -275,6 +261,7 @@
         productionProductMain.setUserName(user == null ? dto.getUserName() : user.getNickName());
         productionProductMain.setProductionOperationTaskId(taskId);
         productionProductMain.setStatus(0);
+        productionProductMain.setWorkHour(dto.getWorkHour());
         productionProductMainMapper.insert(productionProductMain);
         syncOperationParamInputValue(dto, routingOperation.getId(), productionProductMain.getId());
 
@@ -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())) {
@@ -390,8 +377,6 @@
             }
             ProductionAccount productionAccount = new ProductionAccount();
             productionAccount.setProductionProductMainId(productionProductMain.getId());
-//            productionAccount.setSalesLedgerId(productionOrder.getSalesLedgerId());
-//            productionAccount.setSalesLedgerProductId(productionOrder.getSalesLedgerProductId() == null ? null : productionOrder.getSalesLedgerProductId().longValue());
             productionAccount.setSchedulingUserId(user == null ? null : user.getUserId());
             productionAccount.setSchedulingUserName(user == null ? dto.getUserName() : user.getNickName());
             productionAccount.setFinishedNum(productQty);
@@ -400,10 +385,6 @@
             productionAccount.setSchedulingDate(LocalDateTime.now());
             productionAccountMapper.insert(productionAccount);
         }
-//        if (defaultDecimal(dto.getScrapQty()).compareTo(BigDecimal.ZERO) > 0) {
-//            stockUtils.addUnStock(productModel.getId(), dto.getScrapQty(),
-//                    StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode(), productionProductMain.getId());
-//        }
         return true;
     }
 
@@ -535,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()))
@@ -590,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>()
@@ -604,9 +585,9 @@
         productionOrderRoutingOperationParamMapper.delete(
                 Wrappers.<ProductionOrderRoutingOperationParam>lambdaQuery()
                         .eq(ProductionOrderRoutingOperationParam::getProductionProductMainId, productionProductMain.getId()));
-        stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInUnQualifiedRecordTypeEnum.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