From 8c65f898ed6e5b0c7a94c792c4562f6ec831dccd Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 07 十一月 2026 08:50:53 +0800
Subject: [PATCH] feat: 完善质检、生产、销售、财务与人事模块并接入审批流程
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorDetailServiceImpl.java | 31 +++++++++++++++++++++++++------
1 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorDetailServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorDetailServiceImpl.java
index efc903c..14d4622 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorDetailServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorDetailServiceImpl.java
@@ -5,7 +5,9 @@
import cn.iocoder.yudao.module.mes.controller.admin.wm.returnvendor.vo.detail.MesWmReturnVendorDetailSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnvendor.MesWmReturnVendorDetailDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnvendor.MesWmReturnVendorLineDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnvendor.MesWmReturnVendorDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.returnvendor.MesWmReturnVendorDetailMapper;
+import cn.iocoder.yudao.module.mes.enums.wm.MesWmReturnVendorStatusEnum;
import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService;
import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
@@ -33,6 +35,9 @@
@Lazy
private MesWmReturnVendorLineService returnVendorLineService;
@Resource
+ @Lazy
+ private MesWmReturnVendorService returnVendorService;
+ @Resource
private MesMdmItemService mdmItemService;
@Resource
private MesWmMaterialStockService materialStockService;
@@ -52,8 +57,11 @@
@Override
public void updateReturnVendorDetail(MesWmReturnVendorDetailSaveReqVO updateReqVO) {
- // 鏍¢獙瀛樺湪
- validateReturnVendorDetailExists(updateReqVO.getId());
+ MesWmReturnVendorDetailDO oldDetail = validateReturnVendorDetailExists(updateReqVO.getId());
+ if (ObjUtil.notEqual(oldDetail.getReturnId(), updateReqVO.getReturnId())
+ || ObjUtil.notEqual(oldDetail.getLineId(), updateReqVO.getLineId())) {
+ throw exception(WM_RETURN_VENDOR_DETAIL_PARENT_IMMUTABLE);
+ }
// 鏍¢獙鏁版嵁
validateDetailSaveData(updateReqVO);
@@ -71,6 +79,7 @@
if (ObjUtil.notEqual(line.getReturnId(), reqVO.getReturnId())) {
throw exception(WM_RETURN_VENDOR_DETAIL_LINE_NOT_MATCH);
}
+ validateDetailEditable(reqVO.getReturnId());
// 鏍¢獙鐗╂枡瀛樺湪
mdmItemService.validateItemExistsAndEnable(reqVO.getItemId());
// 鏍¢獙鐗╂枡涓庤鐗╂枡涓�鑷�
@@ -84,8 +93,8 @@
@Override
public void deleteReturnVendorDetail(Long id) {
- // 鏍¢獙瀛樺湪
- validateReturnVendorDetailExists(id);
+ MesWmReturnVendorDetailDO detail = validateReturnVendorDetailExists(id);
+ validateDetailEditable(detail.getReturnId());
// 鍒犻櫎
returnVendorDetailMapper.deleteById(id);
}
@@ -115,10 +124,20 @@
returnVendorDetailMapper.deleteByLineId(lineId);
}
- private void validateReturnVendorDetailExists(Long id) {
- if (returnVendorDetailMapper.selectById(id) == null) {
+ private MesWmReturnVendorDetailDO validateReturnVendorDetailExists(Long id) {
+ MesWmReturnVendorDetailDO detail = returnVendorDetailMapper.selectById(id);
+ if (detail == null) {
throw exception(WM_RETURN_VENDOR_DETAIL_NOT_EXISTS);
}
+ return detail;
+ }
+
+ private void validateDetailEditable(Long returnId) {
+ MesWmReturnVendorDO returnVendor = returnVendorService.validateReturnVendorExists(returnId);
+ if (!ObjUtil.equal(returnVendor.getStatus(), MesWmReturnVendorStatusEnum.PREPARE.getStatus())
+ && !ObjUtil.equal(returnVendor.getStatus(), MesWmReturnVendorStatusEnum.APPROVING.getStatus())) {
+ throw exception(WM_RETURN_VENDOR_DETAIL_STATUS_INVALID, returnVendor.getCode());
+ }
}
/**
--
Gitblit v1.9.3