diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java index 12252a2..233b21d 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java @@ -30,6 +30,7 @@ public interface ErrorCodeConstants { ErrorCode MD_ITEM_NAME_DUPLICATE = new ErrorCode(1_040_102_002, "物料名称已存在"); ErrorCode MD_ITEM_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_102_003, "导入物料数据不能为空"); ErrorCode MD_ITEM_BATCH_REQUIRED = new ErrorCode(1_040_102_004, "当前物料启用了批次管理,请选择批次"); + ErrorCode MD_ITEM_IS_DISABLE = new ErrorCode(1_040_102_005, "物料已禁用"); // ========== MES 基础数据-物料批次属性配置(1-040-102-100) ========== ErrorCode MD_ITEM_BATCH_CONFIG_NOT_EXISTS = new ErrorCode(1_040_102_100, "物料批次属性配置不存在"); @@ -62,6 +63,7 @@ public interface ErrorCodeConstants { ErrorCode MD_CLIENT_NAME_DUPLICATE = new ErrorCode(1_040_103_002, "客户名称已存在"); ErrorCode MD_CLIENT_NICKNAME_DUPLICATE = new ErrorCode(1_040_103_003, "客户简称已存在"); ErrorCode MD_CLIENT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_103_004, "导入客户数据不能为空"); + ErrorCode MD_CLIENT_IS_DISABLE = new ErrorCode(1_040_103_005, "客户已禁用"); // ========== MES 基础数据-供应商(1-040-104-000) ========== ErrorCode MD_VENDOR_NOT_EXISTS = new ErrorCode(1_040_104_000, "供应商不存在"); @@ -70,6 +72,7 @@ public interface ErrorCodeConstants { ErrorCode MD_VENDOR_NICKNAME_DUPLICATE = new ErrorCode(1_040_104_003, "供应商简称已存在"); ErrorCode MD_VENDOR_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_104_004, "导入供应商数据不能为空"); ErrorCode MD_VENDOR_HAS_REFERENCE = new ErrorCode(1_040_104_005, "该供应商已被其他业务引用,无法删除"); + ErrorCode MD_VENDOR_IS_DISABLE = new ErrorCode(1_040_104_006, "供应商已禁用"); // ========== MES 基础数据-车间(1-040-105-000) ========== ErrorCode MD_WORKSHOP_NOT_EXISTS = new ErrorCode(1_040_105_000, "车间不存在"); @@ -81,6 +84,7 @@ public interface ErrorCodeConstants { ErrorCode MD_WORKSTATION_NOT_EXISTS = new ErrorCode(1_040_106_000, "工作站不存在"); ErrorCode MD_WORKSTATION_CODE_DUPLICATE = new ErrorCode(1_040_106_001, "工作站编码已存在"); ErrorCode MD_WORKSTATION_NAME_DUPLICATE = new ErrorCode(1_040_106_002, "工作站名称已存在"); + ErrorCode MD_WORKSTATION_IS_DISABLE = new ErrorCode(1_040_106_003, "工作站已禁用"); // ========== MES 基础数据-设备资源(1-040-106-100) ========== ErrorCode MD_WORKSTATION_MACHINE_NOT_EXISTS = new ErrorCode(1_040_106_100, "设备资源记录不存在"); ErrorCode MD_WORKSTATION_MACHINE_EXISTS = new ErrorCode(1_040_106_101, "该设备已分配至工作站:{}"); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/MesMdClientService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/MesMdClientService.java index 7c86f42..f0887d1 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/MesMdClientService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/MesMdClientService.java @@ -85,6 +85,13 @@ public interface MesMdClientService { void validateClientExists(Long id); /** + * 校验客户存在且启用 + * + * @param id 编号 + */ + void validateClientExistsAndEnable(Long id); + + /** * 批量导入客户 * * @param importClients 导入客户列表 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/MesMdClientServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/MesMdClientServiceImpl.java index 03b53b9..516058f 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/MesMdClientServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/MesMdClientServiceImpl.java @@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.mes.controller.admin.md.client.vo.MesMdClientImpo import cn.iocoder.yudao.module.mes.controller.admin.md.client.vo.MesMdClientImportRespVO; import cn.iocoder.yudao.module.mes.controller.admin.md.client.vo.MesMdClientPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.md.client.vo.MesMdClientSaveReqVO; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.module.mes.dal.dataobject.md.client.MesMdClientDO; import cn.iocoder.yudao.module.mes.dal.mysql.md.client.MesMdClientMapper; import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; @@ -95,6 +96,17 @@ public class MesMdClientServiceImpl implements MesMdClientService { } } + @Override + public void validateClientExistsAndEnable(Long id) { + MesMdClientDO client = clientMapper.selectById(id); + if (client == null) { + throw exception(MD_CLIENT_NOT_EXISTS); + } + if (ObjUtil.notEqual(CommonStatusEnum.ENABLE.getStatus(), client.getStatus())) { + throw exception(MD_CLIENT_IS_DISABLE); + } + } + private void validateClientCodeUnique(Long id, String code) { MesMdClientDO client = clientMapper.selectByCode(code); if (client == null) { diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemService.java index d35cc4b..34ab27b 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemService.java @@ -68,6 +68,14 @@ public interface MesMdItemService { MesMdItemDO validateItemExists(Long id); /** + * 校验物料产品存在且启用 + * + * @param id 编号 + * @return 物料产品 + */ + MesMdItemDO validateItemExistsAndEnable(Long id); + + /** * 获得物料产品分页 * * @param pageReqVO 分页查询 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java index 47af46b..d3a6adf 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java @@ -150,6 +150,15 @@ public class MesMdItemServiceImpl implements MesMdItemService { return item; } + @Override + public MesMdItemDO validateItemExistsAndEnable(Long id) { + MesMdItemDO item = validateItemExists(id); + if (ObjUtil.notEqual(CommonStatusEnum.ENABLE.getStatus(), item.getStatus())) { + throw exception(MD_ITEM_IS_DISABLE); + } + return item; + } + private void validateItemCodeUnique(Long id, String code) { MesMdItemDO item = itemMapper.selectByCode(code); if (item == null) { diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/MesMdVendorService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/MesMdVendorService.java index 4e86e4b..375635a 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/MesMdVendorService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/MesMdVendorService.java @@ -60,6 +60,14 @@ public interface MesMdVendorService { MesMdVendorDO validateVendorExists(Long id); /** + * 校验供应商存在且启用 + * + * @param id 供应商 ID + * @return 供应商 + */ + MesMdVendorDO validateVendorExistsAndEnable(Long id); + + /** * 获得供应商分页 * * @param pageReqVO 分页查询 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/MesMdVendorServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/MesMdVendorServiceImpl.java index d1baab9..73cb974 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/MesMdVendorServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/MesMdVendorServiceImpl.java @@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.mes.controller.admin.md.vendor.vo.MesMdVendorImpo import cn.iocoder.yudao.module.mes.controller.admin.md.vendor.vo.MesMdVendorImportRespVO; import cn.iocoder.yudao.module.mes.controller.admin.md.vendor.vo.MesMdVendorPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.md.vendor.vo.MesMdVendorSaveReqVO; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO; import cn.iocoder.yudao.module.mes.dal.mysql.md.vendor.MesMdVendorMapper; import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; @@ -103,6 +104,15 @@ public class MesMdVendorServiceImpl implements MesMdVendorService { return vendor; } + @Override + public MesMdVendorDO validateVendorExistsAndEnable(Long id) { + MesMdVendorDO vendor = validateVendorExists(id); + if (ObjUtil.notEqual(CommonStatusEnum.ENABLE.getStatus(), vendor.getStatus())) { + throw exception(MD_VENDOR_IS_DISABLE); + } + return vendor; + } + private void validateVendorSaveData(MesMdVendorSaveReqVO reqVO) { // 校验编码唯一 validateVendorCodeUnique(reqVO.getId(), reqVO.getCode()); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java index 7527962..1a41b92 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java @@ -50,6 +50,14 @@ public interface MesMdWorkstationService { MesMdWorkstationDO validateWorkstationExists(Long id); /** + * 校验工作站存在且启用 + * + * @param id 编号 + * @return 工作站 + */ + MesMdWorkstationDO validateWorkstationExistsAndEnable(Long id); + + /** * 获得工作站 * * @param id 编号 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java index 5b2dbc8..1317ef6 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.mes.service.md.workstation; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationSaveReqVO; @@ -125,6 +126,15 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService { return workstation; } + @Override + public MesMdWorkstationDO validateWorkstationExistsAndEnable(Long id) { + MesMdWorkstationDO workstation = validateWorkstationExists(id); + if (ObjUtil.notEqual(CommonStatusEnum.ENABLE.getStatus(), workstation.getStatus())) { + throw exception(MD_WORKSTATION_IS_DISABLE); + } + return workstation; + } + private void validateWorkshopExists(Long workshopId) { MesMdWorkshopDO workshop = workshopService.getWorkshop(workshopId); if (workshop == null) { 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 b181cac..b8d84a9 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 @@ -66,7 +66,7 @@ public class MesWmArrivalNoticeLineServiceImpl implements MesWmArrivalNoticeLine // 校验父单据存在且为草稿状态 arrivalNoticeService.validateArrivalNoticeExistsAndDraft(reqVO.getNoticeId()); // 校验物料存在 - itemService.validateItemExists(reqVO.getItemId()); + itemService.validateItemExistsAndEnable(reqVO.getItemId()); } /** diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java index b4de415..5c62cef 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java @@ -89,7 +89,7 @@ public class MesWmItemReceiptServiceImpl implements MesWmItemReceiptService { // 校验编码唯一 validateCodeUnique(reqVO.getId(), reqVO.getCode()); // 校验供应商存在 - vendorService.validateVendorExists(reqVO.getVendorId()); + vendorService.validateVendorExistsAndEnable(reqVO.getVendorId()); // 校验到货通知单存在 if (reqVO.getNoticeId() != null) { MesWmArrivalNoticeDO notice = arrivalNoticeService.validateArrivalNoticeExists(reqVO.getNoticeId()); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscissue/MesWmMiscIssueLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscissue/MesWmMiscIssueLineServiceImpl.java index 92936f9..7ff41bb 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscissue/MesWmMiscIssueLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscissue/MesWmMiscIssueLineServiceImpl.java @@ -132,7 +132,7 @@ public class MesWmMiscIssueLineServiceImpl implements MesWmMiscIssueLineService // 校验父单据存在且为可编辑状态 miscIssueService.validateMiscIssueEditable(issueId); // 校验物料存在 - itemService.validateItemExists(reqVO.getItemId()); + itemService.validateItemExistsAndEnable(reqVO.getItemId()); // 校验仓库、库区、库位的父子关系 warehouseAreaService.validateWarehouseAreaExists(reqVO.getWarehouseId(), reqVO.getLocationId(), reqVO.getAreaId()); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscreceipt/MesWmMiscReceiptLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscreceipt/MesWmMiscReceiptLineServiceImpl.java index a659f58..ed156b3 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscreceipt/MesWmMiscReceiptLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscreceipt/MesWmMiscReceiptLineServiceImpl.java @@ -125,7 +125,7 @@ public class MesWmMiscReceiptLineServiceImpl implements MesWmMiscReceiptLineServ // 校验父单据存在且为可编辑状态 miscReceiptService.validateMiscReceiptEditable(reqVO.getReceiptId()); // 校验物料存在 - itemService.validateItemExists(reqVO.getItemId()); + itemService.validateItemExistsAndEnable(reqVO.getItemId()); // 校验仓库层级关系(仓库 - 库位 - 库区) warehouseAreaService.validateWarehouseAreaExists(reqVO.getWarehouseId(), reqVO.getLocationId(), reqVO.getAreaId()); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueDetailServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueDetailServiceImpl.java index ca02527..578a61b 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueDetailServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueDetailServiceImpl.java @@ -112,7 +112,7 @@ public class MesWmOutsourceIssueDetailServiceImpl implements MesWmOutsourceIssue throw exception(WM_OUTSOURCE_ISSUE_DETAIL_LINE_NOT_MATCH); } // 校验物料存在 - itemService.validateItemExists(saveReqVO.getItemId()); + itemService.validateItemExistsAndEnable(saveReqVO.getItemId()); if (ObjUtil.notEqual(line.getItemId(), saveReqVO.getItemId())) { throw exception(WM_OUTSOURCE_ISSUE_DETAIL_ITEM_MISMATCH); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueLineServiceImpl.java index a556cd5..236ee94 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueLineServiceImpl.java @@ -121,7 +121,7 @@ public class MesWmOutsourceIssueLineServiceImpl implements MesWmOutsourceIssueLi throw exception(WM_OUTSOURCE_ISSUE_NOT_EXISTS); } // 校验关联的物料存在 - itemService.validateItemExists(saveReqVO.getItemId()); + itemService.validateItemExistsAndEnable(saveReqVO.getItemId()); // 校验物料是否在工单 BOM 中 validateItemInWorkOrderBom(issue.getWorkOrderId(), saveReqVO.getItemId()); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueServiceImpl.java index 928b630..7470450 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueServiceImpl.java @@ -259,7 +259,7 @@ public class MesWmOutsourceIssueServiceImpl implements MesWmOutsourceIssueServic validateCodeUnique(saveReqVO.getId(), saveReqVO.getCode()); // 校验供应商存在 if (saveReqVO.getVendorId() != null) { - vendorService.validateVendorExists(saveReqVO.getVendorId()); + vendorService.validateVendorExistsAndEnable(saveReqVO.getVendorId()); } // 校验工单存在且类型为外协(代工) MesProWorkOrderDO workOrder = workOrderService.validateWorkOrderConfirmed(saveReqVO.getWorkOrderId()); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptDetailServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptDetailServiceImpl.java index 2531fd8..b5e5cfb 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptDetailServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptDetailServiceImpl.java @@ -92,7 +92,7 @@ public class MesWmOutsourceReceiptDetailServiceImpl implements MesWmOutsourceRec */ private void validateDetailSaveData(MesWmOutsourceReceiptDetailSaveReqVO reqVO) { // 校验物料存在 - itemService.validateItemExists(reqVO.getItemId()); + itemService.validateItemExistsAndEnable(reqVO.getItemId()); // 校验仓库、库区、库位的层级关系 areaService.validateWarehouseAreaExists(reqVO.getWarehouseId(), reqVO.getLocationId(), reqVO.getAreaId()); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptLineServiceImpl.java index 2c81a76..a869292 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptLineServiceImpl.java @@ -56,7 +56,7 @@ public class MesWmOutsourceReceiptLineServiceImpl implements MesWmOutsourceRecei @Override public Long createOutsourceReceiptLine(MesWmOutsourceReceiptLineSaveReqVO createReqVO) { // 校验物料存在 - itemService.validateItemExists(createReqVO.getItemId()); + itemService.validateItemExistsAndEnable(createReqVO.getItemId()); // 插入 MesWmOutsourceReceiptLineDO line = BeanUtils.toBean(createReqVO, MesWmOutsourceReceiptLineDO.class); @@ -76,7 +76,7 @@ public class MesWmOutsourceReceiptLineServiceImpl implements MesWmOutsourceRecei // 校验存在 validateOutsourceReceiptLineExists(updateReqVO.getId()); // 校验物料存在 - itemService.validateItemExists(updateReqVO.getItemId()); + itemService.validateItemExistsAndEnable(updateReqVO.getItemId()); // 更新 MesWmOutsourceReceiptLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmOutsourceReceiptLineDO.class); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java index 5498a39..7542be4 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java @@ -160,7 +160,7 @@ public class MesWmOutsourceReceiptServiceImpl implements MesWmOutsourceReceiptSe MesWmOutsourceReceiptDetailDO::getQuantity, BigDecimal::add, BigDecimal.ZERO); // 对比行数量与明细总数量,不满足直接抛出 if (line.getQuantity().compareTo(totalDetailQuantity) > 0) { - MesMdItemDO item = itemService.validateItemExists(line.getItemId()); + MesMdItemDO item = itemService.validateItemExistsAndEnable(line.getItemId()); throw exception(WM_OUTSOURCE_RECEIPT_DETAIL_QUANTITY_MISMATCH, item.getCode() + " " + item.getName() + " 未完成上架"); } @@ -309,7 +309,7 @@ public class MesWmOutsourceReceiptServiceImpl implements MesWmOutsourceReceiptSe // 校验编码唯一 validateCodeUnique(id, reqVO.getCode()); // 校验供应商存在 - vendorService.validateVendorExists(reqVO.getVendorId()); + vendorService.validateVendorExistsAndEnable(reqVO.getVendorId()); // 校验外协工单存在 if (reqVO.getWorkOrderId() != null) { workOrderService.validateWorkOrderConfirmed(reqVO.getWorkOrderId()); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineServiceImpl.java index ce30a76..3982a79 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineServiceImpl.java @@ -100,7 +100,7 @@ public class MesWmPackageLineServiceImpl implements MesWmPackageLineService { // 校验装箱单状态为草稿 packageService.validatePackageStatusDraft(reqVO.getPackageId()); // 校验产品物料存在 - itemService.validateItemExists(reqVO.getItemId()); + itemService.validateItemExistsAndEnable(reqVO.getItemId()); // 校验工单已确认 workOrderService.validateWorkOrderConfirmed(reqVO.getWorkOrderId()); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueLineServiceImpl.java index 4612b60..a01e43c 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueLineServiceImpl.java @@ -112,7 +112,7 @@ public class MesWmProductIssueLineServiceImpl implements MesWmProductIssueLineSe // 校验父数据存在 + 校验物料在工单 BOM 中 validateItemInWorkOrderBom(reqVO.getIssueId(), reqVO.getItemId()); // 校验物料存在 - itemService.validateItemExists(reqVO.getItemId()); + itemService.validateItemExistsAndEnable(reqVO.getItemId()); } private void validateItemInWorkOrderBom(Long issueId, Long itemId) { diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueServiceImpl.java index ba5680a..d8ad7c7 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueServiceImpl.java @@ -262,7 +262,7 @@ public class MesWmProductIssueServiceImpl implements MesWmProductIssueService { validateCodeUnique(reqVO.getId(), reqVO.getCode()); workOrderService.validateWorkOrderConfirmed(reqVO.getWorkOrderId()); if (reqVO.getWorkstationId() != null) { - workstationService.validateWorkstationExists(reqVO.getWorkstationId()); + workstationService.validateWorkstationExistsAndEnable(reqVO.getWorkstationId()); } } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productreceipt/MesWmProductReceiptLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productreceipt/MesWmProductReceiptLineServiceImpl.java index 4582437..53f8476 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productreceipt/MesWmProductReceiptLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productreceipt/MesWmProductReceiptLineServiceImpl.java @@ -111,7 +111,7 @@ public class MesWmProductReceiptLineServiceImpl implements MesWmProductReceiptLi // 校验父单据存在且为可编辑状态 productReceiptService.validateProductReceiptEditable(reqVO.getReceiptId()); // 校验物料存在 - itemService.validateItemExists(reqVO.getItemId()); + itemService.validateItemExistsAndEnable(reqVO.getItemId()); } } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesDetailServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesDetailServiceImpl.java index 05afbde..8cb2e81 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesDetailServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesDetailServiceImpl.java @@ -115,7 +115,7 @@ public class MesWmProductSalesDetailServiceImpl implements MesWmProductSalesDeta throw exception(WM_PRODUCT_SALES_DETAIL_LINE_NOT_MATCH); } // 校验物料存在 - itemService.validateItemExists(reqVO.getItemId()); + itemService.validateItemExistsAndEnable(reqVO.getItemId()); if (ObjUtil.notEqual(line.getItemId(), reqVO.getItemId())) { throw exception(WM_PRODUCT_SALES_DETAIL_ITEM_MISMATCH); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImpl.java index c9cff11..5741b3d 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImpl.java @@ -52,10 +52,8 @@ public class MesWmProductSalesLineServiceImpl implements MesWmProductSalesLineSe @Override public Long createProductSalesLine(MesWmProductSalesLineSaveReqVO createReqVO) { - // 校验物料存在 - itemService.validateItemExists(createReqVO.getItemId()); - // 根据 batchCode 解析 batchId - fillBatchId(createReqVO); + // 校验数据 + validateLineSaveData(createReqVO); // 新增 MesWmProductSalesLineDO line = BeanUtils.toBean(createReqVO, MesWmProductSalesLineDO.class); @@ -66,11 +64,10 @@ public class MesWmProductSalesLineServiceImpl implements MesWmProductSalesLineSe @Override public void updateProductSalesLine(MesWmProductSalesLineSaveReqVO updateReqVO) { // 校验存在 - validateProductSalesLineExists(updateReqVO.getId()); - // 校验物料存在 - itemService.validateItemExists(updateReqVO.getItemId()); - // 根据 batchCode 解析 batchId - fillBatchId(updateReqVO); + MesWmProductSalesLineDO oldLine = validateProductSalesLineExists(updateReqVO.getId()); + // 校验数据 + updateReqVO.setSalesId(oldLine.getSalesId()); + validateLineSaveData(updateReqVO); // 更新 MesWmProductSalesLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmProductSalesLineDO.class); @@ -81,7 +78,9 @@ public class MesWmProductSalesLineServiceImpl implements MesWmProductSalesLineSe @Transactional(rollbackFor = Exception.class) public void deleteProductSalesLine(Long id) { // 校验存在 - validateProductSalesLineExists(id); + MesWmProductSalesLineDO line = validateProductSalesLineExists(id); + // 校验主单为草稿状态才允许删除行 + productSalesService.validateProductSalesExistsAndDraft(line.getSalesId()); // 级联删除明细 productSalesDetailService.deleteProductSalesDetailByLineId(id); @@ -139,6 +138,18 @@ public class MesWmProductSalesLineServiceImpl implements MesWmProductSalesLineSe reqVO.setBatchId(batch != null ? batch.getId() : null); } + /** + * 校验保存时的关联数据 + */ + private void validateLineSaveData(MesWmProductSalesLineSaveReqVO reqVO) { + // 校验主单存在且为草稿状态 + productSalesService.validateProductSalesExistsAndDraft(reqVO.getSalesId()); + // 校验物料存在 + itemService.validateItemExistsAndEnable(reqVO.getItemId()); + // 根据 batchCode 解析 batchId + fillBatchId(reqVO); + } + @Override @Transactional(rollbackFor = Exception.class) public void updateProductSalesLineWhenOqcFinish(Long id, Long oqcId, Integer checkResult) { diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesService.java index 64a3d1e..3f24a8e 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesService.java @@ -116,4 +116,13 @@ public interface MesWmProductSalesService { */ List getProductSalesListByClientId(Long clientId); + /** + * 校验销售出库单存在且为草稿状态 + * + * @param id 编号 + * @return 销售出库单 + */ + MesWmProductSalesDO validateProductSalesExistsAndDraft(Long id); + } + 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 52d0b07..c1c4f85 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 @@ -267,7 +267,7 @@ public class MesWmProductSalesServiceImpl implements MesWmProductSalesService { // 校验编码唯一 validateCodeUnique(id, reqVO.getCode()); // 校验客户存在 - clientService.validateClientExists(reqVO.getClientId()); + clientService.validateClientExistsAndEnable(reqVO.getClientId()); // 校验发货通知单 if (reqVO.getNoticeId() != null) { MesWmSalesNoticeDO notice = salesNoticeService.validateSalesNoticeExists(reqVO.getNoticeId()); @@ -291,7 +291,8 @@ public class MesWmProductSalesServiceImpl implements MesWmProductSalesService { /** * 校验销售出库单存在且为草稿状态 */ - private MesWmProductSalesDO validateProductSalesExistsAndDraft(Long id) { + @Override + public MesWmProductSalesDO validateProductSalesExistsAndDraft(Long id) { MesWmProductSalesDO sales = validateProductSalesExists(id); if (ObjUtil.notEqual(MesWmProductSalesStatusEnum.PREPARE.getStatus(), sales.getStatus())) { throw exception(WM_PRODUCT_SALES_NOT_PREPARE); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueLineServiceImpl.java index 81449ac..60ef865 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueLineServiceImpl.java @@ -117,7 +117,7 @@ public class MesWmReturnIssueLineServiceImpl implements MesWmReturnIssueLineServ // 校验父数据存在 + 草稿状态 MesWmReturnIssueDO issue = issueService.validateReturnIssueExistsAndPrepare(reqVO.getIssueId()); // 校验物料存在 - itemService.validateItemExists(reqVO.getItemId()); + itemService.validateItemExistsAndEnable(reqVO.getItemId()); return issue; } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueServiceImpl.java index b19c03a..3269ae7 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueServiceImpl.java @@ -168,7 +168,7 @@ public class MesWmReturnIssueServiceImpl implements MesWmReturnIssueService { MesWmReturnIssueDetailDO::getQuantity, BigDecimal::add, BigDecimal.ZERO); // 对比行数量与明细总数量,不满足直接抛出 if (line.getQuantity().compareTo(totalDetailQuantity) > 0) { - MesMdItemDO item = itemService.validateItemExists(line.getItemId()); + MesMdItemDO item = itemService.validateItemExistsAndEnable(line.getItemId()); throw exception(WM_RETURN_ISSUE_DETAIL_QUANTITY_MISMATCH, item.getCode() + " " + item.getName() + " 未完成上架"); } @@ -291,7 +291,7 @@ public class MesWmReturnIssueServiceImpl implements MesWmReturnIssueService { validateCodeUnique(reqVO.getId(), reqVO.getCode()); workOrderService.validateWorkOrderConfirmed(reqVO.getWorkOrderId()); if (reqVO.getWorkstationId() != null) { - workstationService.validateWorkstationExists(reqVO.getWorkstationId()); + workstationService.validateWorkstationExistsAndEnable(reqVO.getWorkstationId()); } } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesLineServiceImpl.java index dba3a0a..0aa1fd8 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesLineServiceImpl.java @@ -65,7 +65,9 @@ public class MesWmReturnSalesLineServiceImpl implements MesWmReturnSalesLineServ @Override public void updateReturnSalesLine(MesWmReturnSalesLineSaveReqVO updateReqVO) { // 校验存在 - validateReturnSalesLineExists(updateReqVO.getId()); + MesWmReturnSalesLineDO oldLine = validateReturnSalesLineExists(updateReqVO.getId()); + // 固定父单 ID,防止通过接口篡改 + updateReqVO.setReturnId(oldLine.getReturnId()); validateLineSaveData(updateReqVO); // 更新 @@ -153,7 +155,7 @@ public class MesWmReturnSalesLineServiceImpl implements MesWmReturnSalesLineServ * @param batchId 批次ID */ private void validateItemBatchManagement(Long returnId, Long itemId, Long batchId) { - MesMdItemDO item = itemService.validateItemExists(itemId); + MesMdItemDO item = itemService.validateItemExistsAndEnable(itemId); // 如果物料启用了批次管理,则必须选择批次 if (Boolean.TRUE.equals(item.getBatchFlag()) && batchId == null) { throw exception(MD_ITEM_BATCH_REQUIRED); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesServiceImpl.java index 62c9831..ca90218 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesServiceImpl.java @@ -170,7 +170,7 @@ public class MesWmReturnSalesServiceImpl implements MesWmReturnSalesService { MesWmReturnSalesDetailDO::getQuantity, BigDecimal::add, BigDecimal.ZERO); // 对比行数量与明细总数量,不满足直接抛出 if (line.getQuantity().compareTo(totalDetailQuantity) > 0) { - MesMdItemDO item = itemService.validateItemExists(line.getItemId()); + MesMdItemDO item = itemService.validateItemExistsAndEnable(line.getItemId()); throw exception(WM_RETURN_SALES_DETAIL_QUANTITY_MISMATCH, item.getCode() + " " + item.getName() + " 未完成上架"); } @@ -272,7 +272,7 @@ public class MesWmReturnSalesServiceImpl implements MesWmReturnSalesService { */ private void validateSaveData(MesWmReturnSalesSaveReqVO reqVO) { validateCodeUnique(reqVO.getId(), reqVO.getCode()); - clientService.validateClientExists(reqVO.getClientId()); + clientService.validateClientExistsAndEnable(reqVO.getClientId()); } } 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 1252244..985e80f 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 @@ -72,7 +72,7 @@ public class MesWmReturnVendorDetailServiceImpl implements MesWmReturnVendorDeta throw exception(WM_RETURN_VENDOR_DETAIL_LINE_NOT_MATCH); } // 校验物料存在 - itemService.validateItemExists(reqVO.getItemId()); + itemService.validateItemExistsAndEnable(reqVO.getItemId()); // 校验物料与行物料一致 validateItemConsistency(reqVO.getItemId(), line); // 校验库位存在 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorLineServiceImpl.java index 31fd755..6b70f92 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorLineServiceImpl.java @@ -55,7 +55,9 @@ public class MesWmReturnVendorLineServiceImpl implements MesWmReturnVendorLineSe @Override public void updateReturnVendorLine(MesWmReturnVendorLineSaveReqVO updateReqVO) { // 校验存在 - validateReturnVendorLineExists(updateReqVO.getId()); + MesWmReturnVendorLineDO oldLine = validateReturnVendorLineExists(updateReqVO.getId()); + // 固定父单 ID,防止通过接口篡改 + updateReqVO.setReturnId(oldLine.getReturnId()); // 校验数据 validateReturnVendorLineSaveData(updateReqVO); @@ -111,7 +113,7 @@ public class MesWmReturnVendorLineServiceImpl implements MesWmReturnVendorLineSe // 校验父数据存在且为草稿状态 MesWmReturnVendorDO returnVendor = returnVendorService.validateReturnVendorExistsAndPrepare(reqVO.getReturnId()); // 校验物料存在 - itemService.validateItemExists(reqVO.getItemId()); + itemService.validateItemExistsAndEnable(reqVO.getItemId()); // 校验批次存在且属于当前物料和供应商 if (reqVO.getBatchId() != null) { batchService.validateBatchExists(reqVO.getBatchId(), reqVO.getItemId(), null, returnVendor.getVendorId()); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorServiceImpl.java index c7ac68a..f6a674a 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorServiceImpl.java @@ -217,7 +217,7 @@ public class MesWmReturnVendorServiceImpl implements MesWmReturnVendorService { validateReturnVendorExistsAndPrepare(reqVO.getId()); } // 校验供应商存在 - vendorService.validateVendorExists(reqVO.getVendorId()); + vendorService.validateVendorExistsAndEnable(reqVO.getVendorId()); // 校验编码唯一 validateCodeUnique(reqVO.getId(), reqVO.getCode()); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeLineServiceImpl.java index d71bffb..2a522ce 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeLineServiceImpl.java @@ -113,7 +113,7 @@ public class MesWmSalesNoticeLineServiceImpl implements MesWmSalesNoticeLineServ validateNoticeStatusDraft(reqVO.getNoticeId()); // 校验物料存在 if (reqVO.getItemId() != null) { - itemService.validateItemExists(reqVO.getItemId()); + itemService.validateItemExistsAndEnable(reqVO.getItemId()); } } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java index b129334..55fbe7e 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java @@ -136,7 +136,7 @@ public class MesWmSalesNoticeServiceImpl implements MesWmSalesNoticeService { validateNoticeCodeUnique(saveReqVO.getId(), saveReqVO.getNoticeCode()); // 校验客户存在 if (saveReqVO.getClientId() != null) { - clientService.validateClientExists(saveReqVO.getClientId()); + clientService.validateClientExistsAndEnable(saveReqVO.getClientId()); } } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transfer/MesWmTransferLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transfer/MesWmTransferLineServiceImpl.java index 1028839..b26528e 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transfer/MesWmTransferLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transfer/MesWmTransferLineServiceImpl.java @@ -109,7 +109,7 @@ public class MesWmTransferLineServiceImpl implements MesWmTransferLineService { // 校验父数据可编辑 transferService.validateTransferEditable(reqVO.getTransferId()); // 校验产品存在 - itemService.validateItemExists(reqVO.getItemId()); + itemService.validateItemExistsAndEnable(reqVO.getItemId()); // 校验来源仓库、库区、库位的关联关系 warehouseAreaService.validateWarehouseAreaExists(reqVO.getFromWarehouseId(), reqVO.getFromLocationId(), reqVO.getFromAreaId()); diff --git a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesLineServiceImplTest.java b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesLineServiceImplTest.java index e93ffac..674a1d4 100644 --- a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesLineServiceImplTest.java +++ b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesLineServiceImplTest.java @@ -11,6 +11,7 @@ import org.springframework.context.annotation.Import; import org.springframework.test.context.bean.override.mockito.MockitoBean; import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; +import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService; import java.math.BigDecimal; import java.util.List; @@ -39,6 +40,12 @@ public class MesWmReturnSalesLineServiceImplTest extends BaseDbUnitTest { @MockitoBean private MesMdItemService itemService; + @MockitoBean + private MesWmBatchService batchService; + + @MockitoBean + private MesWmReturnSalesDetailService returnSalesDetailService; + @Test public void testUpdateReturnSalesLineWhenRqcFinish_allPass() { // 准备参数:全部合格