From 383e265e2812f2d46b62af74427d7829734a86a2 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 29 Mar 2026 20:13:22 +0800 Subject: [PATCH] ✨ feat(mes): 增强到货通知单行数据校验逻辑 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeLineServiceImpl.java | 36 ++++++++++++++++-------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeService.java | 8 ++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java | 6 ++---- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeLineServiceImpl.java index f4952c5..b181cac 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeLineServiceImpl.java @@ -6,10 +6,9 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.wm.arrivalnotice.vo.line.MesWmArrivalNoticeLinePageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.arrivalnotice.vo.line.MesWmArrivalNoticeLineSaveReqVO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.arrivalnotice.MesWmArrivalNoticeDO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.arrivalnotice.MesWmArrivalNoticeLineDO; import cn.iocoder.yudao.module.mes.dal.mysql.wm.arrivalnotice.MesWmArrivalNoticeLineMapper; -import cn.iocoder.yudao.module.mes.enums.wm.MesWmArrivalNoticeStatusEnum; +import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; import jakarta.annotation.Resource; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -34,11 +33,13 @@ public class MesWmArrivalNoticeLineServiceImpl implements MesWmArrivalNoticeLine @Resource @Lazy private MesWmArrivalNoticeService arrivalNoticeService; + @Resource + private MesMdItemService itemService; @Override public Long createArrivalNoticeLine(MesWmArrivalNoticeLineSaveReqVO createReqVO) { - // 校验父单据存在且为草稿状态 - validateNoticeStatusDraft(createReqVO.getNoticeId()); + // 校验数据 + validateArrivalNoticeLineSaveData(createReqVO); // 插入 MesWmArrivalNoticeLineDO line = BeanUtils.toBean(createReqVO, MesWmArrivalNoticeLineDO.class); @@ -51,8 +52,9 @@ public class MesWmArrivalNoticeLineServiceImpl implements MesWmArrivalNoticeLine public void updateArrivalNoticeLine(MesWmArrivalNoticeLineSaveReqVO updateReqVO) { // 校验存在 MesWmArrivalNoticeLineDO line = validateArrivalNoticeLineExists(updateReqVO.getId()); - // 校验父单据存在且为草稿状态 - validateNoticeStatusDraft(line.getNoticeId()); + // 校验数据 + updateReqVO.setNoticeId(line.getNoticeId()); + validateArrivalNoticeLineSaveData(updateReqVO); // 更新 MesWmArrivalNoticeLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmArrivalNoticeLineDO.class); @@ -60,6 +62,13 @@ public class MesWmArrivalNoticeLineServiceImpl implements MesWmArrivalNoticeLine arrivalNoticeLineMapper.updateById(updateObj); } + private void validateArrivalNoticeLineSaveData(MesWmArrivalNoticeLineSaveReqVO reqVO) { + // 校验父单据存在且为草稿状态 + arrivalNoticeService.validateArrivalNoticeExistsAndDraft(reqVO.getNoticeId()); + // 校验物料存在 + itemService.validateItemExists(reqVO.getItemId()); + } + /** * 初始化合格品数量: * 1. 如果不需要 IQC 检验,则合格品数量直接 = 接收数量; @@ -76,7 +85,7 @@ public class MesWmArrivalNoticeLineServiceImpl implements MesWmArrivalNoticeLine // 校验存在 MesWmArrivalNoticeLineDO line = validateArrivalNoticeLineExists(id); // 校验父单据存在且为草稿状态 - validateNoticeStatusDraft(line.getNoticeId()); + arrivalNoticeService.validateArrivalNoticeExistsAndDraft(line.getNoticeId()); // 删除 arrivalNoticeLineMapper.deleteById(id); @@ -130,17 +139,4 @@ public class MesWmArrivalNoticeLineServiceImpl implements MesWmArrivalNoticeLine return line; } - /** - * 校验父到货通知单存在且为草稿状态 - */ - private void validateNoticeStatusDraft(Long noticeId) { - MesWmArrivalNoticeDO notice = arrivalNoticeService.getArrivalNotice(noticeId); - if (notice == null) { - throw exception(WM_ARRIVAL_NOTICE_NOT_EXISTS); - } - if (ObjUtil.notEqual(MesWmArrivalNoticeStatusEnum.PREPARE.getStatus(), notice.getStatus())) { - throw exception(WM_ARRIVAL_NOTICE_STATUS_NOT_PREPARE); - } - } - } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeService.java index 31debc1..04109ce 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeService.java @@ -101,6 +101,14 @@ public interface MesWmArrivalNoticeService { MesWmArrivalNoticeDO validateArrivalNoticeExists(Long id); /** + * 校验到货通知单存在且为草稿状态 + * + * @param id 编号 + * @return 到货通知单 + */ + MesWmArrivalNoticeDO validateArrivalNoticeExistsAndDraft(Long id); + + /** * 校验到货通知单和行存在,且行属于该通知单 * * @param noticeId 到货通知单 ID diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java index f3f3e21..0e41cea 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java @@ -193,10 +193,8 @@ public class MesWmArrivalNoticeServiceImpl implements MesWmArrivalNoticeService return notice; } - /** - * 校验到货通知单存在且为草稿状态 - */ - private MesWmArrivalNoticeDO validateArrivalNoticeExistsAndDraft(Long id) { + @Override + public MesWmArrivalNoticeDO validateArrivalNoticeExistsAndDraft(Long id) { MesWmArrivalNoticeDO notice = validateArrivalNoticeExists(id); if (ObjUtil.notEqual(MesWmArrivalNoticeStatusEnum.PREPARE.getStatus(), notice.getStatus())) { throw exception(WM_ARRIVAL_NOTICE_STATUS_NOT_PREPARE); -- libgit2 0.21.4