Commit e74752eb6477e030e6e9ff01872897260bdba49b

Authored by YunaiV
1 parent 84cc513a

✨ feat(mes): 更新虚拟仓库及库区操作校验逻辑

优化虚拟仓库和库区的操作校验,确保在新增、修改和删除时,虚拟仓库和库区不被误操作。通过引入 validateNotVirtual 方法,提升代码可读性和维护性。
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);
... ...