From defe1e1c3ade87de0a7990f565f08f93aeb2decc Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 08 十一月 2026 19:31:46 +0800
Subject: [PATCH] fix(bpm): 统一审批标题单号并收紧各模块提交校验
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java | 24 +++++++++++-------------
1 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java
index 6593aa3..0f1c14e 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java
@@ -79,6 +79,8 @@
@Resource
private ErpSaleOrderApi saleOrderApi;
+ @Resource
+ private MesWmSalesReelGuard salesReelGuard;
@Override
public Long createProductSales(MesWmProductSalesSaveReqVO createReqVO) {
@@ -151,19 +153,7 @@
boolean needOqc = CollectionUtils.anyMatch(lines,
line -> Boolean.TRUE.equals(line.getOqcCheckFlag()));
if (needOqc) {
- // 涓洪渶瑕� OQC 妫�楠屼笖灏氭湭鍒涘缓妫�楠屽崟鐨勬槑缁嗗垱寤� OQC 妫�楠屽崟
- List<MesWmProductSalesLineDO> oqcLines = CollectionUtils.filterList(lines,
- line -> Boolean.TRUE.equals(line.getOqcCheckFlag()) && line.getOqcId() == null);
- for (MesWmProductSalesLineDO line : oqcLines) {
- // 鐩存帴璋冪敤锛岃寮傚父鎶涘嚭锛屼繚璇佹暟鎹竴鑷存��
- Long oqcId = oqcService.createOqcFromProductSales(
- sales.getId(), line, sales.getCode(), sales.getClientId());
- // 鏇存柊鍑哄簱鏄庣粏鐨� oqcId
- productSalesLineMapper.updateById(new MesWmProductSalesLineDO()
- .setId(line.getId())
- .setOqcId(oqcId));
- }
-
+ // 妫�楠屽崟鐢辫川妫�浜哄憳鍏堣褰曞叆锛屽緟妫�鏄庣粏閫氳繃鐩樺彿鍏宠仈宸插畬鎴愮殑妫�楠屽崟銆�
// 鎵归噺鍒濆鍖� OQC 琛岀殑璐ㄩ噺鐘舵�佷负"寰呮楠�"
List<Long> oqcLineIds = convertList(
CollectionUtils.filterList(lines, line -> Boolean.TRUE.equals(line.getOqcCheckFlag())),
@@ -214,6 +204,7 @@
}
// 鏍¢獙搴撳瓨鍏呰冻骞跺垱寤哄崰鐢�
for (MesWmProductSalesDetailDO detail : details) {
+ salesReelGuard.validate(line, detail.getBatchId());
materialStockService.validateSelectedStock(
detail.getMaterialStockId(),
detail.getItemId(),
@@ -343,6 +334,13 @@
private void createTransactionList(MesWmProductSalesDO sales) {
List<MesWmProductSalesDetailDO> details = productSalesDetailService.getProductSalesDetailListBySalesId(sales.getId());
+ for (MesWmProductSalesDetailDO detail : details) {
+ MesWmProductSalesLineDO line = productSalesLineService.getProductSalesLine(detail.getLineId());
+ if (line == null || !ObjUtil.equal(line.getSalesId(), sales.getId())) {
+ throw exception(WM_PRODUCT_SALES_DETAIL_LINE_NOT_MATCH);
+ }
+ salesReelGuard.validate(line, detail.getBatchId());
+ }
wmTransactionService.createTransactionList(convertList(details, detail -> new MesWmTransactionSaveReqDTO()
.setType(MesWmTransactionTypeEnum.OUT.getType()).setItemId(detail.getItemId())
.setQuantity(detail.getQuantity().negate()) // 鍑哄簱鏁伴噺涓鸿礋鏁�
--
Gitblit v1.9.3