From 88ae1e650fc2fc30928edfe8f3cc39108d8d1ccd Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期三, 06 五月 2026 15:44:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New_pro' into dev_New_pro

---
 src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationParamServiceImpl.java |   91 ++++++++++++---------------------------------
 1 files changed, 24 insertions(+), 67 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationParamServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationParamServiceImpl.java
index 048519b..a99b194 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationParamServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationParamServiceImpl.java
@@ -8,7 +8,6 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.production.bean.dto.ProductionOrderRoutingOperationParamDto;
-import com.ruoyi.production.bean.dto.ProductionOrderRoutingOperationParamSyncDto;
 import com.ruoyi.production.bean.vo.ProductionOrderRoutingOperationParamVo;
 import com.ruoyi.production.mapper.ProductionOrderMapper;
 import com.ruoyi.production.mapper.ProductionOrderRoutingOperationMapper;
@@ -17,7 +16,9 @@
 import com.ruoyi.production.pojo.ProductionOrderRoutingOperation;
 import com.ruoyi.production.pojo.ProductionOrderRoutingOperationParam;
 import com.ruoyi.production.service.ProductionOrderRoutingOperationParamService;
+import com.ruoyi.technology.mapper.TechnologyParamMapper;
 import com.ruoyi.technology.mapper.TechnologyRoutingOperationParamMapper;
+import com.ruoyi.technology.pojo.TechnologyParam;
 import com.ruoyi.technology.pojo.TechnologyRoutingOperationParam;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -34,6 +35,7 @@
     private final ProductionOrderRoutingOperationParamMapper productionOrderRoutingOperationParamMapper;
     private final ProductionOrderRoutingOperationMapper productionOrderRoutingOperationMapper;
     private final ProductionOrderMapper productionOrderMapper;
+    private final TechnologyParamMapper technologyParamMapper;
     private final TechnologyRoutingOperationParamMapper technologyRoutingOperationParamMapper;
 
     @Override
@@ -57,7 +59,7 @@
 
     @Override
     public boolean saveProductionOrderRoutingOperationParam(ProductionOrderRoutingOperationParam item) {
-        ProductionOrderRoutingOperation routingOperation = getRoutingOperation(item.getTechnologyRoutingOperationId());
+        ProductionOrderRoutingOperation routingOperation = getRoutingOperation(item.getProductionOrderRoutingOperationId());
         fillFromSourceParam(item, routingOperation);
         validateManualFields(item);
         checkDuplicate(item);
@@ -69,62 +71,16 @@
         return this.removeById(id);
     }
 
-    @Override
-    public int syncProductionOrderRoutingOperationParam(ProductionOrderRoutingOperationParamSyncDto syncDto) {
-        if (syncDto == null || syncDto.getProductionOrderRoutingOperationId() == null) {
-            throw new ServiceException("productionOrderRoutingOperationId is required");
-        }
-        ProductionOrderRoutingOperation routingOperation = getRoutingOperation(syncDto.getProductionOrderRoutingOperationId());
-        List<TechnologyRoutingOperationParam> sourceParamList = technologyRoutingOperationParamMapper.selectList(
-                Wrappers.<TechnologyRoutingOperationParam>lambdaQuery()
-                        .eq(TechnologyRoutingOperationParam::getTechnologyRoutingOperationId, routingOperation.getTechnologyRoutingOperationId())
-                        .orderByAsc(TechnologyRoutingOperationParam::getId)
-        );
-        boolean replaceExisting = syncDto.getReplaceExisting() == null || syncDto.getReplaceExisting();
-        if (replaceExisting) {
-            productionOrderRoutingOperationParamMapper.delete(
-                    Wrappers.<ProductionOrderRoutingOperationParam>lambdaQuery()
-                            .eq(ProductionOrderRoutingOperationParam::getTechnologyRoutingOperationId, routingOperation.getId())
-            );
-        }
-        int successCount = 0;
-        for (TechnologyRoutingOperationParam sourceParam : sourceParamList) {
-            boolean exists = productionOrderRoutingOperationParamMapper.selectCount(
-                    Wrappers.<ProductionOrderRoutingOperationParam>lambdaQuery()
-                            .eq(ProductionOrderRoutingOperationParam::getTechnologyRoutingOperationId, routingOperation.getId())
-                            .eq(ProductionOrderRoutingOperationParam::getTechnologyRoutingOperationParamId, sourceParam.getId())
-            ) > 0;
-            if (!replaceExisting && exists) {
-                continue;
-            }
-            ProductionOrderRoutingOperationParam target = new ProductionOrderRoutingOperationParam();
-            target.setTechnologyRoutingOperationId(routingOperation.getId());
-            target.setTechnologyRoutingOperationParamId(sourceParam.getId());
-            target.setProductionOrderId(routingOperation.getProductionOrderId());
-            target.setTechnologyOperationId(sourceParam.getTechnologyOperationId());
-            target.setTechnologyOperationParamId(sourceParam.getTechnologyOperationParamId());
-            target.setParamId(sourceParam.getParamId());
-            target.setParamCode(sourceParam.getParamCode());
-            target.setParamName(sourceParam.getParamName());
-            target.setParamType(sourceParam.getParamType());
-            target.setParamFormat(sourceParam.getParamFormat());
-            target.setUnit(sourceParam.getUnit());
-            target.setIsRequired(sourceParam.getIsRequired());
-            target.setRemark(sourceParam.getRemark());
-            target.setStandardValue(sourceParam.getStandardValue());
-            productionOrderRoutingOperationParamMapper.insert(target);
-            successCount++;
-        }
-        return successCount;
-    }
-
     private LambdaQueryWrapper<ProductionOrderRoutingOperationParam> buildQueryWrapper(ProductionOrderRoutingOperationParamDto dto) {
         ProductionOrderRoutingOperationParam query = dto == null ? new ProductionOrderRoutingOperationParam() : dto;
         return Wrappers.<ProductionOrderRoutingOperationParam>lambdaQuery()
                 .eq(query.getId() != null, ProductionOrderRoutingOperationParam::getId, query.getId())
+                .eq(query.getProductionProductMainId() != null,
+                        ProductionOrderRoutingOperationParam::getProductionProductMainId, query.getProductionProductMainId())
+                .isNull(query.getProductionProductMainId() == null,
+                        ProductionOrderRoutingOperationParam::getProductionProductMainId)
                 .eq(query.getProductionOrderId() != null, ProductionOrderRoutingOperationParam::getProductionOrderId, query.getProductionOrderId())
-                .eq(query.getTechnologyRoutingOperationId() != null,
-                        ProductionOrderRoutingOperationParam::getTechnologyRoutingOperationId, query.getTechnologyRoutingOperationId())
+                .eq(query.getProductionOrderRoutingOperationId() != null, ProductionOrderRoutingOperationParam::getProductionOrderRoutingOperationId, query.getProductionOrderRoutingOperationId())
                 .eq(query.getTechnologyOperationId() != null,
                         ProductionOrderRoutingOperationParam::getTechnologyOperationId, query.getTechnologyOperationId())
                 .eq(query.getTechnologyRoutingOperationParamId() != null,
@@ -135,7 +91,7 @@
                         ProductionOrderRoutingOperationParam::getParamCode, query.getParamCode())
                 .like(query.getParamName() != null && !query.getParamName().trim().isEmpty(),
                         ProductionOrderRoutingOperationParam::getParamName, query.getParamName())
-                .orderByAsc(ProductionOrderRoutingOperationParam::getTechnologyRoutingOperationId)
+                .orderByAsc(ProductionOrderRoutingOperationParam::getProductionOrderRoutingOperationId)
                 .orderByAsc(ProductionOrderRoutingOperationParam::getId);
     }
 
