Commit fe38e4fdefd176f5891e6522b4f5f3d4a8f0910c

Authored by YunaiV
1 parent a1d2f849

feat(wms):减法,去掉 area 表

Showing 86 changed files with 119 additions and 1488 deletions
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/inventory/WmsInventoryController.java
... ... @@ -10,13 +10,10 @@ import cn.iocoder.yudao.module.wms.controller.admin.inventory.vo.WmsInventoryRes
10 10 import cn.iocoder.yudao.module.wms.dal.dataobject.inventory.WmsInventoryDO;
11 11 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO;
12 12 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
13   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
14 13 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
15   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
16 14 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
17 15 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemService;
18 16 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
19   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
20 17 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
21 18 import io.swagger.v3.oas.annotations.Operation;
22 19 import io.swagger.v3.oas.annotations.tags.Tag;
... ... @@ -49,10 +46,6 @@ public class WmsInventoryController {
49 46 private WmsItemSkuService itemSkuService;
50 47 @Resource
51 48 private WmsWarehouseService warehouseService;
52   - @Resource
53   - private WmsWarehouseAreaService warehouseAreaService;
54   - @Resource
55   - private WmsProperties wmsProperties;
56 49  
57 50 @GetMapping("/page")
58 51 @Operation(summary = "获得库存统计分页")
... ... @@ -72,9 +65,6 @@ public class WmsInventoryController {
72 65 Map<Long, WmsItemDO> itemMap = itemService.getItemMap(convertSet(skuMap.values(), WmsItemSkuDO::getItemId));
73 66 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(
74 67 convertSet(list, WmsInventoryDO::getWarehouseId));
75   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
76   - ? warehouseAreaService.getWarehouseAreaMap(convertSet(list, WmsInventoryDO::getAreaId))
77   - : Collections.emptyMap();
78 68 return BeanUtils.toBean(list, WmsInventoryRespVO.class, vo -> {
79 69 MapUtils.findAndThen(skuMap, vo.getSkuId(), sku -> {
80 70 vo.setSkuCode(sku.getCode()).setSkuName(sku.getName()).setItemId(sku.getItemId());
... ... @@ -82,7 +72,6 @@ public class WmsInventoryController {
82 72 .setItemName(item.getName()).setUnit(item.getUnit()));
83 73 });
84 74 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
85   - MapUtils.findAndThen(areaMap, vo.getAreaId(), area -> vo.setAreaName(area.getName()));
86 75 });
87 76 }
88 77  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/inventory/WmsInventoryHistoryController.java
... ... @@ -10,13 +10,10 @@ import cn.iocoder.yudao.module.wms.controller.admin.inventory.vo.history.WmsInve
10 10 import cn.iocoder.yudao.module.wms.dal.dataobject.inventory.WmsInventoryHistoryDO;
11 11 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO;
12 12 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
13   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
14 13 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
15   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
16 14 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryHistoryService;
17 15 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemService;
18 16 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
19   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
20 17 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
21 18 import io.swagger.v3.oas.annotations.Operation;
22 19 import io.swagger.v3.oas.annotations.tags.Tag;
... ... @@ -49,10 +46,6 @@ public class WmsInventoryHistoryController {
49 46 private WmsItemSkuService itemSkuService;
50 47 @Resource
51 48 private WmsWarehouseService warehouseService;
52   - @Resource
53   - private WmsWarehouseAreaService warehouseAreaService;
54   - @Resource
55   - private WmsProperties wmsProperties;
56 49  
57 50 @GetMapping("/page")
58 51 @Operation(summary = "获得库存流水分页")
... ... @@ -73,9 +66,6 @@ public class WmsInventoryHistoryController {
73 66 Map<Long, WmsItemDO> itemMap = itemService.getItemMap(convertSet(skuMap.values(), WmsItemSkuDO::getItemId));
74 67 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(
75 68 convertSet(list, WmsInventoryHistoryDO::getWarehouseId));
76   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
77   - ? warehouseAreaService.getWarehouseAreaMap(convertSet(list, WmsInventoryHistoryDO::getAreaId))
78   - : Collections.emptyMap();
79 69 return BeanUtils.toBean(list, WmsInventoryHistoryRespVO.class, vo -> {
80 70 MapUtils.findAndThen(skuMap, vo.getSkuId(), sku -> {
81 71 vo.setSkuCode(sku.getCode()).setSkuName(sku.getName()).setItemId(sku.getItemId());
... ... @@ -83,7 +73,6 @@ public class WmsInventoryHistoryController {
83 73 .setItemName(item.getName()).setUnit(item.getUnit()));
84 74 });
85 75 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
86   - MapUtils.findAndThen(areaMap, vo.getAreaId(), area -> vo.setAreaName(area.getName()));
87 76 });
88 77 }
89 78  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/inventory/vo/WmsInventoryPageReqVO.java
... ... @@ -20,11 +20,6 @@ public class WmsInventoryPageReqVO extends PageParam {
20 20 public static final String TYPE_WAREHOUSE = "warehouse";
21 21  
22 22 /**
23   - * 按库区维度统计
24   - */
25   - public static final String TYPE_AREA = "area";
26   -
27   - /**
28 23 * 按商品维度统计
29 24 */
30 25 public static final String TYPE_ITEM = "item";
... ... @@ -50,9 +45,6 @@ public class WmsInventoryPageReqVO extends PageParam {
50 45 @Schema(description = "仓库编号", example = "2048")
51 46 private Long warehouseId;
52 47  
53   - @Schema(description = "库区编号", example = "4096")
54   - private Long areaId;
55   -
56 48 @Schema(description = "最小库存数量", example = "0.01")
57 49 private BigDecimal minQuantity;
58 50  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/inventory/vo/WmsInventoryRespVO.java
... ... @@ -33,10 +33,6 @@ public class WmsInventoryRespVO {
33 33 private Long warehouseId;
34 34 @Schema(description = "仓库名称", example = "成品仓")
35 35 private String warehouseName;
36   - @Schema(description = "库区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
37   - private Long areaId;
38   - @Schema(description = "库区名称", example = "A 区")
39   - private String areaName;
40 36  
41 37 @Schema(description = "库存数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
42 38 private BigDecimal quantity;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/inventory/vo/history/WmsInventoryHistoryPageReqVO.java
... ... @@ -35,9 +35,6 @@ public class WmsInventoryHistoryPageReqVO extends PageParam {
35 35 @Schema(description = "仓库编号", example = "2048")
36 36 private Long warehouseId;
37 37  
38   - @Schema(description = "库区编号", example = "4096")
39   - private Long areaId;
40   -
41 38 @Schema(description = "操作单号", example = "RK202605110001")
42 39 private String orderNo;
43 40  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/inventory/vo/history/WmsInventoryHistoryRespVO.java
... ... @@ -33,10 +33,6 @@ public class WmsInventoryHistoryRespVO {
33 33 private Long warehouseId;
34 34 @Schema(description = "仓库名称", example = "成品仓")
35 35 private String warehouseName;
36   - @Schema(description = "库区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
37   - private Long areaId;
38   - @Schema(description = "库区名称", example = "A 区")
39   - private String areaName;
40 36  
41 37 @Schema(description = "库存变化数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10.00")
42 38 private BigDecimal quantity;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/WmsWarehouseAreaController.java deleted
1   -package cn.iocoder.yudao.module.wms.controller.admin.md.warehouse;
2   -
3   -import cn.hutool.core.collection.CollUtil;
4   -import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
5   -import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6   -import cn.iocoder.yudao.framework.common.pojo.PageParam;
7   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
8   -import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
9   -import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
10   -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
11   -import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaPageReqVO;
12   -import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaRespVO;
13   -import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaSaveReqVO;
14   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
15   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
16   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
17   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
18   -import io.swagger.v3.oas.annotations.Operation;
19   -import io.swagger.v3.oas.annotations.Parameter;
20   -import io.swagger.v3.oas.annotations.tags.Tag;
21   -import jakarta.annotation.Resource;
22   -import jakarta.servlet.http.HttpServletResponse;
23   -import jakarta.validation.Valid;
24   -import org.springframework.security.access.prepost.PreAuthorize;
25   -import org.springframework.validation.annotation.Validated;
26   -import org.springframework.web.bind.annotation.*;
27   -
28   -import java.io.IOException;
29   -import java.util.Collections;
30   -import java.util.List;
31   -import java.util.Map;
32   -
33   -import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
34   -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
35   -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
36   -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.getFirst;
37   -
38   -@Tag(name = "管理后台 - WMS 库区")
39   -@RestController
40   -@RequestMapping("/wms/warehouse-area")
41   -@Validated
42   -public class WmsWarehouseAreaController {
43   -
44   - @Resource
45   - private WmsWarehouseAreaService warehouseAreaService;
46   - @Resource
47   - private WmsWarehouseService warehouseService;
48   -
49   - @PostMapping("/create")
50   - @Operation(summary = "创建库区")
51   - @PreAuthorize("@ss.hasPermission('wms:warehouse-area:create')")
52   - public CommonResult<Long> createWarehouseArea(@Valid @RequestBody WmsWarehouseAreaSaveReqVO createReqVO) {
53   - return success(warehouseAreaService.createWarehouseArea(createReqVO));
54   - }
55   -
56   - @PutMapping("/update")
57   - @Operation(summary = "更新库区")
58   - @PreAuthorize("@ss.hasPermission('wms:warehouse-area:update')")
59   - public CommonResult<Boolean> updateWarehouseArea(@Valid @RequestBody WmsWarehouseAreaSaveReqVO updateReqVO) {
60   - warehouseAreaService.updateWarehouseArea(updateReqVO);
61   - return success(true);
62   - }
63   -
64   - @DeleteMapping("/delete")
65   - @Operation(summary = "删除库区")
66   - @Parameter(name = "id", description = "编号", required = true)
67   - @PreAuthorize("@ss.hasPermission('wms:warehouse-area:delete')")
68   - public CommonResult<Boolean> deleteWarehouseArea(@RequestParam("id") Long id) {
69   - warehouseAreaService.deleteWarehouseArea(id);
70   - return success(true);
71   - }
72   -
73   - @GetMapping("/get")
74   - @Operation(summary = "获得库区")
75   - @Parameter(name = "id", description = "编号", required = true, example = "1024")
76   - @PreAuthorize("@ss.hasPermission('wms:warehouse-area:query')")
77   - public CommonResult<WmsWarehouseAreaRespVO> getWarehouseArea(@RequestParam("id") Long id) {
78   - WmsWarehouseAreaDO area = warehouseAreaService.getWarehouseArea(id);
79   - return success(buildWarehouseAreaRespVO(area));
80   - }
81   -
82   - @GetMapping("/page")
83   - @Operation(summary = "获得库区分页")
84   - @PreAuthorize("@ss.hasPermission('wms:warehouse-area:query')")
85   - public CommonResult<PageResult<WmsWarehouseAreaRespVO>> getWarehouseAreaPage(@Valid WmsWarehouseAreaPageReqVO pageReqVO) {
86   - PageResult<WmsWarehouseAreaDO> pageResult = warehouseAreaService.getWarehouseAreaPage(pageReqVO);
87   - return success(new PageResult<>(buildWarehouseAreaRespVOList(pageResult.getList()), pageResult.getTotal()));
88   - }
89   -
90   - @GetMapping("/simple-list")
91   - @Operation(summary = "获得库区精简列表", description = "可按仓库过滤")
92   - @PreAuthorize("@ss.hasPermission('wms:warehouse-area:query')")
93   - public CommonResult<List<WmsWarehouseAreaRespVO>> getWarehouseAreaSimpleList(
94   - @Parameter(name = "warehouseId", description = "仓库编号") @RequestParam(value = "warehouseId", required = false) Long warehouseId) {
95   - List<WmsWarehouseAreaDO> list = warehouseAreaService.getWarehouseAreaList(warehouseId);
96   - return success(buildWarehouseAreaRespVOList(list));
97   - }
98   -
99   - @GetMapping("/export-excel")
100   - @Operation(summary = "导出库区 Excel")
101   - @PreAuthorize("@ss.hasPermission('wms:warehouse-area:export')")
102   - @ApiAccessLog(operateType = EXPORT)
103   - public void exportWarehouseAreaExcel(@Valid WmsWarehouseAreaPageReqVO pageReqVO,
104   - HttpServletResponse response) throws IOException {
105   - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
106   - List<WmsWarehouseAreaDO> list = warehouseAreaService.getWarehouseAreaPage(pageReqVO).getList();
107   - ExcelUtils.write(response, "库区.xls", "数据", WmsWarehouseAreaRespVO.class,
108   - buildWarehouseAreaRespVOList(list));
109   - }
110   -
111   - // ==================== 拼接 VO ====================
112   -
113   - private WmsWarehouseAreaRespVO buildWarehouseAreaRespVO(WmsWarehouseAreaDO area) {
114   - if (area == null) {
115   - return null;
116   - }
117   - return getFirst(buildWarehouseAreaRespVOList(Collections.singletonList(area)));
118   - }
119   -
120   - private List<WmsWarehouseAreaRespVO> buildWarehouseAreaRespVOList(List<WmsWarehouseAreaDO> list) {
121   - if (CollUtil.isEmpty(list)) {
122   - return Collections.emptyList();
123   - }
124   - Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(convertSet(list, WmsWarehouseAreaDO::getWarehouseId));
125   - return BeanUtils.toBean(list, WmsWarehouseAreaRespVO.class, vo ->
126   - MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName())));
127   - }
128   -
129   -}
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaPageReqVO.java deleted
1   -package cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area;
2   -
3   -import cn.iocoder.yudao.framework.common.pojo.PageParam;
4   -import io.swagger.v3.oas.annotations.media.Schema;
5   -import lombok.Data;
6   -import lombok.EqualsAndHashCode;
7   -import lombok.ToString;
8   -
9   -@Schema(description = "管理后台 - WMS 库区分页 Request VO")
10   -@Data
11   -@EqualsAndHashCode(callSuper = true)
12   -@ToString(callSuper = true)
13   -public class WmsWarehouseAreaPageReqVO extends PageParam {
14   -
15   - @Schema(description = "库区编号", example = "A001")
16   - private String code;
17   -
18   - @Schema(description = "库区名称", example = "A 区")
19   - private String name;
20   -
21   - @Schema(description = "所属仓库编号", example = "1024")
22   - private Long warehouseId;
23   -
24   -}
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaRespVO.java deleted
1   -package cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area;
2   -
3   -import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
4   -import cn.idev.excel.annotation.ExcelProperty;
5   -import io.swagger.v3.oas.annotations.media.Schema;
6   -import lombok.Data;
7   -
8   -import java.time.LocalDateTime;
9   -
10   -@Schema(description = "管理后台 - WMS 库区 Response VO")
11   -@Data
12   -@ExcelIgnoreUnannotated
13   -public class WmsWarehouseAreaRespVO {
14   -
15   - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
16   - @ExcelProperty("编号")
17   - private Long id;
18   -
19   - @Schema(description = "库区编号", example = "A001")
20   - @ExcelProperty("库区编号")
21   - private String code;
22   -
23   - @Schema(description = "库区名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "A 区")
24   - @ExcelProperty("库区名称")
25   - private String name;
26   -
27   - @Schema(description = "所属仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
28   - @ExcelProperty("所属仓库编号")
29   - private Long warehouseId;
30   -
31   - @Schema(description = "所属仓库名称", example = "原料仓")
32   - @ExcelProperty("所属仓库名称")
33   - private String warehouseName;
34   -
35   - @Schema(description = "备注", example = "备注")
36   - @ExcelProperty("备注")
37   - private String remark;
38   -
39   - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
40   - @ExcelProperty("创建时间")
41   - private LocalDateTime createTime;
42   -
43   -}
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaSaveReqVO.java deleted
1   -package cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area;
2   -
3   -import io.swagger.v3.oas.annotations.media.Schema;
4   -import jakarta.validation.constraints.NotEmpty;
5   -import jakarta.validation.constraints.NotNull;
6   -import jakarta.validation.constraints.Size;
7   -import lombok.Data;
8   -
9   -@Schema(description = "管理后台 - WMS 库区新增/修改 Request VO")
10   -@Data
11   -public class WmsWarehouseAreaSaveReqVO {
12   -
13   - @Schema(description = "编号", example = "1024")
14   - private Long id;
15   -
16   - @Schema(description = "库区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "A001")
17   - @NotEmpty(message = "库区编号不能为空")
18   - @Size(max = 20, message = "库区编号长度不能超过 20 个字符")
19   - private String code;
20   -
21   - @Schema(description = "库区名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "A 区")
22   - @NotEmpty(message = "库区名称不能为空")
23   - private String name;
24   -
25   - @Schema(description = "所属仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
26   - @NotNull(message = "所属仓库不能为空")
27   - private Long warehouseId;
28   -
29   - @Schema(description = "备注", example = "备注")
30   - private String remark;
31   -
32   -}
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/WmsCheckOrderController.java
... ... @@ -17,14 +17,11 @@ import cn.iocoder.yudao.module.wms.controller.admin.order.check.vo.order.WmsChec
17 17 import cn.iocoder.yudao.module.wms.controller.admin.order.check.vo.order.WmsCheckOrderSaveReqVO;
18 18 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO;
19 19 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
20   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
21 20 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
22 21 import cn.iocoder.yudao.module.wms.dal.dataobject.order.check.WmsCheckOrderDO;
23 22 import cn.iocoder.yudao.module.wms.dal.dataobject.order.check.WmsCheckOrderDetailDO;
24   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
25 23 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemService;
26 24 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
27   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
28 25 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
29 26 import cn.iocoder.yudao.module.wms.service.order.check.WmsCheckOrderDetailService;
30 27 import cn.iocoder.yudao.module.wms.service.order.check.WmsCheckOrderService;
... ... @@ -63,16 +60,11 @@ public class WmsCheckOrderController {
63 60 @Resource
64 61 private WmsWarehouseService warehouseService;
65 62 @Resource
66   - private WmsWarehouseAreaService warehouseAreaService;
67   - @Resource
68 63 private WmsItemService itemService;
69 64 @Resource
70 65 private WmsItemSkuService itemSkuService;
71 66  
72 67 @Resource
73   - private WmsProperties wmsProperties;
74   -
75   - @Resource
76 68 private AdminUserApi adminUserApi;
77 69  
78 70 @PostMapping("/create")
... ... @@ -168,17 +160,13 @@ public class WmsCheckOrderController {
168 160 if (CollUtil.isEmpty(list)) {
169 161 return Collections.emptyList();
170 162 }
171   - // 获取相关的仓库、库区、用户等数据
  163 + // 获取相关的仓库、用户等数据
172 164 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(convertSet(list, WmsCheckOrderDO::getWarehouseId));
173   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
174   - ? warehouseAreaService.getWarehouseAreaMap(convertSet(list, WmsCheckOrderDO::getAreaId))
175   - : Collections.emptyMap();
176 165 Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertSetByFlatMap(list,
177 166 order -> Stream.of(parseUserId(order.getCreator()), parseUserId(order.getUpdater()))));
178 167 // 拼接数据
179 168 return BeanUtils.toBean(list, WmsCheckOrderRespVO.class, vo -> {
180 169 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
181   - MapUtils.findAndThen(areaMap, vo.getAreaId(), area -> vo.setAreaName(area.getName()));
182 170 MapUtils.findAndThen(userMap, parseUserId(vo.getCreator()), user -> vo.setCreatorName(user.getNickname()));
183 171 MapUtils.findAndThen(userMap, parseUserId(vo.getUpdater()), user -> vo.setUpdaterName(user.getNickname()));
184 172 });
... ... @@ -192,14 +180,11 @@ public class WmsCheckOrderController {
192 180 if (CollUtil.isEmpty(list)) {
193 181 return Collections.emptyList();
194 182 }
195   - // 获取相关的商品、SKU、仓库、库区等数据
  183 + // 获取相关的商品、SKU、仓库等数据
196 184 Map<Long, WmsItemSkuDO> skuMap = itemSkuService.getItemSkuMap(convertSet(list, WmsCheckOrderDetailDO::getSkuId));
197 185 Map<Long, WmsItemDO> itemMap = itemService.getItemMap(convertSet(skuMap.values(), WmsItemSkuDO::getItemId));
198 186 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(
199 187 convertSet(list, WmsCheckOrderDetailDO::getWarehouseId));
200   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
201   - ? warehouseAreaService.getWarehouseAreaMap(convertSet(list, WmsCheckOrderDetailDO::getAreaId))
202   - : Collections.emptyMap();
203 188 // 拼接数据
204 189 return BeanUtils.toBean(list, WmsCheckOrderDetailRespVO.class, vo -> {
205 190 MapUtils.findAndThen(skuMap, vo.getSkuId(), sku -> {
... ... @@ -208,7 +193,6 @@ public class WmsCheckOrderController {
208 193 .setItemName(item.getName()).setUnit(item.getUnit()));
209 194 });
210 195 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
211   - MapUtils.findAndThen(areaMap, vo.getAreaId(), area -> vo.setAreaName(area.getName()));
212 196 if (vo.getQuantity() != null && vo.getCheckQuantity() != null) {
213 197 vo.setDifferenceQuantity(vo.getCheckQuantity().subtract(vo.getQuantity()));
214 198 } else {
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/WmsCheckOrderDetailController.java
... ... @@ -7,13 +7,10 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 7 import cn.iocoder.yudao.module.wms.controller.admin.order.check.vo.detail.WmsCheckOrderDetailRespVO;
8 8 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO;
9 9 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
10   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
11 10 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
12 11 import cn.iocoder.yudao.module.wms.dal.dataobject.order.check.WmsCheckOrderDetailDO;
13   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
14 12 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemService;
15 13 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
16   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
17 14 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
18 15 import cn.iocoder.yudao.module.wms.service.order.check.WmsCheckOrderDetailService;
19 16 import io.swagger.v3.oas.annotations.Operation;
... ... @@ -49,11 +46,6 @@ public class WmsCheckOrderDetailController {
49 46 private WmsItemSkuService itemSkuService;
50 47 @Resource
51 48 private WmsWarehouseService warehouseService;
52   - @Resource
53   - private WmsWarehouseAreaService warehouseAreaService;
54   -
55   - @Resource
56   - private WmsProperties wmsProperties;
57 49  
58 50 @GetMapping("/list-by-order-id")
59 51 @Operation(summary = "获得盘库单明细列表")
... ... @@ -76,9 +68,6 @@ public class WmsCheckOrderDetailController {
76 68 Map<Long, WmsItemDO> itemMap = itemService.getItemMap(convertSet(skuMap.values(), WmsItemSkuDO::getItemId));
77 69 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(
78 70 convertSet(list, WmsCheckOrderDetailDO::getWarehouseId));
79   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
80   - ? warehouseAreaService.getWarehouseAreaMap(convertSet(list, WmsCheckOrderDetailDO::getAreaId))
81   - : Collections.emptyMap();
82 71 // 拼接数据
83 72 return BeanUtils.toBean(list, WmsCheckOrderDetailRespVO.class, vo -> {
84 73 MapUtils.findAndThen(skuMap, vo.getSkuId(), sku -> {
... ... @@ -87,7 +76,6 @@ public class WmsCheckOrderDetailController {
87 76 .setItemName(item.getName()).setUnit(item.getUnit()));
88 77 });
89 78 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
90   - MapUtils.findAndThen(areaMap, vo.getAreaId(), area -> vo.setAreaName(area.getName()));
91 79 if (vo.getQuantity() != null && vo.getCheckQuantity() != null) {
92 80 vo.setDifferenceQuantity(vo.getCheckQuantity().subtract(vo.getQuantity()));
93 81 } else {
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/vo/detail/WmsCheckOrderDetailRespVO.java
... ... @@ -43,12 +43,6 @@ public class WmsCheckOrderDetailRespVO {
43 43 @Schema(description = "仓库名称", example = "北京仓")
44 44 private String warehouseName;
45 45  
46   - @Schema(description = "库区编号", example = "1024")
47   - private Long areaId;
48   -
49   - @Schema(description = "库区名称", example = "北京库区01")
50   - private String areaName;
51   -
52 46 @Schema(description = "库存编号", example = "1024")
53 47 private Long inventoryId;
54 48  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/vo/detail/WmsCheckOrderDetailSaveReqVO.java
... ... @@ -20,9 +20,6 @@ public class WmsCheckOrderDetailSaveReqVO {
20 20 @NotNull(message = "SKU 不能为空")
21 21 private Long skuId;
22 22  
23   - @Schema(description = "库区编号", example = "1024")
24   - private Long areaId;
25   -
26 23 @Schema(description = "库存编号", example = "1024")
27 24 private Long inventoryId;
28 25  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/vo/order/WmsCheckOrderPageReqVO.java
... ... @@ -30,9 +30,6 @@ public class WmsCheckOrderPageReqVO extends PageParam {
30 30 @Schema(description = "仓库编号", example = "1024")
31 31 private Long warehouseId;
32 32  
33   - @Schema(description = "库区编号", example = "1024")
34   - private Long areaId;
35   -
36 33 @Schema(description = "单据日期")
37 34 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
38 35 private LocalDateTime[] orderDate;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/vo/order/WmsCheckOrderRespVO.java
... ... @@ -40,12 +40,6 @@ public class WmsCheckOrderRespVO {
40 40 @ExcelProperty("仓库")
41 41 private String warehouseName;
42 42  
43   - @Schema(description = "库区编号", example = "1024")
44   - private Long areaId;
45   -
46   - @Schema(description = "库区名称", example = "北京库区01")
47   - private String areaName;
48   -
49 43 @Schema(description = "盈亏数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
50 44 @ExcelProperty("盈亏数量")
51 45 private BigDecimal totalQuantity;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/vo/order/WmsCheckOrderSaveReqVO.java
... ... @@ -31,9 +31,6 @@ public class WmsCheckOrderSaveReqVO {
31 31 @NotNull(message = "仓库不能为空")
32 32 private Long warehouseId;
33 33  
34   - @Schema(description = "库区编号", example = "1024")
35   - private Long areaId;
36   -
37 34 @Schema(description = "盈亏数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
38 35 @NotNull(message = "盈亏数量不能为空")
39 36 private BigDecimal totalQuantity;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/movement/WmsMovementOrderController.java
... ... @@ -17,14 +17,11 @@ import cn.iocoder.yudao.module.wms.controller.admin.order.movement.vo.order.WmsM
17 17 import cn.iocoder.yudao.module.wms.controller.admin.order.movement.vo.order.WmsMovementOrderSaveReqVO;
18 18 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO;
19 19 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
20   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
21 20 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
22 21 import cn.iocoder.yudao.module.wms.dal.dataobject.order.movement.WmsMovementOrderDO;
23 22 import cn.iocoder.yudao.module.wms.dal.dataobject.order.movement.WmsMovementOrderDetailDO;
24   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
25 23 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemService;
26 24 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
27   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
28 25 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
29 26 import cn.iocoder.yudao.module.wms.service.order.movement.WmsMovementOrderDetailService;
30 27 import cn.iocoder.yudao.module.wms.service.order.movement.WmsMovementOrderService;
... ... @@ -62,16 +59,11 @@ public class WmsMovementOrderController {
62 59 @Resource
63 60 private WmsWarehouseService warehouseService;
64 61 @Resource
65   - private WmsWarehouseAreaService warehouseAreaService;
66   - @Resource
67 62 private WmsItemService itemService;
68 63 @Resource
69 64 private WmsItemSkuService itemSkuService;
70 65  
71 66 @Resource
72   - private WmsProperties wmsProperties;
73   -
74   - @Resource
75 67 private AdminUserApi adminUserApi;
76 68  
77 69 @PostMapping("/create")
... ... @@ -168,13 +160,9 @@ public class WmsMovementOrderController {
168 160 if (CollUtil.isEmpty(list)) {
169 161 return Collections.emptyList();
170 162 }
171   - // 获取相关的仓库、库区、用户等数据
  163 + // 获取相关的仓库、用户等数据
172 164 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(convertSetByFlatMap(list,
173 165 order -> Stream.of(order.getSourceWarehouseId(), order.getTargetWarehouseId())));
174   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
175   - ? warehouseAreaService.getWarehouseAreaMap(convertSetByFlatMap(list,
176   - order -> Stream.of(order.getSourceAreaId(), order.getTargetAreaId())))
177   - : Collections.emptyMap();
178 166 Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertSetByFlatMap(list,
179 167 order -> Stream.of(parseUserId(order.getCreator()), parseUserId(order.getUpdater()))));
180 168 // 拼接数据
... ... @@ -183,8 +171,6 @@ public class WmsMovementOrderController {
183 171 warehouse -> vo.setSourceWarehouseName(warehouse.getName()));
184 172 MapUtils.findAndThen(warehouseMap, vo.getTargetWarehouseId(),
185 173 warehouse -> vo.setTargetWarehouseName(warehouse.getName()));
186   - MapUtils.findAndThen(areaMap, vo.getSourceAreaId(), area -> vo.setSourceAreaName(area.getName()));
187   - MapUtils.findAndThen(areaMap, vo.getTargetAreaId(), area -> vo.setTargetAreaName(area.getName()));
188 174 MapUtils.findAndThen(userMap, parseUserId(vo.getCreator()), user -> vo.setCreatorName(user.getNickname()));
189 175 MapUtils.findAndThen(userMap, parseUserId(vo.getUpdater()), user -> vo.setUpdaterName(user.getNickname()));
190 176 });
... ... @@ -198,15 +184,11 @@ public class WmsMovementOrderController {
198 184 if (CollUtil.isEmpty(list)) {
199 185 return Collections.emptyList();
200 186 }
201   - // 获取相关的商品、SKU、仓库、库区等数据
  187 + // 获取相关的商品、SKU、仓库等数据
202 188 Map<Long, WmsItemSkuDO> skuMap = itemSkuService.getItemSkuMap(convertSet(list, WmsMovementOrderDetailDO::getSkuId));
203 189 Map<Long, WmsItemDO> itemMap = itemService.getItemMap(convertSet(skuMap.values(), WmsItemSkuDO::getItemId));
204 190 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(convertSetByFlatMap(list,
205 191 detail -> Stream.of(detail.getSourceWarehouseId(), detail.getTargetWarehouseId())));
206   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
207   - ? warehouseAreaService.getWarehouseAreaMap(convertSetByFlatMap(list,
208   - detail -> Stream.of(detail.getSourceAreaId(), detail.getTargetAreaId())))
209   - : Collections.emptyMap();
210 192 // 拼接数据
211 193 return BeanUtils.toBean(list, WmsMovementOrderDetailRespVO.class, vo -> {
212 194 MapUtils.findAndThen(skuMap, vo.getSkuId(), sku -> {
... ... @@ -218,8 +200,6 @@ public class WmsMovementOrderController {
218 200 warehouse -> vo.setSourceWarehouseName(warehouse.getName()));
219 201 MapUtils.findAndThen(warehouseMap, vo.getTargetWarehouseId(),
220 202 warehouse -> vo.setTargetWarehouseName(warehouse.getName()));
221   - MapUtils.findAndThen(areaMap, vo.getSourceAreaId(), area -> vo.setSourceAreaName(area.getName()));
222   - MapUtils.findAndThen(areaMap, vo.getTargetAreaId(), area -> vo.setTargetAreaName(area.getName()));
223 203 });
224 204 }
225 205  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/movement/WmsMovementOrderDetailController.java
... ... @@ -7,13 +7,10 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 7 import cn.iocoder.yudao.module.wms.controller.admin.order.movement.vo.detail.WmsMovementOrderDetailRespVO;
8 8 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO;
9 9 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
10   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
11 10 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
12 11 import cn.iocoder.yudao.module.wms.dal.dataobject.order.movement.WmsMovementOrderDetailDO;
13   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
14 12 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemService;
15 13 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
16   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
17 14 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
18 15 import cn.iocoder.yudao.module.wms.service.order.movement.WmsMovementOrderDetailService;
19 16 import io.swagger.v3.oas.annotations.Operation;
... ... @@ -50,11 +47,6 @@ public class WmsMovementOrderDetailController {
50 47 private WmsItemSkuService itemSkuService;
51 48 @Resource
52 49 private WmsWarehouseService warehouseService;
53   - @Resource
54   - private WmsWarehouseAreaService warehouseAreaService;
55   -
56   - @Resource
57   - private WmsProperties wmsProperties;
58 50  
59 51 @GetMapping("/list-by-order-id")
60 52 @Operation(summary = "获得移库单明细列表")
... ... @@ -77,10 +69,6 @@ public class WmsMovementOrderDetailController {
77 69 Map<Long, WmsItemDO> itemMap = itemService.getItemMap(convertSet(skuMap.values(), WmsItemSkuDO::getItemId));
78 70 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(convertSetByFlatMap(list,
79 71 detail -> Stream.of(detail.getSourceWarehouseId(), detail.getTargetWarehouseId())));
80   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
81   - ? warehouseAreaService.getWarehouseAreaMap(convertSetByFlatMap(list,
82   - detail -> Stream.of(detail.getSourceAreaId(), detail.getTargetAreaId())))
83   - : Collections.emptyMap();
84 72 // 拼接数据
85 73 return BeanUtils.toBean(list, WmsMovementOrderDetailRespVO.class, vo -> {
86 74 MapUtils.findAndThen(skuMap, vo.getSkuId(), sku -> {
... ... @@ -92,8 +80,6 @@ public class WmsMovementOrderDetailController {
92 80 warehouse -> vo.setSourceWarehouseName(warehouse.getName()));
93 81 MapUtils.findAndThen(warehouseMap, vo.getTargetWarehouseId(),
94 82 warehouse -> vo.setTargetWarehouseName(warehouse.getName()));
95   - MapUtils.findAndThen(areaMap, vo.getSourceAreaId(), area -> vo.setSourceAreaName(area.getName()));
96   - MapUtils.findAndThen(areaMap, vo.getTargetAreaId(), area -> vo.setTargetAreaName(area.getName()));
97 83 });
98 84 }
99 85  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/movement/vo/detail/WmsMovementOrderDetailRespVO.java
... ... @@ -43,24 +43,12 @@ public class WmsMovementOrderDetailRespVO {
43 43 @Schema(description = "来源仓库名称", example = "北京仓")
44 44 private String sourceWarehouseName;
45 45  
46   - @Schema(description = "来源库区编号", example = "1024")
47   - private Long sourceAreaId;
48   -
49   - @Schema(description = "来源库区名称", example = "北京库区01")
50   - private String sourceAreaName;
51   -
52 46 @Schema(description = "目标仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")
53 47 private Long targetWarehouseId;
54 48  
55 49 @Schema(description = "目标仓库名称", example = "上海仓")
56 50 private String targetWarehouseName;
57 51  
58   - @Schema(description = "目标库区编号", example = "2048")
59   - private Long targetAreaId;
60   -
61   - @Schema(description = "目标库区名称", example = "上海库区01")
62   - private String targetAreaName;
63   -
64 52 @Schema(description = "批号", example = "B202605110001")
65 53 private String batchNo;
66 54  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/movement/vo/detail/WmsMovementOrderDetailSaveReqVO.java
... ... @@ -20,12 +20,6 @@ public class WmsMovementOrderDetailSaveReqVO {
20 20 @NotNull(message = "SKU 不能为空")
21 21 private Long skuId;
22 22  
23   - @Schema(description = "来源库区编号", example = "1024")
24   - private Long sourceAreaId;
25   -
26   - @Schema(description = "目标库区编号", example = "2048")
27   - private Long targetAreaId;
28   -
29 23 @Schema(description = "批号", example = "B202605110001")
30 24 @Size(max = 64, message = "批号长度不能超过 64 个字符")
31 25 private String batchNo;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/movement/vo/order/WmsMovementOrderRespVO.java
... ... @@ -40,12 +40,6 @@ public class WmsMovementOrderRespVO {
40 40 @ExcelProperty("来源仓库")
41 41 private String sourceWarehouseName;
42 42  
43   - @Schema(description = "来源库区编号", example = "1024")
44   - private Long sourceAreaId;
45   -
46   - @Schema(description = "来源库区名称", example = "北京库区01")
47   - private String sourceAreaName;
48   -
49 43 @Schema(description = "目标仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")
50 44 private Long targetWarehouseId;
51 45  
... ... @@ -53,12 +47,6 @@ public class WmsMovementOrderRespVO {
53 47 @ExcelProperty("目标仓库")
54 48 private String targetWarehouseName;
55 49  
56   - @Schema(description = "目标库区编号", example = "2048")
57   - private Long targetAreaId;
58   -
59   - @Schema(description = "目标库区名称", example = "上海库区01")
60   - private String targetAreaName;
61   -
62 50 @Schema(description = "移库数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
63 51 @ExcelProperty("移库数量")
64 52 private BigDecimal totalQuantity;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/movement/vo/order/WmsMovementOrderSaveReqVO.java
... ... @@ -31,16 +31,10 @@ public class WmsMovementOrderSaveReqVO {
31 31 @NotNull(message = "来源仓库不能为空")
32 32 private Long sourceWarehouseId;
33 33  
34   - @Schema(description = "来源库区编号", example = "1024")
35   - private Long sourceAreaId;
36   -
37 34 @Schema(description = "目标仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")
38 35 @NotNull(message = "目标仓库不能为空")
39 36 private Long targetWarehouseId;
40 37  
41   - @Schema(description = "目标库区编号", example = "2048")
42   - private Long targetAreaId;
43   -
44 38 @Schema(description = "移库数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
45 39 @NotNull(message = "移库数量不能为空")
46 40 private BigDecimal totalQuantity;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/receipt/WmsReceiptOrderController.java
... ... @@ -18,15 +18,12 @@ import cn.iocoder.yudao.module.wms.controller.admin.order.receipt.vo.order.WmsRe
18 18 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO;
19 19 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
20 20 import cn.iocoder.yudao.module.wms.dal.dataobject.md.merchant.WmsMerchantDO;
21   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
22 21 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
23 22 import cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt.WmsReceiptOrderDO;
24 23 import cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt.WmsReceiptOrderDetailDO;
25   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
26 24 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemService;
27 25 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
28 26 import cn.iocoder.yudao.module.wms.service.md.merchant.WmsMerchantService;
29   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
30 27 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
31 28 import cn.iocoder.yudao.module.wms.service.order.receipt.WmsReceiptOrderDetailService;
32 29 import cn.iocoder.yudao.module.wms.service.order.receipt.WmsReceiptOrderService;
... ... @@ -66,16 +63,11 @@ public class WmsReceiptOrderController {
66 63 @Resource
67 64 private WmsWarehouseService warehouseService;
68 65 @Resource
69   - private WmsWarehouseAreaService warehouseAreaService;
70   - @Resource
71 66 private WmsItemService itemService;
72 67 @Resource
73 68 private WmsItemSkuService itemSkuService;
74 69  
75 70 @Resource
76   - private WmsProperties wmsProperties;
77   -
78   - @Resource
79 71 private AdminUserApi adminUserApi;
80 72  
81 73 @PostMapping("/create")
... ... @@ -171,19 +163,15 @@ public class WmsReceiptOrderController {
171 163 if (CollUtil.isEmpty(list)) {
172 164 return Collections.emptyList();
173 165 }
174   - // 获取相关的商户、仓库、库区、用户等数据
  166 + // 获取相关的商户、仓库、用户等数据
175 167 Map<Long, WmsMerchantDO> merchantMap = merchantService.getMerchantMap(convertSet(list, WmsReceiptOrderDO::getMerchantId));
176 168 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(convertSet(list, WmsReceiptOrderDO::getWarehouseId));
177   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
178   - ? warehouseAreaService.getWarehouseAreaMap(convertSet(list, WmsReceiptOrderDO::getAreaId))
179   - : Collections.emptyMap();
180 169 Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertSetByFlatMap(list,
181 170 order -> Stream.of(parseUserId(order.getCreator()), parseUserId(order.getUpdater()))));
182 171 // 拼接数据
183 172 return BeanUtils.toBean(list, WmsReceiptOrderRespVO.class, vo -> {
184 173 MapUtils.findAndThen(merchantMap, vo.getMerchantId(), merchant -> vo.setMerchantName(merchant.getName()));
185 174 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
186   - MapUtils.findAndThen(areaMap, vo.getAreaId(), area -> vo.setAreaName(area.getName()));
187 175 MapUtils.findAndThen(userMap, parseUserId(vo.getCreator()), user -> vo.setCreatorName(user.getNickname()));
188 176 MapUtils.findAndThen(userMap, parseUserId(vo.getUpdater()), user -> vo.setUpdaterName(user.getNickname()));
189 177 });
... ... @@ -197,14 +185,11 @@ public class WmsReceiptOrderController {
197 185 if (CollUtil.isEmpty(list)) {
198 186 return Collections.emptyList();
199 187 }
200   - // 获取相关的商品、SKU、仓库、库区等数据
  188 + // 获取相关的商品、SKU、仓库等数据
201 189 Map<Long, WmsItemSkuDO> skuMap = itemSkuService.getItemSkuMap(convertSet(list, WmsReceiptOrderDetailDO::getSkuId));
202 190 Map<Long, WmsItemDO> itemMap = itemService.getItemMap(convertSet(skuMap.values(), WmsItemSkuDO::getItemId));
203 191 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(
204 192 convertSet(list, WmsReceiptOrderDetailDO::getWarehouseId));
205   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
206   - ? warehouseAreaService.getWarehouseAreaMap(convertSet(list, WmsReceiptOrderDetailDO::getAreaId))
207   - : Collections.emptyMap();
208 193 // 拼接数据
209 194 return BeanUtils.toBean(list, WmsReceiptOrderDetailRespVO.class, vo -> {
210 195 MapUtils.findAndThen(skuMap, vo.getSkuId(), sku -> {
... ... @@ -213,7 +198,6 @@ public class WmsReceiptOrderController {
213 198 .setItemName(item.getName()).setUnit(item.getUnit()));
214 199 });
215 200 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
216   - MapUtils.findAndThen(areaMap, vo.getAreaId(), area -> vo.setAreaName(area.getName()));
217 201 });
218 202 }
219 203  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/receipt/WmsReceiptOrderDetailController.java
... ... @@ -7,13 +7,10 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 7 import cn.iocoder.yudao.module.wms.controller.admin.order.receipt.vo.detail.WmsReceiptOrderDetailRespVO;
8 8 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO;
9 9 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
10   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
11 10 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
12 11 import cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt.WmsReceiptOrderDetailDO;
13   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
14 12 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemService;
15 13 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
16   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
17 14 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
18 15 import cn.iocoder.yudao.module.wms.service.order.receipt.WmsReceiptOrderDetailService;
19 16 import io.swagger.v3.oas.annotations.Operation;
... ... @@ -48,11 +45,6 @@ public class WmsReceiptOrderDetailController {
48 45 private WmsItemSkuService itemSkuService;
49 46 @Resource
50 47 private WmsWarehouseService warehouseService;
51   - @Resource
52   - private WmsWarehouseAreaService warehouseAreaService;
53   -
54   - @Resource
55   - private WmsProperties wmsProperties;
56 48  
57 49 @GetMapping("/list-by-order-id")
58 50 @Operation(summary = "获得入库单明细列表")
... ... @@ -75,9 +67,6 @@ public class WmsReceiptOrderDetailController {
75 67 Map<Long, WmsItemDO> itemMap = itemService.getItemMap(convertSet(skuMap.values(), WmsItemSkuDO::getItemId));
76 68 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(
77 69 convertSet(list, WmsReceiptOrderDetailDO::getWarehouseId));
78   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
79   - ? warehouseAreaService.getWarehouseAreaMap(convertSet(list, WmsReceiptOrderDetailDO::getAreaId))
80   - : Collections.emptyMap();
81 70 // 拼接数据
82 71 return BeanUtils.toBean(list, WmsReceiptOrderDetailRespVO.class, vo -> {
83 72 MapUtils.findAndThen(skuMap, vo.getSkuId(), sku -> {
... ... @@ -86,7 +75,6 @@ public class WmsReceiptOrderDetailController {
86 75 .setItemName(item.getName()).setUnit(item.getUnit()));
87 76 });
88 77 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
89   - MapUtils.findAndThen(areaMap, vo.getAreaId(), area -> vo.setAreaName(area.getName()));
90 78 });
91 79 }
92 80  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/receipt/vo/detail/WmsReceiptOrderDetailRespVO.java
... ... @@ -43,12 +43,6 @@ public class WmsReceiptOrderDetailRespVO {
43 43 @Schema(description = "仓库名称", example = "北京仓")
44 44 private String warehouseName;
45 45  
46   - @Schema(description = "库区编号", example = "1024")
47   - private Long areaId;
48   -
49   - @Schema(description = "库区名称", example = "北京库区01")
50   - private String areaName;
51   -
52 46 @Schema(description = "批号", example = "B202605110001")
53 47 private String batchNo;
54 48  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/receipt/vo/detail/WmsReceiptOrderDetailSaveReqVO.java
... ... @@ -20,9 +20,6 @@ public class WmsReceiptOrderDetailSaveReqVO {
20 20 @NotNull(message = "SKU 不能为空")
21 21 private Long skuId;
22 22  
23   - @Schema(description = "库区编号", example = "1024")
24   - private Long areaId;
25   -
26 23 @Schema(description = "批号", example = "B202605110001")
27 24 @Size(max = 64, message = "批号长度不能超过 64 个字符")
28 25 private String batchNo;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/receipt/vo/order/WmsReceiptOrderRespVO.java
... ... @@ -56,12 +56,6 @@ public class WmsReceiptOrderRespVO {
56 56 @ExcelProperty("仓库")
57 57 private String warehouseName;
58 58  
59   - @Schema(description = "库区编号", example = "1024")
60   - private Long areaId;
61   -
62   - @Schema(description = "库区名称", example = "北京库区01")
63   - private String areaName;
64   -
65 59 @Schema(description = "入库数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
66 60 @ExcelProperty("入库数量")
67 61 private BigDecimal totalQuantity;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/receipt/vo/order/WmsReceiptOrderSaveReqVO.java
... ... @@ -45,9 +45,6 @@ public class WmsReceiptOrderSaveReqVO {
45 45 @NotNull(message = "仓库不能为空")
46 46 private Long warehouseId;
47 47  
48   - @Schema(description = "库区编号", example = "1024")
49   - private Long areaId;
50   -
51 48 @Schema(description = "入库数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
52 49 @NotNull(message = "入库数量不能为空")
53 50 private BigDecimal totalQuantity;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/shipment/WmsShipmentOrderController.java
... ... @@ -18,15 +18,12 @@ import cn.iocoder.yudao.module.wms.controller.admin.order.shipment.vo.order.WmsS
18 18 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO;
19 19 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
20 20 import cn.iocoder.yudao.module.wms.dal.dataobject.md.merchant.WmsMerchantDO;
21   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
22 21 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
23 22 import cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment.WmsShipmentOrderDO;
24 23 import cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment.WmsShipmentOrderDetailDO;
25   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
26 24 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemService;
27 25 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
28 26 import cn.iocoder.yudao.module.wms.service.md.merchant.WmsMerchantService;
29   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
30 27 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
31 28 import cn.iocoder.yudao.module.wms.service.order.shipment.WmsShipmentOrderDetailService;
32 29 import cn.iocoder.yudao.module.wms.service.order.shipment.WmsShipmentOrderService;
... ... @@ -66,16 +63,11 @@ public class WmsShipmentOrderController {
66 63 @Resource
67 64 private WmsWarehouseService warehouseService;
68 65 @Resource
69   - private WmsWarehouseAreaService warehouseAreaService;
70   - @Resource
71 66 private WmsItemService itemService;
72 67 @Resource
73 68 private WmsItemSkuService itemSkuService;
74 69  
75 70 @Resource
76   - private WmsProperties wmsProperties;
77   -
78   - @Resource
79 71 private AdminUserApi adminUserApi;
80 72  
81 73 @PostMapping("/create")
... ... @@ -171,19 +163,15 @@ public class WmsShipmentOrderController {
171 163 if (CollUtil.isEmpty(list)) {
172 164 return Collections.emptyList();
173 165 }
174   - // 获取相关的商户、仓库、库区、用户等数据
  166 + // 获取相关的商户、仓库、用户等数据
175 167 Map<Long, WmsMerchantDO> merchantMap = merchantService.getMerchantMap(convertSet(list, WmsShipmentOrderDO::getMerchantId));
176 168 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(convertSet(list, WmsShipmentOrderDO::getWarehouseId));
177   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
178   - ? warehouseAreaService.getWarehouseAreaMap(convertSet(list, WmsShipmentOrderDO::getAreaId))
179   - : Collections.emptyMap();
180 169 Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertSetByFlatMap(list,
181 170 order -> Stream.of(parseUserId(order.getCreator()), parseUserId(order.getUpdater()))));
182 171 // 拼接数据
183 172 return BeanUtils.toBean(list, WmsShipmentOrderRespVO.class, vo -> {
184 173 MapUtils.findAndThen(merchantMap, vo.getMerchantId(), merchant -> vo.setMerchantName(merchant.getName()));
185 174 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
186   - MapUtils.findAndThen(areaMap, vo.getAreaId(), area -> vo.setAreaName(area.getName()));
187 175 MapUtils.findAndThen(userMap, parseUserId(vo.getCreator()), user -> vo.setCreatorName(user.getNickname()));
188 176 MapUtils.findAndThen(userMap, parseUserId(vo.getUpdater()), user -> vo.setUpdaterName(user.getNickname()));
189 177 });
... ... @@ -197,14 +185,11 @@ public class WmsShipmentOrderController {
197 185 if (CollUtil.isEmpty(list)) {
198 186 return Collections.emptyList();
199 187 }
200   - // 获取相关的商品、SKU、仓库、库区等数据
  188 + // 获取相关的商品、SKU、仓库等数据
201 189 Map<Long, WmsItemSkuDO> skuMap = itemSkuService.getItemSkuMap(convertSet(list, WmsShipmentOrderDetailDO::getSkuId));
202 190 Map<Long, WmsItemDO> itemMap = itemService.getItemMap(convertSet(skuMap.values(), WmsItemSkuDO::getItemId));
203 191 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(
204 192 convertSet(list, WmsShipmentOrderDetailDO::getWarehouseId));
205   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
206   - ? warehouseAreaService.getWarehouseAreaMap(convertSet(list, WmsShipmentOrderDetailDO::getAreaId))
207   - : Collections.emptyMap();
208 193 // 拼接数据
209 194 return BeanUtils.toBean(list, WmsShipmentOrderDetailRespVO.class, vo -> {
210 195 MapUtils.findAndThen(skuMap, vo.getSkuId(), sku -> {
... ... @@ -213,7 +198,6 @@ public class WmsShipmentOrderController {
213 198 .setItemName(item.getName()).setUnit(item.getUnit()));
214 199 });
215 200 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
216   - MapUtils.findAndThen(areaMap, vo.getAreaId(), area -> vo.setAreaName(area.getName()));
217 201 });
218 202 }
219 203  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/shipment/WmsShipmentOrderDetailController.java
... ... @@ -7,13 +7,10 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 7 import cn.iocoder.yudao.module.wms.controller.admin.order.shipment.vo.detail.WmsShipmentOrderDetailRespVO;
8 8 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO;
9 9 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
10   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
11 10 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
12 11 import cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment.WmsShipmentOrderDetailDO;
13   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
14 12 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemService;
15 13 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
16   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
17 14 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
18 15 import cn.iocoder.yudao.module.wms.service.order.shipment.WmsShipmentOrderDetailService;
19 16 import io.swagger.v3.oas.annotations.Operation;
... ... @@ -48,11 +45,6 @@ public class WmsShipmentOrderDetailController {
48 45 private WmsItemSkuService itemSkuService;
49 46 @Resource
50 47 private WmsWarehouseService warehouseService;
51   - @Resource
52   - private WmsWarehouseAreaService warehouseAreaService;
53   -
54   - @Resource
55   - private WmsProperties wmsProperties;
56 48  
57 49 @GetMapping("/list-by-order-id")
58 50 @Operation(summary = "获得出库单明细列表")
... ... @@ -75,9 +67,6 @@ public class WmsShipmentOrderDetailController {
75 67 Map<Long, WmsItemDO> itemMap = itemService.getItemMap(convertSet(skuMap.values(), WmsItemSkuDO::getItemId));
76 68 Map<Long, WmsWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(
77 69 convertSet(list, WmsShipmentOrderDetailDO::getWarehouseId));
78   - Map<Long, WmsWarehouseAreaDO> areaMap = wmsProperties.isAreaEnabled()
79   - ? warehouseAreaService.getWarehouseAreaMap(convertSet(list, WmsShipmentOrderDetailDO::getAreaId))
80   - : Collections.emptyMap();
81 70 // 拼接数据
82 71 return BeanUtils.toBean(list, WmsShipmentOrderDetailRespVO.class, vo -> {
83 72 MapUtils.findAndThen(skuMap, vo.getSkuId(), sku -> {
... ... @@ -86,7 +75,6 @@ public class WmsShipmentOrderDetailController {
86 75 .setItemName(item.getName()).setUnit(item.getUnit()));
87 76 });
88 77 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
89   - MapUtils.findAndThen(areaMap, vo.getAreaId(), area -> vo.setAreaName(area.getName()));
90 78 });
91 79 }
92 80  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/shipment/vo/detail/WmsShipmentOrderDetailRespVO.java
... ... @@ -43,12 +43,6 @@ public class WmsShipmentOrderDetailRespVO {
43 43 @Schema(description = "仓库名称", example = "北京仓")
44 44 private String warehouseName;
45 45  
46   - @Schema(description = "库区编号", example = "1024")
47   - private Long areaId;
48   -
49   - @Schema(description = "库区名称", example = "北京库区01")
50   - private String areaName;
51   -
52 46 @Schema(description = "批号", example = "B202605110001")
53 47 private String batchNo;
54 48  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/shipment/vo/detail/WmsShipmentOrderDetailSaveReqVO.java
... ... @@ -20,9 +20,6 @@ public class WmsShipmentOrderDetailSaveReqVO {
20 20 @NotNull(message = "SKU 不能为空")
21 21 private Long skuId;
22 22  
23   - @Schema(description = "库区编号", example = "1024")
24   - private Long areaId;
25   -
26 23 @Schema(description = "批号", example = "B202605110001")
27 24 @Size(max = 64, message = "批号长度不能超过 64 个字符")
28 25 private String batchNo;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/shipment/vo/order/WmsShipmentOrderRespVO.java
... ... @@ -56,12 +56,6 @@ public class WmsShipmentOrderRespVO {
56 56 @ExcelProperty("仓库")
57 57 private String warehouseName;
58 58  
59   - @Schema(description = "库区编号", example = "1024")
60   - private Long areaId;
61   -
62   - @Schema(description = "库区名称", example = "北京库区01")
63   - private String areaName;
64   -
65 59 @Schema(description = "出库数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
66 60 @ExcelProperty("出库数量")
67 61 private BigDecimal totalQuantity;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/shipment/vo/order/WmsShipmentOrderSaveReqVO.java
... ... @@ -45,9 +45,6 @@ public class WmsShipmentOrderSaveReqVO {
45 45 @NotNull(message = "仓库不能为空")
46 46 private Long warehouseId;
47 47  
48   - @Schema(description = "库区编号", example = "1024")
49   - private Long areaId;
50   -
51 48 @Schema(description = "出库数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
52 49 @NotNull(message = "出库数量不能为空")
53 50 private BigDecimal totalQuantity;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/inventory/WmsInventoryDO.java
... ... @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.wms.dal.dataobject.inventory;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 4 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
5   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
6 5 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
7 6 import com.baomidou.mybatisplus.annotation.KeySequence;
8 7 import com.baomidou.mybatisplus.annotation.TableId;
... ... @@ -44,12 +43,6 @@ public class WmsInventoryDO extends BaseDO {
44 43 */
45 44 private Long warehouseId;
46 45 /**
47   - * 库区编号
48   - *
49   - * 关联 {@link WmsWarehouseAreaDO#getId()}
50   - */
51   - private Long areaId;
52   - /**
53 46 * 库存数量
54 47 */
55 48 private BigDecimal quantity;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/inventory/WmsInventoryHistoryDO.java
... ... @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.wms.dal.dataobject.inventory;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 4 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
5   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
6 5 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
7 6 import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum;
8 7 import com.baomidou.mybatisplus.annotation.KeySequence;
... ... @@ -43,12 +42,6 @@ public class WmsInventoryHistoryDO extends BaseDO {
43 42 */
44 43 private Long warehouseId;
45 44 /**
46   - * 库区编号
47   - *
48   - * 关联 {@link WmsWarehouseAreaDO#getId()}
49   - */
50   - private Long areaId;
51   - /**
52 45 * 商品 SKU 编号
53 46 *
54 47 * 关联 {@link WmsItemSkuDO#getId()}
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/warehouse/WmsWarehouseAreaDO.java deleted
1   -package cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse;
2   -
3   -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4   -import com.baomidou.mybatisplus.annotation.KeySequence;
5   -import com.baomidou.mybatisplus.annotation.TableId;
6   -import com.baomidou.mybatisplus.annotation.TableName;
7   -import lombok.*;
8   -
9   -/**
10   - * WMS 库区 DO
11   - *
12   - * @author 芋道源码
13   - */
14   -@TableName("wms_warehouse_area")
15   -@KeySequence("wms_warehouse_area_seq")
16   -@Data
17   -@EqualsAndHashCode(callSuper = true)
18   -@ToString(callSuper = true)
19   -@Builder
20   -@NoArgsConstructor
21   -@AllArgsConstructor
22   -public class WmsWarehouseAreaDO extends BaseDO {
23   -
24   - /**
25   - * 空库区编号
26   - */
27   - public static final Long ID_EMPTY = 0L;
28   -
29   - /**
30   - * 主键编号
31   - */
32   - @TableId
33   - private Long id;
34   - /**
35   - * 库区编号
36   - */
37   - private String code;
38   - /**
39   - * 名称
40   - */
41   - private String name;
42   - /**
43   - * 所属仓库编号
44   - *
45   - * 关联 {@link WmsWarehouseDO#getId()}
46   - */
47   - private Long warehouseId;
48   - /**
49   - * 备注
50   - */
51   - private String remark;
52   -
53   -}
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/order/check/WmsCheckOrderDO.java
1 1 package cn.iocoder.yudao.module.wms.dal.dataobject.order.check;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
5 4 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
6 5 import cn.iocoder.yudao.module.wms.enums.DictTypeConstants;
7 6 import com.baomidou.mybatisplus.annotation.KeySequence;
... ... @@ -46,7 +45,7 @@ public class WmsCheckOrderDO extends BaseDO {
46 45 */
47 46 private String remark;
48 47  
49   - // ========= 仓库库区字段 =========
  48 + // ========= 仓库字段 =========
50 49  
51 50 /**
52 51 * 仓库编号
... ... @@ -54,12 +53,6 @@ public class WmsCheckOrderDO extends BaseDO {
54 53 * 关联 {@link WmsWarehouseDO#getId()}
55 54 */
56 55 private Long warehouseId;
57   - /**
58   - * 库区编号
59   - *
60   - * 关联 {@link WmsWarehouseAreaDO#getId()}
61   - */
62   - private Long areaId;
63 56  
64 57 // ========= 汇总金额字段 =========
65 58  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/order/check/WmsCheckOrderDetailDO.java
... ... @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.wms.dal.dataobject.order.check;
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 4 import cn.iocoder.yudao.module.wms.dal.dataobject.inventory.WmsInventoryDO;
5 5 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
6   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
7 6 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
8 7 import com.baomidou.mybatisplus.annotation.KeySequence;
9 8 import com.baomidou.mybatisplus.annotation.TableId;
... ... @@ -53,7 +52,7 @@ public class WmsCheckOrderDetailDO extends BaseDO {
53 52 */
54 53 private Long skuId;
55 54  
56   - // ========= 仓库库区字段 =========
  55 + // ========= 仓库字段 =========
57 56  
58 57 /**
59 58 * 仓库编号
... ... @@ -62,12 +61,6 @@ public class WmsCheckOrderDetailDO extends BaseDO {
62 61 */
63 62 private Long warehouseId;
64 63 /**
65   - * 库区编号
66   - *
67   - * 关联 {@link WmsWarehouseAreaDO#getId()}
68   - */
69   - private Long areaId;
70   - /**
71 64 * 库存编号
72 65 *
73 66 * 关联 {@link WmsInventoryDO#getId()}
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/order/movement/WmsMovementOrderDO.java
1 1 package cn.iocoder.yudao.module.wms.dal.dataobject.order.movement;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
5 4 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
6 5 import cn.iocoder.yudao.module.wms.enums.DictTypeConstants;
7 6 import com.baomidou.mybatisplus.annotation.KeySequence;
... ... @@ -46,7 +45,7 @@ public class WmsMovementOrderDO extends BaseDO {
46 45 */
47 46 private String remark;
48 47  
49   - // ========= 来源仓库库区字段 =========
  48 + // ========= 来源仓库字段 =========
50 49  
51 50 /**
52 51 * 来源仓库编号
... ... @@ -54,14 +53,8 @@ public class WmsMovementOrderDO extends BaseDO {
54 53 * 关联 {@link WmsWarehouseDO#getId()}
55 54 */
56 55 private Long sourceWarehouseId;
57   - /**
58   - * 来源库区编号
59   - *
60   - * 关联 {@link WmsWarehouseAreaDO#getId()}
61   - */
62   - private Long sourceAreaId;
63 56  
64   - // ========= 目标仓库库区字段 =========
  57 + // ========= 目标仓库字段 =========
65 58  
66 59 /**
67 60 * 目标仓库编号
... ... @@ -69,12 +62,6 @@ public class WmsMovementOrderDO extends BaseDO {
69 62 * 关联 {@link WmsWarehouseDO#getId()}
70 63 */
71 64 private Long targetWarehouseId;
72   - /**
73   - * 目标库区编号
74   - *
75   - * 关联 {@link WmsWarehouseAreaDO#getId()}
76   - */
77   - private Long targetAreaId;
78 65  
79 66 // ========= 汇总金额字段 =========
80 67  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/order/movement/WmsMovementOrderDetailDO.java
... ... @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.wms.dal.dataobject.order.movement;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 4 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
5   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
6 5 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
7 6 import com.baomidou.mybatisplus.annotation.KeySequence;
8 7 import com.baomidou.mybatisplus.annotation.TableId;
... ... @@ -52,7 +51,7 @@ public class WmsMovementOrderDetailDO extends BaseDO {
52 51 */
53 52 private Long skuId;
54 53  
55   - // ========= 来源仓库库区字段 =========
  54 + // ========= 来源仓库字段 =========
56 55  
57 56 /**
58 57 * 来源仓库编号
... ... @@ -60,14 +59,8 @@ public class WmsMovementOrderDetailDO extends BaseDO {
60 59 * 关联 {@link WmsWarehouseDO#getId()}
61 60 */
62 61 private Long sourceWarehouseId;
63   - /**
64   - * 来源库区编号
65   - *
66   - * 关联 {@link WmsWarehouseAreaDO#getId()}
67   - */
68   - private Long sourceAreaId;
69 62  
70   - // ========= 目标仓库库区字段 =========
  63 + // ========= 目标仓库字段 =========
71 64  
72 65 /**
73 66 * 目标仓库编号
... ... @@ -75,12 +68,6 @@ public class WmsMovementOrderDetailDO extends BaseDO {
75 68 * 关联 {@link WmsWarehouseDO#getId()}
76 69 */
77 70 private Long targetWarehouseId;
78   - /**
79   - * 目标库区编号
80   - *
81   - * 关联 {@link WmsWarehouseAreaDO#getId()}
82   - */
83   - private Long targetAreaId;
84 71  
85 72 // ========= 批次效期字段 =========
86 73  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/order/receipt/WmsReceiptOrderDO.java
... ... @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 4 import cn.iocoder.yudao.module.wms.dal.dataobject.md.merchant.WmsMerchantDO;
5   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
6 5 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
7 6 import cn.iocoder.yudao.module.wms.enums.DictTypeConstants;
8 7 import cn.iocoder.yudao.module.wms.enums.order.WmsReceiptOrderTypeEnum;
... ... @@ -65,7 +64,7 @@ public class WmsReceiptOrderDO extends BaseDO {
65 64 */
66 65 private String remark;
67 66  
68   - // ========= 仓库库区字段 =========
  67 + // ========= 仓库字段 =========
69 68  
70 69 /**
71 70 * 仓库编号
... ... @@ -73,12 +72,6 @@ public class WmsReceiptOrderDO extends BaseDO {
73 72 * 关联 {@link WmsWarehouseDO#getId()}
74 73 */
75 74 private Long warehouseId;
76   - /**
77   - * 库区编号
78   - *
79   - * 关联 {@link WmsWarehouseAreaDO#getId()}
80   - */
81   - private Long areaId;
82 75  
83 76 // ========= 汇总金额字段 =========
84 77  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/order/receipt/WmsReceiptOrderDetailDO.java
... ... @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 4 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
5   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
6 5 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
7 6 import com.baomidou.mybatisplus.annotation.KeySequence;
8 7 import com.baomidou.mybatisplus.annotation.TableId;
... ... @@ -52,7 +51,7 @@ public class WmsReceiptOrderDetailDO extends BaseDO {
52 51 */
53 52 private Long skuId;
54 53  
55   - // ========= 仓库库区字段 =========
  54 + // ========= 仓库字段 =========
56 55  
57 56 /**
58 57 * 仓库编号
... ... @@ -60,12 +59,6 @@ public class WmsReceiptOrderDetailDO extends BaseDO {
60 59 * 关联 {@link WmsWarehouseDO#getId()}
61 60 */
62 61 private Long warehouseId;
63   - /**
64   - * 库区编号
65   - *
66   - * 关联 {@link WmsWarehouseAreaDO#getId()}
67   - */
68   - private Long areaId;
69 62  
70 63 // ========= 批次效期字段 =========
71 64  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/order/shipment/WmsShipmentOrderDO.java
... ... @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 4 import cn.iocoder.yudao.module.wms.dal.dataobject.md.merchant.WmsMerchantDO;
5   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
6 5 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
7 6 import cn.iocoder.yudao.module.wms.enums.DictTypeConstants;
8 7 import cn.iocoder.yudao.module.wms.enums.order.WmsShipmentOrderTypeEnum;
... ... @@ -65,7 +64,7 @@ public class WmsShipmentOrderDO extends BaseDO {
65 64 */
66 65 private String remark;
67 66  
68   - // ========= 仓库库区字段 =========
  67 + // ========= 仓库字段 =========
69 68  
70 69 /**
71 70 * 仓库编号
... ... @@ -73,12 +72,6 @@ public class WmsShipmentOrderDO extends BaseDO {
73 72 * 关联 {@link WmsWarehouseDO#getId()}
74 73 */
75 74 private Long warehouseId;
76   - /**
77   - * 库区编号
78   - *
79   - * 关联 {@link WmsWarehouseAreaDO#getId()}
80   - */
81   - private Long areaId;
82 75  
83 76 // ========= 汇总金额字段 =========
84 77  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/order/shipment/WmsShipmentOrderDetailDO.java
... ... @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 4 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
5   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
6 5 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
7 6 import com.baomidou.mybatisplus.annotation.KeySequence;
8 7 import com.baomidou.mybatisplus.annotation.TableId;
... ... @@ -52,7 +51,7 @@ public class WmsShipmentOrderDetailDO extends BaseDO {
52 51 */
53 52 private Long skuId;
54 53  
55   - // ========= 仓库库区字段 =========
  54 + // ========= 仓库字段 =========
56 55  
57 56 /**
58 57 * 仓库编号
... ... @@ -60,12 +59,6 @@ public class WmsShipmentOrderDetailDO extends BaseDO {
60 59 * 关联 {@link WmsWarehouseDO#getId()}
61 60 */
62 61 private Long warehouseId;
63   - /**
64   - * 库区编号
65   - *
66   - * 关联 {@link WmsWarehouseAreaDO#getId()}
67   - */
68   - private Long areaId;
69 62  
70 63 // ========= 批次效期字段 =========
71 64  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/inventory/WmsInventoryHistoryMapper.java
... ... @@ -28,7 +28,6 @@ public interface WmsInventoryHistoryMapper extends BaseMapperX&lt;WmsInventoryHisto
28 28 .likeIfPresent(WmsItemSkuDO::getCode, reqVO.getSkuCode())
29 29 .likeIfPresent(WmsItemSkuDO::getName, reqVO.getSkuName())
30 30 .eqIfPresent(WmsInventoryHistoryDO::getWarehouseId, reqVO.getWarehouseId())
31   - .eqIfPresent(WmsInventoryHistoryDO::getAreaId, reqVO.getAreaId())
32 31 .eqIfPresent(WmsInventoryHistoryDO::getOrderNo, reqVO.getOrderNo())
33 32 .eqIfPresent(WmsInventoryHistoryDO::getOrderType, reqVO.getOrderType())
34 33 .betweenIfPresent(WmsInventoryHistoryDO::getCreateTime, reqVO.getCreateTime())
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/inventory/WmsInventoryMapper.java
... ... @@ -35,50 +35,24 @@ public interface WmsInventoryMapper extends BaseMapperX&lt;WmsInventoryDO&gt; {
35 35 .likeIfPresent(WmsItemSkuDO::getCode, reqVO.getSkuCode())
36 36 .likeIfPresent(WmsItemSkuDO::getName, reqVO.getSkuName())
37 37 .eqIfPresent(WmsInventoryDO::getWarehouseId, reqVO.getWarehouseId())
38   - .eqIfPresent(WmsInventoryDO::getAreaId, reqVO.getAreaId())
39 38 .geIfPresent(WmsInventoryDO::getQuantity, reqVO.getMinQuantity());
40 39 appendDimensionOrder(query, reqVO.getType());
41 40 return selectJoinPage(reqVO, WmsInventoryDO.class, query);
42 41 }
43 42  
44   - default PageResult<WmsInventoryDO> selectPageGroupByWarehouse(WmsInventoryPageReqVO reqVO) {
45   - MPJLambdaWrapperX<WmsInventoryDO> query = new MPJLambdaWrapperX<WmsInventoryDO>()
46   - .selectMin(WmsInventoryDO::getId, WmsInventoryDO::getId)
47   - .selectAs(WmsInventoryDO::getWarehouseId, WmsInventoryDO::getWarehouseId)
48   - .selectAs("0", WmsInventoryDO::getAreaId)
49   - .selectAs(WmsInventoryDO::getSkuId, WmsInventoryDO::getSkuId)
50   - .selectSum(WmsInventoryDO::getQuantity, WmsInventoryDO::getQuantity)
51   - .innerJoin(WmsItemSkuDO.class, WmsItemSkuDO::getId, WmsInventoryDO::getSkuId)
52   - .innerJoin(WmsItemDO.class, WmsItemDO::getId, WmsItemSkuDO::getItemId)
53   - .likeIfPresent(WmsItemDO::getCode, reqVO.getItemCode())
54   - .likeIfPresent(WmsItemDO::getName, reqVO.getItemName())
55   - .eqIfPresent(WmsInventoryDO::getSkuId, reqVO.getSkuId())
56   - .likeIfPresent(WmsItemSkuDO::getCode, reqVO.getSkuCode())
57   - .likeIfPresent(WmsItemSkuDO::getName, reqVO.getSkuName())
58   - .eqIfPresent(WmsInventoryDO::getWarehouseId, reqVO.getWarehouseId());
59   - query.groupBy(WmsInventoryDO::getWarehouseId, WmsInventoryDO::getSkuId);
60   - if (reqVO.getMinQuantity() != null) {
61   - query.having("SUM(t.quantity) >= {0}", reqVO.getMinQuantity());
62   - }
63   - query.orderByAsc(WmsInventoryDO::getWarehouseId)
64   - .orderByAsc(WmsInventoryDO::getSkuId);
65   - return selectJoinPage(reqVO, WmsInventoryDO.class, query);
66   - }
67   -
68 43 default Long selectCountBySkuId(Long skuId) {
69 44 return selectCount(WmsInventoryDO::getSkuId, skuId);
70 45 }
71 46  
72   - default WmsInventoryDO selectBySkuIdAndWarehouseIdAndAreaId(Long skuId, Long warehouseId, Long areaId) {
  47 + default WmsInventoryDO selectBySkuIdAndWarehouseId(Long skuId, Long warehouseId) {
73 48 return selectOne(WmsInventoryDO::getSkuId, skuId,
74   - WmsInventoryDO::getWarehouseId, warehouseId,
75   - WmsInventoryDO::getAreaId, areaId);
  49 + WmsInventoryDO::getWarehouseId, warehouseId);
76 50 }
77 51  
78 52 /**
79 53 * 根据多个唯一键,批量查询库存列表
80 54 *
81   - * @param keys 唯一键列表:由 SKU 编号 + 仓库编号 + 库区编号组成
  55 + * @param keys 唯一键列表:由 SKU 编号 + 仓库编号组成
82 56 * @return 库存列表
83 57 */
84 58 default List<WmsInventoryDO> selectListByKeys(Collection<WmsInventoryDO> keys) {
... ... @@ -93,8 +67,7 @@ public interface WmsInventoryMapper extends BaseMapperX&lt;WmsInventoryDO&gt; {
93 67 query.or();
94 68 }
95 69 query.eq(WmsInventoryDO::getSkuId, key.getSkuId())
96   - .eq(WmsInventoryDO::getWarehouseId, key.getWarehouseId())
97   - .eq(WmsInventoryDO::getAreaId, key.getAreaId());
  70 + .eq(WmsInventoryDO::getWarehouseId, key.getWarehouseId());
98 71 first = false;
99 72 }
100 73 }));
... ... @@ -122,15 +95,6 @@ public interface WmsInventoryMapper extends BaseMapperX&lt;WmsInventoryDO&gt; {
122 95 query.orderByAsc(WmsItemSkuDO::getItemId)
123 96 .orderByAsc(WmsInventoryDO::getSkuId)
124 97 .orderByAsc(WmsInventoryDO::getWarehouseId)
125   - .orderByAsc(WmsInventoryDO::getAreaId)
126   - .orderByAsc(WmsInventoryDO::getId);
127   - return;
128   - }
129   - if (StrUtil.equals(WmsInventoryPageReqVO.TYPE_AREA, type)) {
130   - query.orderByAsc(WmsInventoryDO::getWarehouseId)
131   - .orderByAsc(WmsInventoryDO::getAreaId)
132   - .orderByAsc(WmsItemSkuDO::getItemId)
133   - .orderByAsc(WmsInventoryDO::getSkuId)
134 98 .orderByAsc(WmsInventoryDO::getId);
135 99 return;
136 100 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/warehouse/WmsWarehouseAreaMapper.java deleted
1   -package cn.iocoder.yudao.module.wms.dal.mysql.md.warehouse;
2   -
3   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
4   -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5   -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6   -import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaPageReqVO;
7   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
8   -import org.apache.ibatis.annotations.Mapper;
9   -
10   -import java.util.List;
11   -
12   -/**
13   - * WMS 库区 Mapper
14   - *
15   - * @author 芋道源码
16   - */
17   -@Mapper
18   -public interface WmsWarehouseAreaMapper extends BaseMapperX<WmsWarehouseAreaDO> {
19   -
20   - default PageResult<WmsWarehouseAreaDO> selectPage(WmsWarehouseAreaPageReqVO reqVO) {
21   - return selectPage(reqVO, new LambdaQueryWrapperX<WmsWarehouseAreaDO>()
22   - .eqIfPresent(WmsWarehouseAreaDO::getCode, reqVO.getCode())
23   - .likeIfPresent(WmsWarehouseAreaDO::getName, reqVO.getName())
24   - .eqIfPresent(WmsWarehouseAreaDO::getWarehouseId, reqVO.getWarehouseId())
25   - .orderByDesc(WmsWarehouseAreaDO::getId));
26   - }
27   -
28   - default WmsWarehouseAreaDO selectByCode(String code) {
29   - return selectOne(WmsWarehouseAreaDO::getCode, code);
30   - }
31   -
32   - default WmsWarehouseAreaDO selectByName(Long warehouseId, String name) {
33   - return selectOne(new LambdaQueryWrapperX<WmsWarehouseAreaDO>()
34   - .eq(WmsWarehouseAreaDO::getWarehouseId, warehouseId)
35   - .eq(WmsWarehouseAreaDO::getName, name));
36   - }
37   -
38   - default List<WmsWarehouseAreaDO> selectListByWarehouseId(Long warehouseId) {
39   - return selectList(new LambdaQueryWrapperX<WmsWarehouseAreaDO>()
40   - .eqIfPresent(WmsWarehouseAreaDO::getWarehouseId, warehouseId)
41   - .orderByDesc(WmsWarehouseAreaDO::getId));
42   - }
43   -
44   - default Long selectCountByWarehouseId(Long warehouseId) {
45   - return selectCount(WmsWarehouseAreaDO::getWarehouseId, warehouseId);
46   - }
47   -
48   -}
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/order/check/WmsCheckOrderDetailMapper.java
... ... @@ -35,8 +35,4 @@ public interface WmsCheckOrderDetailMapper extends BaseMapperX&lt;WmsCheckOrderDeta
35 35 return selectCount(WmsCheckOrderDetailDO::getSkuId, skuId);
36 36 }
37 37  
38   - default Long selectCountByAreaId(Long areaId) {
39   - return selectCount(WmsCheckOrderDetailDO::getAreaId, areaId);
40   - }
41   -
42 38 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/order/check/WmsCheckOrderMapper.java
... ... @@ -20,7 +20,6 @@ public interface WmsCheckOrderMapper extends BaseMapperX&lt;WmsCheckOrderDO&gt; {
20 20 .likeIfPresent(WmsCheckOrderDO::getNo, reqVO.getNo())
21 21 .eqIfPresent(WmsCheckOrderDO::getStatus, reqVO.getStatus())
22 22 .eqIfPresent(WmsCheckOrderDO::getWarehouseId, reqVO.getWarehouseId())
23   - .eqIfPresent(WmsCheckOrderDO::getAreaId, reqVO.getAreaId())
24 23 .betweenIfPresent(WmsCheckOrderDO::getCreateTime, reqVO.getOrderDate())
25 24 .geIfPresent(WmsCheckOrderDO::getTotalQuantity, reqVO.getTotalQuantityMin())
26 25 .leIfPresent(WmsCheckOrderDO::getTotalQuantity, reqVO.getTotalQuantityMax())
... ... @@ -41,8 +40,4 @@ public interface WmsCheckOrderMapper extends BaseMapperX&lt;WmsCheckOrderDO&gt; {
41 40 return selectCount(WmsCheckOrderDO::getWarehouseId, warehouseId);
42 41 }
43 42  
44   - default Long selectCountByAreaId(Long areaId) {
45   - return selectCount(WmsCheckOrderDO::getAreaId, areaId);
46   - }
47   -
48 43 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/order/movement/WmsMovementOrderDetailMapper.java
... ... @@ -35,10 +35,4 @@ public interface WmsMovementOrderDetailMapper extends BaseMapperX&lt;WmsMovementOrd
35 35 return selectCount(WmsMovementOrderDetailDO::getSkuId, skuId);
36 36 }
37 37  
38   - default Long selectCountByAreaId(Long areaId) {
39   - return selectCount(new LambdaQueryWrapperX<WmsMovementOrderDetailDO>()
40   - .and(query -> query.eq(WmsMovementOrderDetailDO::getSourceAreaId, areaId)
41   - .or().eq(WmsMovementOrderDetailDO::getTargetAreaId, areaId)));
42   - }
43   -
44 38 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/order/movement/WmsMovementOrderMapper.java
... ... @@ -43,10 +43,4 @@ public interface WmsMovementOrderMapper extends BaseMapperX&lt;WmsMovementOrderDO&gt;
43 43 .or().eq(WmsMovementOrderDO::getTargetWarehouseId, warehouseId)));
44 44 }
45 45  
46   - default Long selectCountByAreaId(Long areaId) {
47   - return selectCount(new LambdaQueryWrapperX<WmsMovementOrderDO>()
48   - .and(query -> query.eq(WmsMovementOrderDO::getSourceAreaId, areaId)
49   - .or().eq(WmsMovementOrderDO::getTargetAreaId, areaId)));
50   - }
51   -
52 46 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/order/receipt/WmsReceiptOrderDetailMapper.java
... ... @@ -35,8 +35,4 @@ public interface WmsReceiptOrderDetailMapper extends BaseMapperX&lt;WmsReceiptOrder
35 35 return selectCount(WmsReceiptOrderDetailDO::getSkuId, skuId);
36 36 }
37 37  
38   - default Long selectCountByAreaId(Long areaId) {
39   - return selectCount(WmsReceiptOrderDetailDO::getAreaId, areaId);
40   - }
41   -
42 38 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/order/receipt/WmsReceiptOrderMapper.java
... ... @@ -47,8 +47,4 @@ public interface WmsReceiptOrderMapper extends BaseMapperX&lt;WmsReceiptOrderDO&gt; {
47 47 return selectCount(WmsReceiptOrderDO::getWarehouseId, warehouseId);
48 48 }
49 49  
50   - default Long selectCountByAreaId(Long areaId) {
51   - return selectCount(WmsReceiptOrderDO::getAreaId, areaId);
52   - }
53   -
54 50 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/order/shipment/WmsShipmentOrderDetailMapper.java
... ... @@ -35,8 +35,4 @@ public interface WmsShipmentOrderDetailMapper extends BaseMapperX&lt;WmsShipmentOrd
35 35 return selectCount(WmsShipmentOrderDetailDO::getSkuId, skuId);
36 36 }
37 37  
38   - default Long selectCountByAreaId(Long areaId) {
39   - return selectCount(WmsShipmentOrderDetailDO::getAreaId, areaId);
40   - }
41   -
42 38 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/order/shipment/WmsShipmentOrderMapper.java
... ... @@ -47,8 +47,4 @@ public interface WmsShipmentOrderMapper extends BaseMapperX&lt;WmsShipmentOrderDO&gt;
47 47 return selectCount(WmsShipmentOrderDO::getWarehouseId, warehouseId);
48 48 }
49 49  
50   - default Long selectCountByAreaId(Long areaId) {
51   - return selectCount(WmsShipmentOrderDO::getAreaId, areaId);
52   - }
53   -
54 50 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/ErrorCodeConstants.java
... ... @@ -9,23 +9,12 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode;
9 9 */
10 10 public interface ErrorCodeConstants {
11 11  
12   - // ========== WMS 配置 1-060-000-000 ==========
13   - ErrorCode WMS_AREA_DISABLED = new ErrorCode(1_060_000_000, "WMS 库区模式未开启");
14   -
15 12 // ========== WMS 基础数据-仓库 1-060-100-000 ==========
16 13 ErrorCode WAREHOUSE_NOT_EXISTS = new ErrorCode(1_060_100_000, "仓库不存在");
17 14 ErrorCode WAREHOUSE_NAME_DUPLICATE = new ErrorCode(1_060_100_001, "仓库名称重复");
18 15 ErrorCode WAREHOUSE_CODE_DUPLICATE = new ErrorCode(1_060_100_002, "仓库编号重复");
19   - ErrorCode WAREHOUSE_HAS_AREA = new ErrorCode(1_060_100_003, "删除失败!请先删除该仓库下的库区!");
20 16 ErrorCode WAREHOUSE_HAS_ORDER = new ErrorCode(1_060_100_004, "删除失败!仓库已被{}使用!");
21 17  
22   - // ========== WMS 基础数据-库区 1-060-101-000 ==========
23   - ErrorCode WAREHOUSE_AREA_NOT_EXISTS = new ErrorCode(1_060_101_000, "库区不存在");
24   - ErrorCode WAREHOUSE_AREA_NAME_DUPLICATE = new ErrorCode(1_060_101_001, "库区名称重复");
25   - ErrorCode WAREHOUSE_AREA_CODE_DUPLICATE = new ErrorCode(1_060_101_002, "库区编号重复");
26   - ErrorCode WAREHOUSE_AREA_NOT_MATCH_WAREHOUSE = new ErrorCode(1_060_101_003, "库区不属于仓库");
27   - ErrorCode WAREHOUSE_AREA_HAS_ORDER = new ErrorCode(1_060_101_004, "删除失败!库区已被{}使用!");
28   -
29 18 // ========== WMS 基础数据-商品分类 1-060-102-000 ==========
30 19 ErrorCode ITEM_CATEGORY_NOT_EXISTS = new ErrorCode(1_060_102_000, "商品分类不存在");
31 20 ErrorCode ITEM_CATEGORY_NAME_DUPLICATE = new ErrorCode(1_060_102_001, "商品分类名称重复");
... ... @@ -59,7 +48,6 @@ public interface ErrorCodeConstants {
59 48 ErrorCode RECEIPT_ORDER_NO_DUPLICATE = new ErrorCode(1_060_200_001, "入库单号重复");
60 49 ErrorCode RECEIPT_ORDER_STATUS_NOT_PREPARE = new ErrorCode(1_060_200_002, "入库单状态不是草稿,不能操作");
61 50 ErrorCode RECEIPT_ORDER_DETAIL_REQUIRED = new ErrorCode(1_060_200_003, "入库单至少包含一条明细");
62   - ErrorCode RECEIPT_ORDER_AREA_REQUIRED = new ErrorCode(1_060_200_004, "库区模式下,入库单库区不能为空");
63 51 ErrorCode RECEIPT_ORDER_STATUS_NOT_DELETABLE = new ErrorCode(1_060_200_005, "入库单状态不是草稿或已作废,不能删除");
64 52 ErrorCode RECEIPT_ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_060_200_007, "入库单明细不存在");
65 53  
... ... @@ -68,7 +56,6 @@ public interface ErrorCodeConstants {
68 56 ErrorCode SHIPMENT_ORDER_NO_DUPLICATE = new ErrorCode(1_060_201_001, "出库单号重复");
69 57 ErrorCode SHIPMENT_ORDER_STATUS_NOT_PREPARE = new ErrorCode(1_060_201_002, "出库单状态不是草稿,不能操作");
70 58 ErrorCode SHIPMENT_ORDER_DETAIL_REQUIRED = new ErrorCode(1_060_201_003, "出库单至少包含一条明细");
71   - ErrorCode SHIPMENT_ORDER_AREA_REQUIRED = new ErrorCode(1_060_201_004, "库区模式下,出库单库区不能为空");
72 59 ErrorCode SHIPMENT_ORDER_STATUS_NOT_DELETABLE = new ErrorCode(1_060_201_005, "出库单状态不是草稿或已作废,不能删除");
73 60 ErrorCode SHIPMENT_ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_060_201_007, "出库单明细不存在");
74 61  
... ... @@ -77,22 +64,20 @@ public interface ErrorCodeConstants {
77 64 ErrorCode MOVEMENT_ORDER_NO_DUPLICATE = new ErrorCode(1_060_202_001, "移库单号重复");
78 65 ErrorCode MOVEMENT_ORDER_STATUS_NOT_PREPARE = new ErrorCode(1_060_202_002, "移库单状态不是草稿,不能操作");
79 66 ErrorCode MOVEMENT_ORDER_DETAIL_REQUIRED = new ErrorCode(1_060_202_003, "移库单至少包含一条明细");
80   - ErrorCode MOVEMENT_ORDER_AREA_REQUIRED = new ErrorCode(1_060_202_004, "库区模式下,移库单库区不能为空");
81 67 ErrorCode MOVEMENT_ORDER_STATUS_NOT_DELETABLE = new ErrorCode(1_060_202_005, "移库单状态不是草稿或已作废,不能删除");
82 68 ErrorCode MOVEMENT_ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_060_202_006, "移库单明细不存在");
83   - ErrorCode MOVEMENT_ORDER_WAREHOUSE_AREA_SAME = new ErrorCode(1_060_202_007, "来源仓库库区和目标仓库库区不能相同");
  69 + ErrorCode MOVEMENT_ORDER_WAREHOUSE_SAME = new ErrorCode(1_060_202_007, "来源仓库和目标仓库不能相同");
84 70  
85 71 // ========== WMS 盘库单 1-060-203-000 ==========
86 72 ErrorCode CHECK_ORDER_NOT_EXISTS = new ErrorCode(1_060_203_000, "盘库单不存在");
87 73 ErrorCode CHECK_ORDER_NO_DUPLICATE = new ErrorCode(1_060_203_001, "盘库单号重复");
88 74 ErrorCode CHECK_ORDER_STATUS_NOT_PREPARE = new ErrorCode(1_060_203_002, "盘库单状态不是草稿,不能操作");
89 75 ErrorCode CHECK_ORDER_DETAIL_REQUIRED = new ErrorCode(1_060_203_003, "盘库单至少包含一条明细");
90   - ErrorCode CHECK_ORDER_AREA_REQUIRED = new ErrorCode(1_060_203_004, "库区模式下,盘库单库区不能为空");
91 76 ErrorCode CHECK_ORDER_STATUS_NOT_DELETABLE = new ErrorCode(1_060_203_005, "盘库单状态不是草稿或已作废,不能删除");
92 77 ErrorCode CHECK_ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_060_203_006, "盘库单明细不存在");
93 78  
94 79 // ========== WMS 库存 1-060-300-000 ==========
95 80 ErrorCode INVENTORY_QUANTITY_NOT_ENOUGH = new ErrorCode(1_060_300_000,
96   - "库存不足,商品:{},商品规格:{},仓库:{},库区:{},当前库存:{},变更数量:{}");
  81 + "库存不足,商品:{},商品规格:{},仓库:{},当前库存:{},变更数量:{}");
97 82  
98 83 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/WmsConfiguration.java deleted
1   -package cn.iocoder.yudao.module.wms.framework.config;
2   -
3   -import org.springframework.boot.context.properties.EnableConfigurationProperties;
4   -import org.springframework.context.annotation.Configuration;
5   -
6   -/**
7   - * WMS 模块配置
8   - *
9   - * @author 芋道源码
10   - */
11   -@Configuration(proxyBeanMethods = false)
12   -@EnableConfigurationProperties(WmsProperties.class)
13   -public class WmsConfiguration {
14   -}
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/WmsProperties.java deleted
1   -package cn.iocoder.yudao.module.wms.framework.config;
2   -
3   -import lombok.Data;
4   -import org.springframework.boot.context.properties.ConfigurationProperties;
5   -import org.springframework.validation.annotation.Validated;
6   -
7   -import jakarta.validation.constraints.NotNull;
8   -
9   -/**
10   - * WMS 配置项
11   - *
12   - * @author 芋道源码
13   - */
14   -@ConfigurationProperties(prefix = "yudao.wms")
15   -@Validated
16   -@Data
17   -public class WmsProperties {
18   -
19   - /**
20   - * 是否启用库区模式
21   - */
22   - @NotNull(message = "是否启用库区模式不能为空")
23   - private Boolean areaEnable = true;
24   -
25   - public boolean isAreaEnabled() {
26   - return Boolean.TRUE.equals(areaEnable);
27   - }
28   -
29   -}
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/inventory/WmsInventoryServiceImpl.java
... ... @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.wms.service.inventory;
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.lang.Tuple;
5 5 import cn.hutool.core.util.ObjectUtil;
6   -import cn.hutool.core.util.StrUtil;
7 6 import cn.iocoder.yudao.framework.common.exception.ServiceException;
8 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 8 import cn.iocoder.yudao.module.wms.controller.admin.inventory.vo.WmsInventoryPageReqVO;
... ... @@ -56,9 +55,6 @@ public class WmsInventoryServiceImpl implements WmsInventoryService {
56 55  
57 56 @Override
58 57 public PageResult<WmsInventoryDO> getInventoryPage(WmsInventoryPageReqVO pageReqVO) {
59   - if (StrUtil.equals(WmsInventoryPageReqVO.TYPE_WAREHOUSE, pageReqVO.getType())) {
60   - return inventoryMapper.selectPageGroupByWarehouse(pageReqVO);
61   - }
62 58 return inventoryMapper.selectPage(pageReqVO);
63 59 }
64 60  
... ... @@ -106,7 +102,7 @@ public class WmsInventoryServiceImpl implements WmsInventoryService {
106 102 WmsInventoryDO inventory = findInventory(inventories, item);
107 103 if (inventory == null) {
108 104 throw new IllegalStateException("库存行不存在,skuId=" + item.getSkuId()
109   - + ", warehouseId=" + item.getWarehouseId() + ", areaId=" + item.getAreaId());
  105 + + ", warehouseId=" + item.getWarehouseId());
110 106 }
111 107 BigDecimal beforeQuantity = inventory.getQuantity();
112 108 BigDecimal afterQuantity = beforeQuantity.add(item.getQuantity());
... ... @@ -130,7 +126,7 @@ public class WmsInventoryServiceImpl implements WmsInventoryService {
130 126 for (WmsInventoryChangeReqDTO.Item item : items) {
131 127 if (findInventory(inventoryKeyList, item) == null) {
132 128 inventoryKeyList.add(new WmsInventoryDO().setSkuId(item.getSkuId())
133   - .setWarehouseId(item.getWarehouseId()).setAreaId(item.getAreaId()));
  129 + .setWarehouseId(item.getWarehouseId()));
134 130 }
135 131 }
136 132  
... ... @@ -156,7 +152,7 @@ public class WmsInventoryServiceImpl implements WmsInventoryService {
156 152 // 优先批量插入缺失库存行;并发唯一键冲突时,再逐个插入并回查冲突行。
157 153 List<WmsInventoryDO> newInventoryList = convertList(missingInventoryList, missingInventory ->
158 154 new WmsInventoryDO().setSkuId(missingInventory.getSkuId()).setWarehouseId(missingInventory.getWarehouseId())
159   - .setAreaId(missingInventory.getAreaId()).setQuantity(BigDecimal.ZERO));
  155 + .setQuantity(BigDecimal.ZERO));
160 156 try {
161 157 inventoryMapper.insertBatch(newInventoryList);
162 158 return newInventoryList;
... ... @@ -170,13 +166,13 @@ public class WmsInventoryServiceImpl implements WmsInventoryService {
170 166 List<WmsInventoryDO> resultList = new ArrayList<>(missingInventoryList.size());
171 167 for (WmsInventoryDO missingInventory : missingInventoryList) {
172 168 WmsInventoryDO inventory = new WmsInventoryDO().setSkuId(missingInventory.getSkuId())
173   - .setWarehouseId(missingInventory.getWarehouseId()).setAreaId(missingInventory.getAreaId())
  169 + .setWarehouseId(missingInventory.getWarehouseId())
174 170 .setQuantity(BigDecimal.ZERO);
175 171 try {
176 172 inventoryMapper.insert(inventory);
177 173 } catch (DuplicateKeyException ex) {
178   - inventory = inventoryMapper.selectBySkuIdAndWarehouseIdAndAreaId(
179   - missingInventory.getSkuId(), missingInventory.getWarehouseId(), missingInventory.getAreaId());
  174 + inventory = inventoryMapper.selectBySkuIdAndWarehouseId(
  175 + missingInventory.getSkuId(), missingInventory.getWarehouseId());
180 176 log.warn("[createMissingInventoryList][missingInventory({}) 插入库存行冲突,回查已有库存行]", missingInventory, ex);
181 177 if (inventory == null) {
182 178 throw ex;
... ... @@ -191,7 +187,7 @@ public class WmsInventoryServiceImpl implements WmsInventoryService {
191 187 WmsInventoryChangeReqDTO.Item item,
192 188 Tuple result) {
193 189 return new WmsInventoryHistoryDO()
194   - .setWarehouseId(item.getWarehouseId()).setAreaId(item.getAreaId()).setSkuId(item.getSkuId())
  190 + .setWarehouseId(item.getWarehouseId()).setSkuId(item.getSkuId())
195 191 .setQuantity(item.getQuantity()).setBeforeQuantity(result.get(0)).setAfterQuantity(result.get(1))
196 192 .setBatchNo(item.getBatchNo()).setProductionDate(item.getProductionDate())
197 193 .setExpirationDate(item.getExpirationDate())
... ... @@ -209,14 +205,12 @@ public class WmsInventoryServiceImpl implements WmsInventoryService {
209 205  
210 206 private static boolean isSameInventory(WmsInventoryDO inventory, WmsInventoryChangeReqDTO.Item item) {
211 207 return ObjectUtil.equal(inventory.getSkuId(), item.getSkuId())
212   - && ObjectUtil.equal(inventory.getWarehouseId(), item.getWarehouseId())
213   - && ObjectUtil.equal(inventory.getAreaId(), item.getAreaId());
  208 + && ObjectUtil.equal(inventory.getWarehouseId(), item.getWarehouseId());
214 209 }
215 210  
216 211 private static boolean isSameInventory(WmsInventoryDO inventory, WmsInventoryDO key) {
217 212 return ObjectUtil.equal(inventory.getSkuId(), key.getSkuId())
218   - && ObjectUtil.equal(inventory.getWarehouseId(), key.getWarehouseId())
219   - && ObjectUtil.equal(inventory.getAreaId(), key.getAreaId());
  213 + && ObjectUtil.equal(inventory.getWarehouseId(), key.getWarehouseId());
220 214 }
221 215  
222 216 private ServiceException buildInventoryQuantityNotEnoughException(WmsInventoryChangeReqDTO.Item item,
... ... @@ -224,7 +218,7 @@ public class WmsInventoryServiceImpl implements WmsInventoryService {
224 218 WmsItemSkuDO skuDO = itemSkuService.validateItemSkuExists(item.getSkuId());
225 219 WmsItemDO itemDO = itemService.validateItemExists(skuDO.getItemId());
226 220 return exception(INVENTORY_QUANTITY_NOT_ENOUGH, itemDO.getName(), skuDO.getName(),
227   - item.getWarehouseId(), item.getAreaId(), beforeQuantity, item.getQuantity());
  221 + item.getWarehouseId(), beforeQuantity, item.getQuantity());
228 222 }
229 223  
230 224 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/inventory/dto/WmsInventoryChangeReqDTO.java
... ... @@ -50,10 +50,6 @@ public class WmsInventoryChangeReqDTO {
50 50 */
51 51 private Long warehouseId;
52 52 /**
53   - * 库区编号
54   - */
55   - private Long areaId;
56   - /**
57 53 * 变更数量
58 54 */
59 55 private BigDecimal quantity;
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseAreaService.java deleted
1   -package cn.iocoder.yudao.module.wms.service.md.warehouse;
2   -
3   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
4   -import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaPageReqVO;
5   -import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaSaveReqVO;
6   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
7   -import jakarta.validation.Valid;
8   -
9   -import java.util.Collection;
10   -import java.util.List;
11   -import java.util.Map;
12   -
13   -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
14   -
15   -/**
16   - * WMS 库区 Service 接口
17   - *
18   - * @author 芋道源码
19   - */
20   -public interface WmsWarehouseAreaService {
21   -
22   - /**
23   - * 创建库区
24   - *
25   - * @param createReqVO 创建信息
26   - * @return 编号
27   - */
28   - Long createWarehouseArea(@Valid WmsWarehouseAreaSaveReqVO createReqVO);
29   -
30   - /**
31   - * 更新库区
32   - *
33   - * @param updateReqVO 更新信息
34   - */
35   - void updateWarehouseArea(@Valid WmsWarehouseAreaSaveReqVO updateReqVO);
36   -
37   - /**
38   - * 删除库区
39   - *
40   - * @param id 编号
41   - */
42   - void deleteWarehouseArea(Long id);
43   -
44   - /**
45   - * 校验库区存在
46   - *
47   - * @param id 编号
48   - * @return 库区
49   - */
50   - WmsWarehouseAreaDO validateWarehouseAreaExists(Long id);
51   -
52   - /**
53   - * 校验并标准化库区编号
54   - *
55   - * @param id 库区编号
56   - * @param warehouseId 仓库编号
57   - * @return 库区编号;未启用库区模式或为空时,返回 {@link WmsWarehouseAreaDO#ID_EMPTY}
58   - */
59   - Long validateAndNormalizeWarehouseAreaId(Long id, Long warehouseId);
60   -
61   - /**
62   - * 获得库区
63   - *
64   - * @param id 编号
65   - * @return 库区
66   - */
67   - WmsWarehouseAreaDO getWarehouseArea(Long id);
68   -
69   - /**
70   - * 获得库区分页
71   - *
72   - * @param pageReqVO 分页查询
73   - * @return 库区分页
74   - */
75   - PageResult<WmsWarehouseAreaDO> getWarehouseAreaPage(WmsWarehouseAreaPageReqVO pageReqVO);
76   -
77   - /**
78   - * 获得库区列表
79   - *
80   - * @param warehouseId 仓库编号
81   - * @return 库区列表
82   - */
83   - List<WmsWarehouseAreaDO> getWarehouseAreaList(Long warehouseId);
84   -
85   - /**
86   - * 按编号集合获得库区列表
87   - *
88   - * @param ids 编号集合
89   - * @return 库区列表
90   - */
91   - List<WmsWarehouseAreaDO> getWarehouseAreaList(Collection<Long> ids);
92   -
93   - /**
94   - * 按编号集合获得库区 Map
95   - *
96   - * @param ids 编号集合
97   - * @return 库区 Map
98   - */
99   - default Map<Long, WmsWarehouseAreaDO> getWarehouseAreaMap(Collection<Long> ids) {
100   - return convertMap(getWarehouseAreaList(ids), WmsWarehouseAreaDO::getId);
101   - }
102   -
103   -}
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseAreaServiceImpl.java deleted
1   -package cn.iocoder.yudao.module.wms.service.md.warehouse;
2   -
3   -import cn.hutool.core.collection.CollUtil;
4   -import cn.hutool.core.util.ObjectUtil;
5   -import cn.hutool.core.util.StrUtil;
6   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
7   -import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
8   -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
9   -import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaPageReqVO;
10   -import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaSaveReqVO;
11   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
12   -import cn.iocoder.yudao.module.wms.dal.mysql.md.warehouse.WmsWarehouseAreaMapper;
13   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
14   -import cn.iocoder.yudao.module.wms.service.order.check.WmsCheckOrderDetailService;
15   -import cn.iocoder.yudao.module.wms.service.order.check.WmsCheckOrderService;
16   -import cn.iocoder.yudao.module.wms.service.order.movement.WmsMovementOrderDetailService;
17   -import cn.iocoder.yudao.module.wms.service.order.movement.WmsMovementOrderService;
18   -import cn.iocoder.yudao.module.wms.service.order.receipt.WmsReceiptOrderDetailService;
19   -import cn.iocoder.yudao.module.wms.service.order.receipt.WmsReceiptOrderService;
20   -import cn.iocoder.yudao.module.wms.service.order.shipment.WmsShipmentOrderDetailService;
21   -import cn.iocoder.yudao.module.wms.service.order.shipment.WmsShipmentOrderService;
22   -import jakarta.annotation.Resource;
23   -import org.springframework.context.annotation.Lazy;
24   -import org.springframework.stereotype.Service;
25   -import org.springframework.validation.annotation.Validated;
26   -
27   -import java.util.Collection;
28   -import java.util.Collections;
29   -import java.util.List;
30   -
31   -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
32   -import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.*;
33   -import static cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeConstants.*;
34   -
35   -/**
36   - * WMS 库区 Service 实现类
37   - *
38   - * @author 芋道源码
39   - */
40   -@Service
41   -@Validated
42   -public class WmsWarehouseAreaServiceImpl implements WmsWarehouseAreaService {
43   -
44   - @Resource
45   - private WmsWarehouseAreaMapper warehouseAreaMapper;
46   - @Resource
47   - private WmsWarehouseService warehouseService;
48   - @Resource
49   - private WmsProperties wmsProperties;
50   - @Resource
51   - @Lazy // 延迟加载,避免循环依赖
52   - private WmsReceiptOrderService receiptOrderService;
53   - @Resource
54   - @Lazy // 延迟加载,避免循环依赖
55   - private WmsReceiptOrderDetailService receiptOrderDetailService;
56   - @Resource
57   - @Lazy // 延迟加载,避免循环依赖
58   - private WmsShipmentOrderService shipmentOrderService;
59   - @Resource
60   - @Lazy // 延迟加载,避免循环依赖
61   - private WmsShipmentOrderDetailService shipmentOrderDetailService;
62   - @Resource
63   - @Lazy // 延迟加载,避免循环依赖
64   - private WmsMovementOrderService movementOrderService;
65   - @Resource
66   - @Lazy // 延迟加载,避免循环依赖
67   - private WmsMovementOrderDetailService movementOrderDetailService;
68   - @Resource
69   - @Lazy // 延迟加载,避免循环依赖
70   - private WmsCheckOrderService checkOrderService;
71   - @Resource
72   - @Lazy // 延迟加载,避免循环依赖
73   - private WmsCheckOrderDetailService checkOrderDetailService;
74   -
75   - @Override
76   - public Long createWarehouseArea(WmsWarehouseAreaSaveReqVO createReqVO) {
77   - validateAreaEnabled();
78   - // 校验数据
79   - validateWarehouseAreaSaveData(createReqVO);
80   -
81   - // 插入
82   - WmsWarehouseAreaDO area = BeanUtils.toBean(createReqVO, WmsWarehouseAreaDO.class);
83   - warehouseAreaMapper.insert(area);
84   - // 返回
85   - return area.getId();
86   - }
87   -
88   - @Override
89   - public void updateWarehouseArea(WmsWarehouseAreaSaveReqVO updateReqVO) {
90   - validateAreaEnabled();
91   - // 校验存在
92   - validateWarehouseAreaExists(updateReqVO.getId());
93   - // 校验数据
94   - validateWarehouseAreaSaveData(updateReqVO);
95   -
96   - // 更新
97   - WmsWarehouseAreaDO updateObj = BeanUtils.toBean(updateReqVO, WmsWarehouseAreaDO.class);
98   - warehouseAreaMapper.updateById(updateObj);
99   - }
100   -
101   - private void validateWarehouseAreaSaveData(WmsWarehouseAreaSaveReqVO reqVO) {
102   - warehouseService.validateWarehouseExists(reqVO.getWarehouseId());
103   - validateWarehouseAreaNameUnique(reqVO.getId(), reqVO.getWarehouseId(), reqVO.getName());
104   - validateWarehouseAreaCodeUnique(reqVO.getId(), reqVO.getCode());
105   - }
106   -
107   - private void validateWarehouseAreaNameUnique(Long id, Long warehouseId, String name) {
108   - WmsWarehouseAreaDO area = warehouseAreaMapper.selectByName(warehouseId, name);
109   - if (area == null) {
110   - return;
111   - }
112   - if (ObjectUtil.notEqual(area.getId(), id)) {
113   - throw exception(WAREHOUSE_AREA_NAME_DUPLICATE);
114   - }
115   - }
116   -
117   - private void validateWarehouseAreaCodeUnique(Long id, String code) {
118   - if (StrUtil.isBlank(code)) {
119   - return;
120   - }
121   - WmsWarehouseAreaDO area = warehouseAreaMapper.selectByCode(code);
122   - if (area == null) {
123   - return;
124   - }
125   - if (ObjectUtil.notEqual(area.getId(), id)) {
126   - throw exception(WAREHOUSE_AREA_CODE_DUPLICATE);
127   - }
128   - }
129   -
130   - @Override
131   - public void deleteWarehouseArea(Long id) {
132   - validateAreaEnabled();
133   - // 校验存在
134   - validateWarehouseAreaExists(id);
135   - // 校验未被单据使用
136   - validateWarehouseAreaUnused(id);
137   -
138   - // 删除
139   - warehouseAreaMapper.deleteById(id);
140   - }
141   -
142   - private void validateWarehouseAreaUnused(Long id) {
143   - if (receiptOrderService.getReceiptOrderCountByAreaId(id) > 0
144   - || receiptOrderDetailService.getReceiptOrderDetailCountByAreaId(id) > 0) {
145   - throw exception(WAREHOUSE_AREA_HAS_ORDER, ORDER_NAME_RECEIPT);
146   - }
147   - if (shipmentOrderService.getShipmentOrderCountByAreaId(id) > 0
148   - || shipmentOrderDetailService.getShipmentOrderDetailCountByAreaId(id) > 0) {
149   - throw exception(WAREHOUSE_AREA_HAS_ORDER, ORDER_NAME_SHIPMENT);
150   - }
151   - if (movementOrderService.getMovementOrderCountByAreaId(id) > 0
152   - || movementOrderDetailService.getMovementOrderDetailCountByAreaId(id) > 0) {
153   - throw exception(WAREHOUSE_AREA_HAS_ORDER, ORDER_NAME_MOVEMENT);
154   - }
155   - if (checkOrderService.getCheckOrderCountByAreaId(id) > 0
156   - || checkOrderDetailService.getCheckOrderDetailCountByAreaId(id) > 0) {
157   - throw exception(WAREHOUSE_AREA_HAS_ORDER, ORDER_NAME_CHECK);
158   - }
159   - }
160   -
161   - @Override
162   - public WmsWarehouseAreaDO validateWarehouseAreaExists(Long id) {
163   - validateAreaEnabled();
164   - WmsWarehouseAreaDO area = warehouseAreaMapper.selectById(id);
165   - if (area == null) {
166   - throw exception(WAREHOUSE_AREA_NOT_EXISTS);
167   - }
168   - return area;
169   - }
170   -
171   - @Override
172   - public Long validateAndNormalizeWarehouseAreaId(Long id, Long warehouseId) {
173   - if (!wmsProperties.isAreaEnabled()) {
174   - return WmsWarehouseAreaDO.ID_EMPTY;
175   - }
176   - if (ObjectUtils.equalsAny(id, null, WmsWarehouseAreaDO.ID_EMPTY)) {
177   - return WmsWarehouseAreaDO.ID_EMPTY;
178   - }
179   - WmsWarehouseAreaDO area = validateWarehouseAreaExists(id);
180   - if (ObjectUtil.notEqual(area.getWarehouseId(), warehouseId)) {
181   - throw exception(WAREHOUSE_AREA_NOT_MATCH_WAREHOUSE);
182   - }
183   - return id;
184   - }
185   -
186   - @Override
187   - public WmsWarehouseAreaDO getWarehouseArea(Long id) {
188   - validateAreaEnabled();
189   - return warehouseAreaMapper.selectById(id);
190   - }
191   -
192   - @Override
193   - public PageResult<WmsWarehouseAreaDO> getWarehouseAreaPage(WmsWarehouseAreaPageReqVO pageReqVO) {
194   - validateAreaEnabled();
195   - return warehouseAreaMapper.selectPage(pageReqVO);
196   - }
197   -
198   - @Override
199   - public List<WmsWarehouseAreaDO> getWarehouseAreaList(Long warehouseId) {
200   - validateAreaEnabled();
201   - return warehouseAreaMapper.selectListByWarehouseId(warehouseId);
202   - }
203   -
204   - @Override
205   - public List<WmsWarehouseAreaDO> getWarehouseAreaList(Collection<Long> ids) {
206   - validateAreaEnabled();
207   - if (CollUtil.isEmpty(ids)) {
208   - return Collections.emptyList();
209   - }
210   - return warehouseAreaMapper.selectByIds(ids);
211   - }
212   -
213   - private void validateAreaEnabled() {
214   - if (!wmsProperties.isAreaEnabled()) {
215   - throw exception(WMS_AREA_DISABLED);
216   - }
217   - }
218   -
219   -}
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseServiceImpl.java
... ... @@ -8,9 +8,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
8 8 import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.WmsWarehousePageReqVO;
9 9 import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.WmsWarehouseSaveReqVO;
10 10 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
11   -import cn.iocoder.yudao.module.wms.dal.mysql.md.warehouse.WmsWarehouseAreaMapper;
12 11 import cn.iocoder.yudao.module.wms.dal.mysql.md.warehouse.WmsWarehouseMapper;
13   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
14 12 import cn.iocoder.yudao.module.wms.service.order.check.WmsCheckOrderService;
15 13 import cn.iocoder.yudao.module.wms.service.order.movement.WmsMovementOrderService;
16 14 import cn.iocoder.yudao.module.wms.service.order.receipt.WmsReceiptOrderService;
... ... @@ -40,10 +38,6 @@ public class WmsWarehouseServiceImpl implements WmsWarehouseService {
40 38 @Resource
41 39 private WmsWarehouseMapper warehouseMapper;
42 40 @Resource
43   - private WmsWarehouseAreaMapper warehouseAreaMapper;
44   - @Resource
45   - private WmsProperties wmsProperties;
46   - @Resource
47 41 @Lazy // 延迟加载,避免循环依赖
48 42 private WmsReceiptOrderService receiptOrderService;
49 43 @Resource
... ... @@ -113,10 +107,6 @@ public class WmsWarehouseServiceImpl implements WmsWarehouseService {
113 107 validateWarehouseExists(id);
114 108 // 校验未被单据使用
115 109 validateWarehouseUnused(id);
116   - // 库区模式下,存在库区时不允许删除仓库
117   - if (wmsProperties.isAreaEnabled() && warehouseAreaMapper.selectCountByWarehouseId(id) > 0) {
118   - throw exception(WAREHOUSE_HAS_AREA);
119   - }
120 110  
121 111 // 删除
122 112 warehouseMapper.deleteById(id);
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/check/WmsCheckOrderDetailService.java
... ... @@ -68,12 +68,4 @@ public interface WmsCheckOrderDetailService {
68 68 */
69 69 long getCheckOrderDetailCountBySkuId(Long skuId);
70 70  
71   - /**
72   - * 获得指定库区的盘库单明细数量
73   - *
74   - * @param areaId 库区编号
75   - * @return 盘库单明细数量
76   - */
77   - long getCheckOrderDetailCountByAreaId(Long areaId);
78   -
79 71 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/check/WmsCheckOrderDetailServiceImpl.java
... ... @@ -3,14 +3,10 @@ package cn.iocoder.yudao.module.wms.service.order.check;
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.collection.ListUtil;
5 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
6   -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
7 6 import cn.iocoder.yudao.module.wms.controller.admin.order.check.vo.order.WmsCheckOrderSaveReqVO;
8   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
9 7 import cn.iocoder.yudao.module.wms.dal.dataobject.order.check.WmsCheckOrderDetailDO;
10 8 import cn.iocoder.yudao.module.wms.dal.mysql.order.check.WmsCheckOrderDetailMapper;
11   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
12 9 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
13   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
14 10 import jakarta.annotation.Resource;
15 11 import org.springframework.stereotype.Service;
16 12 import org.springframework.transaction.annotation.Transactional;
... ... @@ -37,10 +33,6 @@ public class WmsCheckOrderDetailServiceImpl implements WmsCheckOrderDetailServic
37 33 private WmsCheckOrderDetailMapper checkOrderDetailMapper;
38 34 @Resource
39 35 private WmsItemSkuService itemSkuService;
40   - @Resource
41   - private WmsWarehouseAreaService warehouseAreaService;
42   - @Resource
43   - private WmsProperties wmsProperties;
44 36  
45 37 @Override
46 38 @Transactional(rollbackFor = Exception.class)
... ... @@ -104,10 +96,6 @@ public class WmsCheckOrderDetailServiceImpl implements WmsCheckOrderDetailServic
104 96 if (CollUtil.isEmpty(details)) {
105 97 throw exception(CHECK_ORDER_DETAIL_REQUIRED);
106 98 }
107   - if (wmsProperties.isAreaEnabled() && details.stream()
108   - .anyMatch(detail -> ObjectUtils.equalsAny(detail.getAreaId(), null, WmsWarehouseAreaDO.ID_EMPTY))) {
109   - throw exception(CHECK_ORDER_AREA_REQUIRED);
110   - }
111 99 return details;
112 100 }
113 101  
... ... @@ -116,11 +104,6 @@ public class WmsCheckOrderDetailServiceImpl implements WmsCheckOrderDetailServic
116 104 return checkOrderDetailMapper.selectCountBySkuId(skuId);
117 105 }
118 106  
119   - @Override
120   - public long getCheckOrderDetailCountByAreaId(Long areaId) {
121   - return checkOrderDetailMapper.selectCountByAreaId(areaId);
122   - }
123   -
124 107 private List<WmsCheckOrderDetailDO> buildCheckOrderDetailList(WmsCheckOrderSaveReqVO reqVO) {
125 108 if (CollUtil.isEmpty(reqVO.getDetails())) {
126 109 return ListUtil.of();
... ... @@ -128,12 +111,8 @@ public class WmsCheckOrderDetailServiceImpl implements WmsCheckOrderDetailServic
128 111 return convertList(reqVO.getDetails(), detail -> {
129 112 // 校验 SKU 存在
130 113 itemSkuService.validateItemSkuExists(detail.getSkuId());
131   - // 校验库区存在,并且属于当前仓库
132   - Long areaId = warehouseAreaService.validateAndNormalizeWarehouseAreaId(
133   - detail.getAreaId() == null ? reqVO.getAreaId() : detail.getAreaId(), reqVO.getWarehouseId());
134 114 // 构建对象
135   - return BeanUtils.toBean(detail, WmsCheckOrderDetailDO.class)
136   - .setWarehouseId(reqVO.getWarehouseId()).setAreaId(areaId);
  115 + return BeanUtils.toBean(detail, WmsCheckOrderDetailDO.class).setWarehouseId(reqVO.getWarehouseId());
137 116 });
138 117 }
139 118  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/check/WmsCheckOrderService.java
... ... @@ -73,12 +73,4 @@ public interface WmsCheckOrderService {
73 73 */
74 74 long getCheckOrderCountByWarehouseId(Long warehouseId);
75 75  
76   - /**
77   - * 获得指定库区的盘库单数量
78   - *
79   - * @param areaId 库区编号
80   - * @return 盘库单数量
81   - */
82   - long getCheckOrderCountByAreaId(Long areaId);
83   -
84 76 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/check/WmsCheckOrderServiceImpl.java
... ... @@ -12,7 +12,6 @@ import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum;
12 12 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum;
13 13 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
14 14 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO;
15   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
16 15 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
17 16 import jakarta.annotation.Resource;
18 17 import org.springframework.stereotype.Service;
... ... @@ -42,8 +41,6 @@ public class WmsCheckOrderServiceImpl implements WmsCheckOrderService {
42 41 @Resource
43 42 private WmsWarehouseService warehouseService;
44 43 @Resource
45   - private WmsWarehouseAreaService warehouseAreaService;
46   - @Resource
47 44 private WmsInventoryService inventoryService;
48 45  
49 46 @Override
... ... @@ -134,18 +131,11 @@ public class WmsCheckOrderServiceImpl implements WmsCheckOrderService {
134 131 return checkOrderMapper.selectCountByWarehouseId(warehouseId);
135 132 }
136 133  
137   - @Override
138   - public long getCheckOrderCountByAreaId(Long areaId) {
139   - return checkOrderMapper.selectCountByAreaId(areaId);
140   - }
141   -
142 134 private void validateCheckOrderSaveData(WmsCheckOrderSaveReqVO reqVO) {
143 135 // 校验盘库单号唯一
144 136 validateCheckOrderNoUnique(reqVO.getId(), reqVO.getNo());
145   - // 校验仓库、库区存在
  137 + // 校验仓库存在
146 138 warehouseService.validateWarehouseExists(reqVO.getWarehouseId());
147   - reqVO.setAreaId(warehouseAreaService.validateAndNormalizeWarehouseAreaId(reqVO.getAreaId(),
148   - reqVO.getWarehouseId()));
149 139 }
150 140  
151 141 private void validateCheckOrderNoUnique(Long id, String no) {
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/movement/WmsMovementOrderDetailService.java
... ... @@ -68,12 +68,4 @@ public interface WmsMovementOrderDetailService {
68 68 */
69 69 long getMovementOrderDetailCountBySkuId(Long skuId);
70 70  
71   - /**
72   - * 获得指定库区的移库单明细数量
73   - *
74   - * @param areaId 库区编号
75   - * @return 移库单明细数量
76   - */
77   - long getMovementOrderDetailCountByAreaId(Long areaId);
78   -
79 71 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/movement/WmsMovementOrderDetailServiceImpl.java
... ... @@ -3,14 +3,10 @@ package cn.iocoder.yudao.module.wms.service.order.movement;
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.collection.ListUtil;
5 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
6   -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
7 6 import cn.iocoder.yudao.module.wms.controller.admin.order.movement.vo.order.WmsMovementOrderSaveReqVO;
8   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
9 7 import cn.iocoder.yudao.module.wms.dal.dataobject.order.movement.WmsMovementOrderDetailDO;
10 8 import cn.iocoder.yudao.module.wms.dal.mysql.order.movement.WmsMovementOrderDetailMapper;
11   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
12 9 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
13   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
14 10 import jakarta.annotation.Resource;
15 11 import org.springframework.stereotype.Service;
16 12 import org.springframework.transaction.annotation.Transactional;
... ... @@ -37,10 +33,6 @@ public class WmsMovementOrderDetailServiceImpl implements WmsMovementOrderDetail
37 33 private WmsMovementOrderDetailMapper movementOrderDetailMapper;
38 34 @Resource
39 35 private WmsItemSkuService itemSkuService;
40   - @Resource
41   - private WmsWarehouseAreaService warehouseAreaService;
42   - @Resource
43   - private WmsProperties wmsProperties;
44 36  
45 37 @Override
46 38 @Transactional(rollbackFor = Exception.class)
... ... @@ -104,11 +96,6 @@ public class WmsMovementOrderDetailServiceImpl implements WmsMovementOrderDetail
104 96 if (CollUtil.isEmpty(details)) {
105 97 throw exception(MOVEMENT_ORDER_DETAIL_REQUIRED);
106 98 }
107   - if (wmsProperties.isAreaEnabled() && details.stream().anyMatch(detail ->
108   - ObjectUtils.equalsAny(detail.getSourceAreaId(), null, WmsWarehouseAreaDO.ID_EMPTY)
109   - || ObjectUtils.equalsAny(detail.getTargetAreaId(), null, WmsWarehouseAreaDO.ID_EMPTY))) {
110   - throw exception(MOVEMENT_ORDER_AREA_REQUIRED);
111   - }
112 99 return details;
113 100 }
114 101  
... ... @@ -117,11 +104,6 @@ public class WmsMovementOrderDetailServiceImpl implements WmsMovementOrderDetail
117 104 return movementOrderDetailMapper.selectCountBySkuId(skuId);
118 105 }
119 106  
120   - @Override
121   - public long getMovementOrderDetailCountByAreaId(Long areaId) {
122   - return movementOrderDetailMapper.selectCountByAreaId(areaId);
123   - }
124   -
125 107 private List<WmsMovementOrderDetailDO> buildMovementOrderDetailList(WmsMovementOrderSaveReqVO reqVO) {
126 108 if (CollUtil.isEmpty(reqVO.getDetails())) {
127 109 return ListUtil.of();
... ... @@ -129,17 +111,10 @@ public class WmsMovementOrderDetailServiceImpl implements WmsMovementOrderDetail
129 111 return convertList(reqVO.getDetails(), detail -> {
130 112 // 校验 SKU 存在
131 113 itemSkuService.validateItemSkuExists(detail.getSkuId());
132   - // 校验来源、目标库区存在,并且属于对应仓库
133   - Long sourceAreaId = warehouseAreaService.validateAndNormalizeWarehouseAreaId(
134   - detail.getSourceAreaId() == null ? reqVO.getSourceAreaId() : detail.getSourceAreaId(),
135   - reqVO.getSourceWarehouseId());
136   - Long targetAreaId = warehouseAreaService.validateAndNormalizeWarehouseAreaId(
137   - detail.getTargetAreaId() == null ? reqVO.getTargetAreaId() : detail.getTargetAreaId(),
138   - reqVO.getTargetWarehouseId());
139 114 // 构建对象
140 115 return BeanUtils.toBean(detail, WmsMovementOrderDetailDO.class)
141   - .setSourceWarehouseId(reqVO.getSourceWarehouseId()).setSourceAreaId(sourceAreaId)
142   - .setTargetWarehouseId(reqVO.getTargetWarehouseId()).setTargetAreaId(targetAreaId);
  116 + .setSourceWarehouseId(reqVO.getSourceWarehouseId())
  117 + .setTargetWarehouseId(reqVO.getTargetWarehouseId());
143 118 });
144 119 }
145 120  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/movement/WmsMovementOrderService.java
... ... @@ -73,12 +73,4 @@ public interface WmsMovementOrderService {
73 73 */
74 74 long getMovementOrderCountByWarehouseId(Long warehouseId);
75 75  
76   - /**
77   - * 获得指定库区的移库单数量
78   - *
79   - * @param areaId 库区编号
80   - * @return 移库单数量
81   - */
82   - long getMovementOrderCountByAreaId(Long areaId);
83   -
84 76 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/movement/WmsMovementOrderServiceImpl.java
... ... @@ -12,7 +12,6 @@ import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum;
12 12 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum;
13 13 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
14 14 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO;
15   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
16 15 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
17 16 import jakarta.annotation.Resource;
18 17 import org.springframework.stereotype.Service;
... ... @@ -41,8 +40,6 @@ public class WmsMovementOrderServiceImpl implements WmsMovementOrderService {
41 40 @Resource
42 41 private WmsWarehouseService warehouseService;
43 42 @Resource
44   - private WmsWarehouseAreaService warehouseAreaService;
45   - @Resource
46 43 private WmsInventoryService inventoryService;
47 44  
48 45 @Override
... ... @@ -133,25 +130,15 @@ public class WmsMovementOrderServiceImpl implements WmsMovementOrderService {
133 130 return movementOrderMapper.selectCountByWarehouseId(warehouseId);
134 131 }
135 132  
136   - @Override
137   - public long getMovementOrderCountByAreaId(Long areaId) {
138   - return movementOrderMapper.selectCountByAreaId(areaId);
139   - }
140   -
141 133 private void validateMovementOrderSaveData(WmsMovementOrderSaveReqVO reqVO) {
142 134 // 校验移库单号唯一
143 135 validateMovementOrderNoUnique(reqVO.getId(), reqVO.getNo());
144   - // 校验仓库、库区存在
  136 + // 校验仓库存在
145 137 warehouseService.validateWarehouseExists(reqVO.getSourceWarehouseId());
146 138 warehouseService.validateWarehouseExists(reqVO.getTargetWarehouseId());
147   - reqVO.setSourceAreaId(warehouseAreaService.validateAndNormalizeWarehouseAreaId(reqVO.getSourceAreaId(),
148   - reqVO.getSourceWarehouseId()));
149   - reqVO.setTargetAreaId(warehouseAreaService.validateAndNormalizeWarehouseAreaId(reqVO.getTargetAreaId(),
150   - reqVO.getTargetWarehouseId()));
151 139 // 校验来源和目标不能相同
152   - if (ObjectUtil.equal(reqVO.getSourceWarehouseId(), reqVO.getTargetWarehouseId())
153   - && ObjectUtil.equal(reqVO.getSourceAreaId(), reqVO.getTargetAreaId())) {
154   - throw exception(MOVEMENT_ORDER_WAREHOUSE_AREA_SAME);
  140 + if (ObjectUtil.equal(reqVO.getSourceWarehouseId(), reqVO.getTargetWarehouseId())) {
  141 + throw exception(MOVEMENT_ORDER_WAREHOUSE_SAME);
155 142 }
156 143 }
157 144  
... ... @@ -199,11 +186,9 @@ public class WmsMovementOrderServiceImpl implements WmsMovementOrderService {
199 186 List<WmsInventoryChangeReqDTO.Item> items = new ArrayList<>(details.size() * 2);
200 187 for (WmsMovementOrderDetailDO detail : details) {
201 188 items.add(BeanUtils.toBean(detail, WmsInventoryChangeReqDTO.Item.class)
202   - .setWarehouseId(detail.getSourceWarehouseId()).setAreaId(detail.getSourceAreaId())
203   - .setQuantity(detail.getQuantity().negate()));
  189 + .setWarehouseId(detail.getSourceWarehouseId()).setQuantity(detail.getQuantity().negate()));
204 190 items.add(BeanUtils.toBean(detail, WmsInventoryChangeReqDTO.Item.class)
205   - .setWarehouseId(detail.getTargetWarehouseId()).setAreaId(detail.getTargetAreaId())
206   - .setQuantity(detail.getQuantity()));
  191 + .setWarehouseId(detail.getTargetWarehouseId()).setQuantity(detail.getQuantity()));
207 192 }
208 193 inventoryService.changeInventory(new WmsInventoryChangeReqDTO()
209 194 .setOrderId(order.getId()).setOrderNo(order.getNo())
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/receipt/WmsReceiptOrderDetailService.java
... ... @@ -68,12 +68,4 @@ public interface WmsReceiptOrderDetailService {
68 68 */
69 69 long getReceiptOrderDetailCountBySkuId(Long skuId);
70 70  
71   - /**
72   - * 获得指定库区的入库单明细数量
73   - *
74   - * @param areaId 库区编号
75   - * @return 入库单明细数量
76   - */
77   - long getReceiptOrderDetailCountByAreaId(Long areaId);
78   -
79 71 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/receipt/WmsReceiptOrderDetailServiceImpl.java
... ... @@ -3,14 +3,10 @@ package cn.iocoder.yudao.module.wms.service.order.receipt;
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.collection.ListUtil;
5 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
6   -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
7 6 import cn.iocoder.yudao.module.wms.controller.admin.order.receipt.vo.order.WmsReceiptOrderSaveReqVO;
8   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
9 7 import cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt.WmsReceiptOrderDetailDO;
10 8 import cn.iocoder.yudao.module.wms.dal.mysql.order.receipt.WmsReceiptOrderDetailMapper;
11   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
12 9 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
13   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
14 10 import jakarta.annotation.Resource;
15 11 import org.springframework.stereotype.Service;
16 12 import org.springframework.transaction.annotation.Transactional;
... ... @@ -37,10 +33,6 @@ public class WmsReceiptOrderDetailServiceImpl implements WmsReceiptOrderDetailSe
37 33 private WmsReceiptOrderDetailMapper receiptOrderDetailMapper;
38 34 @Resource
39 35 private WmsItemSkuService itemSkuService;
40   - @Resource
41   - private WmsWarehouseAreaService warehouseAreaService;
42   - @Resource
43   - private WmsProperties wmsProperties;
44 36  
45 37 @Override
46 38 @Transactional(rollbackFor = Exception.class)
... ... @@ -104,10 +96,6 @@ public class WmsReceiptOrderDetailServiceImpl implements WmsReceiptOrderDetailSe
104 96 if (CollUtil.isEmpty(details)) {
105 97 throw exception(RECEIPT_ORDER_DETAIL_REQUIRED);
106 98 }
107   - if (wmsProperties.isAreaEnabled() && details.stream()
108   - .anyMatch(detail -> ObjectUtils.equalsAny(detail.getAreaId(), null, WmsWarehouseAreaDO.ID_EMPTY))) {
109   - throw exception(RECEIPT_ORDER_AREA_REQUIRED);
110   - }
111 99 return details;
112 100 }
113 101  
... ... @@ -116,11 +104,6 @@ public class WmsReceiptOrderDetailServiceImpl implements WmsReceiptOrderDetailSe
116 104 return receiptOrderDetailMapper.selectCountBySkuId(skuId);
117 105 }
118 106  
119   - @Override
120   - public long getReceiptOrderDetailCountByAreaId(Long areaId) {
121   - return receiptOrderDetailMapper.selectCountByAreaId(areaId);
122   - }
123   -
124 107 private List<WmsReceiptOrderDetailDO> buildReceiptOrderDetailList(WmsReceiptOrderSaveReqVO reqVO) {
125 108 if (CollUtil.isEmpty(reqVO.getDetails())) {
126 109 return ListUtil.of();
... ... @@ -128,12 +111,8 @@ public class WmsReceiptOrderDetailServiceImpl implements WmsReceiptOrderDetailSe
128 111 return convertList(reqVO.getDetails(), detail -> {
129 112 // 校验 SKU 存在
130 113 itemSkuService.validateItemSkuExists(detail.getSkuId());
131   - // 校验仓库区域存在,并且属于当前仓库
132   - Long areaId = warehouseAreaService.validateAndNormalizeWarehouseAreaId(
133   - detail.getAreaId() == null ? reqVO.getAreaId() : detail.getAreaId(), reqVO.getWarehouseId());
134 114 // 构建对象
135   - return BeanUtils.toBean(detail, WmsReceiptOrderDetailDO.class)
136   - .setWarehouseId(reqVO.getWarehouseId()).setAreaId(areaId);
  115 + return BeanUtils.toBean(detail, WmsReceiptOrderDetailDO.class).setWarehouseId(reqVO.getWarehouseId());
137 116 });
138 117 }
139 118  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/receipt/WmsReceiptOrderService.java
... ... @@ -81,12 +81,4 @@ public interface WmsReceiptOrderService {
81 81 */
82 82 long getReceiptOrderCountByWarehouseId(Long warehouseId);
83 83  
84   - /**
85   - * 获得指定库区的入库单数量
86   - *
87   - * @param areaId 库区编号
88   - * @return 入库单数量
89   - */
90   - long getReceiptOrderCountByAreaId(Long areaId);
91   -
92 84 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/receipt/WmsReceiptOrderServiceImpl.java
... ... @@ -138,11 +138,6 @@ public class WmsReceiptOrderServiceImpl implements WmsReceiptOrderService {
138 138 return receiptOrderMapper.selectCountByWarehouseId(warehouseId);
139 139 }
140 140  
141   - @Override
142   - public long getReceiptOrderCountByAreaId(Long areaId) {
143   - return receiptOrderMapper.selectCountByAreaId(areaId);
144   - }
145   -
146 141 private void validateReceiptOrderSaveData(WmsReceiptOrderSaveReqVO reqVO) {
147 142 // 校验入库单号唯一
148 143 validateReceiptOrderNoUnique(reqVO.getId(), reqVO.getNo());
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/shipment/WmsShipmentOrderDetailService.java
... ... @@ -68,12 +68,4 @@ public interface WmsShipmentOrderDetailService {
68 68 */
69 69 long getShipmentOrderDetailCountBySkuId(Long skuId);
70 70  
71   - /**
72   - * 获得指定库区的出库单明细数量
73   - *
74   - * @param areaId 库区编号
75   - * @return 出库单明细数量
76   - */
77   - long getShipmentOrderDetailCountByAreaId(Long areaId);
78   -
79 71 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/shipment/WmsShipmentOrderDetailServiceImpl.java
... ... @@ -3,14 +3,10 @@ package cn.iocoder.yudao.module.wms.service.order.shipment;
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.collection.ListUtil;
5 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
6   -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
7 6 import cn.iocoder.yudao.module.wms.controller.admin.order.shipment.vo.order.WmsShipmentOrderSaveReqVO;
8   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
9 7 import cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment.WmsShipmentOrderDetailDO;
10 8 import cn.iocoder.yudao.module.wms.dal.mysql.order.shipment.WmsShipmentOrderDetailMapper;
11   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
12 9 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
13   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
14 10 import jakarta.annotation.Resource;
15 11 import org.springframework.stereotype.Service;
16 12 import org.springframework.transaction.annotation.Transactional;
... ... @@ -37,10 +33,6 @@ public class WmsShipmentOrderDetailServiceImpl implements WmsShipmentOrderDetail
37 33 private WmsShipmentOrderDetailMapper shipmentOrderDetailMapper;
38 34 @Resource
39 35 private WmsItemSkuService itemSkuService;
40   - @Resource
41   - private WmsWarehouseAreaService warehouseAreaService;
42   - @Resource
43   - private WmsProperties wmsProperties;
44 36  
45 37 @Override
46 38 @Transactional(rollbackFor = Exception.class)
... ... @@ -104,10 +96,6 @@ public class WmsShipmentOrderDetailServiceImpl implements WmsShipmentOrderDetail
104 96 if (CollUtil.isEmpty(details)) {
105 97 throw exception(SHIPMENT_ORDER_DETAIL_REQUIRED);
106 98 }
107   - if (wmsProperties.isAreaEnabled() && details.stream()
108   - .anyMatch(detail -> ObjectUtils.equalsAny(detail.getAreaId(), null, WmsWarehouseAreaDO.ID_EMPTY))) {
109   - throw exception(SHIPMENT_ORDER_AREA_REQUIRED);
110   - }
111 99 return details;
112 100 }
113 101  
... ... @@ -116,11 +104,6 @@ public class WmsShipmentOrderDetailServiceImpl implements WmsShipmentOrderDetail
116 104 return shipmentOrderDetailMapper.selectCountBySkuId(skuId);
117 105 }
118 106  
119   - @Override
120   - public long getShipmentOrderDetailCountByAreaId(Long areaId) {
121   - return shipmentOrderDetailMapper.selectCountByAreaId(areaId);
122   - }
123   -
124 107 private List<WmsShipmentOrderDetailDO> buildShipmentOrderDetailList(WmsShipmentOrderSaveReqVO reqVO) {
125 108 if (CollUtil.isEmpty(reqVO.getDetails())) {
126 109 return ListUtil.of();
... ... @@ -128,12 +111,8 @@ public class WmsShipmentOrderDetailServiceImpl implements WmsShipmentOrderDetail
128 111 return convertList(reqVO.getDetails(), detail -> {
129 112 // 校验 SKU 存在
130 113 itemSkuService.validateItemSkuExists(detail.getSkuId());
131   - // 校验仓库区域存在,并且属于当前仓库
132   - Long areaId = warehouseAreaService.validateAndNormalizeWarehouseAreaId(
133   - detail.getAreaId() == null ? reqVO.getAreaId() : detail.getAreaId(), reqVO.getWarehouseId());
134 114 // 构建对象
135   - return BeanUtils.toBean(detail, WmsShipmentOrderDetailDO.class)
136   - .setWarehouseId(reqVO.getWarehouseId()).setAreaId(areaId);
  115 + return BeanUtils.toBean(detail, WmsShipmentOrderDetailDO.class).setWarehouseId(reqVO.getWarehouseId());
137 116 });
138 117 }
139 118  
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/shipment/WmsShipmentOrderService.java
... ... @@ -81,12 +81,4 @@ public interface WmsShipmentOrderService {
81 81 */
82 82 long getShipmentOrderCountByWarehouseId(Long warehouseId);
83 83  
84   - /**
85   - * 获得指定库区的出库单数量
86   - *
87   - * @param areaId 库区编号
88   - * @return 出库单数量
89   - */
90   - long getShipmentOrderCountByAreaId(Long areaId);
91   -
92 84 }
... ...
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/shipment/WmsShipmentOrderServiceImpl.java
... ... @@ -139,11 +139,6 @@ public class WmsShipmentOrderServiceImpl implements WmsShipmentOrderService {
139 139 return shipmentOrderMapper.selectCountByWarehouseId(warehouseId);
140 140 }
141 141  
142   - @Override
143   - public long getShipmentOrderCountByAreaId(Long areaId) {
144   - return shipmentOrderMapper.selectCountByAreaId(areaId);
145   - }
146   -
147 142 private void validateShipmentOrderSaveData(WmsShipmentOrderSaveReqVO reqVO) {
148 143 // 校验出库单号唯一
149 144 validateShipmentOrderNoUnique(reqVO.getId(), reqVO.getNo());
... ...
yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/inventory/WmsInventoryServiceImplTest.java
... ... @@ -57,13 +57,13 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
57 57 // mock 数据
58 58 WmsItemDO item = createItem("ITEM-001", "红富士苹果");
59 59 WmsItemSkuDO sku = createSku(item.getId(), "SKU-001", "10kg 箱装");
60   - WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, 1001L, "5.00");
  60 + WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, "5.00");
61 61  
62 62 // 调用
63 63 inventoryService.changeInventory(reqDTO);
64 64  
65 65 // 断言:库存余额
66   - WmsInventoryDO inventory = inventoryMapper.selectBySkuIdAndWarehouseIdAndAreaId(sku.getId(), 100L, 1001L);
  66 + WmsInventoryDO inventory = inventoryMapper.selectBySkuIdAndWarehouseId(sku.getId(), 100L);
67 67 assertNotNull(inventory);
68 68 assertEquals(0, new BigDecimal("5.00").compareTo(inventory.getQuantity()));
69 69 // 断言:库存流水
... ... @@ -72,7 +72,6 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
72 72 WmsInventoryHistoryDO history = histories.get(0);
73 73 assertEquals(sku.getId(), history.getSkuId());
74 74 assertEquals(100L, history.getWarehouseId());
75   - assertEquals(1001L, history.getAreaId());
76 75 assertEquals(0, BigDecimal.ZERO.compareTo(history.getBeforeQuantity()));
77 76 assertEquals(0, new BigDecimal("5.00").compareTo(history.getAfterQuantity()));
78 77 assertEquals(reqDTO.getOrderId(), history.getOrderId());
... ... @@ -85,14 +84,14 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
85 84 // mock 数据
86 85 WmsItemDO item = createItem("ITEM-001", "红富士苹果");
87 86 WmsItemSkuDO sku = createSku(item.getId(), "SKU-001", "10kg 箱装");
88   - inventoryMapper.insert(createInventory(sku.getId(), 100L, 1001L, "2.00"));
89   - WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, 1001L, "3.00");
  87 + inventoryMapper.insert(createInventory(sku.getId(), 100L, "2.00"));
  88 + WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, "3.00");
90 89  
91 90 // 调用
92 91 inventoryService.changeInventory(reqDTO);
93 92  
94 93 // 断言:库存余额
95   - WmsInventoryDO inventory = inventoryMapper.selectBySkuIdAndWarehouseIdAndAreaId(sku.getId(), 100L, 1001L);
  94 + WmsInventoryDO inventory = inventoryMapper.selectBySkuIdAndWarehouseId(sku.getId(), 100L);
96 95 assertNotNull(inventory);
97 96 assertEquals(0, new BigDecimal("5.00").compareTo(inventory.getQuantity()));
98 97 // 断言:库存流水
... ... @@ -109,12 +108,11 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
109 108 // mock 数据
110 109 WmsItemDO item = createItem("ITEM-001", "红富士苹果");
111 110 WmsItemSkuDO sku = createSku(item.getId(), "SKU-001", "10kg 箱装");
112   - WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, 1001L, "5.00");
  111 + WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, "5.00");
113 112 List<WmsInventoryChangeReqDTO.Item> items = new ArrayList<>(reqDTO.getItems());
114 113 items.add(new WmsInventoryChangeReqDTO.Item()
115 114 .setSkuId(sku.getId())
116 115 .setWarehouseId(100L)
117   - .setAreaId(1001L)
118 116 .setQuantity(new BigDecimal("7.00"))
119 117 .setAmount(new BigDecimal("140.00"))
120 118 .setRemark("测试入库 2"));
... ... @@ -124,7 +122,7 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
124 122 inventoryService.changeInventory(reqDTO);
125 123  
126 124 // 断言:库存余额只保留一条,数量逐条累加
127   - WmsInventoryDO inventory = inventoryMapper.selectBySkuIdAndWarehouseIdAndAreaId(sku.getId(), 100L, 1001L);
  125 + WmsInventoryDO inventory = inventoryMapper.selectBySkuIdAndWarehouseId(sku.getId(), 100L);
128 126 assertNotNull(inventory);
129 127 assertEquals(0, new BigDecimal("12.00").compareTo(inventory.getQuantity()));
130 128 // 断言:库存流水保持用户明细颗粒度
... ... @@ -144,13 +142,12 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
144 142 // mock 数据
145 143 WmsItemDO item = createItem("ITEM-001", "红富士苹果");
146 144 WmsItemSkuDO sku = createSku(item.getId(), "SKU-001", "10kg 箱装");
147   - inventoryMapper.insert(createInventory(sku.getId(), 100L, 1001L, "2.00"));
148   - WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, 1001L, "3.00");
  145 + inventoryMapper.insert(createInventory(sku.getId(), 100L, "2.00"));
  146 + WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, "3.00");
149 147 List<WmsInventoryChangeReqDTO.Item> items = new ArrayList<>(reqDTO.getItems());
150 148 items.add(new WmsInventoryChangeReqDTO.Item()
151 149 .setSkuId(sku.getId())
152 150 .setWarehouseId(100L)
153   - .setAreaId(1001L)
154 151 .setQuantity(new BigDecimal("4.00"))
155 152 .setAmount(new BigDecimal("80.00"))
156 153 .setRemark("测试入库 2"));
... ... @@ -160,7 +157,7 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
160 157 inventoryService.changeInventory(reqDTO);
161 158  
162 159 // 断言:库存余额只保留一条,数量逐条累加
163   - WmsInventoryDO inventory = inventoryMapper.selectBySkuIdAndWarehouseIdAndAreaId(sku.getId(), 100L, 1001L);
  160 + WmsInventoryDO inventory = inventoryMapper.selectBySkuIdAndWarehouseId(sku.getId(), 100L);
164 161 assertNotNull(inventory);
165 162 assertEquals(0, new BigDecimal("9.00").compareTo(inventory.getQuantity()));
166 163 // 断言:库存流水保持用户明细颗粒度
... ... @@ -180,19 +177,17 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
180 177 // mock 数据
181 178 WmsItemDO item = createItem("ITEM-001", "红富士苹果");
182 179 WmsItemSkuDO sku = createSku(item.getId(), "SKU-001", "10kg 箱装");
183   - WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, 1001L, "5.00");
  180 + WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, "5.00");
184 181 List<WmsInventoryChangeReqDTO.Item> items = new ArrayList<>(reqDTO.getItems());
185 182 items.add(new WmsInventoryChangeReqDTO.Item()
186 183 .setSkuId(sku.getId())
187 184 .setWarehouseId(200L)
188   - .setAreaId(2001L)
189 185 .setQuantity(new BigDecimal("3.00"))
190 186 .setAmount(new BigDecimal("60.00"))
191 187 .setRemark("测试入库 2"));
192 188 items.add(new WmsInventoryChangeReqDTO.Item()
193 189 .setSkuId(sku.getId())
194 190 .setWarehouseId(100L)
195   - .setAreaId(1001L)
196 191 .setQuantity(new BigDecimal("-2.00"))
197 192 .setAmount(new BigDecimal("40.00"))
198 193 .setRemark("测试出库"));
... ... @@ -202,10 +197,10 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
202 197 inventoryService.changeInventory(reqDTO);
203 198  
204 199 // 断言:不同库存余额分别更新
205   - WmsInventoryDO inventory1 = inventoryMapper.selectBySkuIdAndWarehouseIdAndAreaId(sku.getId(), 100L, 1001L);
  200 + WmsInventoryDO inventory1 = inventoryMapper.selectBySkuIdAndWarehouseId(sku.getId(), 100L);
206 201 assertNotNull(inventory1);
207 202 assertEquals(0, new BigDecimal("3.00").compareTo(inventory1.getQuantity()));
208   - WmsInventoryDO inventory2 = inventoryMapper.selectBySkuIdAndWarehouseIdAndAreaId(sku.getId(), 200L, 2001L);
  203 + WmsInventoryDO inventory2 = inventoryMapper.selectBySkuIdAndWarehouseId(sku.getId(), 200L);
209 204 assertNotNull(inventory2);
210 205 assertEquals(0, new BigDecimal("3.00").compareTo(inventory2.getQuantity()));
211 206 // 断言:批量加锁后仍按明细颗粒度记录 before/after
... ... @@ -228,13 +223,13 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
228 223 // mock 数据
229 224 WmsItemDO item = createItem("ITEM-001", "红富士苹果");
230 225 WmsItemSkuDO sku = createSku(item.getId(), "SKU-001", "10kg 箱装");
231   - inventoryMapper.insert(createInventory(sku.getId(), 100L, 1001L, "2.00"));
232   - WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, 1001L, "-3.00");
  226 + inventoryMapper.insert(createInventory(sku.getId(), 100L, "2.00"));
  227 + WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, "-3.00");
233 228 mockItemSkuAndItem(item, sku);
234 229  
235 230 // 调用,并断言
236 231 assertServiceException(() -> inventoryService.changeInventory(reqDTO), INVENTORY_QUANTITY_NOT_ENOUGH,
237   - item.getName(), sku.getName(), 100L, 1001L, new BigDecimal("2.000000"), new BigDecimal("-3.00"));
  232 + item.getName(), sku.getName(), 100L, new BigDecimal("2.000000"), new BigDecimal("-3.00"));
238 233 }
239 234  
240 235 @Test
... ... @@ -242,28 +237,26 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
242 237 // mock 数据
243 238 WmsItemDO item = createItem("ITEM-001", "红富士苹果");
244 239 WmsItemSkuDO sku = createSku(item.getId(), "SKU-001", "10kg 箱装");
245   - WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, 1001L, "-3.00");
  240 + WmsInventoryChangeReqDTO reqDTO = createChangeReq(sku.getId(), 100L, "-3.00");
246 241 mockItemSkuAndItem(item, sku);
247 242  
248 243 // 调用,并断言
249 244 assertServiceException(() -> inventoryService.changeInventory(reqDTO), INVENTORY_QUANTITY_NOT_ENOUGH,
250   - item.getName(), sku.getName(), 100L, 1001L, BigDecimal.ZERO.setScale(6), new BigDecimal("-3.00"));
  245 + item.getName(), sku.getName(), 100L, BigDecimal.ZERO.setScale(6), new BigDecimal("-3.00"));
251 246 assertEquals(0, inventoryMapper.selectCount());
252 247 }
253 248  
254 249 @Test
255   - public void testGetInventoryPage_groupByWarehouse() {
  250 + public void testGetInventoryPage_filterByWarehouse() {
256 251 // mock 数据
257 252 WmsItemDO item = createItem("ITEM-001", "红富士苹果");
258 253 WmsItemSkuDO sku = createSku(item.getId(), "SKU-001", "10kg 箱装");
259   - inventoryMapper.insert(createInventory(sku.getId(), 100L, 1001L, "2.00"));
260   - inventoryMapper.insert(createInventory(sku.getId(), 100L, 1002L, "3.00"));
261   - inventoryMapper.insert(createInventory(sku.getId(), 200L, 1001L, "5.00"));
  254 + inventoryMapper.insert(createInventory(sku.getId(), 100L, "2.00"));
  255 + inventoryMapper.insert(createInventory(sku.getId(), 200L, "5.00"));
262 256 // 准备参数
263 257 WmsInventoryPageReqVO reqVO = new WmsInventoryPageReqVO();
264 258 reqVO.setType(WmsInventoryPageReqVO.TYPE_WAREHOUSE);
265 259 reqVO.setWarehouseId(100L);
266   - reqVO.setAreaId(1001L); // 仓库维度不按库区过滤
267 260  
268 261 // 调用
269 262 PageResult<WmsInventoryDO> pageResult = inventoryService.getInventoryPage(reqVO);
... ... @@ -272,9 +265,8 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
272 265 assertEquals(1, pageResult.getList().size());
273 266 WmsInventoryDO inventory = pageResult.getList().get(0);
274 267 assertEquals(100L, inventory.getWarehouseId());
275   - assertEquals(0L, inventory.getAreaId());
276 268 assertEquals(sku.getId(), inventory.getSkuId());
277   - assertEquals(0, new BigDecimal("5.00").compareTo(inventory.getQuantity()));
  269 + assertEquals(0, new BigDecimal("2.00").compareTo(inventory.getQuantity()));
278 270 }
279 271  
280 272 @Test
... ... @@ -282,8 +274,8 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
282 274 // mock 数据
283 275 WmsItemDO item = createItem("ITEM-001", "红富士苹果");
284 276 WmsItemSkuDO sku = createSku(item.getId(), "SKU-001", "10kg 箱装");
285   - inventoryMapper.insert(createInventory(sku.getId(), 100L, 1001L, "2.00"));
286   - inventoryMapper.insert(createInventory(sku.getId(), 100L, 1002L, "3.00"));
  277 + inventoryMapper.insert(createInventory(sku.getId(), 100L, "2.00"));
  278 + inventoryMapper.insert(createInventory(sku.getId(), 200L, "7.00"));
287 279 // 准备参数
288 280 WmsInventoryPageReqVO reqVO = new WmsInventoryPageReqVO();
289 281 reqVO.setType(WmsInventoryPageReqVO.TYPE_WAREHOUSE);
... ... @@ -292,27 +284,57 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
292 284 // 调用
293 285 PageResult<WmsInventoryDO> pageResult = inventoryService.getInventoryPage(reqVO);
294 286 // 断言
295   - assertEquals(0, pageResult.getTotal());
296   - assertEquals(0, pageResult.getList().size());
  287 + assertEquals(1, pageResult.getTotal());
  288 + assertEquals(1, pageResult.getList().size());
  289 + assertEquals(200L, pageResult.getList().get(0).getWarehouseId());
297 290 }
298 291  
299 292 @Test
300   - public void testGetInventoryPage_area() {
  293 + public void testGetInventoryPage_sku() {
301 294 // mock 数据
302 295 WmsItemDO item = createItem("ITEM-001", "红富士苹果");
303 296 WmsItemSkuDO sku = createSku(item.getId(), "SKU-001", "10kg 箱装");
304   - inventoryMapper.insert(createInventory(sku.getId(), 100L, 1001L, "2.00"));
305   - inventoryMapper.insert(createInventory(sku.getId(), 100L, 1002L, "3.00"));
  297 + WmsItemSkuDO sku2 = createSku(item.getId(), "SKU-002", "5kg 箱装");
  298 + inventoryMapper.insert(createInventory(sku.getId(), 100L, "2.00"));
  299 + inventoryMapper.insert(createInventory(sku2.getId(), 100L, "3.00"));
306 300 // 准备参数
307 301 WmsInventoryPageReqVO reqVO = new WmsInventoryPageReqVO();
308   - reqVO.setType(WmsInventoryPageReqVO.TYPE_AREA);
  302 + reqVO.setType(WmsInventoryPageReqVO.TYPE_ITEM);
309 303 reqVO.setWarehouseId(100L);
  304 + reqVO.setSkuId(sku.getId());
  305 +
  306 + // 调用
  307 + PageResult<WmsInventoryDO> pageResult = inventoryService.getInventoryPage(reqVO);
  308 + // 断言
  309 + assertEquals(1, pageResult.getTotal());
  310 + assertEquals(1, pageResult.getList().size());
  311 + assertEquals(sku.getId(), pageResult.getList().get(0).getSkuId());
  312 + }
  313 +
  314 + @Test
  315 + public void testGetInventoryPage_orderByItemDimension() {
  316 + // mock 数据
  317 + WmsItemDO item1 = createItem("ITEM-001", "红富士苹果");
  318 + WmsItemSkuDO sku1 = createSku(item1.getId(), "SKU-001", "10kg 箱装");
  319 + WmsItemDO item2 = createItem("ITEM-002", "香蕉");
  320 + WmsItemSkuDO sku2 = createSku(item2.getId(), "SKU-002", "5kg 箱装");
  321 + inventoryMapper.insert(createInventory(sku2.getId(), 100L, "3.00"));
  322 + inventoryMapper.insert(createInventory(sku1.getId(), 200L, "2.00"));
  323 + inventoryMapper.insert(createInventory(sku1.getId(), 100L, "1.00"));
  324 + // 准备参数
  325 + WmsInventoryPageReqVO reqVO = new WmsInventoryPageReqVO();
  326 + reqVO.setType(WmsInventoryPageReqVO.TYPE_ITEM);
310 327  
311 328 // 调用
312 329 PageResult<WmsInventoryDO> pageResult = inventoryService.getInventoryPage(reqVO);
313 330 // 断言
314   - assertEquals(2, pageResult.getTotal());
315   - assertEquals(2, pageResult.getList().size());
  331 + assertEquals(3, pageResult.getTotal());
  332 + assertEquals(sku1.getId(), pageResult.getList().get(0).getSkuId());
  333 + assertEquals(100L, pageResult.getList().get(0).getWarehouseId());
  334 + assertEquals(sku1.getId(), pageResult.getList().get(1).getSkuId());
  335 + assertEquals(200L, pageResult.getList().get(1).getWarehouseId());
  336 + assertEquals(sku2.getId(), pageResult.getList().get(2).getSkuId());
  337 + assertEquals(100L, pageResult.getList().get(2).getWarehouseId());
316 338 }
317 339  
318 340 private WmsItemDO createItem(String code, String name) {
... ... @@ -342,16 +364,15 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
342 364 when(itemService.validateItemExists(item.getId())).thenReturn(item);
343 365 }
344 366  
345   - private static WmsInventoryDO createInventory(Long skuId, Long warehouseId, Long areaId, String quantity) {
  367 + private static WmsInventoryDO createInventory(Long skuId, Long warehouseId, String quantity) {
346 368 return WmsInventoryDO.builder()
347 369 .skuId(skuId)
348 370 .warehouseId(warehouseId)
349   - .areaId(areaId)
350 371 .quantity(new BigDecimal(quantity))
351 372 .build();
352 373 }
353 374  
354   - private static WmsInventoryChangeReqDTO createChangeReq(Long skuId, Long warehouseId, Long areaId, String quantity) {
  375 + private static WmsInventoryChangeReqDTO createChangeReq(Long skuId, Long warehouseId, String quantity) {
355 376 return new WmsInventoryChangeReqDTO()
356 377 .setOrderId(1L)
357 378 .setOrderNo("RK202605120001")
... ... @@ -359,7 +380,6 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
359 380 .setItems(Collections.singletonList(new WmsInventoryChangeReqDTO.Item()
360 381 .setSkuId(skuId)
361 382 .setWarehouseId(warehouseId)
362   - .setAreaId(areaId)
363 383 .setQuantity(new BigDecimal(quantity))
364 384 .setAmount(new BigDecimal("100.00"))
365 385 .setRemark("测试入库")));
... ...
yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/order/receipt/WmsReceiptOrderDetailServiceImplTest.java
... ... @@ -3,14 +3,10 @@ package cn.iocoder.yudao.module.wms.service.order.receipt;
3 3 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
4 4 import cn.iocoder.yudao.module.wms.controller.admin.order.receipt.vo.detail.WmsReceiptOrderDetailSaveReqVO;
5 5 import cn.iocoder.yudao.module.wms.controller.admin.order.receipt.vo.order.WmsReceiptOrderSaveReqVO;
6   -import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO;
7 6 import cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt.WmsReceiptOrderDetailDO;
8 7 import cn.iocoder.yudao.module.wms.dal.mysql.order.receipt.WmsReceiptOrderDetailMapper;
9   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
10 8 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
11   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
12 9 import jakarta.annotation.Resource;
13   -import org.junit.jupiter.api.BeforeEach;
14 10 import org.junit.jupiter.api.Test;
15 11 import org.springframework.context.annotation.Import;
16 12 import org.springframework.test.context.bean.override.mockito.MockitoBean;
... ... @@ -24,10 +20,8 @@ import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.RECEIPT_ORDER
24 20 import static org.junit.jupiter.api.Assertions.assertEquals;
25 21 import static org.junit.jupiter.api.Assertions.assertNotNull;
26 22 import static org.junit.jupiter.api.Assertions.assertNull;
27   -import static org.mockito.ArgumentMatchers.any;
28   -import static org.mockito.Mockito.when;
29 23  
30   -@Import({WmsReceiptOrderDetailServiceImpl.class, WmsProperties.class})
  24 +@Import(WmsReceiptOrderDetailServiceImpl.class)
31 25 public class WmsReceiptOrderDetailServiceImplTest extends BaseDbUnitTest {
32 26  
33 27 @Resource
... ... @@ -38,14 +32,6 @@ public class WmsReceiptOrderDetailServiceImplTest extends BaseDbUnitTest {
38 32  
39 33 @MockitoBean
40 34 private WmsItemSkuService itemSkuService;
41   - @MockitoBean
42   - private WmsWarehouseAreaService warehouseAreaService;
43   -
44   - @BeforeEach
45   - public void setUp() {
46   - when(warehouseAreaService.validateAndNormalizeWarehouseAreaId(any(), any()))
47   - .thenReturn(WmsWarehouseAreaDO.ID_EMPTY);
48   - }
49 35  
50 36 @Test
51 37 public void testCreateReceiptOrderDetailList_success() {
... ... @@ -129,7 +115,6 @@ public class WmsReceiptOrderDetailServiceImplTest extends BaseDbUnitTest {
129 115 private static WmsReceiptOrderSaveReqVO createReceiptOrderReqVO(WmsReceiptOrderDetailSaveReqVO... details) {
130 116 WmsReceiptOrderSaveReqVO reqVO = new WmsReceiptOrderSaveReqVO();
131 117 reqVO.setWarehouseId(100L);
132   - reqVO.setAreaId(0L);
133 118 reqVO.setDetails(Arrays.asList(details));
134 119 return reqVO;
135 120 }
... ... @@ -138,7 +123,6 @@ public class WmsReceiptOrderDetailServiceImplTest extends BaseDbUnitTest {
138 123 WmsReceiptOrderDetailSaveReqVO reqVO = new WmsReceiptOrderDetailSaveReqVO();
139 124 reqVO.setId(id);
140 125 reqVO.setSkuId(skuId);
141   - reqVO.setAreaId(0L);
142 126 reqVO.setQuantity(new BigDecimal(quantity));
143 127 reqVO.setAmount(new BigDecimal("100.00"));
144 128 return reqVO;
... ... @@ -149,7 +133,6 @@ public class WmsReceiptOrderDetailServiceImplTest extends BaseDbUnitTest {
149 133 .orderId(orderId)
150 134 .skuId(skuId)
151 135 .warehouseId(100L)
152   - .areaId(0L)
153 136 .quantity(new BigDecimal(quantity))
154 137 .amount(new BigDecimal("100.00"))
155 138 .build();
... ...
yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/order/receipt/WmsReceiptOrderServiceImplTest.java
... ... @@ -8,12 +8,10 @@ import cn.iocoder.yudao.module.wms.dal.mysql.order.receipt.WmsReceiptOrderMapper
8 8 import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum;
9 9 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum;
10 10 import cn.iocoder.yudao.module.wms.enums.order.WmsReceiptOrderTypeEnum;
11   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
12 11 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
13 12 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO;
14 13 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
15 14 import cn.iocoder.yudao.module.wms.service.md.merchant.WmsMerchantService;
16   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
17 15 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
18 16 import jakarta.annotation.Resource;
19 17 import org.junit.jupiter.api.Test;
... ... @@ -24,7 +22,6 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean;
24 22 import java.math.BigDecimal;
25 23  
26 24 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
27   -import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.RECEIPT_ORDER_AREA_REQUIRED;
28 25 import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.RECEIPT_ORDER_DETAIL_REQUIRED;
29 26 import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.RECEIPT_ORDER_STATUS_NOT_DELETABLE;
30 27 import static org.junit.jupiter.api.Assertions.assertEquals;
... ... @@ -34,7 +31,7 @@ import static org.mockito.ArgumentMatchers.any;
34 31 import static org.mockito.Mockito.never;
35 32 import static org.mockito.Mockito.verify;
36 33  
37   -@Import({WmsReceiptOrderServiceImpl.class, WmsReceiptOrderDetailServiceImpl.class, WmsProperties.class})
  34 +@Import({WmsReceiptOrderServiceImpl.class, WmsReceiptOrderDetailServiceImpl.class})
38 35 public class WmsReceiptOrderServiceImplTest extends BaseDbUnitTest {
39 36  
40 37 @Resource
... ... @@ -48,8 +45,6 @@ public class WmsReceiptOrderServiceImplTest extends BaseDbUnitTest {
48 45 @MockitoBean
49 46 private WmsWarehouseService warehouseService;
50 47 @MockitoBean
51   - private WmsWarehouseAreaService warehouseAreaService;
52   - @MockitoBean
53 48 private WmsMerchantService merchantService;
54 49 @MockitoBean
55 50 private WmsItemSkuService itemSkuService;
... ... @@ -63,7 +58,7 @@ public class WmsReceiptOrderServiceImplTest extends BaseDbUnitTest {
63 58 Long skuId = 200L;
64 59 WmsReceiptOrderDO order = createReceiptOrder(warehouseId);
65 60 receiptOrderMapper.insert(order);
66   - receiptOrderDetailMapper.insert(createReceiptOrderDetail(order.getId(), skuId, warehouseId, 300L));
  61 + receiptOrderDetailMapper.insert(createReceiptOrderDetail(order.getId(), skuId, warehouseId));
67 62  
68 63 // 调用
69 64 receiptOrderService.completeReceiptOrder(order.getId());
... ... @@ -98,19 +93,6 @@ public class WmsReceiptOrderServiceImplTest extends BaseDbUnitTest {
98 93 }
99 94  
100 95 @Test
101   - public void testCompleteReceiptOrder_areaRequired() {
102   - // mock 数据
103   - WmsReceiptOrderDO order = createReceiptOrder(100L);
104   - receiptOrderMapper.insert(order);
105   - receiptOrderDetailMapper.insert(createReceiptOrderDetail(order.getId(), 200L, 100L, 0L));
106   -
107   - // 调用,并断言
108   - assertServiceException(() -> receiptOrderService.completeReceiptOrder(order.getId()),
109   - RECEIPT_ORDER_AREA_REQUIRED);
110   - verify(inventoryService, never()).changeInventory(any());
111   - }
112   -
113   - @Test
114 96 public void testCancelReceiptOrder_success() {
115 97 // mock 数据
116 98 WmsReceiptOrderDO order = createReceiptOrder(100L);
... ... @@ -131,7 +113,7 @@ public class WmsReceiptOrderServiceImplTest extends BaseDbUnitTest {
131 113 // mock 数据
132 114 WmsReceiptOrderDO order = createReceiptOrder(100L).setStatus(WmsOrderStatusEnum.CANCELED.getStatus());
133 115 receiptOrderMapper.insert(order);
134   - receiptOrderDetailMapper.insert(createReceiptOrderDetail(order.getId(), 200L, 100L, 300L));
  116 + receiptOrderDetailMapper.insert(createReceiptOrderDetail(order.getId(), 200L, 100L));
135 117  
136 118 // 调用
137 119 receiptOrderService.deleteReceiptOrder(order.getId());
... ... @@ -158,18 +140,15 @@ public class WmsReceiptOrderServiceImplTest extends BaseDbUnitTest {
158 140 .setType(WmsReceiptOrderTypeEnum.PURCHASE.getType())
159 141 .setStatus(WmsOrderStatusEnum.PREPARE.getStatus())
160 142 .setWarehouseId(warehouseId)
161   - .setAreaId(0L)
162 143 .setTotalQuantity(new BigDecimal("2.00"))
163 144 .setTotalAmount(new BigDecimal("20.00"));
164 145 }
165 146  
166   - private static WmsReceiptOrderDetailDO createReceiptOrderDetail(Long orderId, Long skuId, Long warehouseId,
167   - Long areaId) {
  147 + private static WmsReceiptOrderDetailDO createReceiptOrderDetail(Long orderId, Long skuId, Long warehouseId) {
168 148 return WmsReceiptOrderDetailDO.builder()
169 149 .orderId(orderId)
170 150 .skuId(skuId)
171 151 .warehouseId(warehouseId)
172   - .areaId(areaId)
173 152 .quantity(new BigDecimal("2.00"))
174 153 .amount(new BigDecimal("20.00"))
175 154 .build();
... ...
yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/order/shipment/WmsShipmentOrderServiceImplTest.java
... ... @@ -8,12 +8,10 @@ import cn.iocoder.yudao.module.wms.dal.mysql.order.shipment.WmsShipmentOrderMapp
8 8 import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum;
9 9 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum;
10 10 import cn.iocoder.yudao.module.wms.enums.order.WmsShipmentOrderTypeEnum;
11   -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties;
12 11 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
13 12 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO;
14 13 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
15 14 import cn.iocoder.yudao.module.wms.service.md.merchant.WmsMerchantService;
16   -import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService;
17 15 import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService;
18 16 import jakarta.annotation.Resource;
19 17 import org.junit.jupiter.api.Test;
... ... @@ -24,7 +22,6 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean;
24 22 import java.math.BigDecimal;
25 23  
26 24 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
27   -import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.SHIPMENT_ORDER_AREA_REQUIRED;
28 25 import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.SHIPMENT_ORDER_DETAIL_REQUIRED;
29 26 import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.SHIPMENT_ORDER_STATUS_NOT_DELETABLE;
30 27 import static org.junit.jupiter.api.Assertions.assertEquals;
... ... @@ -34,7 +31,7 @@ import static org.mockito.ArgumentMatchers.any;
34 31 import static org.mockito.Mockito.never;
35 32 import static org.mockito.Mockito.verify;
36 33  
37   -@Import({WmsShipmentOrderServiceImpl.class, WmsShipmentOrderDetailServiceImpl.class, WmsProperties.class})
  34 +@Import({WmsShipmentOrderServiceImpl.class, WmsShipmentOrderDetailServiceImpl.class})
38 35 public class WmsShipmentOrderServiceImplTest extends BaseDbUnitTest {
39 36  
40 37 @Resource
... ... @@ -48,8 +45,6 @@ public class WmsShipmentOrderServiceImplTest extends BaseDbUnitTest {
48 45 @MockitoBean
49 46 private WmsWarehouseService warehouseService;
50 47 @MockitoBean
51   - private WmsWarehouseAreaService warehouseAreaService;
52   - @MockitoBean
53 48 private WmsMerchantService merchantService;
54 49 @MockitoBean
55 50 private WmsItemSkuService itemSkuService;
... ... @@ -63,7 +58,7 @@ public class WmsShipmentOrderServiceImplTest extends BaseDbUnitTest {
63 58 Long skuId = 200L;
64 59 WmsShipmentOrderDO order = createShipmentOrder(warehouseId);
65 60 shipmentOrderMapper.insert(order);
66   - shipmentOrderDetailMapper.insert(createShipmentOrderDetail(order.getId(), skuId, warehouseId, 400L));
  61 + shipmentOrderDetailMapper.insert(createShipmentOrderDetail(order.getId(), skuId, warehouseId));
67 62  
68 63 // 调用
69 64 shipmentOrderService.completeShipmentOrder(order.getId());
... ... @@ -98,19 +93,6 @@ public class WmsShipmentOrderServiceImplTest extends BaseDbUnitTest {
98 93 }
99 94  
100 95 @Test
101   - public void testCompleteShipmentOrder_areaRequired() {
102   - // mock 数据
103   - WmsShipmentOrderDO order = createShipmentOrder(100L);
104   - shipmentOrderMapper.insert(order);
105   - shipmentOrderDetailMapper.insert(createShipmentOrderDetail(order.getId(), 200L, 100L, 0L));
106   -
107   - // 调用,并断言
108   - assertServiceException(() -> shipmentOrderService.completeShipmentOrder(order.getId()),
109   - SHIPMENT_ORDER_AREA_REQUIRED);
110   - verify(inventoryService, never()).changeInventory(any());
111   - }
112   -
113   - @Test
114 96 public void testCancelShipmentOrder_success() {
115 97 // mock 数据
116 98 WmsShipmentOrderDO order = createShipmentOrder(100L);
... ... @@ -131,7 +113,7 @@ public class WmsShipmentOrderServiceImplTest extends BaseDbUnitTest {
131 113 // mock 数据
132 114 WmsShipmentOrderDO order = createShipmentOrder(100L).setStatus(WmsOrderStatusEnum.CANCELED.getStatus());
133 115 shipmentOrderMapper.insert(order);
134   - shipmentOrderDetailMapper.insert(createShipmentOrderDetail(order.getId(), 200L, 100L, 300L));
  116 + shipmentOrderDetailMapper.insert(createShipmentOrderDetail(order.getId(), 200L, 100L));
135 117  
136 118 // 调用
137 119 shipmentOrderService.deleteShipmentOrder(order.getId());
... ... @@ -158,18 +140,15 @@ public class WmsShipmentOrderServiceImplTest extends BaseDbUnitTest {
158 140 .setType(WmsShipmentOrderTypeEnum.SALE.getType())
159 141 .setStatus(WmsOrderStatusEnum.PREPARE.getStatus())
160 142 .setWarehouseId(warehouseId)
161   - .setAreaId(0L)
162 143 .setTotalQuantity(new BigDecimal("2.00"))
163 144 .setTotalAmount(new BigDecimal("20.00"));
164 145 }
165 146  
166   - private static WmsShipmentOrderDetailDO createShipmentOrderDetail(Long orderId, Long skuId, Long warehouseId,
167   - Long areaId) {
  147 + private static WmsShipmentOrderDetailDO createShipmentOrderDetail(Long orderId, Long skuId, Long warehouseId) {
168 148 return WmsShipmentOrderDetailDO.builder()
169 149 .orderId(orderId)
170 150 .skuId(skuId)
171 151 .warehouseId(warehouseId)
172   - .areaId(areaId)
173 152 .quantity(new BigDecimal("2.00"))
174 153 .amount(new BigDecimal("20.00"))
175 154 .build();
... ...
yudao-module-wms/src/test/resources/sql/create_tables.sql
... ... @@ -41,7 +41,6 @@ CREATE TABLE IF NOT EXISTS &quot;wms_inventory&quot; (
41 41 "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
42 42 "sku_id" bigint NOT NULL,
43 43 "warehouse_id" bigint NOT NULL,
44   - "area_id" bigint NOT NULL DEFAULT '0',
45 44 "quantity" decimal(24, 6) NOT NULL DEFAULT '0',
46 45 "remark" varchar(255) DEFAULT NULL,
47 46 "creator" varchar(64) DEFAULT '',
... ... @@ -51,13 +50,12 @@ CREATE TABLE IF NOT EXISTS &quot;wms_inventory&quot; (
51 50 "deleted" bit NOT NULL DEFAULT FALSE,
52 51 "tenant_id" bigint NOT NULL DEFAULT '0',
53 52 PRIMARY KEY ("id"),
54   - CONSTRAINT "uk_wms_inventory_sku_warehouse_area" UNIQUE ("sku_id", "warehouse_id", "area_id", "tenant_id", "deleted")
  53 + CONSTRAINT "uk_wms_inventory_sku_warehouse" UNIQUE ("sku_id", "warehouse_id", "tenant_id", "deleted")
55 54 ) COMMENT 'WMS 库存表';
56 55  
57 56 CREATE TABLE IF NOT EXISTS "wms_inventory_history" (
58 57 "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
59 58 "warehouse_id" bigint NOT NULL,
60   - "area_id" bigint NOT NULL DEFAULT '0',
61 59 "sku_id" bigint NOT NULL,
62 60 "quantity" decimal(24, 6) NOT NULL DEFAULT '0',
63 61 "before_quantity" decimal(24, 6) DEFAULT NULL,
... ... @@ -88,7 +86,6 @@ CREATE TABLE IF NOT EXISTS &quot;wms_receipt_order&quot; (
88 86 "merchant_id" bigint DEFAULT NULL,
89 87 "remark" varchar(255) DEFAULT NULL,
90 88 "warehouse_id" bigint NOT NULL,
91   - "area_id" bigint NOT NULL DEFAULT '0',
92 89 "total_quantity" decimal(20, 2) NOT NULL DEFAULT '0',
93 90 "total_amount" decimal(10, 2) DEFAULT NULL,
94 91 "creator" varchar(64) DEFAULT '',
... ... @@ -106,7 +103,6 @@ CREATE TABLE IF NOT EXISTS &quot;wms_receipt_order_detail&quot; (
106 103 "order_id" bigint NOT NULL,
107 104 "sku_id" bigint NOT NULL,
108 105 "warehouse_id" bigint NOT NULL,
109   - "area_id" bigint NOT NULL DEFAULT '0',
110 106 "batch_no" varchar(64) DEFAULT NULL,
111 107 "production_date" timestamp DEFAULT NULL,
112 108 "expiration_date" timestamp DEFAULT NULL,
... ... @@ -130,7 +126,6 @@ CREATE TABLE IF NOT EXISTS &quot;wms_shipment_order&quot; (
130 126 "merchant_id" bigint DEFAULT NULL,
131 127 "remark" varchar(255) DEFAULT NULL,
132 128 "warehouse_id" bigint NOT NULL,
133   - "area_id" bigint NOT NULL DEFAULT '0',
134 129 "total_quantity" decimal(20, 2) NOT NULL DEFAULT '0',
135 130 "total_amount" decimal(10, 2) DEFAULT NULL,
136 131 "creator" varchar(64) DEFAULT '',
... ... @@ -148,7 +143,6 @@ CREATE TABLE IF NOT EXISTS &quot;wms_shipment_order_detail&quot; (
148 143 "order_id" bigint NOT NULL,
149 144 "sku_id" bigint NOT NULL,
150 145 "warehouse_id" bigint NOT NULL,
151   - "area_id" bigint NOT NULL DEFAULT '0',
152 146 "batch_no" varchar(64) DEFAULT NULL,
153 147 "production_date" timestamp DEFAULT NULL,
154 148 "expiration_date" timestamp DEFAULT NULL,
... ...