From 5140e16bd1cb2bdf974d47a4342f9e27ef804655 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 18 七月 2026 15:54:07 +0800
Subject: [PATCH] feat(erp): 增加销售订单MPS集成与发货通知单控制功能
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueDetailServiceImpl.java | 25 +++++++++++++++++++------
1 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueDetailServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueDetailServiceImpl.java
index 885df10..fec1bfe 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueDetailServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueDetailServiceImpl.java
@@ -6,6 +6,7 @@
import cn.iocoder.yudao.module.mes.controller.admin.wm.returnissue.vo.detail.MesWmReturnIssueDetailSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnissue.MesWmReturnIssueDetailDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnissue.MesWmReturnIssueLineDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialstock.MesWmMaterialStockDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.returnissue.MesWmReturnIssueDetailMapper;
import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService;
import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
@@ -111,15 +112,27 @@
if (ObjUtil.notEqual(line.getItemId(), reqVO.getItemId())) {
throw exception(WM_RETURN_ISSUE_DETAIL_ITEM_MISMATCH);
}
- // 鏍¢獙浠撳簱銆佸簱鍖恒�佸簱浣嶇殑鍏宠仈鍏崇郴
+ // 鏍¢獙涓婃灦鐩爣浠撳簱銆佸簱鍖恒�佸簱浣嶇殑鍏宠仈鍏崇郴
warehouseAreaService.validateWarehouseAreaExists(
reqVO.getWarehouseId(), reqVO.getLocationId(), reqVO.getAreaId());
- // 鏍¢獙搴撲綅鐗╂枡/鎵规娣锋斁瑙勫垯
+ // 鏍¢獙涓婃灦鐩爣搴撲綅鐨勭墿鏂�/鎵规娣锋斁瑙勫垯
materialStockService.checkAreaMixingRule(reqVO.getAreaId(), reqVO.getItemId(), reqVO.getBatchId());
- // 鏍¢獙搴撳瓨璁板綍
- materialStockService.validateSelectedStock(
- reqVO.getMaterialStockId(), reqVO.getItemId(), reqVO.getBatchId(), reqVO.getBatchCode(),
- reqVO.getWarehouseId(), reqVO.getLocationId(), reqVO.getAreaId(), reqVO.getQuantity());
+ // 鏍¢獙鏉ユ簮搴撳瓨璁板綍锛坢aterialStockId 鎸囧悜铏氭嫙绾胯竟搴擄紝warehouseId 鏄笂鏋剁洰鏍囦粨搴擄紝涓よ�呬粨搴撲笉鍚屾槸姝e父鐨勶級
+ if (reqVO.getMaterialStockId() != null) {
+ MesWmMaterialStockDO stock = materialStockService.getMaterialStock(reqVO.getMaterialStockId());
+ if (stock == null) {
+ throw exception(WM_MATERIAL_STOCK_NOT_EXISTS);
+ }
+ // 鏍¢獙鐗╂枡鍜屾壒娆′竴鑷�
+ if (ObjUtil.notEqual(stock.getItemId(), reqVO.getItemId())) {
+ throw exception(WM_MATERIAL_STOCK_SELECTION_MISMATCH);
+ }
+ // 鏍¢獙搴撳瓨鏁伴噺鍏呰冻
+ if (reqVO.getQuantity() != null && stock.getQuantity() != null
+ && stock.getQuantity().compareTo(reqVO.getQuantity()) < 0) {
+ throw exception(WM_MATERIAL_STOCK_INSUFFICIENT);
+ }
+ }
// 鏍¢獙鏄庣粏鎬绘暟閲忎笉瓒呰繃琛屾暟閲忥紙鎺掗櫎鑷韩锛�
validateDetailQuantityNotExceed(reqVO.getLineId(), reqVO.getQuantity(), reqVO.getId(), line);
}
--
Gitblit v1.9.3