Commit ec76d72775323d863aa9812d60890b44c24ff89c

Authored by YunaiV
1 parent e74752eb

✨ feat(mes): 重构库区混放规则更新逻辑,简化接口调用

yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/MesWmWarehouseLocationController.java
... ... @@ -94,20 +94,14 @@ public class MesWmWarehouseLocationController {
94 94 return success(buildWarehouseLocationRespVOList(list));
95 95 }
96 96  
97   - // TODO @AI:update-by-location;方法名也改下;
98   - @PutMapping("/update-mixing")
  97 + @PutMapping("/update-by-location-id")
99 98 @Operation(summary = "批量设置库区下所有库位的混放规则")
100 99 @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:update')")
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   - }
  100 + public CommonResult<Boolean> updateAreaByLocationId(
  101 + @RequestParam("locationId") Long locationId,
  102 + @RequestParam(value = "allowItemMixing", required = false) Boolean allowItemMixing,
  103 + @RequestParam(value = "allowBatchMixing", required = false) Boolean allowBatchMixing) {
  104 + areaService.updateByLocationId(locationId, allowItemMixing, allowBatchMixing);
111 105 return success(true);
112 106 }
113 107  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/warehouse/MesWmWarehouseAreaMapper.java
... ... @@ -59,21 +59,11 @@ public interface MesWmWarehouseAreaMapper extends BaseMapperX&lt;MesWmWarehouseArea
59 59 }
60 60  
61 61 /**
62   - * 批量更新指定库区下所有库位的物料混放规则
  62 + * 批量更新指定库区下所有库位
63 63 */
64   - default void updateAllowItemMixingByLocationId(Long locationId, Boolean allowItemMixing) {
65   - update(new MesWmWarehouseAreaDO().setAllowItemMixing(allowItemMixing),
66   - new LambdaQueryWrapperX<MesWmWarehouseAreaDO>()
67   - .eq(MesWmWarehouseAreaDO::getLocationId, locationId));
68   - }
69   -
70   - /**
71   - * 批量更新指定库区下所有库位的批次混放规则
72   - */
73   - default void updateAllowBatchMixingByLocationId(Long locationId, Boolean allowBatchMixing) {
74   - update(new MesWmWarehouseAreaDO().setAllowBatchMixing(allowBatchMixing),
75   - new LambdaQueryWrapperX<MesWmWarehouseAreaDO>()
76   - .eq(MesWmWarehouseAreaDO::getLocationId, locationId));
  64 + default void updateByLocationId(Long locationId, MesWmWarehouseAreaDO updateObj) {
  65 + update(updateObj, new LambdaQueryWrapperX<MesWmWarehouseAreaDO>()
  66 + .eq(MesWmWarehouseAreaDO::getLocationId, locationId));
77 67 }
78 68  
79 69 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaService.java
... ... @@ -101,20 +101,13 @@ public interface MesWmWarehouseAreaService {
101 101 void validateWarehouseAreaExists(Long warehouseId, Long locationId, Long areaId);
102 102  
103 103 /**
104   - * 批量设置指定库区下所有库位的物料混放规则
  104 + * 批量设置指定库区下所有库位的混放规则
105 105 *
106 106 * @param locationId 库区编号
107   - * @param allowItemMixing 是否允许物料混放
  107 + * @param allowItemMixing 是否允许物料混放(null 表示不修改)
  108 + * @param allowBatchMixing 是否允许批次混放(null 表示不修改)
108 109 */
109   - void updateAllowItemMixingByLocationId(Long locationId, Boolean allowItemMixing);
110   -
111   - /**
112   - * 批量设置指定库区下所有库位的批次混放规则
113   - *
114   - * @param locationId 库区编号
115   - * @param allowBatchMixing 是否允许批次混放
116   - */
117   - void updateAllowBatchMixingByLocationId(Long locationId, Boolean allowBatchMixing);
  110 + void updateByLocationId(Long locationId, Boolean allowItemMixing, Boolean allowBatchMixing);
118 111  
119 112 /**
120 113 * 按编码获得库位(如果是虚拟线边库位编码且不存在,会自动插入)
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java
... ... @@ -196,13 +196,19 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService
196 196 }
197 197  
198 198 @Override
199   - public void updateAllowItemMixingByLocationId(Long locationId, Boolean allowItemMixing) {
200   - areaMapper.updateAllowItemMixingByLocationId(locationId, allowItemMixing);
201   - }
202   -
203   - @Override
204   - public void updateAllowBatchMixingByLocationId(Long locationId, Boolean allowBatchMixing) {
205   - areaMapper.updateAllowBatchMixingByLocationId(locationId, allowBatchMixing);
  199 + public void updateByLocationId(Long locationId, Boolean allowItemMixing, Boolean allowBatchMixing) {
  200 + // 校验库区存在
  201 + locationService.validateWarehouseLocationExists(locationId);
  202 + // 构建更新对象
  203 + MesWmWarehouseAreaDO updateObj = new MesWmWarehouseAreaDO();
  204 + if (allowItemMixing != null) {
  205 + updateObj.setAllowItemMixing(allowItemMixing);
  206 + }
  207 + if (allowBatchMixing != null) {
  208 + updateObj.setAllowBatchMixing(allowBatchMixing);
  209 + }
  210 + // 批量更新库位
  211 + areaMapper.updateByLocationId(locationId, updateObj);
206 212 }
207 213  
208 214 @Override
... ...