@@ -151,25 +107,28 @@
     }
 
     private void fillFromSourceParam(ProductionOrderRoutingOperationParam item, ProductionOrderRoutingOperation routingOperation) {
-        item.setTechnologyRoutingOperationId(routingOperation.getId());
         item.setProductionOrderId(routingOperation.getProductionOrderId());
+        item.setProductionOrderRoutingOperationId(routingOperation.getId());
         ProductionOrder productionOrder = productionOrderMapper.selectById(routingOperation.getProductionOrderId());
         if (productionOrder == null) {
             throw new ServiceException("Production order not found");
         }
-        if (item.getTechnologyRoutingOperationParamId() == null) {
+        if (item.getParamId() == null) {
             return;
         }
-        TechnologyRoutingOperationParam sourceParam = technologyRoutingOperationParamMapper.selectById(item.getTechnologyRoutingOperationParamId());
+        TechnologyParam sourceParam = technologyParamMapper.selectById(item.getParamId());
         if (sourceParam == null) {
-            throw new ServiceException("Technology routing operation param not found");
+            throw new ServiceException("Technology  param not found");
         }
-        if (!routingOperation.getTechnologyRoutingOperationId().equals(sourceParam.getTechnologyRoutingOperationId())) {
-            throw new ServiceException("Source param does not belong to routing operation");
+        if (item.getTechnologyOperationParamId() != null) {
+            TechnologyRoutingOperationParam sourceRoutingOperationParam = technologyRoutingOperationParamMapper.selectById(item.getTechnologyOperationParamId());
+            item.setTechnologyOperationId(sourceRoutingOperationParam.getTechnologyOperationId());
+            item.setTechnologyOperationParamId(sourceRoutingOperationParam.getTechnologyOperationParamId());
+            if (item.getStandardValue() == null) {
+                item.setStandardValue(sourceRoutingOperationParam.getStandardValue());
+            }
         }
-        item.setTechnologyOperationId(sourceParam.getTechnologyOperationId());
-        item.setTechnologyOperationParamId(sourceParam.getTechnologyOperationParamId());
-        item.setParamId(sourceParam.getParamId());
+        item.setParamId(sourceParam.getId());
         item.setParamCode(sourceParam.getParamCode());
         item.setParamName(sourceParam.getParamName());
         item.setParamType(sourceParam.getParamType());
@@ -178,9 +137,6 @@
         item.setIsRequired(sourceParam.getIsRequired());
         if (item.getRemark() == null || item.getRemark().trim().isEmpty()) {
             item.setRemark(sourceParam.getRemark());
-        }
-        if (item.getStandardValue() == null) {
-            item.setStandardValue(sourceParam.getStandardValue());
         }
     }
 
@@ -196,7 +152,8 @@
     private void checkDuplicate(ProductionOrderRoutingOperationParam item) {
         boolean duplicate = productionOrderRoutingOperationParamMapper.selectCount(
                 Wrappers.<ProductionOrderRoutingOperationParam>lambdaQuery()
-                        .eq(ProductionOrderRoutingOperationParam::getTechnologyRoutingOperationId, item.getTechnologyRoutingOperationId())
+                        .isNull(ProductionOrderRoutingOperationParam::getProductionProductMainId)
+                        .eq(ProductionOrderRoutingOperationParam::getProductionOrderRoutingOperationId, item.getProductionOrderRoutingOperationId())
                         .eq(item.getTechnologyRoutingOperationParamId() != null,
                                 ProductionOrderRoutingOperationParam::getTechnologyRoutingOperationParamId, item.getTechnologyRoutingOperationParamId())
                         .eq(item.getTechnologyRoutingOperationParamId() == null && item.getParamCode() != null,

--
Gitblit v1.9.3