From acc94dd2dc309e50882f7b10c20d955ed2f14716 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 26 五月 2026 14:51:51 +0800
Subject: [PATCH] feat:修改自动编号的生成,根据传入的CreateTime生成对应的编号

---
 src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java |   35 +++++++++++++++++++++++++----------
 1 files changed, 25 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java
index a5c8fcc..f41f659 100644
--- a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java
+++ b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java
@@ -7,8 +7,12 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.OrderUtils;
+
+import java.time.LocalDateTime;
 import com.ruoyi.technology.bean.dto.TechnologyRoutingDto;
 import com.ruoyi.technology.bean.vo.TechnologyRoutingVo;
+import com.ruoyi.production.mapper.ProductionOrderRoutingMapper;
+import com.ruoyi.production.pojo.ProductionOrderRouting;
 import com.ruoyi.technology.mapper.*;
 import com.ruoyi.technology.pojo.*;
 import com.ruoyi.technology.service.TechnologyRoutingService;
@@ -40,6 +44,8 @@
     private final TechnologyParamMapper technologyParamMapper;
     private final TechnologyRoutingOperationParamMapper technologyRoutingOperationParamMapper;
 
+    private final ProductionOrderRoutingMapper productionOrderRoutingMapper;
+
     @Override
     public IPage<TechnologyRoutingVo> pageTechnologyRouting(Page<TechnologyRoutingDto> page, TechnologyRoutingDto technologyRoutingDto) {
         return technologyRoutingMapper.pageTechnologyRouting(page, technologyRoutingDto);
@@ -56,7 +62,7 @@
 
     @Override
     public Long saveTechnologyRouting(TechnologyRouting technologyRouting) {
-        String code = OrderUtils.countTodayByCreateTime(technologyRoutingMapper, "GYLX", "process_route_code");
+        String code = OrderUtils.countTodayByCreateTime(technologyRoutingMapper, "GYLX", "process_route_code", technologyRouting.getCreateTime() != null ? technologyRouting.getCreateTime() : LocalDateTime.now());
         technologyRouting.setProcessRouteCode(code);
         technologyRoutingMapper.insert(technologyRouting);
         // 甯﹀叆bom浜у搧缁撴瀯
@@ -78,6 +84,13 @@
     public boolean removeTechnologyRouting(List<Long> ids) {
         if (ids == null || ids.isEmpty()) {
             return false;
+        }
+        // 鍒ゆ柇鏄惁鏈夌敓浜ц鍗曠粦瀹氳宸ヨ壓璺嚎
+        Long count = productionOrderRoutingMapper.selectCount(
+                Wrappers.<ProductionOrderRouting>lambdaQuery()
+                        .in(ProductionOrderRouting::getTechnologyRoutingId, ids));
+        if (count > 0) {
+            throw new ServiceException("璇ュ伐鑹鸿矾绾垮凡缁戝畾鐢熶骇璁㈠崟锛屾棤娉曞垹闄わ紒");
         }
         List<TechnologyRoutingOperation> routingOperationList = technologyRoutingOperationMapper.selectList(
                 Wrappers.<TechnologyRoutingOperation>lambdaQuery()
@@ -116,13 +129,13 @@
                 Wrappers.<TechnologyBomStructure>lambdaQuery()
                         .eq(TechnologyBomStructure::getBomId, technologyRouting.getBomId())
                         .isNotNull(TechnologyBomStructure::getOperationId)
-                        .orderByAsc(TechnologyBomStructure::getId)
+                        .orderByDesc(TechnologyBomStructure::getId)
         );
         if (bomStructures.isEmpty()) {
             throw new ServiceException("bom浜у搧缁撴瀯涓虹┖锛�");
         }
 
-        // 鍚屼竴涓� BOM 涓彲鑳介噸澶嶅紩鐢ㄧ浉鍚屽伐搴忥紝杩欓噷鎸夐娆″嚭鐜伴『搴忓幓閲嶃��
+        // 鍚屼竴涓� BOM 涓彲鑳介噸澶嶅紩鐢ㄧ浉鍚屽伐搴忥紝鎸夌収涓婁竴灞傜殑鐖惰妭鐐圭殑浜у搧鏄惁鐩稿悓鍜屽伐搴忔槸鍚︾浉鍚�
         Map<Long, TechnologyBomStructure> structureById = new HashMap<>();
         for (TechnologyBomStructure bomStructure : bomStructures) {
             if (bomStructure != null && bomStructure.getId() != null) {
@@ -143,7 +156,10 @@
             routingOperation.setProductModelId(resolveOutputProductModelId(bomStructure, structureById, technologyRouting.getProductModelId()));
             routingOperation.setTechnologyOperationId(bomStructure.getOperationId());
             routingOperation.setDragSort(dragSort++);
-            routingOperation.setIsQuality(getOperationQuality(bomStructure.getOperationId()));
+            TechnologyOperation technologyOperation = getOperation(bomStructure.getOperationId());
+            routingOperation.setIsQuality(technologyOperation != null ? technologyOperation.getIsQuality() : null);
+            routingOperation.setIsProduction(technologyOperation != null ? technologyOperation.getIsProduction() : null);
+            routingOperation.setType(technologyOperation != null ? technologyOperation.getType() : null);
             technologyRoutingOperationMapper.insert(routingOperation);
             syncRoutingOperationParams(routingOperation.getId(), bomStructure.getOperationId());
         }
@@ -204,12 +220,11 @@
         }
     }
 
-    /**
-     * 璐ㄦ鏍囪瘑浠ュ伐搴忓熀纭�琛ㄥ畾涔変负鍑嗐��
-     */
-    private Boolean getOperationQuality(Long operationId) {
-        TechnologyOperation technologyOperation = technologyOperationMapper.selectById(operationId);
-        return technologyOperation != null ? technologyOperation.getIsQuality() : null;
+    private TechnologyOperation getOperation(Long operationId) {
+        if (operationId == null) {
+            return null;
+        }
+        return technologyOperationMapper.selectById(operationId);
     }
 
     private String buildProcessRouteCode(Long id) {

--
Gitblit v1.9.3