Commit e74752eb6477e030e6e9ff01872897260bdba49b
1 parent
84cc513a
✨ feat(mes): 更新虚拟仓库及库区操作校验逻辑
优化虚拟仓库和库区的操作校验,确保在新增、修改和删除时,虚拟仓库和库区不被误操作。通过引入 validateNotVirtual 方法,提升代码可读性和维护性。
Showing
4 changed files
with
39 additions
and
15 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
| ... | ... | @@ -335,7 +335,7 @@ public interface ErrorCodeConstants { |
| 335 | 335 | ErrorCode WM_WAREHOUSE_HAS_LOCATION = new ErrorCode(1_040_700_003, "仓库下存在库区,无法删除"); |
| 336 | 336 | ErrorCode WM_WAREHOUSE_HAS_WORKSTATION = new ErrorCode(1_040_700_004, "仓库已被工作站引用,无法删除"); |
| 337 | 337 | ErrorCode WM_WAREHOUSE_HAS_MATERIAL_STOCK = new ErrorCode(1_040_700_005, "仓库下有库存记录,无法删除"); |
| 338 | - ErrorCode WM_WAREHOUSE_IS_VIRTUAL = new ErrorCode(1_040_700_006, "虚拟仓库不允许删除"); | |
| 338 | + ErrorCode WM_WAREHOUSE_IS_VIRTUAL = new ErrorCode(1_040_700_006, "虚拟仓库不允许操作"); | |
| 339 | 339 | |
| 340 | 340 | // ========== MES 仓库管理-库区(1-040-701-000) ========== |
| 341 | 341 | ErrorCode WM_WAREHOUSE_LOCATION_NOT_EXISTS = new ErrorCode(1_040_701_000, "库区不存在"); |
| ... | ... | @@ -346,7 +346,7 @@ public interface ErrorCodeConstants { |
| 346 | 346 | ErrorCode WM_WAREHOUSE_REQUIRED = new ErrorCode(1_040_701_005, "选择库区时,仓库不能为空"); |
| 347 | 347 | ErrorCode WM_WAREHOUSE_LOCATION_RELATION_INVALID = new ErrorCode(1_040_701_006, "库区不属于所选仓库"); |
| 348 | 348 | ErrorCode WM_WAREHOUSE_LOCATION_HAS_MATERIAL_STOCK = new ErrorCode(1_040_701_007, "库区下有库存记录,无法删除"); |
| 349 | - ErrorCode WM_WAREHOUSE_LOCATION_IS_VIRTUAL = new ErrorCode(1_040_701_008, "虚拟库区不允许删除"); | |
| 349 | + ErrorCode WM_WAREHOUSE_LOCATION_IS_VIRTUAL = new ErrorCode(1_040_701_008, "虚拟库区不允许操作"); | |
| 350 | 350 | |
| 351 | 351 | // ========== MES 仓库管理-库位(1-040-702-000) ========== |
| 352 | 352 | ErrorCode WM_WAREHOUSE_AREA_NOT_EXISTS = new ErrorCode(1_040_702_000, "库位不存在"); |
| ... | ... | @@ -357,7 +357,7 @@ public interface ErrorCodeConstants { |
| 357 | 357 | ErrorCode WM_WAREHOUSE_AREA_RELATION_INVALID = new ErrorCode(1_040_702_005, "库位不属于所选库区"); |
| 358 | 358 | ErrorCode WM_WAREHOUSE_AREA_HAS_MATERIAL_STOCK = new ErrorCode(1_040_702_006, "库位下有库存记录,无法删除"); |
| 359 | 359 | ErrorCode WM_WAREHOUSE_AREA_WAREHOUSE_MISMATCH = new ErrorCode(1_040_702_007, "库位不属于所选仓库"); |
| 360 | - ErrorCode WM_WAREHOUSE_AREA_IS_VIRTUAL = new ErrorCode(1_040_702_008, "虚拟库位不允许删除"); | |
| 360 | + ErrorCode WM_WAREHOUSE_AREA_IS_VIRTUAL = new ErrorCode(1_040_702_008, "虚拟库位不允许操作"); | |
| 361 | 361 | |
| 362 | 362 | // ========== MES 仓库管理-库存(1-040-703-000) ========== |
| 363 | 363 | ErrorCode WM_MATERIAL_STOCK_NOT_EXISTS = new ErrorCode(1_040_703_000, "库存记录不存在"); | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java
| ... | ... | @@ -51,6 +51,8 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService |
| 51 | 51 | |
| 52 | 52 | @Override |
| 53 | 53 | public Long createWarehouseArea(MesWmWarehouseAreaSaveReqVO createReqVO) { |
| 54 | + // 校验虚拟库位不允许新增 | |
| 55 | + validateNotVirtual(createReqVO.getCode()); | |
| 54 | 56 | // 校验数据 |
| 55 | 57 | validateWarehouseAreaSaveData(createReqVO); |
| 56 | 58 | |
| ... | ... | @@ -67,7 +69,9 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService |
| 67 | 69 | @Override |
| 68 | 70 | public void updateWarehouseArea(MesWmWarehouseAreaSaveReqVO updateReqVO) { |
| 69 | 71 | // 校验存在 |
| 70 | - validateWarehouseAreaExists(updateReqVO.getId()); | |
| 72 | + MesWmWarehouseAreaDO area = validateWarehouseAreaExists(updateReqVO.getId()); | |
| 73 | + // 校验虚拟库位不允许修改 | |
| 74 | + validateNotVirtual(area.getCode()); | |
| 71 | 75 | // 校验数据 |
| 72 | 76 | validateWarehouseAreaSaveData(updateReqVO); |
| 73 | 77 | |
| ... | ... | @@ -85,14 +89,18 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService |
| 85 | 89 | validateWarehouseAreaNameUnique(reqVO.getId(), reqVO.getLocationId(), reqVO.getName()); |
| 86 | 90 | } |
| 87 | 91 | |
| 92 | + private void validateNotVirtual(String code) { | |
| 93 | + if (MesWmWarehouseAreaDO.WIP_VIRTUAL_AREA.equals(code)) { | |
| 94 | + throw exception(WM_WAREHOUSE_AREA_IS_VIRTUAL); | |
| 95 | + } | |
| 96 | + } | |
| 97 | + | |
| 88 | 98 | @Override |
| 89 | 99 | public void deleteWarehouseArea(Long id) { |
| 90 | 100 | // 校验存在 |
| 91 | 101 | MesWmWarehouseAreaDO area = validateWarehouseAreaExists(id); |
| 92 | 102 | // 校验虚拟库位不允许删除 |
| 93 | - if (MesWmWarehouseAreaDO.WIP_VIRTUAL_AREA.equals(area.getCode())) { | |
| 94 | - throw exception(WM_WAREHOUSE_AREA_IS_VIRTUAL); | |
| 95 | - } | |
| 103 | + validateNotVirtual(area.getCode()); | |
| 96 | 104 | // 校验是否被工作站引用 |
| 97 | 105 | if (workstationService.getWorkstationCountByAreaId(id) > 0) { |
| 98 | 106 | throw exception(WM_WAREHOUSE_AREA_HAS_WORKSTATION); | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java
| ... | ... | @@ -50,6 +50,8 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation |
| 50 | 50 | |
| 51 | 51 | @Override |
| 52 | 52 | public Long createWarehouseLocation(MesWmWarehouseLocationSaveReqVO createReqVO) { |
| 53 | + // 校验虚拟库区不允许新增 | |
| 54 | + validateNotVirtual(createReqVO.getCode()); | |
| 53 | 55 | // 校验数据 |
| 54 | 56 | validateWarehouseLocationSaveData(createReqVO); |
| 55 | 57 | |
| ... | ... | @@ -66,7 +68,9 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation |
| 66 | 68 | @Override |
| 67 | 69 | public void updateWarehouseLocation(MesWmWarehouseLocationSaveReqVO updateReqVO) { |
| 68 | 70 | // 校验存在 |
| 69 | - validateWarehouseLocationExists(updateReqVO.getId()); | |
| 71 | + MesWmWarehouseLocationDO location = validateWarehouseLocationExists(updateReqVO.getId()); | |
| 72 | + // 校验虚拟库区不允许修改 | |
| 73 | + validateNotVirtual(location.getCode()); | |
| 70 | 74 | // 校验数据 |
| 71 | 75 | validateWarehouseLocationSaveData(updateReqVO); |
| 72 | 76 | |
| ... | ... | @@ -84,14 +88,18 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation |
| 84 | 88 | validateWarehouseLocationNameUnique(reqVO.getId(), reqVO.getWarehouseId(), reqVO.getName()); |
| 85 | 89 | } |
| 86 | 90 | |
| 91 | + private void validateNotVirtual(String code) { | |
| 92 | + if (MesWmWarehouseLocationDO.WIP_VIRTUAL_LOCATION.equals(code)) { | |
| 93 | + throw exception(WM_WAREHOUSE_LOCATION_IS_VIRTUAL); | |
| 94 | + } | |
| 95 | + } | |
| 96 | + | |
| 87 | 97 | @Override |
| 88 | 98 | public void deleteWarehouseLocation(Long id) { |
| 89 | 99 | // 校验存在 |
| 90 | 100 | MesWmWarehouseLocationDO location = validateWarehouseLocationExists(id); |
| 91 | 101 | // 校验虚拟库区不允许删除 |
| 92 | - if (MesWmWarehouseLocationDO.WIP_VIRTUAL_LOCATION.equals(location.getCode())) { | |
| 93 | - throw exception(WM_WAREHOUSE_LOCATION_IS_VIRTUAL); | |
| 94 | - } | |
| 102 | + validateNotVirtual(location.getCode()); | |
| 95 | 103 | // 校验是否有库位 |
| 96 | 104 | if (areaService.getWarehouseAreaCountByLocationId(id) > 0) { |
| 97 | 105 | throw exception(WM_WAREHOUSE_LOCATION_HAS_AREA); | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java
| ... | ... | @@ -46,6 +46,8 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService { |
| 46 | 46 | |
| 47 | 47 | @Override |
| 48 | 48 | public Long createWarehouse(MesWmWarehouseSaveReqVO createReqVO) { |
| 49 | + // 校验虚拟仓库不允许新增 | |
| 50 | + validateNotVirtual(createReqVO.getCode()); | |
| 49 | 51 | // 校验数据 |
| 50 | 52 | validateWarehouseSaveData(createReqVO); |
| 51 | 53 | |
| ... | ... | @@ -62,7 +64,9 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService { |
| 62 | 64 | @Override |
| 63 | 65 | public void updateWarehouse(MesWmWarehouseSaveReqVO updateReqVO) { |
| 64 | 66 | // 校验存在 |
| 65 | - validateWarehouseExists(updateReqVO.getId()); | |
| 67 | + MesWmWarehouseDO warehouse = validateWarehouseExists(updateReqVO.getId()); | |
| 68 | + // 校验虚拟仓库不允许修改 | |
| 69 | + validateNotVirtual(warehouse.getCode()); | |
| 66 | 70 | // 校验数据 |
| 67 | 71 | validateWarehouseSaveData(updateReqVO); |
| 68 | 72 | |
| ... | ... | @@ -78,14 +82,18 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService { |
| 78 | 82 | validateWarehouseNameUnique(reqVO.getId(), reqVO.getName()); |
| 79 | 83 | } |
| 80 | 84 | |
| 85 | + private void validateNotVirtual(String code) { | |
| 86 | + if (MesWmWarehouseDO.WIP_VIRTUAL_WAREHOUSE.equals(code)) { | |
| 87 | + throw exception(WM_WAREHOUSE_IS_VIRTUAL); | |
| 88 | + } | |
| 89 | + } | |
| 90 | + | |
| 81 | 91 | @Override |
| 82 | 92 | public void deleteWarehouse(Long id) { |
| 83 | 93 | // 校验存在 |
| 84 | 94 | MesWmWarehouseDO warehouse = validateWarehouseExists(id); |
| 85 | 95 | // 校验虚拟仓库不允许删除 |
| 86 | - if (MesWmWarehouseDO.WIP_VIRTUAL_WAREHOUSE.equals(warehouse.getCode())) { | |
| 87 | - throw exception(WM_WAREHOUSE_IS_VIRTUAL); | |
| 88 | - } | |
| 96 | + validateNotVirtual(warehouse.getCode()); | |
| 89 | 97 | // 校验是否有库区 |
| 90 | 98 | if (locationService.getWarehouseLocationCountByWarehouseId(id) > 0) { |
| 91 | 99 | throw exception(WM_WAREHOUSE_HAS_LOCATION); | ... | ... |