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,20 +94,14 @@ public class MesWmWarehouseLocationController {
94 return success(buildWarehouseLocationRespVOList(list)); 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 @Operation(summary = "批量设置库区下所有库位的混放规则") 98 @Operation(summary = "批量设置库区下所有库位的混放规则")
100 @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:update')") 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 return success(true); 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,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,20 +101,13 @@ public interface MesWmWarehouseAreaService {
101 void validateWarehouseAreaExists(Long warehouseId, Long locationId, Long areaId); 101 void validateWarehouseAreaExists(Long warehouseId, Long locationId, Long areaId);
102 102
103 /** 103 /**
104 - * 批量设置指定库区下所有库位的物料混放规则 104 + * 批量设置指定库区下所有库位的混放规则
105 * 105 *
106 * @param locationId 库区编号 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,13 +196,19 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService
196 } 196 }
197 197
198 @Override 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 @Override 214 @Override