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