From cc8308e2ba418db7545bbaf5dedcb2e3541351d8 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期三, 22 四月 2026 14:35:37 +0800
Subject: [PATCH] feat(production): 添加班组信息和补产数量支持

---
 src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java      |    2 +-
 src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java                    |   12 ++++++++++++
 src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java                  |    7 +++++++
 src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java |   16 ++++++++++++++--
 src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java                  |   17 +++++++++++++++++
 5 files changed, 51 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java b/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
index b2f33b8..0c2e0b9 100644
--- a/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
@@ -6,12 +6,15 @@
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
 import com.ruoyi.production.pojo.ProductionProductMain;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.List;
 
 @Data
 @ExcelIgnoreUnannotated
@@ -69,4 +72,18 @@
     private String deviceName;
     private String workMinutes;
 
+    private List<Team> teamList;
+
+    /**
+     * 琛ヤ骇鏁伴噺
+     */
+    private BigDecimal replenishQty;
+
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class Team {
+        private Long userId;
+        private String userName;
+    }
 }
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java b/src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java
index 4697b76..a64a541 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java
@@ -105,4 +105,16 @@
     @TableField(fill = FieldFill.INSERT)
     private Long deptId;
 
+    /**
+     * 鐝粍鎴愬憳鍚嶅瓧
+     */
+    @TableField(value = "team_names")
+    private String teamNames;
+
+    /**
+     * 鐝粍鎴愬憳id
+     */
+    @TableField(value = "team_ids")
+    private String teamIds;
+
 }
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java b/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java
index 3d1a032..e63ecfc 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java
@@ -40,4 +40,11 @@
     @TableField(fill = FieldFill.INSERT)
     private Long deptId;
 
+
+    /**
+     * 琛ュ伩鏁伴噺
+     */
+    @TableField(value = "replenish_qty")
+    private BigDecimal replenishQty;
+
 }
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
index 5272932..72320be 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
@@ -140,7 +140,7 @@
             }
         }
             String processPinyin = StringUtils.getProcessNo(processName);
-            return StrUtil.format("{}{}{}",processPinyin,npsNo,String.format("%03d", sequenceNumber));
+            return StrUtil.format("{}{}",processPinyin,npsNo,String.format("%03d", sequenceNumber));
     }
 
 }
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 18a0a5a..62a13ef 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.production.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -141,8 +142,18 @@
         }
         String productNo = String.format("%s%03d", datePrefix, sequenceNumber);
         productionProductMain.setProductNo(productNo);
-        productionProductMain.setUserId(dto.getUserId());
-        productionProductMain.setUserName(dto.getUserName());
+
+        // 淇敼鐝粍淇℃伅 浠ョ涓�浜轰綔涓哄師鍏坰etUserId setUserName
+        Assert.isTrue(CollUtil.isNotEmpty(dto.getTeamList()),"鐝粍淇℃伅涓嶈兘涓虹┖");
+
+        productionProductMain.setTeamIds(dto.getTeamList().stream().map(ProductionProductMainDto.Team::getUserId).map(String::valueOf).collect(Collectors.joining(",")));
+        productionProductMain.setTeamNames(dto.getTeamList().stream().map(ProductionProductMainDto.Team::getUserName).collect(Collectors.joining(",")));
+
+        productionProductMain.setUserId(dto.getTeamList().get(0).getUserId());
+        productionProductMain.setUserName(dto.getTeamList().get(0).getUserName());
+
+
+
         productionProductMain.setProductProcessRouteItemId(dto.getProductProcessRouteItemId());
         productionProductMain.setWorkOrderId(dto.getWorkOrderId());
         productionProductMain.setAuditUserId(dto.getAuditUserId());
@@ -178,6 +189,7 @@
         productionProductOutput.setProductModelId(productProcessRouteItem.getProductModelId());
         productionProductOutput.setQuantity(dto.getQuantity() != null ? dto.getQuantity() : BigDecimal.ZERO);
         productionProductOutput.setScrapQty(dto.getScrapQty() != null ? dto.getScrapQty() : BigDecimal.ZERO);
+        productionProductOutput.setReplenishQty(dto.getReplenishQty());
         productionProductOutputMapper.insert(productionProductOutput);
         //鍚堟牸鏁伴噺=鎶ュ伐鏁伴噺-鎶ュ簾鏁伴噺
         BigDecimal productQty = productionProductOutput.getQuantity().subtract(productionProductOutput.getScrapQty());

--
Gitblit v1.9.3