Commit 84cc513a6995df14e6b493a204d1c65b88527955

Authored by YunaiV
1 parent b2f9adcf

✨ feat(mes): 优化库位和库区管理功能,合并混放规则设置接口

整合物料混放和批次混放的设置接口为一个更新接口,简化了API调用。
同时,增加了库位和库区编码的生成逻辑,提升了用户体验。
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/MesWmWarehouseLocationController.java
... ... @@ -94,22 +94,20 @@ public class MesWmWarehouseLocationController {
94 94 return success(buildWarehouseLocationRespVOList(list));
95 95 }
96 96  
97   - // TODO @AI:是不是搞个批量的接口,把 set-item-mixing、set-batch-mixing 融合成一个?
98   - @PutMapping("/set-item-mixing")
99   - @Operation(summary = "批量设置库区下所有库位的物料混放规则")
  97 + // TODO @AI:update-by-location;方法名也改下;
  98 + @PutMapping("/update-mixing")
  99 + @Operation(summary = "批量设置库区下所有库位的混放规则")
100 100 @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:update')")
101   - public CommonResult<Boolean> setItemMixing(@RequestParam("locationId") Long locationId,
102   - @RequestParam("allow") Boolean allow) {
103   - areaService.updateAllowItemMixingByLocationId(locationId, allow);
104   - return success(true);
105   - }
106   -
107   - @PutMapping("/set-batch-mixing")
108   - @Operation(summary = "批量设置库区下所有库位的批次混放规则")
109   - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:update')")
110   - public CommonResult<Boolean> setBatchMixing(@RequestParam("locationId") Long locationId,
111   - @RequestParam("allow") Boolean allow) {
112   - areaService.updateAllowBatchMixingByLocationId(locationId, allow);
  101 + public CommonResult<Boolean> updateMixing(@RequestParam("locationId") Long locationId,
  102 + @RequestParam(value = "allowItemMixing", required = false) Boolean allowItemMixing,
  103 + @RequestParam(value = "allowBatchMixing", required = false) Boolean allowBatchMixing) {
  104 + // TODO @AI:统一放到 service 里;
  105 + if (allowItemMixing != null) {
  106 + areaService.updateAllowItemMixingByLocationId(locationId, allowItemMixing);
  107 + }
  108 + if (allowBatchMixing != null) {
  109 + areaService.updateAllowBatchMixingByLocationId(locationId, allowBatchMixing);
  110 + }
113 111 return success(true);
114 112 }
115 113  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java
... ... @@ -23,7 +23,10 @@ public enum MesMdAutoCodeRuleCodeEnum {
23 23 QC_IQC_CODE("QC_IQC_CODE", "来料检验单编码"),
24 24 QC_IPQC_CODE("QC_IPQC_CODE", "过程检验单编码"),
25 25 QC_OQC_CODE("QC_OQC_CODE", "出货检验单编码"),
26   - QC_RQC_CODE("QC_RQC_CODE", "退货检验单编码");
  26 + QC_RQC_CODE("QC_RQC_CODE", "退货检验单编码"),
  27 + WM_WAREHOUSE_CODE("WM_WAREHOUSE_CODE", "仓库编码"),
  28 + WM_LOCATION_CODE("WM_LOCATION_CODE", "库区编码"),
  29 + WM_AREA_CODE("WM_AREA_CODE", "库位编码");
27 30  
28 31 /**
29 32 * 规则代码
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java
... ... @@ -51,12 +51,8 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService
51 51  
52 52 @Override
53 53 public Long createWarehouseArea(MesWmWarehouseAreaSaveReqVO createReqVO) {
54   - // 校验库区存在
55   - locationService.validateWarehouseLocationExists(createReqVO.getLocationId());
56   - // 校验编码唯一
57   - validateWarehouseAreaCodeUnique(null, createReqVO.getLocationId(), createReqVO.getCode());
58   - // 校验名称唯一
59   - validateWarehouseAreaNameUnique(null, createReqVO.getLocationId(), createReqVO.getName());
  54 + // 校验数据
  55 + validateWarehouseAreaSaveData(createReqVO);
60 56  
61 57 // 插入
62 58 MesWmWarehouseAreaDO area = BeanUtils.toBean(createReqVO, MesWmWarehouseAreaDO.class);
... ... @@ -72,18 +68,23 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService
72 68 public void updateWarehouseArea(MesWmWarehouseAreaSaveReqVO updateReqVO) {
73 69 // 校验存在
74 70 validateWarehouseAreaExists(updateReqVO.getId());
75   - // 校验库区存在
76   - locationService.validateWarehouseLocationExists(updateReqVO.getLocationId());
77   - // 校验编码唯一
78   - validateWarehouseAreaCodeUnique(updateReqVO.getId(), updateReqVO.getLocationId(), updateReqVO.getCode());
79   - // 校验名称唯一
80   - validateWarehouseAreaNameUnique(updateReqVO.getId(), updateReqVO.getLocationId(), updateReqVO.getName());
  71 + // 校验数据
  72 + validateWarehouseAreaSaveData(updateReqVO);
81 73  
82 74 // 更新
83 75 MesWmWarehouseAreaDO updateObj = BeanUtils.toBean(updateReqVO, MesWmWarehouseAreaDO.class);
84 76 areaMapper.updateById(updateObj);
85 77 }
86 78  
  79 + private void validateWarehouseAreaSaveData(MesWmWarehouseAreaSaveReqVO reqVO) {
  80 + // 校验库区存在
  81 + locationService.validateWarehouseLocationExists(reqVO.getLocationId());
  82 + // 校验编码唯一
  83 + validateWarehouseAreaCodeUnique(reqVO.getId(), reqVO.getLocationId(), reqVO.getCode());
  84 + // 校验名称唯一
  85 + validateWarehouseAreaNameUnique(reqVO.getId(), reqVO.getLocationId(), reqVO.getName());
  86 + }
  87 +
87 88 @Override
88 89 public void deleteWarehouseArea(Long id) {
89 90 // 校验存在
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java
... ... @@ -50,12 +50,8 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation
50 50  
51 51 @Override
52 52 public Long createWarehouseLocation(MesWmWarehouseLocationSaveReqVO createReqVO) {
53   - // 校验仓库存在
54   - warehouseService.validateWarehouseExists(createReqVO.getWarehouseId());
55   - // 校验编码唯一
56   - validateWarehouseLocationCodeUnique(null, createReqVO.getWarehouseId(), createReqVO.getCode());
57   - // 校验名称唯一
58   - validateWarehouseLocationNameUnique(null, createReqVO.getWarehouseId(), createReqVO.getName());
  53 + // 校验数据
  54 + validateWarehouseLocationSaveData(createReqVO);
59 55  
60 56 // 插入
61 57 MesWmWarehouseLocationDO location = BeanUtils.toBean(createReqVO, MesWmWarehouseLocationDO.class);
... ... @@ -71,18 +67,23 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation
71 67 public void updateWarehouseLocation(MesWmWarehouseLocationSaveReqVO updateReqVO) {
72 68 // 校验存在
73 69 validateWarehouseLocationExists(updateReqVO.getId());
74   - // 校验仓库存在
75   - warehouseService.validateWarehouseExists(updateReqVO.getWarehouseId());
76   - // 校验编码唯一
77   - validateWarehouseLocationCodeUnique(updateReqVO.getId(), updateReqVO.getWarehouseId(), updateReqVO.getCode());
78   - // 校验名称唯一
79   - validateWarehouseLocationNameUnique(updateReqVO.getId(), updateReqVO.getWarehouseId(), updateReqVO.getName());
  70 + // 校验数据
  71 + validateWarehouseLocationSaveData(updateReqVO);
80 72  
81 73 // 更新
82 74 MesWmWarehouseLocationDO updateObj = BeanUtils.toBean(updateReqVO, MesWmWarehouseLocationDO.class);
83 75 locationMapper.updateById(updateObj);
84 76 }
85 77  
  78 + private void validateWarehouseLocationSaveData(MesWmWarehouseLocationSaveReqVO reqVO) {
  79 + // 校验仓库存在
  80 + warehouseService.validateWarehouseExists(reqVO.getWarehouseId());
  81 + // 校验编码唯一
  82 + validateWarehouseLocationCodeUnique(reqVO.getId(), reqVO.getWarehouseId(), reqVO.getCode());
  83 + // 校验名称唯一
  84 + validateWarehouseLocationNameUnique(reqVO.getId(), reqVO.getWarehouseId(), reqVO.getName());
  85 + }
  86 +
86 87 @Override
87 88 public void deleteWarehouseLocation(Long id) {
88 89 // 校验存在
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java
... ... @@ -46,10 +46,8 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService {
46 46  
47 47 @Override
48 48 public Long createWarehouse(MesWmWarehouseSaveReqVO createReqVO) {
49   - // 校验编码唯一
50   - validateWarehouseCodeUnique(null, createReqVO.getCode());
51   - // 校验名称唯一
52   - validateWarehouseNameUnique(null, createReqVO.getName());
  49 + // 校验数据
  50 + validateWarehouseSaveData(createReqVO);
53 51  
54 52 // 插入
55 53 MesWmWarehouseDO warehouse = BeanUtils.toBean(createReqVO, MesWmWarehouseDO.class);
... ... @@ -65,16 +63,21 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService {
65 63 public void updateWarehouse(MesWmWarehouseSaveReqVO updateReqVO) {
66 64 // 校验存在
67 65 validateWarehouseExists(updateReqVO.getId());
68   - // 校验编码唯一
69   - validateWarehouseCodeUnique(updateReqVO.getId(), updateReqVO.getCode());
70   - // 校验名称唯一
71   - validateWarehouseNameUnique(updateReqVO.getId(), updateReqVO.getName());
  66 + // 校验数据
  67 + validateWarehouseSaveData(updateReqVO);
72 68  
73 69 // 更新
74 70 MesWmWarehouseDO updateObj = BeanUtils.toBean(updateReqVO, MesWmWarehouseDO.class);
75 71 warehouseMapper.updateById(updateObj);
76 72 }
77 73  
  74 + private void validateWarehouseSaveData(MesWmWarehouseSaveReqVO reqVO) {
  75 + // 校验编码唯一
  76 + validateWarehouseCodeUnique(reqVO.getId(), reqVO.getCode());
  77 + // 校验名称唯一
  78 + validateWarehouseNameUnique(reqVO.getId(), reqVO.getName());
  79 + }
  80 +
78 81 @Override
79 82 public void deleteWarehouse(Long id) {
80 83 // 校验存在
... ...