From e8d0bdce89ae0937763736f75868a43bd8690985 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期五, 24 四月 2026 15:34:09 +0800
Subject: [PATCH] feat(production): 增加报工用户names支持

---
 src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java |   61 ++++++++++++++++--------------
 1 files changed, 33 insertions(+), 28 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
index fe2b037..8fad87c 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
@@ -17,6 +17,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
@@ -82,15 +83,16 @@
     }
 
 
-
     /**
-     * 宸ヨ壓璺嚎鍙嶅悜鏂板  鍙柊澧炰簡bom bom瀛愯〃  宸ヨ壓璺嚎  宸ヨ壓璺嚎瀛愯〃
-     * @param processRouteAnticlockwiseDtos  宸ヨ壓瀛愯〃
-     * @param productModelId 鎴愬搧瑙勬牸鍨嬪彿id
-     * @param productOrderId 鐢熶骇璁㈠崟id
+     * 宸ヨ壓璺嚎鍙嶅悜鏂板  鏂板浜哹om bom瀛愯〃  宸ヨ壓璺嚎  宸ヨ壓璺嚎瀛愯〃 鐢熶骇宸ヨ壓璺嚎涓昏〃  鐢熶骇宸ヨ壓璺嚎瀛愯〃 宸ュ崟琛�
+     *
+     * @param processRouteAnticlockwiseDtos 宸ヨ壓瀛愯〃
+     * @param productModelId                鎴愬搧瑙勬牸鍨嬪彿id
+     * @param productOrderId                鐢熶骇璁㈠崟id
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
+    @Override
     public Long processRouteAnticlockwise(List<ProcessRouteAnticlockwiseDto> processRouteAnticlockwiseDtos, Long productModelId, Long productOrderId) {
         ProductOrder byId = productOrderService.getById(productOrderId);
         // 1. 鏂板BOM
@@ -107,24 +109,11 @@
         List<ProcessRouteItem> processRouteItems = buildProcessRouteItems(processRouteAnticlockwiseDtos, processRoute.getId(), productModelId);
         processRouteItemService.saveBatch(processRouteItems);
 
-//        // 5. 鏂板鐢熶骇宸ヨ壓璺嚎
-//        ProductProcessRoute productProcessRoute = createProductProcessRoute(productModelId, productOrderId, productBom.getId(), processRoute.getProcessRouteCode());
-//
-//        // 6. 鏂板鐢熶骇宸ヨ壓璺嚎瀛愯〃
-//        List<ProductProcessRouteItem> productProcessRouteItems = buildProductProcessRouteItems(processRouteAnticlockwiseDtos, productProcessRoute.getId(), productModelId);
-//        productProcessRouteItemService.saveBatch(productProcessRouteItems);
-//        for (ProductProcessRouteItem item : productProcessRouteItems) {
-//            ProductProcess productProcess = productProcessService.getById(item.getProcessId());
-//            ProductWorkOrder productWorkOrder = new ProductWorkOrder();
-//            productWorkOrder.setProductProcessRouteItemId(item.getId());
-//            productWorkOrder.setProductOrderId(productOrderId);
-//            ProductOrder order = productOrderMapper.selectById(productOrderId);
-//            productWorkOrder.setPlanQuantity(order.getQuantity());
-//            productWorkOrder.setWorkOrderNo(productWorkOrderService.generateProductWorkOrder(null, productProcess.getName(), byId.getNpsNo()));
-//            productWorkOrder.setStatus(1);
-//            productWorkOrderService.save(productWorkOrder);
-//        }
+        // 5. 鏂板鐢熶骇宸ヨ壓璺嚎
+        ProductProcessRoute productProcessRoute = createProductProcessRoute(productModelId, productOrderId, productBom.getId(), processRoute.getProcessRouteCode());
 
+        // 6. 鏂板鐢熶骇宸ヨ壓璺嚎瀛愯〃
+        buildProductProcessRouteItems(processRouteAnticlockwiseDtos, productProcessRoute.getId(), productModelId,productOrderId);
         return processRoute.getId();
     }
 
@@ -152,6 +141,7 @@
             ProductStructure structure = new ProductStructure();
             structure.setProductModelId(dto.getProductModelId());
             structure.setProcessId(dto.getProcessId());
+            structure.setUnitQuantity(new BigDecimal(1));
             structure.setProcessRouteOpenNum(dto.getProcessRouteOpenNum());
             structure.setProcessRouteNum(dto.getProcessRouteNum());
             structure.setProcessRouteAddNum(dto.getProcessRouteAddNum());
@@ -184,6 +174,7 @@
      */
     private List<ProcessRouteItem> buildProcessRouteItems(List<ProcessRouteAnticlockwiseDto> dtos, Long routeId, Long productModelId) {
         List<ProcessRouteItem> items = new ArrayList<>(dtos.size());
+        Integer num = 0;
         for (ProcessRouteAnticlockwiseDto dto : dtos) {
             ProcessRouteItem item = new ProcessRouteItem();
             item.setRouteId(routeId);
@@ -194,6 +185,7 @@
             item.setProcessRouteNum(dto.getProcessRouteNum());
             item.setProcessRouteAddNum(dto.getProcessRouteAddNum());
             item.setProcessRouteRequire(dto.getProcessRouteRequire());
+            item.setDragSort(num++);
             items.add(item);
         }
         return items;
@@ -216,8 +208,9 @@
     /**
      * 鏋勫缓鐢熶骇宸ヨ壓璺嚎瀛愰」鍒楄〃
      */
-    private List<ProductProcessRouteItem> buildProductProcessRouteItems(List<ProcessRouteAnticlockwiseDto> dtos, Long productRouteId, Long productModelId) {
-        List<ProductProcessRouteItem> items = new ArrayList<>(dtos.size());
+    private void buildProductProcessRouteItems(List<ProcessRouteAnticlockwiseDto> dtos, Long productRouteId, Long productModelId,Long productOrderId) {
+        ProductOrder byId = productOrderService.getById(productOrderId);
+        Integer num = 0;
         for (ProcessRouteAnticlockwiseDto dto : dtos) {
             ProductProcessRouteItem item = new ProductProcessRouteItem();
             item.setProductRouteId(productRouteId);
@@ -228,10 +221,22 @@
             item.setProcessRouteNum(dto.getProcessRouteNum());
             item.setProcessRouteAddNum(dto.getProcessRouteAddNum());
             item.setProcessRouteRequire(dto.getProcessRouteRequire());
-            items.add(item);
-
-
+            item.setDragSort(num++);
+            item.setUuid(dto.getUuid());
+            productProcessRouteItemService.save(item);
+            ProductProcess productProcess = productProcessService.getById(item.getProcessId());
+            //鍚屾鏂板鐢熶骇宸ュ崟
+            ProductWorkOrder productWorkOrder = new ProductWorkOrder();
+            productWorkOrder.setProductProcessRouteItemId(item.getId());
+            productWorkOrder.setProductOrderId(productOrderId);
+            ProductOrder order = productOrderMapper.selectById(productOrderId);
+            productWorkOrder.setPlanQuantity(order.getQuantity());
+            productWorkOrder.setDeviceId(dto.getDeviceId());
+            productWorkOrder.setUserIds(dto.getUserIds());
+            productWorkOrder.setUserNames(dto.getUserNames());
+            productWorkOrder.setWorkOrderNo(productWorkOrderService.generateProductWorkOrder(null, productProcess.getName(), byId.getNpsNo()));
+            productWorkOrder.setStatus(1);
+            productWorkOrderService.save(productWorkOrder);
         }
-        return items;
     }
 }

--
Gitblit v1.9.3