From 84cc513a6995df14e6b493a204d1c65b88527955 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 28 Mar 2026 20:58:31 +0800 Subject: [PATCH] ✨ feat(mes): 优化库位和库区管理功能,合并混放规则设置接口 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/MesWmWarehouseLocationController.java | 28 +++++++++++++--------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java | 5 ++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java | 25 +++++++++++++------------ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java | 25 +++++++++++++------------ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java | 19 +++++++++++-------- 5 files changed, 54 insertions(+), 48 deletions(-) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/MesWmWarehouseLocationController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/MesWmWarehouseLocationController.java index f4b2c3b..e444b47 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/MesWmWarehouseLocationController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/MesWmWarehouseLocationController.java @@ -94,22 +94,20 @@ public class MesWmWarehouseLocationController { return success(buildWarehouseLocationRespVOList(list)); } - // TODO @AI:是不是搞个批量的接口,把 set-item-mixing、set-batch-mixing 融合成一个? - @PutMapping("/set-item-mixing") - @Operation(summary = "批量设置库区下所有库位的物料混放规则") + // TODO @AI:update-by-location;方法名也改下; + @PutMapping("/update-mixing") + @Operation(summary = "批量设置库区下所有库位的混放规则") @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:update')") - public CommonResult setItemMixing(@RequestParam("locationId") Long locationId, - @RequestParam("allow") Boolean allow) { - areaService.updateAllowItemMixingByLocationId(locationId, allow); - return success(true); - } - - @PutMapping("/set-batch-mixing") - @Operation(summary = "批量设置库区下所有库位的批次混放规则") - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:update')") - public CommonResult setBatchMixing(@RequestParam("locationId") Long locationId, - @RequestParam("allow") Boolean allow) { - areaService.updateAllowBatchMixingByLocationId(locationId, allow); + public CommonResult updateMixing(@RequestParam("locationId") Long locationId, + @RequestParam(value = "allowItemMixing", required = false) Boolean allowItemMixing, + @RequestParam(value = "allowBatchMixing", required = false) Boolean allowBatchMixing) { + // TODO @AI:统一放到 service 里; + if (allowItemMixing != null) { + areaService.updateAllowItemMixingByLocationId(locationId, allowItemMixing); + } + if (allowBatchMixing != null) { + areaService.updateAllowBatchMixingByLocationId(locationId, allowBatchMixing); + } return success(true); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java index b90edfc..620258b 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java @@ -23,7 +23,10 @@ public enum MesMdAutoCodeRuleCodeEnum { QC_IQC_CODE("QC_IQC_CODE", "来料检验单编码"), QC_IPQC_CODE("QC_IPQC_CODE", "过程检验单编码"), QC_OQC_CODE("QC_OQC_CODE", "出货检验单编码"), - QC_RQC_CODE("QC_RQC_CODE", "退货检验单编码"); + QC_RQC_CODE("QC_RQC_CODE", "退货检验单编码"), + WM_WAREHOUSE_CODE("WM_WAREHOUSE_CODE", "仓库编码"), + WM_LOCATION_CODE("WM_LOCATION_CODE", "库区编码"), + WM_AREA_CODE("WM_AREA_CODE", "库位编码"); /** * 规则代码 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java index 26dd822..5a02f1a 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java +++ b/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 @Override public Long createWarehouseArea(MesWmWarehouseAreaSaveReqVO createReqVO) { - // 校验库区存在 - locationService.validateWarehouseLocationExists(createReqVO.getLocationId()); - // 校验编码唯一 - validateWarehouseAreaCodeUnique(null, createReqVO.getLocationId(), createReqVO.getCode()); - // 校验名称唯一 - validateWarehouseAreaNameUnique(null, createReqVO.getLocationId(), createReqVO.getName()); + // 校验数据 + validateWarehouseAreaSaveData(createReqVO); // 插入 MesWmWarehouseAreaDO area = BeanUtils.toBean(createReqVO, MesWmWarehouseAreaDO.class); @@ -72,18 +68,23 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService public void updateWarehouseArea(MesWmWarehouseAreaSaveReqVO updateReqVO) { // 校验存在 validateWarehouseAreaExists(updateReqVO.getId()); - // 校验库区存在 - locationService.validateWarehouseLocationExists(updateReqVO.getLocationId()); - // 校验编码唯一 - validateWarehouseAreaCodeUnique(updateReqVO.getId(), updateReqVO.getLocationId(), updateReqVO.getCode()); - // 校验名称唯一 - validateWarehouseAreaNameUnique(updateReqVO.getId(), updateReqVO.getLocationId(), updateReqVO.getName()); + // 校验数据 + validateWarehouseAreaSaveData(updateReqVO); // 更新 MesWmWarehouseAreaDO updateObj = BeanUtils.toBean(updateReqVO, MesWmWarehouseAreaDO.class); areaMapper.updateById(updateObj); } + private void validateWarehouseAreaSaveData(MesWmWarehouseAreaSaveReqVO reqVO) { + // 校验库区存在 + locationService.validateWarehouseLocationExists(reqVO.getLocationId()); + // 校验编码唯一 + validateWarehouseAreaCodeUnique(reqVO.getId(), reqVO.getLocationId(), reqVO.getCode()); + // 校验名称唯一 + validateWarehouseAreaNameUnique(reqVO.getId(), reqVO.getLocationId(), reqVO.getName()); + } + @Override public void deleteWarehouseArea(Long id) { // 校验存在 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java index 632306f..e3ca563 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java +++ b/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 @Override public Long createWarehouseLocation(MesWmWarehouseLocationSaveReqVO createReqVO) { - // 校验仓库存在 - warehouseService.validateWarehouseExists(createReqVO.getWarehouseId()); - // 校验编码唯一 - validateWarehouseLocationCodeUnique(null, createReqVO.getWarehouseId(), createReqVO.getCode()); - // 校验名称唯一 - validateWarehouseLocationNameUnique(null, createReqVO.getWarehouseId(), createReqVO.getName()); + // 校验数据 + validateWarehouseLocationSaveData(createReqVO); // 插入 MesWmWarehouseLocationDO location = BeanUtils.toBean(createReqVO, MesWmWarehouseLocationDO.class); @@ -71,18 +67,23 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation public void updateWarehouseLocation(MesWmWarehouseLocationSaveReqVO updateReqVO) { // 校验存在 validateWarehouseLocationExists(updateReqVO.getId()); - // 校验仓库存在 - warehouseService.validateWarehouseExists(updateReqVO.getWarehouseId()); - // 校验编码唯一 - validateWarehouseLocationCodeUnique(updateReqVO.getId(), updateReqVO.getWarehouseId(), updateReqVO.getCode()); - // 校验名称唯一 - validateWarehouseLocationNameUnique(updateReqVO.getId(), updateReqVO.getWarehouseId(), updateReqVO.getName()); + // 校验数据 + validateWarehouseLocationSaveData(updateReqVO); // 更新 MesWmWarehouseLocationDO updateObj = BeanUtils.toBean(updateReqVO, MesWmWarehouseLocationDO.class); locationMapper.updateById(updateObj); } + private void validateWarehouseLocationSaveData(MesWmWarehouseLocationSaveReqVO reqVO) { + // 校验仓库存在 + warehouseService.validateWarehouseExists(reqVO.getWarehouseId()); + // 校验编码唯一 + validateWarehouseLocationCodeUnique(reqVO.getId(), reqVO.getWarehouseId(), reqVO.getCode()); + // 校验名称唯一 + validateWarehouseLocationNameUnique(reqVO.getId(), reqVO.getWarehouseId(), reqVO.getName()); + } + @Override public void deleteWarehouseLocation(Long id) { // 校验存在 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java index ca68cc5..79069b3 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java +++ b/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 { @Override public Long createWarehouse(MesWmWarehouseSaveReqVO createReqVO) { - // 校验编码唯一 - validateWarehouseCodeUnique(null, createReqVO.getCode()); - // 校验名称唯一 - validateWarehouseNameUnique(null, createReqVO.getName()); + // 校验数据 + validateWarehouseSaveData(createReqVO); // 插入 MesWmWarehouseDO warehouse = BeanUtils.toBean(createReqVO, MesWmWarehouseDO.class); @@ -65,16 +63,21 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService { public void updateWarehouse(MesWmWarehouseSaveReqVO updateReqVO) { // 校验存在 validateWarehouseExists(updateReqVO.getId()); - // 校验编码唯一 - validateWarehouseCodeUnique(updateReqVO.getId(), updateReqVO.getCode()); - // 校验名称唯一 - validateWarehouseNameUnique(updateReqVO.getId(), updateReqVO.getName()); + // 校验数据 + validateWarehouseSaveData(updateReqVO); // 更新 MesWmWarehouseDO updateObj = BeanUtils.toBean(updateReqVO, MesWmWarehouseDO.class); warehouseMapper.updateById(updateObj); } + private void validateWarehouseSaveData(MesWmWarehouseSaveReqVO reqVO) { + // 校验编码唯一 + validateWarehouseCodeUnique(reqVO.getId(), reqVO.getCode()); + // 校验名称唯一 + validateWarehouseNameUnique(reqVO.getId(), reqVO.getName()); + } + @Override public void deleteWarehouse(Long id) { // 校验存在 -- libgit2 0.21.4