From 358e1639bff061cd7660c34c01987569a8db1781 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期四, 03 九月 2026 14:36:51 +0800
Subject: [PATCH] fix(MES): 转移单内部调拨保存不再强制要求“是否配送”
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transfer/MesWmTransferServiceImpl.java | 31 +++++++++++++++++++++++++++++--
1 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transfer/MesWmTransferServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transfer/MesWmTransferServiceImpl.java
index 8c5e304..6dc6d6a 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transfer/MesWmTransferServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transfer/MesWmTransferServiceImpl.java
@@ -10,6 +10,7 @@
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.transfer.MesWmTransferDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.transfer.MesWmTransferDetailDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.transfer.MesWmTransferLineDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialstock.MesWmMaterialStockDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.transfer.MesWmTransferMapper;
import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants;
import cn.iocoder.yudao.module.mes.enums.wm.MesWmTransactionTypeEnum;
@@ -58,6 +59,10 @@
// 鎻掑叆
MesWmTransferDO transfer = BeanUtils.toBean(createReqVO, MesWmTransferDO.class);
transfer.setStatus(MesWmTransferStatusEnum.PREPARE.getStatus());
+ // 鍐呴儴璋冩嫧锛堟垨鏈�夋嫨閰嶉�佹ā寮忥級鏃朵笉浼犫�滄槸鍚﹂厤閫佲�濓紝缁熶竴鎸夐潪閰嶉�佸鐞嗭紝閬垮厤蹇呭~鏍¢獙鎷︽埅
+ if (transfer.getDeliveryFlag() == null) {
+ transfer.setDeliveryFlag(false);
+ }
transferMapper.insert(transfer);
return transfer.getId();
}
@@ -71,6 +76,10 @@
// 鏇存柊
MesWmTransferDO updateObj = BeanUtils.toBean(updateReqVO, MesWmTransferDO.class);
+ // 鍐呴儴璋冩嫧锛堟垨鏈�夋嫨閰嶉�佹ā寮忥級鏃跺墠绔笉浼犫�滄槸鍚﹂厤閫佲�濓紝缁熶竴鎸夐潪閰嶉�佸鐞嗭紝閬垮厤蹇呭~鏍¢獙鎷︽埅
+ if (updateObj.getDeliveryFlag() == null) {
+ updateObj.setDeliveryFlag(false);
+ }
transferMapper.updateById(updateObj);
}
@@ -189,20 +198,33 @@
// 2. 閬嶅巻琛屽拰瀵瑰簲鐨勬槑缁嗭紝鍒涘缓浜嬪姟
for (MesWmTransferLineDO line : lines) {
List<MesWmTransferDetailDO> details = detailMap.getOrDefault(line.getId(), Collections.emptyList());
+ // 浠� materialStockId 鑾峰彇婧愬簱瀛樹俊鎭紙鍖呮嫭 vendor_id, batch_id 绛夛級
+ Long vendorId = null;
+ String batchCode = null;
+ if (line.getMaterialStockId() != null) {
+ MesWmMaterialStockDO sourceStock = materialStockService.getMaterialStock(line.getMaterialStockId());
+ if (sourceStock != null) {
+ vendorId = sourceStock.getVendorId();
+ batchCode = sourceStock.getBatchCode();
+ }
+ }
for (MesWmTransferDetailDO detail : details) {
// 2.1 鍏堟墽琛屽嚭搴擄細璋冩嫧绉诲嚭锛堜粠婧愪粨搴撴墸鍑忓簱瀛橈級锛屽嚭搴撴暟閲忓熀浜庡綋鍓嶆槑缁嗙殑鏁伴噺
Long outTransactionId = wmTransactionService.createTransaction(new MesWmTransactionSaveReqDTO()
.setType(MesWmTransactionTypeEnum.MOVE_OUT.getType()).setItemId(line.getItemId())
.setQuantity(detail.getQuantity().negate()) // 搴撳瓨鍑忓皯锛堟寜 detail 鐨勬暟閲忓嚭锛�
- .setBatchId(line.getBatchId())
+ .setBatchId(line.getBatchId()).setBatchCode(batchCode)
+ .setVendorId(vendorId)
+ .setMaterialStockId(line.getMaterialStockId())
.setWarehouseId(line.getFromWarehouseId()).setLocationId(line.getFromLocationId()).setAreaId(line.getFromAreaId())
.setBizType(MesBizTypeConstants.WM_TRANSFER_OUT).setBizId(transfer.getId())
.setBizCode(transfer.getCode()).setBizLineId(line.getId()));
// 2.2 鍐嶆墽琛屽叆搴擄細璋冩嫧绉诲叆锛堝悜鐩爣浠撳簱澧炲姞搴撳瓨锛夛紝鍏ュ簱鏁伴噺绛変簬鐩稿悓鏄庣粏鐨勬暟閲�
+ // 娉ㄦ剰锛氬叆搴撴椂涓嶄紶 vendorId锛屼互蹇界暐渚涘簲鍟嗙淮搴︼紝鍚堝苟鍒扮洰鏍囧簱浣嶅凡鏈夊簱瀛�
wmTransactionService.createTransaction(new MesWmTransactionSaveReqDTO()
.setType(MesWmTransactionTypeEnum.MOVE_IN.getType()).setItemId(line.getItemId()) // 鐗╂枡淇℃伅鏉ヨ嚜 line
.setQuantity(detail.getQuantity()) // 搴撳瓨澧炲姞锛堟寜 detail 鐨勬暟閲忓叆锛�
- .setBatchId(line.getBatchId()) // 鎵规淇℃伅鏉ヨ嚜 line
+ .setBatchId(line.getBatchId()).setBatchCode(batchCode) // 鎵规淇℃伅鏉ヨ嚜 line
.setWarehouseId(detail.getToWarehouseId()).setLocationId(detail.getToLocationId()).setAreaId(detail.getToAreaId())
.setBizType(MesBizTypeConstants.WM_TRANSFER_IN).setBizId(transfer.getId())
.setBizCode(transfer.getCode()).setBizLineId(line.getId())
@@ -322,4 +344,9 @@
materialStockService.updateMaterialStockFrozen(materialStockIds, frozen);
}
+ @Override
+ public void updateStatus(Long id, Integer status) {
+ transferMapper.updateById(new MesWmTransferDO().setId(id).setStatus(status));
+ }
+
}
--
Gitblit v1.9.3