Commit 23af22311b3057e0fc11fad5d78f5c465e805775

Authored by YunaiV
1 parent a5510bb3

review(mes):wm-warehouse 的初步实现 50%

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) {