Commit 23af22311b3057e0fc11fad5d78f5c465e805775
1 parent
a5510bb3
review(mes):wm-warehouse 的初步实现 50%
Showing
9 changed files
with
215 additions
and
68 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/MesWmWarehouseAreaController.java
| @@ -55,14 +55,14 @@ public class MesWmWarehouseAreaController { | @@ -55,14 +55,14 @@ public class MesWmWarehouseAreaController { | ||
| 55 | 55 | ||
| 56 | @PostMapping("/create") | 56 | @PostMapping("/create") |
| 57 | @Operation(summary = "创建库位") | 57 | @Operation(summary = "创建库位") |
| 58 | - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-area:create')") | 58 | + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:create')") |
| 59 | public CommonResult<Long> createWarehouseArea(@Valid @RequestBody MesWmWarehouseAreaSaveReqVO createReqVO) { | 59 | public CommonResult<Long> createWarehouseArea(@Valid @RequestBody MesWmWarehouseAreaSaveReqVO createReqVO) { |
| 60 | return success(areaService.createWarehouseArea(createReqVO)); | 60 | return success(areaService.createWarehouseArea(createReqVO)); |
| 61 | } | 61 | } |
| 62 | 62 | ||
| 63 | @PutMapping("/update") | 63 | @PutMapping("/update") |
| 64 | @Operation(summary = "更新库位") | 64 | @Operation(summary = "更新库位") |
| 65 | - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-area:update')") | 65 | + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:update')") |
| 66 | public CommonResult<Boolean> updateWarehouseArea(@Valid @RequestBody MesWmWarehouseAreaSaveReqVO updateReqVO) { | 66 | public CommonResult<Boolean> updateWarehouseArea(@Valid @RequestBody MesWmWarehouseAreaSaveReqVO updateReqVO) { |
| 67 | areaService.updateWarehouseArea(updateReqVO); | 67 | areaService.updateWarehouseArea(updateReqVO); |
| 68 | return success(true); | 68 | return success(true); |
| @@ -71,7 +71,7 @@ public class MesWmWarehouseAreaController { | @@ -71,7 +71,7 @@ public class MesWmWarehouseAreaController { | ||
| 71 | @DeleteMapping("/delete") | 71 | @DeleteMapping("/delete") |
| 72 | @Operation(summary = "删除库位") | 72 | @Operation(summary = "删除库位") |
| 73 | @Parameter(name = "id", description = "编号", required = true) | 73 | @Parameter(name = "id", description = "编号", required = true) |
| 74 | - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-area:delete')") | 74 | + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:delete')") |
| 75 | public CommonResult<Boolean> deleteWarehouseArea(@RequestParam("id") Long id) { | 75 | public CommonResult<Boolean> deleteWarehouseArea(@RequestParam("id") Long id) { |
| 76 | areaService.deleteWarehouseArea(id); | 76 | areaService.deleteWarehouseArea(id); |
| 77 | return success(true); | 77 | return success(true); |
| @@ -80,15 +80,18 @@ public class MesWmWarehouseAreaController { | @@ -80,15 +80,18 @@ public class MesWmWarehouseAreaController { | ||
| 80 | @GetMapping("/get") | 80 | @GetMapping("/get") |
| 81 | @Operation(summary = "获得库位") | 81 | @Operation(summary = "获得库位") |
| 82 | @Parameter(name = "id", description = "编号", required = true, example = "1024") | 82 | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| 83 | - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-area:query')") | 83 | + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:query')") |
| 84 | public CommonResult<MesWmWarehouseAreaRespVO> getWarehouseArea(@RequestParam("id") Long id) { | 84 | public CommonResult<MesWmWarehouseAreaRespVO> getWarehouseArea(@RequestParam("id") Long id) { |
| 85 | MesWmWarehouseAreaDO area = areaService.getWarehouseArea(id); | 85 | MesWmWarehouseAreaDO area = areaService.getWarehouseArea(id); |
| 86 | - return success(buildWarehouseAreaRespVO(area)); | 86 | + if (area == null) { |
| 87 | + return success(null); | ||
| 88 | + } | ||
| 89 | + return success(buildWarehouseAreaRespVOList(Collections.singletonList(area)).get(0)); | ||
| 87 | } | 90 | } |
| 88 | 91 | ||
| 89 | @GetMapping("/page") | 92 | @GetMapping("/page") |
| 90 | @Operation(summary = "获得库位分页") | 93 | @Operation(summary = "获得库位分页") |
| 91 | - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-area:query')") | 94 | + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:query')") |
| 92 | public CommonResult<PageResult<MesWmWarehouseAreaRespVO>> getWarehouseAreaPage(@Valid MesWmWarehouseAreaPageReqVO pageReqVO) { | 95 | public CommonResult<PageResult<MesWmWarehouseAreaRespVO>> getWarehouseAreaPage(@Valid MesWmWarehouseAreaPageReqVO pageReqVO) { |
| 93 | PageResult<MesWmWarehouseAreaDO> pageResult = areaService.getWarehouseAreaPage(pageReqVO); | 96 | PageResult<MesWmWarehouseAreaDO> pageResult = areaService.getWarehouseAreaPage(pageReqVO); |
| 94 | return success(new PageResult<>(buildWarehouseAreaRespVOList(pageResult.getList()), pageResult.getTotal())); | 97 | return success(new PageResult<>(buildWarehouseAreaRespVOList(pageResult.getList()), pageResult.getTotal())); |
| @@ -102,9 +105,11 @@ public class MesWmWarehouseAreaController { | @@ -102,9 +105,11 @@ public class MesWmWarehouseAreaController { | ||
| 102 | return success(buildWarehouseAreaRespVOList(list)); | 105 | return success(buildWarehouseAreaRespVOList(list)); |
| 103 | } | 106 | } |
| 104 | 107 | ||
| 108 | + // TODO @AI:不需要导出功能;前端也可以去掉; | ||
| 109 | + | ||
| 105 | @GetMapping("/export-excel") | 110 | @GetMapping("/export-excel") |
| 106 | @Operation(summary = "导出库位 Excel") | 111 | @Operation(summary = "导出库位 Excel") |
| 107 | - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-area:export')") | 112 | + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:export')") |
| 108 | @ApiAccessLog(operateType = EXPORT) | 113 | @ApiAccessLog(operateType = EXPORT) |
| 109 | public void exportWarehouseAreaExcel(@Valid MesWmWarehouseAreaPageReqVO pageReqVO, | 114 | public void exportWarehouseAreaExcel(@Valid MesWmWarehouseAreaPageReqVO pageReqVO, |
| 110 | HttpServletResponse response) throws IOException { | 115 | HttpServletResponse response) throws IOException { |
| @@ -114,27 +119,24 @@ public class MesWmWarehouseAreaController { | @@ -114,27 +119,24 @@ public class MesWmWarehouseAreaController { | ||
| 114 | buildWarehouseAreaRespVOList(list)); | 119 | buildWarehouseAreaRespVOList(list)); |
| 115 | } | 120 | } |
| 116 | 121 | ||
| 117 | - // TODO @AI:这里有个注释块,参考别的方法; | ||
| 118 | - | ||
| 119 | - // TODO @AI:下面这个,就不用愁方法了;直接 get 那处理下 get 0; | ||
| 120 | - | ||
| 121 | - private MesWmWarehouseAreaRespVO buildWarehouseAreaRespVO(MesWmWarehouseAreaDO area) { | ||
| 122 | - if (area == null) { | ||
| 123 | - return null; | ||
| 124 | - } | ||
| 125 | - List<MesWmWarehouseAreaRespVO> list = buildWarehouseAreaRespVOList(Collections.singletonList(area)); | ||
| 126 | - return CollUtil.isEmpty(list) ? null : CollUtil.getFirst(list); | ||
| 127 | - } | 122 | + // ==================== 拼接 VO ==================== |
| 128 | 123 | ||
| 124 | + /** | ||
| 125 | + * 批量构建库位响应 VO 列表(填充库区、仓库信息) | ||
| 126 | + * | ||
| 127 | + * @param list 库位列表 | ||
| 128 | + * @return 响应 VO 列表 | ||
| 129 | + */ | ||
| 129 | private List<MesWmWarehouseAreaRespVO> buildWarehouseAreaRespVOList(List<MesWmWarehouseAreaDO> list) { | 130 | private List<MesWmWarehouseAreaRespVO> buildWarehouseAreaRespVOList(List<MesWmWarehouseAreaDO> list) { |
| 130 | if (CollUtil.isEmpty(list)) { | 131 | if (CollUtil.isEmpty(list)) { |
| 131 | return Collections.emptyList(); | 132 | return Collections.emptyList(); |
| 132 | } | 133 | } |
| 133 | - Set<Long> locationIds = convertSet(list, MesWmWarehouseAreaDO::getLocationId); | ||
| 134 | - Map<Long, MesWmWarehouseLocationDO> locationMap = locationService.getWarehouseLocationMap(locationIds); | ||
| 135 | - Set<Long> warehouseIds = convertSet(locationMap.values(), MesWmWarehouseLocationDO::getWarehouseId); | ||
| 136 | - Map<Long, MesWmWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(warehouseIds); | ||
| 137 | - | 134 | + // 1. 获得库区信息 |
| 135 | + Map<Long, MesWmWarehouseLocationDO> locationMap = locationService.getWarehouseLocationMap( | ||
| 136 | + convertSet(list, MesWmWarehouseAreaDO::getLocationId)); | ||
| 137 | + Map<Long, MesWmWarehouseDO> warehouseMap = warehouseService.getWarehouseMap( | ||
| 138 | + convertSet(locationMap.values(), MesWmWarehouseLocationDO::getWarehouseId)); | ||
| 139 | + // 2. 构建结果 | ||
| 138 | return BeanUtils.toBean(list, MesWmWarehouseAreaRespVO.class, vo -> { | 140 | return BeanUtils.toBean(list, MesWmWarehouseAreaRespVO.class, vo -> { |
| 139 | MapUtils.findAndThen(locationMap, vo.getLocationId(), location -> { | 141 | MapUtils.findAndThen(locationMap, vo.getLocationId(), location -> { |
| 140 | vo.setLocationName(location.getName()); | 142 | vo.setLocationName(location.getName()); |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/MesWmWarehouseLocationController.java
| @@ -49,14 +49,14 @@ public class MesWmWarehouseLocationController { | @@ -49,14 +49,14 @@ public class MesWmWarehouseLocationController { | ||
| 49 | 49 | ||
| 50 | @PostMapping("/create") | 50 | @PostMapping("/create") |
| 51 | @Operation(summary = "创建库区") | 51 | @Operation(summary = "创建库区") |
| 52 | - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-location:create')") | 52 | + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:create')") |
| 53 | public CommonResult<Long> createWarehouseLocation(@Valid @RequestBody MesWmWarehouseLocationSaveReqVO createReqVO) { | 53 | public CommonResult<Long> createWarehouseLocation(@Valid @RequestBody MesWmWarehouseLocationSaveReqVO createReqVO) { |
| 54 | return success(locationService.createWarehouseLocation(createReqVO)); | 54 | return success(locationService.createWarehouseLocation(createReqVO)); |
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | @PutMapping("/update") | 57 | @PutMapping("/update") |
| 58 | @Operation(summary = "更新库区") | 58 | @Operation(summary = "更新库区") |
| 59 | - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-location:update')") | 59 | + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:update')") |
| 60 | public CommonResult<Boolean> updateWarehouseLocation(@Valid @RequestBody MesWmWarehouseLocationSaveReqVO updateReqVO) { | 60 | public CommonResult<Boolean> updateWarehouseLocation(@Valid @RequestBody MesWmWarehouseLocationSaveReqVO updateReqVO) { |
| 61 | locationService.updateWarehouseLocation(updateReqVO); | 61 | locationService.updateWarehouseLocation(updateReqVO); |
| 62 | return success(true); | 62 | return success(true); |
| @@ -65,7 +65,7 @@ public class MesWmWarehouseLocationController { | @@ -65,7 +65,7 @@ public class MesWmWarehouseLocationController { | ||
| 65 | @DeleteMapping("/delete") | 65 | @DeleteMapping("/delete") |
| 66 | @Operation(summary = "删除库区") | 66 | @Operation(summary = "删除库区") |
| 67 | @Parameter(name = "id", description = "编号", required = true) | 67 | @Parameter(name = "id", description = "编号", required = true) |
| 68 | - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-location:delete')") | 68 | + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:delete')") |
| 69 | public CommonResult<Boolean> deleteWarehouseLocation(@RequestParam("id") Long id) { | 69 | public CommonResult<Boolean> deleteWarehouseLocation(@RequestParam("id") Long id) { |
| 70 | locationService.deleteWarehouseLocation(id); | 70 | locationService.deleteWarehouseLocation(id); |
| 71 | return success(true); | 71 | return success(true); |
| @@ -74,15 +74,18 @@ public class MesWmWarehouseLocationController { | @@ -74,15 +74,18 @@ public class MesWmWarehouseLocationController { | ||
| 74 | @GetMapping("/get") | 74 | @GetMapping("/get") |
| 75 | @Operation(summary = "获得库区") | 75 | @Operation(summary = "获得库区") |
| 76 | @Parameter(name = "id", description = "编号", required = true, example = "1024") | 76 | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| 77 | - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-location:query')") | 77 | + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:query')") |
| 78 | public CommonResult<MesWmWarehouseLocationRespVO> getWarehouseLocation(@RequestParam("id") Long id) { | 78 | public CommonResult<MesWmWarehouseLocationRespVO> getWarehouseLocation(@RequestParam("id") Long id) { |
| 79 | MesWmWarehouseLocationDO location = locationService.getWarehouseLocation(id); | 79 | MesWmWarehouseLocationDO location = locationService.getWarehouseLocation(id); |
| 80 | - return success(buildWarehouseLocationRespVO(location)); | 80 | + if (location == null) { |
| 81 | + return success(null); | ||
| 82 | + } | ||
| 83 | + return success(buildWarehouseLocationRespVOList(Collections.singletonList(location)).get(0)); | ||
| 81 | } | 84 | } |
| 82 | 85 | ||
| 83 | @GetMapping("/page") | 86 | @GetMapping("/page") |
| 84 | @Operation(summary = "获得库区分页") | 87 | @Operation(summary = "获得库区分页") |
| 85 | - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-location:query')") | 88 | + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:query')") |
| 86 | public CommonResult<PageResult<MesWmWarehouseLocationRespVO>> getWarehouseLocationPage(@Valid MesWmWarehouseLocationPageReqVO pageReqVO) { | 89 | public CommonResult<PageResult<MesWmWarehouseLocationRespVO>> getWarehouseLocationPage(@Valid MesWmWarehouseLocationPageReqVO pageReqVO) { |
| 87 | PageResult<MesWmWarehouseLocationDO> pageResult = locationService.getWarehouseLocationPage(pageReqVO); | 90 | PageResult<MesWmWarehouseLocationDO> pageResult = locationService.getWarehouseLocationPage(pageReqVO); |
| 88 | return success(new PageResult<>(buildWarehouseLocationRespVOList(pageResult.getList()), pageResult.getTotal())); | 91 | return success(new PageResult<>(buildWarehouseLocationRespVOList(pageResult.getList()), pageResult.getTotal())); |
| @@ -96,9 +99,11 @@ public class MesWmWarehouseLocationController { | @@ -96,9 +99,11 @@ public class MesWmWarehouseLocationController { | ||
| 96 | return success(buildWarehouseLocationRespVOList(list)); | 99 | return success(buildWarehouseLocationRespVOList(list)); |
| 97 | } | 100 | } |
| 98 | 101 | ||
| 102 | + // TODO @AI:不需要导出功能;前端也可以去掉; | ||
| 103 | + | ||
| 99 | @GetMapping("/export-excel") | 104 | @GetMapping("/export-excel") |
| 100 | @Operation(summary = "导出库区 Excel") | 105 | @Operation(summary = "导出库区 Excel") |
| 101 | - @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-location:export')") | 106 | + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:export')") |
| 102 | @ApiAccessLog(operateType = EXPORT) | 107 | @ApiAccessLog(operateType = EXPORT) |
| 103 | public void exportWarehouseLocationExcel(@Valid MesWmWarehouseLocationPageReqVO pageReqVO, | 108 | public void exportWarehouseLocationExcel(@Valid MesWmWarehouseLocationPageReqVO pageReqVO, |
| 104 | HttpServletResponse response) throws IOException { | 109 | HttpServletResponse response) throws IOException { |
| @@ -108,22 +113,21 @@ public class MesWmWarehouseLocationController { | @@ -108,22 +113,21 @@ public class MesWmWarehouseLocationController { | ||
| 108 | buildWarehouseLocationRespVOList(list)); | 113 | buildWarehouseLocationRespVOList(list)); |
| 109 | } | 114 | } |
| 110 | 115 | ||
| 111 | - // TODO @AI:这里有个注释块,参考别的方法; | ||
| 112 | - | ||
| 113 | - // TODO @AI:下面这个,就不用愁方法了;直接 get 那处理下 get 0; | ||
| 114 | - private MesWmWarehouseLocationRespVO buildWarehouseLocationRespVO(MesWmWarehouseLocationDO location) { | ||
| 115 | - if (location == null) { | ||
| 116 | - return null; | ||
| 117 | - } | ||
| 118 | - List<MesWmWarehouseLocationRespVO> list = buildWarehouseLocationRespVOList(Collections.singletonList(location)); | ||
| 119 | - return CollUtil.isEmpty(list) ? null : CollUtil.getFirst(list); | ||
| 120 | - } | 116 | + // ==================== 拼接 VO ==================== |
| 121 | 117 | ||
| 118 | + /** | ||
| 119 | + * 批量构建库区响应 VO 列表(填充仓库名称) | ||
| 120 | + * | ||
| 121 | + * @param list 库区列表 | ||
| 122 | + * @return 响应 VO 列表 | ||
| 123 | + */ | ||
| 122 | private List<MesWmWarehouseLocationRespVO> buildWarehouseLocationRespVOList(List<MesWmWarehouseLocationDO> list) { | 124 | private List<MesWmWarehouseLocationRespVO> buildWarehouseLocationRespVOList(List<MesWmWarehouseLocationDO> list) { |
| 123 | if (CollUtil.isEmpty(list)) { | 125 | if (CollUtil.isEmpty(list)) { |
| 124 | return Collections.emptyList(); | 126 | return Collections.emptyList(); |
| 125 | } | 127 | } |
| 128 | + // 1. 获得仓库信息 | ||
| 126 | Map<Long, MesWmWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(convertSet(list, MesWmWarehouseLocationDO::getWarehouseId)); | 129 | Map<Long, MesWmWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(convertSet(list, MesWmWarehouseLocationDO::getWarehouseId)); |
| 130 | + // 2. 构建结果 | ||
| 127 | return BeanUtils.toBean(list, MesWmWarehouseLocationRespVO.class, vo -> | 131 | return BeanUtils.toBean(list, MesWmWarehouseLocationRespVO.class, vo -> |
| 128 | MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()))); | 132 | MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()))); |
| 129 | } | 133 | } |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
| @@ -139,6 +139,10 @@ public interface ErrorCodeConstants { | @@ -139,6 +139,10 @@ public interface ErrorCodeConstants { | ||
| 139 | // ========== MES 生产管理-工序(1-040-500-000) ========== | 139 | // ========== MES 生产管理-工序(1-040-500-000) ========== |
| 140 | ErrorCode PRO_PROCESS_NOT_EXISTS = new ErrorCode(1_040_500_000, "工序不存在"); | 140 | ErrorCode PRO_PROCESS_NOT_EXISTS = new ErrorCode(1_040_500_000, "工序不存在"); |
| 141 | ErrorCode PRO_PROCESS_CODE_EXISTS = new ErrorCode(1_040_500_001, "工序编码已存在"); | 141 | ErrorCode PRO_PROCESS_CODE_EXISTS = new ErrorCode(1_040_500_001, "工序编码已存在"); |
| 142 | + ErrorCode PRO_PROCESS_NAME_EXISTS = new ErrorCode(1_040_500_002, "工序名称已存在"); | ||
| 143 | + ErrorCode PRO_PROCESS_USED_BY_ROUTE = new ErrorCode(1_040_500_003, "工序已被工艺路线引用,无法删除"); | ||
| 144 | + // ========== MES 生产管理-工序内容(1-040-500-100) ========== | ||
| 145 | + ErrorCode PRO_PROCESS_CONTENT_NOT_EXISTS = new ErrorCode(1_040_500_100, "工序内容不存在"); | ||
| 142 | 146 | ||
| 143 | // ========== MES 生产管理-工艺路线(1-040-501-000) ========== | 147 | // ========== MES 生产管理-工艺路线(1-040-501-000) ========== |
| 144 | ErrorCode PRO_ROUTE_NOT_EXISTS = new ErrorCode(1_040_501_000, "工艺路线不存在"); | 148 | ErrorCode PRO_ROUTE_NOT_EXISTS = new ErrorCode(1_040_501_000, "工艺路线不存在"); |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaService.java
| @@ -12,24 +12,72 @@ import java.util.Map; | @@ -12,24 +12,72 @@ import java.util.Map; | ||
| 12 | 12 | ||
| 13 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; | 13 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; |
| 14 | 14 | ||
| 15 | -// TODO @AI:方法注释; | ||
| 16 | /** | 15 | /** |
| 17 | * MES 库位 Service 接口 | 16 | * MES 库位 Service 接口 |
| 18 | */ | 17 | */ |
| 19 | public interface MesWmWarehouseAreaService { | 18 | public interface MesWmWarehouseAreaService { |
| 20 | 19 | ||
| 20 | + /** | ||
| 21 | + * 创建库位 | ||
| 22 | + * | ||
| 23 | + * @param createReqVO 创建信息 | ||
| 24 | + * @return 编号 | ||
| 25 | + */ | ||
| 21 | Long createWarehouseArea(@Valid MesWmWarehouseAreaSaveReqVO createReqVO); | 26 | Long createWarehouseArea(@Valid MesWmWarehouseAreaSaveReqVO createReqVO); |
| 22 | 27 | ||
| 28 | + /** | ||
| 29 | + * 更新库位 | ||
| 30 | + * | ||
| 31 | + * @param updateReqVO 更新信息 | ||
| 32 | + */ | ||
| 23 | void updateWarehouseArea(@Valid MesWmWarehouseAreaSaveReqVO updateReqVO); | 33 | void updateWarehouseArea(@Valid MesWmWarehouseAreaSaveReqVO updateReqVO); |
| 24 | 34 | ||
| 35 | + /** | ||
| 36 | + * 删除库位 | ||
| 37 | + * | ||
| 38 | + * @param id 编号 | ||
| 39 | + */ | ||
| 25 | void deleteWarehouseArea(Long id); | 40 | void deleteWarehouseArea(Long id); |
| 26 | 41 | ||
| 42 | + /** | ||
| 43 | + * 校验库位存在 | ||
| 44 | + * | ||
| 45 | + * @param id 编号 | ||
| 46 | + * @return 库位 | ||
| 47 | + */ | ||
| 48 | + MesWmWarehouseAreaDO validateWarehouseAreaExists(Long id); | ||
| 49 | + | ||
| 50 | + /** | ||
| 51 | + * 获得库位 | ||
| 52 | + * | ||
| 53 | + * @param id 编号 | ||
| 54 | + * @return 库位 | ||
| 55 | + */ | ||
| 27 | MesWmWarehouseAreaDO getWarehouseArea(Long id); | 56 | MesWmWarehouseAreaDO getWarehouseArea(Long id); |
| 28 | 57 | ||
| 58 | + /** | ||
| 59 | + * 获得库位分页 | ||
| 60 | + * | ||
| 61 | + * @param pageReqVO 分页参数 | ||
| 62 | + * @return 库位分页 | ||
| 63 | + */ | ||
| 29 | PageResult<MesWmWarehouseAreaDO> getWarehouseAreaPage(MesWmWarehouseAreaPageReqVO pageReqVO); | 64 | PageResult<MesWmWarehouseAreaDO> getWarehouseAreaPage(MesWmWarehouseAreaPageReqVO pageReqVO); |
| 30 | 65 | ||
| 66 | + /** | ||
| 67 | + * 按库区与状态获得库位列表 | ||
| 68 | + * | ||
| 69 | + * @param locationId 库区编号 | ||
| 70 | + * @param status 状态 | ||
| 71 | + * @return 库位列表 | ||
| 72 | + */ | ||
| 31 | List<MesWmWarehouseAreaDO> getWarehouseAreaList(Long locationId, Integer status); | 73 | List<MesWmWarehouseAreaDO> getWarehouseAreaList(Long locationId, Integer status); |
| 32 | 74 | ||
| 75 | + /** | ||
| 76 | + * 按编号集合获得库位列表 | ||
| 77 | + * | ||
| 78 | + * @param ids 编号集合 | ||
| 79 | + * @return 库位列表 | ||
| 80 | + */ | ||
| 33 | List<MesWmWarehouseAreaDO> getWarehouseAreaList(Collection<Long> ids); | 81 | List<MesWmWarehouseAreaDO> getWarehouseAreaList(Collection<Long> ids); |
| 34 | 82 | ||
| 35 | default Map<Long, MesWmWarehouseAreaDO> getWarehouseAreaMap(Collection<Long> ids) { | 83 | default Map<Long, MesWmWarehouseAreaDO> getWarehouseAreaMap(Collection<Long> ids) { |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java
| @@ -39,7 +39,7 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService | @@ -39,7 +39,7 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService | ||
| 39 | @Override | 39 | @Override |
| 40 | public Long createWarehouseArea(MesWmWarehouseAreaSaveReqVO createReqVO) { | 40 | public Long createWarehouseArea(MesWmWarehouseAreaSaveReqVO createReqVO) { |
| 41 | // 校验库区存在 | 41 | // 校验库区存在 |
| 42 | - validateWarehouseLocationExists(createReqVO.getLocationId()); | 42 | + locationService.validateWarehouseLocationExists(createReqVO.getLocationId()); |
| 43 | // 校验编码唯一 | 43 | // 校验编码唯一 |
| 44 | validateWarehouseAreaCodeUnique(null, createReqVO.getLocationId(), createReqVO.getCode()); | 44 | validateWarehouseAreaCodeUnique(null, createReqVO.getLocationId(), createReqVO.getCode()); |
| 45 | // 校验名称唯一 | 45 | // 校验名称唯一 |
| @@ -55,7 +55,7 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService | @@ -55,7 +55,7 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService | ||
| 55 | // 校验存在 | 55 | // 校验存在 |
| 56 | validateWarehouseAreaExists(updateReqVO.getId()); | 56 | validateWarehouseAreaExists(updateReqVO.getId()); |
| 57 | // 校验库区存在 | 57 | // 校验库区存在 |
| 58 | - validateWarehouseLocationExists(updateReqVO.getLocationId()); | 58 | + locationService.validateWarehouseLocationExists(updateReqVO.getLocationId()); |
| 59 | // 校验编码唯一 | 59 | // 校验编码唯一 |
| 60 | validateWarehouseAreaCodeUnique(updateReqVO.getId(), updateReqVO.getLocationId(), updateReqVO.getCode()); | 60 | validateWarehouseAreaCodeUnique(updateReqVO.getId(), updateReqVO.getLocationId(), updateReqVO.getCode()); |
| 61 | // 校验名称唯一 | 61 | // 校验名称唯一 |
| @@ -78,17 +78,13 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService | @@ -78,17 +78,13 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService | ||
| 78 | areaMapper.deleteById(id); | 78 | areaMapper.deleteById(id); |
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | - // TODO @AI: locationService 抽个类似的方法被调用; | ||
| 82 | - private void validateWarehouseLocationExists(Long locationId) { | ||
| 83 | - if (locationService.getWarehouseLocation(locationId) == null) { | ||
| 84 | - throw exception(WM_WAREHOUSE_LOCATION_NOT_EXISTS); | ||
| 85 | - } | ||
| 86 | - } | ||
| 87 | - | ||
| 88 | - private void validateWarehouseAreaExists(Long id) { | ||
| 89 | - if (areaMapper.selectById(id) == null) { | 81 | + @Override |
| 82 | + public MesWmWarehouseAreaDO validateWarehouseAreaExists(Long id) { | ||
| 83 | + MesWmWarehouseAreaDO area = areaMapper.selectById(id); | ||
| 84 | + if (area == null) { | ||
| 90 | throw exception(WM_WAREHOUSE_AREA_NOT_EXISTS); | 85 | throw exception(WM_WAREHOUSE_AREA_NOT_EXISTS); |
| 91 | } | 86 | } |
| 87 | + return area; | ||
| 92 | } | 88 | } |
| 93 | 89 | ||
| 94 | private void validateWarehouseAreaCodeUnique(Long id, Long locationId, String code) { | 90 | private void validateWarehouseAreaCodeUnique(Long id, Long locationId, String code) { |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationService.java
| @@ -12,24 +12,72 @@ import java.util.Map; | @@ -12,24 +12,72 @@ import java.util.Map; | ||
| 12 | 12 | ||
| 13 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; | 13 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; |
| 14 | 14 | ||
| 15 | -// TODO @AI:方法注释; | ||
| 16 | /** | 15 | /** |
| 17 | * MES 库区 Service 接口 | 16 | * MES 库区 Service 接口 |
| 18 | */ | 17 | */ |
| 19 | public interface MesWmWarehouseLocationService { | 18 | public interface MesWmWarehouseLocationService { |
| 20 | 19 | ||
| 20 | + /** | ||
| 21 | + * 创建库区 | ||
| 22 | + * | ||
| 23 | + * @param createReqVO 创建信息 | ||
| 24 | + * @return 编号 | ||
| 25 | + */ | ||
| 21 | Long createWarehouseLocation(@Valid MesWmWarehouseLocationSaveReqVO createReqVO); | 26 | Long createWarehouseLocation(@Valid MesWmWarehouseLocationSaveReqVO createReqVO); |
| 22 | 27 | ||
| 28 | + /** | ||
| 29 | + * 更新库区 | ||
| 30 | + * | ||
| 31 | + * @param updateReqVO 更新信息 | ||
| 32 | + */ | ||
| 23 | void updateWarehouseLocation(@Valid MesWmWarehouseLocationSaveReqVO updateReqVO); | 33 | void updateWarehouseLocation(@Valid MesWmWarehouseLocationSaveReqVO updateReqVO); |
| 24 | 34 | ||
| 35 | + /** | ||
| 36 | + * 删除库区 | ||
| 37 | + * | ||
| 38 | + * @param id 编号 | ||
| 39 | + */ | ||
| 25 | void deleteWarehouseLocation(Long id); | 40 | void deleteWarehouseLocation(Long id); |
| 26 | 41 | ||
| 42 | + /** | ||
| 43 | + * 校验库区存在 | ||
| 44 | + * | ||
| 45 | + * @param id 编号 | ||
| 46 | + * @return 库区 | ||
| 47 | + */ | ||
| 48 | + MesWmWarehouseLocationDO validateWarehouseLocationExists(Long id); | ||
| 49 | + | ||
| 50 | + /** | ||
| 51 | + * 获得库区 | ||
| 52 | + * | ||
| 53 | + * @param id 编号 | ||
| 54 | + * @return 库区 | ||
| 55 | + */ | ||
| 27 | MesWmWarehouseLocationDO getWarehouseLocation(Long id); | 56 | MesWmWarehouseLocationDO getWarehouseLocation(Long id); |
| 28 | 57 | ||
| 58 | + /** | ||
| 59 | + * 获得库区分页 | ||
| 60 | + * | ||
| 61 | + * @param pageReqVO 分页参数 | ||
| 62 | + * @return 库区分页 | ||
| 63 | + */ | ||
| 29 | PageResult<MesWmWarehouseLocationDO> getWarehouseLocationPage(MesWmWarehouseLocationPageReqVO pageReqVO); | 64 | PageResult<MesWmWarehouseLocationDO> getWarehouseLocationPage(MesWmWarehouseLocationPageReqVO pageReqVO); |
| 30 | 65 | ||
| 66 | + /** | ||
| 67 | + * 按仓库与状态获得库区列表 | ||
| 68 | + * | ||
| 69 | + * @param warehouseId 仓库编号 | ||
| 70 | + * @param status 状态 | ||
| 71 | + * @return 库区列表 | ||
| 72 | + */ | ||
| 31 | List<MesWmWarehouseLocationDO> getWarehouseLocationList(Long warehouseId, Integer status); | 73 | List<MesWmWarehouseLocationDO> getWarehouseLocationList(Long warehouseId, Integer status); |
| 32 | 74 | ||
| 75 | + /** | ||
| 76 | + * 按编号集合获得库区列表 | ||
| 77 | + * | ||
| 78 | + * @param ids 编号集合 | ||
| 79 | + * @return 库区列表 | ||
| 80 | + */ | ||
| 33 | List<MesWmWarehouseLocationDO> getWarehouseLocationList(Collection<Long> ids); | 81 | List<MesWmWarehouseLocationDO> getWarehouseLocationList(Collection<Long> ids); |
| 34 | 82 | ||
| 35 | default Map<Long, MesWmWarehouseLocationDO> getWarehouseLocationMap(Collection<Long> ids) { | 83 | default Map<Long, MesWmWarehouseLocationDO> getWarehouseLocationMap(Collection<Long> ids) { |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java
| @@ -43,7 +43,7 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation | @@ -43,7 +43,7 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation | ||
| 43 | @Override | 43 | @Override |
| 44 | public Long createWarehouseLocation(MesWmWarehouseLocationSaveReqVO createReqVO) { | 44 | public Long createWarehouseLocation(MesWmWarehouseLocationSaveReqVO createReqVO) { |
| 45 | // 校验仓库存在 | 45 | // 校验仓库存在 |
| 46 | - validateWarehouseExists(createReqVO.getWarehouseId()); | 46 | + warehouseService.validateWarehouseExists(createReqVO.getWarehouseId()); |
| 47 | // 校验编码唯一 | 47 | // 校验编码唯一 |
| 48 | validateWarehouseLocationCodeUnique(null, createReqVO.getWarehouseId(), createReqVO.getCode()); | 48 | validateWarehouseLocationCodeUnique(null, createReqVO.getWarehouseId(), createReqVO.getCode()); |
| 49 | // 校验名称唯一 | 49 | // 校验名称唯一 |
| @@ -59,7 +59,7 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation | @@ -59,7 +59,7 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation | ||
| 59 | // 校验存在 | 59 | // 校验存在 |
| 60 | validateWarehouseLocationExists(updateReqVO.getId()); | 60 | validateWarehouseLocationExists(updateReqVO.getId()); |
| 61 | // 校验仓库存在 | 61 | // 校验仓库存在 |
| 62 | - validateWarehouseExists(updateReqVO.getWarehouseId()); | 62 | + warehouseService.validateWarehouseExists(updateReqVO.getWarehouseId()); |
| 63 | // 校验编码唯一 | 63 | // 校验编码唯一 |
| 64 | validateWarehouseLocationCodeUnique(updateReqVO.getId(), updateReqVO.getWarehouseId(), updateReqVO.getCode()); | 64 | validateWarehouseLocationCodeUnique(updateReqVO.getId(), updateReqVO.getWarehouseId(), updateReqVO.getCode()); |
| 65 | // 校验名称唯一 | 65 | // 校验名称唯一 |
| @@ -86,18 +86,13 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation | @@ -86,18 +86,13 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation | ||
| 86 | locationMapper.deleteById(id); | 86 | locationMapper.deleteById(id); |
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | - // TODO @AI:使用 warehouseService 里的;抽过去; | ||
| 90 | - private void validateWarehouseExists(Long warehouseId) { | ||
| 91 | - if (warehouseService.getWarehouse(warehouseId) == null) { | ||
| 92 | - throw exception(WM_WAREHOUSE_NOT_EXISTS); | ||
| 93 | - } | ||
| 94 | - } | ||
| 95 | - | ||
| 96 | - // TODO @AI:使用 warehouseLocationService 里的;抽过去; | ||
| 97 | - private void validateWarehouseLocationExists(Long id) { | ||
| 98 | - if (locationMapper.selectById(id) == null) { | 89 | + @Override |
| 90 | + public MesWmWarehouseLocationDO validateWarehouseLocationExists(Long id) { | ||
| 91 | + MesWmWarehouseLocationDO location = locationMapper.selectById(id); | ||
| 92 | + if (location == null) { | ||
| 99 | throw exception(WM_WAREHOUSE_LOCATION_NOT_EXISTS); | 93 | throw exception(WM_WAREHOUSE_LOCATION_NOT_EXISTS); |
| 100 | } | 94 | } |
| 95 | + return location; | ||
| 101 | } | 96 | } |
| 102 | 97 | ||
| 103 | private void validateWarehouseLocationCodeUnique(Long id, Long warehouseId, String code) { | 98 | private void validateWarehouseLocationCodeUnique(Long id, Long warehouseId, String code) { |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseService.java
| @@ -12,24 +12,71 @@ import java.util.Map; | @@ -12,24 +12,71 @@ import java.util.Map; | ||
| 12 | 12 | ||
| 13 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; | 13 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; |
| 14 | 14 | ||
| 15 | -// TODO @AI:方法注释; | ||
| 16 | /** | 15 | /** |
| 17 | * MES 仓库 Service 接口 | 16 | * MES 仓库 Service 接口 |
| 18 | */ | 17 | */ |
| 19 | public interface MesWmWarehouseService { | 18 | public interface MesWmWarehouseService { |
| 20 | 19 | ||
| 20 | + /** | ||
| 21 | + * 创建仓库 | ||
| 22 | + * | ||
| 23 | + * @param createReqVO 创建信息 | ||
| 24 | + * @return 编号 | ||
| 25 | + */ | ||
| 21 | Long createWarehouse(@Valid MesWmWarehouseSaveReqVO createReqVO); | 26 | Long createWarehouse(@Valid MesWmWarehouseSaveReqVO createReqVO); |
| 22 | 27 | ||
| 28 | + /** | ||
| 29 | + * 更新仓库 | ||
| 30 | + * | ||
| 31 | + * @param updateReqVO 更新信息 | ||
| 32 | + */ | ||
| 23 | void updateWarehouse(@Valid MesWmWarehouseSaveReqVO updateReqVO); | 33 | void updateWarehouse(@Valid MesWmWarehouseSaveReqVO updateReqVO); |
| 24 | 34 | ||
| 35 | + /** | ||
| 36 | + * 删除仓库 | ||
| 37 | + * | ||
| 38 | + * @param id 编号 | ||
| 39 | + */ | ||
| 25 | void deleteWarehouse(Long id); | 40 | void deleteWarehouse(Long id); |
| 26 | 41 | ||
| 42 | + /** | ||
| 43 | + * 校验仓库存在 | ||
| 44 | + * | ||
| 45 | + * @param id 编号 | ||
| 46 | + * @return 仓库 | ||
| 47 | + */ | ||
| 48 | + MesWmWarehouseDO validateWarehouseExists(Long id); | ||
| 49 | + | ||
| 50 | + /** | ||
| 51 | + * 获得仓库 | ||
| 52 | + * | ||
| 53 | + * @param id 编号 | ||
| 54 | + * @return 仓库 | ||
| 55 | + */ | ||
| 27 | MesWmWarehouseDO getWarehouse(Long id); | 56 | MesWmWarehouseDO getWarehouse(Long id); |
| 28 | 57 | ||
| 58 | + /** | ||
| 59 | + * 获得仓库分页 | ||
| 60 | + * | ||
| 61 | + * @param pageReqVO 分页参数 | ||
| 62 | + * @return 仓库分页 | ||
| 63 | + */ | ||
| 29 | PageResult<MesWmWarehouseDO> getWarehousePage(MesWmWarehousePageReqVO pageReqVO); | 64 | PageResult<MesWmWarehouseDO> getWarehousePage(MesWmWarehousePageReqVO pageReqVO); |
| 30 | 65 | ||
| 66 | + /** | ||
| 67 | + * 按状态获得仓库列表 | ||
| 68 | + * | ||
| 69 | + * @param status 状态 | ||
| 70 | + * @return 仓库列表 | ||
| 71 | + */ | ||
| 31 | List<MesWmWarehouseDO> getWarehouseListByStatus(Integer status); | 72 | List<MesWmWarehouseDO> getWarehouseListByStatus(Integer status); |
| 32 | 73 | ||
| 74 | + /** | ||
| 75 | + * 按编号集合获得仓库列表 | ||
| 76 | + * | ||
| 77 | + * @param ids 编号集合 | ||
| 78 | + * @return 仓库列表 | ||
| 79 | + */ | ||
| 33 | List<MesWmWarehouseDO> getWarehouseList(Collection<Long> ids); | 80 | List<MesWmWarehouseDO> getWarehouseList(Collection<Long> ids); |
| 34 | 81 | ||
| 35 | default Map<Long, MesWmWarehouseDO> getWarehouseMap(Collection<Long> ids) { | 82 | default Map<Long, MesWmWarehouseDO> getWarehouseMap(Collection<Long> ids) { |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java
| @@ -82,10 +82,13 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService { | @@ -82,10 +82,13 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService { | ||
| 82 | warehouseMapper.deleteById(id); | 82 | warehouseMapper.deleteById(id); |
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | - private void validateWarehouseExists(Long id) { | ||
| 86 | - if (warehouseMapper.selectById(id) == null) { | 85 | + @Override |
| 86 | + public MesWmWarehouseDO validateWarehouseExists(Long id) { | ||
| 87 | + MesWmWarehouseDO warehouse = warehouseMapper.selectById(id); | ||
| 88 | + if (warehouse == null) { | ||
| 87 | throw exception(WM_WAREHOUSE_NOT_EXISTS); | 89 | throw exception(WM_WAREHOUSE_NOT_EXISTS); |
| 88 | } | 90 | } |
| 91 | + return warehouse; | ||
| 89 | } | 92 | } |
| 90 | 93 | ||
| 91 | private void validateWarehouseCodeUnique(Long id, String code) { | 94 | private void validateWarehouseCodeUnique(Long id, String code) { |