Commit a9464080299950c94ca2c27127fafef18dee6a4d

Authored by YunaiV
1 parent 65a1337d

feat(wms):优化盘库单的实现

Showing 31 changed files with 204 additions and 109 deletions
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/inventory/vo/history/WmsInventoryHistoryPageReqVO.java
@@ -35,10 +35,10 @@ public class WmsInventoryHistoryPageReqVO extends PageParam { @@ -35,10 +35,10 @@ public class WmsInventoryHistoryPageReqVO extends PageParam {
35 @Schema(description = "仓库编号", example = "2048") 35 @Schema(description = "仓库编号", example = "2048")
36 private Long warehouseId; 36 private Long warehouseId;
37 37
38 - @Schema(description = "操作单号", example = "RK202605110001") 38 + @Schema(description = "单据号", example = "RK202605110001")
39 private String orderNo; 39 private String orderNo;
40 40
41 - @Schema(description = "操作类型", example = "1") 41 + @Schema(description = "单据类型", example = "1")
42 private Integer orderType; 42 private Integer orderType;
43 43
44 @Schema(description = "操作时间") 44 @Schema(description = "操作时间")
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/inventory/vo/history/WmsInventoryHistoryRespVO.java
@@ -45,11 +45,11 @@ public class WmsInventoryHistoryRespVO { @@ -45,11 +45,11 @@ public class WmsInventoryHistoryRespVO {
45 @Schema(description = "备注", example = "备注") 45 @Schema(description = "备注", example = "备注")
46 private String remark; 46 private String remark;
47 47
48 - @Schema(description = "操作单编号", example = "1024") 48 + @Schema(description = "单据编号", example = "1024")
49 private Long orderId; 49 private Long orderId;
50 - @Schema(description = "操作单号", example = "RK202605110001") 50 + @Schema(description = "单据号", example = "RK202605110001")
51 private String orderNo; 51 private String orderNo;
52 - @Schema(description = "操作类型", example = "1") 52 + @Schema(description = "单据类型", example = "1")
53 private Integer orderType; 53 private Integer orderType;
54 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) 54 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
55 private LocalDateTime createTime; 55 private LocalDateTime createTime;
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/WmsCheckOrderController.java
@@ -36,7 +36,6 @@ import org.springframework.validation.annotation.Validated; @@ -36,7 +36,6 @@ import org.springframework.validation.annotation.Validated;
36 import org.springframework.web.bind.annotation.*; 36 import org.springframework.web.bind.annotation.*;
37 37
38 import java.io.IOException; 38 import java.io.IOException;
39 -import java.math.BigDecimal;  
40 import java.util.Collections; 39 import java.util.Collections;
41 import java.util.List; 40 import java.util.List;
42 import java.util.Map; 41 import java.util.Map;
@@ -193,11 +192,6 @@ public class WmsCheckOrderController { @@ -193,11 +192,6 @@ public class WmsCheckOrderController {
193 .setItemName(item.getName()).setUnit(item.getUnit())); 192 .setItemName(item.getName()).setUnit(item.getUnit()));
194 }); 193 });
195 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName())); 194 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
196 - if (vo.getQuantity() != null && vo.getCheckQuantity() != null) {  
197 - vo.setDifferenceQuantity(vo.getCheckQuantity().subtract(vo.getQuantity()));  
198 - } else {  
199 - vo.setDifferenceQuantity(BigDecimal.ZERO);  
200 - }  
201 }); 195 });
202 } 196 }
203 197
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/WmsCheckOrderDetailController.java
@@ -24,7 +24,6 @@ import org.springframework.web.bind.annotation.RequestMapping; @@ -24,7 +24,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
24 import org.springframework.web.bind.annotation.RequestParam; 24 import org.springframework.web.bind.annotation.RequestParam;
25 import org.springframework.web.bind.annotation.RestController; 25 import org.springframework.web.bind.annotation.RestController;
26 26
27 -import java.math.BigDecimal;  
28 import java.util.Collections; 27 import java.util.Collections;
29 import java.util.List; 28 import java.util.List;
30 import java.util.Map; 29 import java.util.Map;
@@ -76,11 +75,6 @@ public class WmsCheckOrderDetailController { @@ -76,11 +75,6 @@ public class WmsCheckOrderDetailController {
76 .setItemName(item.getName()).setUnit(item.getUnit())); 75 .setItemName(item.getName()).setUnit(item.getUnit()));
77 }); 76 });
78 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName())); 77 MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
79 - if (vo.getQuantity() != null && vo.getCheckQuantity() != null) {  
80 - vo.setDifferenceQuantity(vo.getCheckQuantity().subtract(vo.getQuantity()));  
81 - } else {  
82 - vo.setDifferenceQuantity(BigDecimal.ZERO);  
83 - }  
84 }); 78 });
85 } 79 }
86 80
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/vo/detail/WmsCheckOrderDetailRespVO.java
@@ -55,11 +55,8 @@ public class WmsCheckOrderDetailRespVO { @@ -55,11 +55,8 @@ public class WmsCheckOrderDetailRespVO {
55 @Schema(description = "实盘数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "98.00") 55 @Schema(description = "实盘数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "98.00")
56 private BigDecimal checkQuantity; 56 private BigDecimal checkQuantity;
57 57
58 - @Schema(description = "盈亏数量", example = "-2.00")  
59 - private BigDecimal differenceQuantity;  
60 -  
61 - @Schema(description = "金额", example = "1000.00")  
62 - private BigDecimal amount; 58 + @Schema(description = "单价", example = "1000.00")
  59 + private BigDecimal price;
63 60
64 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) 61 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
65 private LocalDateTime createTime; 62 private LocalDateTime createTime;
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/vo/detail/WmsCheckOrderDetailSaveReqVO.java
@@ -35,8 +35,8 @@ public class WmsCheckOrderDetailSaveReqVO { @@ -35,8 +35,8 @@ public class WmsCheckOrderDetailSaveReqVO {
35 @DecimalMin(value = "0", message = "实盘数量不能小于 0") 35 @DecimalMin(value = "0", message = "实盘数量不能小于 0")
36 private BigDecimal checkQuantity; 36 private BigDecimal checkQuantity;
37 37
38 - @Schema(description = "金额", example = "1000.00")  
39 - @DecimalMin(value = "0", message = "金额不能小于 0")  
40 - private BigDecimal amount; 38 + @Schema(description = "单价", example = "1000.00")
  39 + @DecimalMin(value = "0", message = "单价不能小于 0")
  40 + private BigDecimal price;
41 41
42 } 42 }
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/vo/order/WmsCheckOrderPageReqVO.java
@@ -41,10 +41,16 @@ public class WmsCheckOrderPageReqVO extends PageParam { @@ -41,10 +41,16 @@ public class WmsCheckOrderPageReqVO extends PageParam {
41 private BigDecimal totalQuantityMax; 41 private BigDecimal totalQuantityMax;
42 42
43 @Schema(description = "最小总金额", example = "1.00") 43 @Schema(description = "最小总金额", example = "1.00")
44 - private BigDecimal totalAmountMin; 44 + private BigDecimal totalPriceMin;
45 45
46 @Schema(description = "最大总金额", example = "1000.00") 46 @Schema(description = "最大总金额", example = "1000.00")
47 - private BigDecimal totalAmountMax; 47 + private BigDecimal totalPriceMax;
  48 +
  49 + @Schema(description = "最小实际金额", example = "1.00")
  50 + private BigDecimal actualPriceMin;
  51 +
  52 + @Schema(description = "最大实际金额", example = "1000.00")
  53 + private BigDecimal actualPriceMax;
48 54
49 @Schema(description = "创建用户", example = "1") 55 @Schema(description = "创建用户", example = "1")
50 private String creator; 56 private String creator;
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/vo/order/WmsCheckOrderRespVO.java
@@ -48,9 +48,13 @@ public class WmsCheckOrderRespVO { @@ -48,9 +48,13 @@ public class WmsCheckOrderRespVO {
48 @ExcelProperty("盈亏数量") 48 @ExcelProperty("盈亏数量")
49 private BigDecimal totalQuantity; 49 private BigDecimal totalQuantity;
50 50
51 - @Schema(description = "总金额", example = "1000.00") 51 + @Schema(description = "总金额(账面金额)", example = "1000.00")
52 @ExcelProperty("总金额") 52 @ExcelProperty("总金额")
53 - private BigDecimal totalAmount; 53 + private BigDecimal totalPrice;
  54 +
  55 + @Schema(description = "实际金额", example = "980.00")
  56 + @ExcelProperty("实际金额")
  57 + private BigDecimal actualPrice;
54 58
55 @Schema(description = "盘库明细") 59 @Schema(description = "盘库明细")
56 private List<WmsCheckOrderDetailRespVO> details; 60 private List<WmsCheckOrderDetailRespVO> details;
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/order/check/vo/order/WmsCheckOrderSaveReqVO.java
@@ -8,7 +8,6 @@ import jakarta.validation.constraints.NotNull; @@ -8,7 +8,6 @@ import jakarta.validation.constraints.NotNull;
8 import jakarta.validation.constraints.Size; 8 import jakarta.validation.constraints.Size;
9 import lombok.Data; 9 import lombok.Data;
10 10
11 -import java.math.BigDecimal;  
12 import java.time.LocalDateTime; 11 import java.time.LocalDateTime;
13 import java.util.List; 12 import java.util.List;
14 13
@@ -36,14 +35,6 @@ public class WmsCheckOrderSaveReqVO { @@ -36,14 +35,6 @@ public class WmsCheckOrderSaveReqVO {
36 @NotNull(message = "仓库不能为空") 35 @NotNull(message = "仓库不能为空")
37 private Long warehouseId; 36 private Long warehouseId;
38 37
39 - @Schema(description = "盈亏数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")  
40 - @NotNull(message = "盈亏数量不能为空")  
41 - private BigDecimal totalQuantity;  
42 -  
43 - @Schema(description = "总金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000.00")  
44 - @NotNull(message = "总金额不能为空")  
45 - private BigDecimal totalAmount;  
46 -  
47 @Schema(description = "盘库明细") 38 @Schema(description = "盘库明细")
48 @Valid 39 @Valid
49 private List<WmsCheckOrderDetailSaveReqVO> details; 40 private List<WmsCheckOrderDetailSaveReqVO> details;
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/inventory/WmsInventoryHistoryDO.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.wms.dal.dataobject.inventory; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.wms.dal.dataobject.inventory;
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO; 4 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
5 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO; 5 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
6 -import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum; 6 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
7 import com.baomidou.mybatisplus.annotation.KeySequence; 7 import com.baomidou.mybatisplus.annotation.KeySequence;
8 import com.baomidou.mybatisplus.annotation.TableId; 8 import com.baomidou.mybatisplus.annotation.TableId;
9 import com.baomidou.mybatisplus.annotation.TableName; 9 import com.baomidou.mybatisplus.annotation.TableName;
@@ -73,17 +73,17 @@ public class WmsInventoryHistoryDO extends BaseDO { @@ -73,17 +73,17 @@ public class WmsInventoryHistoryDO extends BaseDO {
73 // ========= 来源单据相关字段 ========= 73 // ========= 来源单据相关字段 =========
74 74
75 /** 75 /**
76 - * 操作单编号 76 + * 单据编号
77 */ 77 */
78 private Long orderId; 78 private Long orderId;
79 /** 79 /**
80 - * 操作单号 80 + * 单据号
81 */ 81 */
82 private String orderNo; 82 private String orderNo;
83 /** 83 /**
84 - * 操作类型 84 + * 单据类型
85 * 85 *
86 - * 枚举 {@link WmsInventoryOrderTypeEnum#getType()} 86 + * 枚举 {@link WmsOrderTypeEnum#getType()}
87 */ 87 */
88 private Integer orderType; 88 private Integer orderType;
89 89
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/order/check/WmsCheckOrderDO.java
@@ -66,8 +66,12 @@ public class WmsCheckOrderDO extends BaseDO { @@ -66,8 +66,12 @@ public class WmsCheckOrderDO extends BaseDO {
66 */ 66 */
67 private BigDecimal totalQuantity; 67 private BigDecimal totalQuantity;
68 /** 68 /**
69 - * 总金额 69 + * 总金额(账面金额)
70 */ 70 */
71 - private BigDecimal totalAmount; 71 + private BigDecimal totalPrice;
  72 + /**
  73 + * 实际金额
  74 + */
  75 + private BigDecimal actualPrice;
72 76
73 } 77 }
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/order/check/WmsCheckOrderDetailDO.java
@@ -78,8 +78,8 @@ public class WmsCheckOrderDetailDO extends BaseDO { @@ -78,8 +78,8 @@ public class WmsCheckOrderDetailDO extends BaseDO {
78 */ 78 */
79 private BigDecimal checkQuantity; 79 private BigDecimal checkQuantity;
80 /** 80 /**
81 - * 金额(小计、非单价) 81 + * 单价
82 */ 82 */
83 - private BigDecimal amount; 83 + private BigDecimal price;
84 84
85 } 85 }
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/order/check/WmsCheckOrderMapper.java
@@ -23,8 +23,10 @@ public interface WmsCheckOrderMapper extends BaseMapperX&lt;WmsCheckOrderDO&gt; { @@ -23,8 +23,10 @@ public interface WmsCheckOrderMapper extends BaseMapperX&lt;WmsCheckOrderDO&gt; {
23 .betweenIfPresent(WmsCheckOrderDO::getOrderTime, reqVO.getOrderTime()) 23 .betweenIfPresent(WmsCheckOrderDO::getOrderTime, reqVO.getOrderTime())
24 .geIfPresent(WmsCheckOrderDO::getTotalQuantity, reqVO.getTotalQuantityMin()) 24 .geIfPresent(WmsCheckOrderDO::getTotalQuantity, reqVO.getTotalQuantityMin())
25 .leIfPresent(WmsCheckOrderDO::getTotalQuantity, reqVO.getTotalQuantityMax()) 25 .leIfPresent(WmsCheckOrderDO::getTotalQuantity, reqVO.getTotalQuantityMax())
26 - .geIfPresent(WmsCheckOrderDO::getTotalAmount, reqVO.getTotalAmountMin())  
27 - .leIfPresent(WmsCheckOrderDO::getTotalAmount, reqVO.getTotalAmountMax()) 26 + .geIfPresent(WmsCheckOrderDO::getTotalPrice, reqVO.getTotalPriceMin())
  27 + .leIfPresent(WmsCheckOrderDO::getTotalPrice, reqVO.getTotalPriceMax())
  28 + .geIfPresent(WmsCheckOrderDO::getActualPrice, reqVO.getActualPriceMin())
  29 + .leIfPresent(WmsCheckOrderDO::getActualPrice, reqVO.getActualPriceMax())
28 .eqIfPresent(WmsCheckOrderDO::getCreator, reqVO.getCreator()) 30 .eqIfPresent(WmsCheckOrderDO::getCreator, reqVO.getCreator())
29 .eqIfPresent(WmsCheckOrderDO::getUpdater, reqVO.getUpdater()) 31 .eqIfPresent(WmsCheckOrderDO::getUpdater, reqVO.getUpdater())
30 .betweenIfPresent(WmsCheckOrderDO::getCreateTime, reqVO.getCreateTime()) 32 .betweenIfPresent(WmsCheckOrderDO::getCreateTime, reqVO.getCreateTime())
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/DictTypeConstants.java
@@ -9,8 +9,8 @@ public interface DictTypeConstants { @@ -9,8 +9,8 @@ public interface DictTypeConstants {
9 9
10 String MERCHANT_TYPE = "merchant_type"; 10 String MERCHANT_TYPE = "merchant_type";
11 String ORDER_STATUS = "wms_order_status"; 11 String ORDER_STATUS = "wms_order_status";
  12 + String ORDER_TYPE = "wms_order_type";
12 String RECEIPT_ORDER_TYPE = "wms_receipt_order_type"; 13 String RECEIPT_ORDER_TYPE = "wms_receipt_order_type";
13 String SHIPMENT_ORDER_TYPE = "wms_shipment_order_type"; 14 String SHIPMENT_ORDER_TYPE = "wms_shipment_order_type";
14 - String INVENTORY_HISTORY_TYPE = "wms_inventory_history_type";  
15 15
16 } 16 }
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/order/WmsOrderTypeConstants.java
1 package cn.iocoder.yudao.module.wms.enums.order; 1 package cn.iocoder.yudao.module.wms.enums.order;
2 2
3 /** 3 /**
4 - * WMS 单据类型常量 4 + * WMS 单据业务类型常量
5 * 5 *
6 * 集中管理业务类型枚举的编号,按业务域分段。 6 * 集中管理业务类型枚举的编号,按业务域分段。
7 * 各枚举类引用此处常量,避免硬编码数字。(也避免冲突!!!) 7 * 各枚举类引用此处常量,避免硬编码数字。(也避免冲突!!!)
@@ -12,13 +12,6 @@ public final class WmsOrderTypeConstants { @@ -12,13 +12,6 @@ public final class WmsOrderTypeConstants {
12 12
13 private WmsOrderTypeConstants() {} 13 private WmsOrderTypeConstants() {}
14 14
15 - // ========== 单据名称 ==========  
16 -  
17 - public static final String ORDER_NAME_RECEIPT = "入库单";  
18 - public static final String ORDER_NAME_SHIPMENT = "出库单";  
19 - public static final String ORDER_NAME_MOVEMENT = "移库单";  
20 - public static final String ORDER_NAME_CHECK = "盘库单";  
21 -  
22 // ========== 入库单类型 [100, 200) ========== 15 // ========== 入库单类型 [100, 200) ==========
23 16
24 public static final int RECEIPT_PRODUCTION = 100; // 生产入库:WmsReceiptOrderDO 17 public static final int RECEIPT_PRODUCTION = 100; // 生产入库:WmsReceiptOrderDO
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/inventory/WmsInventoryOrderTypeEnum.java renamed to yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/order/WmsOrderTypeEnum.java
1 -package cn.iocoder.yudao.module.wms.enums.inventory; 1 +package cn.iocoder.yudao.module.wms.enums.order;
2 2
3 import cn.iocoder.yudao.framework.common.core.ArrayValuable; 3 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
4 import lombok.AllArgsConstructor; 4 import lombok.AllArgsConstructor;
@@ -7,20 +7,20 @@ import lombok.Getter; @@ -7,20 +7,20 @@ import lombok.Getter;
7 import java.util.Arrays; 7 import java.util.Arrays;
8 8
9 /** 9 /**
10 - * WMS 库存操作类型枚举 10 + * WMS 单据类型枚举
11 * 11 *
12 * @author 芋道源码 12 * @author 芋道源码
13 */ 13 */
14 @Getter 14 @Getter
15 @AllArgsConstructor 15 @AllArgsConstructor
16 -public enum WmsInventoryOrderTypeEnum implements ArrayValuable<Integer> { 16 +public enum WmsOrderTypeEnum implements ArrayValuable<Integer> {
17 17
18 - RECEIPT(1, "入库"),  
19 - SHIPMENT(2, "出库"),  
20 - MOVEMENT(3, "移库"),  
21 - CHECK(4, "盘库"); 18 + RECEIPT(1, "入库单"),
  19 + SHIPMENT(2, "出库单"),
  20 + MOVEMENT(3, "移库单"),
  21 + CHECK(4, "盘库单");
22 22
23 - public static final Integer[] ARRAYS = Arrays.stream(values()).map(WmsInventoryOrderTypeEnum::getType).toArray(Integer[]::new); 23 + public static final Integer[] ARRAYS = Arrays.stream(values()).map(WmsOrderTypeEnum::getType).toArray(Integer[]::new);
24 24
25 /** 25 /**
26 * 类型 26 * 类型
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/inventory/dto/WmsInventoryChangeReqDTO.java
1 package cn.iocoder.yudao.module.wms.service.inventory.dto; 1 package cn.iocoder.yudao.module.wms.service.inventory.dto;
2 2
3 -import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum; 3 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
4 import lombok.Data; 4 import lombok.Data;
5 5
6 import java.math.BigDecimal; 6 import java.math.BigDecimal;
@@ -15,17 +15,17 @@ import java.util.List; @@ -15,17 +15,17 @@ import java.util.List;
15 public class WmsInventoryChangeReqDTO { 15 public class WmsInventoryChangeReqDTO {
16 16
17 /** 17 /**
18 - * 操作单编号 18 + * 单据编号
19 */ 19 */
20 private Long orderId; 20 private Long orderId;
21 /** 21 /**
22 - * 操作单号 22 + * 单据号
23 */ 23 */
24 private String orderNo; 24 private String orderNo;
25 /** 25 /**
26 - * 操作类型 26 + * 单据类型
27 * 27 *
28 - * 枚举 {@link WmsInventoryOrderTypeEnum#getType()} 28 + * 枚举 {@link WmsOrderTypeEnum#getType()}
29 */ 29 */
30 private Integer orderType; 30 private Integer orderType;
31 31
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemSkuServiceImpl.java
@@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; @@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.sku.WmsItemSkuSaveReqVO; 7 import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.sku.WmsItemSkuSaveReqVO;
8 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO; 8 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
9 import cn.iocoder.yudao.module.wms.dal.mysql.md.item.WmsItemSkuMapper; 9 import cn.iocoder.yudao.module.wms.dal.mysql.md.item.WmsItemSkuMapper;
  10 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
10 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService; 11 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
11 import cn.iocoder.yudao.module.wms.service.order.check.WmsCheckOrderDetailService; 12 import cn.iocoder.yudao.module.wms.service.order.check.WmsCheckOrderDetailService;
12 import cn.iocoder.yudao.module.wms.service.order.movement.WmsMovementOrderDetailService; 13 import cn.iocoder.yudao.module.wms.service.order.movement.WmsMovementOrderDetailService;
@@ -27,7 +28,6 @@ import java.util.Set; @@ -27,7 +28,6 @@ import java.util.Set;
27 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 28 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
28 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*; 29 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
29 import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.*; 30 import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.*;
30 -import static cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeConstants.*;  
31 31
32 /** 32 /**
33 * WMS 商品 SKU Service 实现类 33 * WMS 商品 SKU Service 实现类
@@ -172,16 +172,16 @@ public class WmsItemSkuServiceImpl implements WmsItemSkuService { @@ -172,16 +172,16 @@ public class WmsItemSkuServiceImpl implements WmsItemSkuService {
172 172
173 private void validateItemSkuOrderUnused(WmsItemSkuDO sku) { 173 private void validateItemSkuOrderUnused(WmsItemSkuDO sku) {
174 if (receiptOrderDetailService.getReceiptOrderDetailCountBySkuId(sku.getId()) > 0) { 174 if (receiptOrderDetailService.getReceiptOrderDetailCountBySkuId(sku.getId()) > 0) {
175 - throw exception(ITEM_SKU_HAS_ORDER, sku.getName(), ORDER_NAME_RECEIPT); 175 + throw exception(ITEM_SKU_HAS_ORDER, sku.getName(), WmsOrderTypeEnum.RECEIPT.getName());
176 } 176 }
177 if (shipmentOrderDetailService.getShipmentOrderDetailCountBySkuId(sku.getId()) > 0) { 177 if (shipmentOrderDetailService.getShipmentOrderDetailCountBySkuId(sku.getId()) > 0) {
178 - throw exception(ITEM_SKU_HAS_ORDER, sku.getName(), ORDER_NAME_SHIPMENT); 178 + throw exception(ITEM_SKU_HAS_ORDER, sku.getName(), WmsOrderTypeEnum.SHIPMENT.getName());
179 } 179 }
180 if (movementOrderDetailService.getMovementOrderDetailCountBySkuId(sku.getId()) > 0) { 180 if (movementOrderDetailService.getMovementOrderDetailCountBySkuId(sku.getId()) > 0) {
181 - throw exception(ITEM_SKU_HAS_ORDER, sku.getName(), ORDER_NAME_MOVEMENT); 181 + throw exception(ITEM_SKU_HAS_ORDER, sku.getName(), WmsOrderTypeEnum.MOVEMENT.getName());
182 } 182 }
183 if (checkOrderDetailService.getCheckOrderDetailCountBySkuId(sku.getId()) > 0) { 183 if (checkOrderDetailService.getCheckOrderDetailCountBySkuId(sku.getId()) > 0) {
184 - throw exception(ITEM_SKU_HAS_ORDER, sku.getName(), ORDER_NAME_CHECK); 184 + throw exception(ITEM_SKU_HAS_ORDER, sku.getName(), WmsOrderTypeEnum.CHECK.getName());
185 } 185 }
186 } 186 }
187 187
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/merchant/WmsMerchantServiceImpl.java
@@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantSa @@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantSa
10 import cn.iocoder.yudao.module.wms.dal.dataobject.md.merchant.WmsMerchantDO; 10 import cn.iocoder.yudao.module.wms.dal.dataobject.md.merchant.WmsMerchantDO;
11 import cn.iocoder.yudao.module.wms.dal.mysql.md.merchant.WmsMerchantMapper; 11 import cn.iocoder.yudao.module.wms.dal.mysql.md.merchant.WmsMerchantMapper;
12 import cn.iocoder.yudao.module.wms.enums.md.WmsMerchantTypeEnum; 12 import cn.iocoder.yudao.module.wms.enums.md.WmsMerchantTypeEnum;
  13 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
13 import cn.iocoder.yudao.module.wms.service.order.receipt.WmsReceiptOrderService; 14 import cn.iocoder.yudao.module.wms.service.order.receipt.WmsReceiptOrderService;
14 import cn.iocoder.yudao.module.wms.service.order.shipment.WmsShipmentOrderService; 15 import cn.iocoder.yudao.module.wms.service.order.shipment.WmsShipmentOrderService;
15 import jakarta.annotation.Resource; 16 import jakarta.annotation.Resource;
@@ -22,7 +23,6 @@ import java.util.List; @@ -22,7 +23,6 @@ import java.util.List;
22 23
23 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 24 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
24 import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.*; 25 import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.*;
25 -import static cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeConstants.*;  
26 26
27 /** 27 /**
28 * WMS 往来企业 Service 实现类 28 * WMS 往来企业 Service 实现类
@@ -72,10 +72,10 @@ public class WmsMerchantServiceImpl implements WmsMerchantService { @@ -72,10 +72,10 @@ public class WmsMerchantServiceImpl implements WmsMerchantService {
72 72
73 private void validateMerchantUnused(Long id) { 73 private void validateMerchantUnused(Long id) {
74 if (receiptOrderService.getReceiptOrderCountByMerchantId(id) > 0) { 74 if (receiptOrderService.getReceiptOrderCountByMerchantId(id) > 0) {
75 - throw exception(MERCHANT_HAS_ORDER, ORDER_NAME_RECEIPT); 75 + throw exception(MERCHANT_HAS_ORDER, WmsOrderTypeEnum.RECEIPT.getName());
76 } 76 }
77 if (shipmentOrderService.getShipmentOrderCountByMerchantId(id) > 0) { 77 if (shipmentOrderService.getShipmentOrderCountByMerchantId(id) > 0) {
78 - throw exception(MERCHANT_HAS_ORDER, ORDER_NAME_SHIPMENT); 78 + throw exception(MERCHANT_HAS_ORDER, WmsOrderTypeEnum.SHIPMENT.getName());
79 } 79 }
80 } 80 }
81 81
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseServiceImpl.java
@@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.WmsWarehouse @@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.WmsWarehouse
9 import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.WmsWarehouseSaveReqVO; 9 import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.WmsWarehouseSaveReqVO;
10 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO; 10 import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO;
11 import cn.iocoder.yudao.module.wms.dal.mysql.md.warehouse.WmsWarehouseMapper; 11 import cn.iocoder.yudao.module.wms.dal.mysql.md.warehouse.WmsWarehouseMapper;
  12 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
12 import cn.iocoder.yudao.module.wms.service.order.check.WmsCheckOrderService; 13 import cn.iocoder.yudao.module.wms.service.order.check.WmsCheckOrderService;
13 import cn.iocoder.yudao.module.wms.service.order.movement.WmsMovementOrderService; 14 import cn.iocoder.yudao.module.wms.service.order.movement.WmsMovementOrderService;
14 import cn.iocoder.yudao.module.wms.service.order.receipt.WmsReceiptOrderService; 15 import cn.iocoder.yudao.module.wms.service.order.receipt.WmsReceiptOrderService;
@@ -24,7 +25,6 @@ import java.util.List; @@ -24,7 +25,6 @@ import java.util.List;
24 25
25 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 26 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
26 import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.*; 27 import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.*;
27 -import static cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeConstants.*;  
28 28
29 /** 29 /**
30 * WMS 仓库 Service 实现类 30 * WMS 仓库 Service 实现类
@@ -114,16 +114,16 @@ public class WmsWarehouseServiceImpl implements WmsWarehouseService { @@ -114,16 +114,16 @@ public class WmsWarehouseServiceImpl implements WmsWarehouseService {
114 114
115 private void validateWarehouseUnused(Long id) { 115 private void validateWarehouseUnused(Long id) {
116 if (receiptOrderService.getReceiptOrderCountByWarehouseId(id) > 0) { 116 if (receiptOrderService.getReceiptOrderCountByWarehouseId(id) > 0) {
117 - throw exception(WAREHOUSE_HAS_ORDER, ORDER_NAME_RECEIPT); 117 + throw exception(WAREHOUSE_HAS_ORDER, WmsOrderTypeEnum.RECEIPT.getName());
118 } 118 }
119 if (shipmentOrderService.getShipmentOrderCountByWarehouseId(id) > 0) { 119 if (shipmentOrderService.getShipmentOrderCountByWarehouseId(id) > 0) {
120 - throw exception(WAREHOUSE_HAS_ORDER, ORDER_NAME_SHIPMENT); 120 + throw exception(WAREHOUSE_HAS_ORDER, WmsOrderTypeEnum.SHIPMENT.getName());
121 } 121 }
122 if (movementOrderService.getMovementOrderCountByWarehouseId(id) > 0) { 122 if (movementOrderService.getMovementOrderCountByWarehouseId(id) > 0) {
123 - throw exception(WAREHOUSE_HAS_ORDER, ORDER_NAME_MOVEMENT); 123 + throw exception(WAREHOUSE_HAS_ORDER, WmsOrderTypeEnum.MOVEMENT.getName());
124 } 124 }
125 if (checkOrderService.getCheckOrderCountByWarehouseId(id) > 0) { 125 if (checkOrderService.getCheckOrderCountByWarehouseId(id) > 0) {
126 - throw exception(WAREHOUSE_HAS_ORDER, ORDER_NAME_CHECK); 126 + throw exception(WAREHOUSE_HAS_ORDER, WmsOrderTypeEnum.CHECK.getName());
127 } 127 }
128 } 128 }
129 129
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/check/WmsCheckOrderServiceImpl.java
@@ -4,12 +4,13 @@ import cn.hutool.core.collection.CollUtil; @@ -4,12 +4,13 @@ import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.ObjectUtil; 4 import cn.hutool.core.util.ObjectUtil;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  7 +import cn.iocoder.yudao.module.wms.controller.admin.order.check.vo.detail.WmsCheckOrderDetailSaveReqVO;
7 import cn.iocoder.yudao.module.wms.controller.admin.order.check.vo.order.WmsCheckOrderPageReqVO; 8 import cn.iocoder.yudao.module.wms.controller.admin.order.check.vo.order.WmsCheckOrderPageReqVO;
8 import cn.iocoder.yudao.module.wms.controller.admin.order.check.vo.order.WmsCheckOrderSaveReqVO; 9 import cn.iocoder.yudao.module.wms.controller.admin.order.check.vo.order.WmsCheckOrderSaveReqVO;
9 import cn.iocoder.yudao.module.wms.dal.dataobject.order.check.WmsCheckOrderDO; 10 import cn.iocoder.yudao.module.wms.dal.dataobject.order.check.WmsCheckOrderDO;
10 import cn.iocoder.yudao.module.wms.dal.dataobject.order.check.WmsCheckOrderDetailDO; 11 import cn.iocoder.yudao.module.wms.dal.dataobject.order.check.WmsCheckOrderDetailDO;
11 import cn.iocoder.yudao.module.wms.dal.mysql.order.check.WmsCheckOrderMapper; 12 import cn.iocoder.yudao.module.wms.dal.mysql.order.check.WmsCheckOrderMapper;
12 -import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum; 13 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
13 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum; 14 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum;
14 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService; 15 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
15 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO; 16 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO;
@@ -53,6 +54,7 @@ public class WmsCheckOrderServiceImpl implements WmsCheckOrderService { @@ -53,6 +54,7 @@ public class WmsCheckOrderServiceImpl implements WmsCheckOrderService {
53 // 2.1 插入盘库单 54 // 2.1 插入盘库单
54 WmsCheckOrderDO order = BeanUtils.toBean(createReqVO, WmsCheckOrderDO.class); 55 WmsCheckOrderDO order = BeanUtils.toBean(createReqVO, WmsCheckOrderDO.class);
55 order.setStatus(WmsOrderStatusEnum.PREPARE.getStatus()); 56 order.setStatus(WmsOrderStatusEnum.PREPARE.getStatus());
  57 + fillCheckOrderTotal(order, createReqVO);
56 checkOrderMapper.insert(order); 58 checkOrderMapper.insert(order);
57 // 2.2 插入盘库单明细 59 // 2.2 插入盘库单明细
58 checkOrderDetailService.createCheckOrderDetailList(order.getId(), createReqVO); 60 checkOrderDetailService.createCheckOrderDetailList(order.getId(), createReqVO);
@@ -69,6 +71,7 @@ public class WmsCheckOrderServiceImpl implements WmsCheckOrderService { @@ -69,6 +71,7 @@ public class WmsCheckOrderServiceImpl implements WmsCheckOrderService {
69 // 2.1 更新盘库单 71 // 2.1 更新盘库单
70 WmsCheckOrderDO updateObj = BeanUtils.toBean(updateReqVO, WmsCheckOrderDO.class) 72 WmsCheckOrderDO updateObj = BeanUtils.toBean(updateReqVO, WmsCheckOrderDO.class)
71 .setStatus(WmsOrderStatusEnum.PREPARE.getStatus()); 73 .setStatus(WmsOrderStatusEnum.PREPARE.getStatus());
  74 + fillCheckOrderTotal(updateObj, updateReqVO);
72 checkOrderMapper.updateById(updateObj); 75 checkOrderMapper.updateById(updateObj);
73 // 2.2 更新盘库单明细 76 // 2.2 更新盘库单明细
74 checkOrderDetailService.updateCheckOrderDetailList(updateReqVO.getId(), updateReqVO); 77 checkOrderDetailService.updateCheckOrderDetailList(updateReqVO.getId(), updateReqVO);
@@ -149,6 +152,35 @@ public class WmsCheckOrderServiceImpl implements WmsCheckOrderService { @@ -149,6 +152,35 @@ public class WmsCheckOrderServiceImpl implements WmsCheckOrderService {
149 } 152 }
150 } 153 }
151 154
  155 + private void fillCheckOrderTotal(WmsCheckOrderDO order, WmsCheckOrderSaveReqVO reqVO) {
  156 + BigDecimal totalQuantity = BigDecimal.ZERO;
  157 + BigDecimal totalPrice = BigDecimal.ZERO;
  158 + BigDecimal actualPrice = BigDecimal.ZERO;
  159 + if (CollUtil.isNotEmpty(reqVO.getDetails())) {
  160 + for (WmsCheckOrderDetailSaveReqVO detail : reqVO.getDetails()) {
  161 + BigDecimal differenceQuantity = calculateDifferenceQuantity(detail.getQuantity(), detail.getCheckQuantity());
  162 + totalQuantity = totalQuantity.add(differenceQuantity);
  163 + if (detail.getPrice() == null) {
  164 + continue;
  165 + }
  166 + if (detail.getQuantity() != null) {
  167 + totalPrice = totalPrice.add(detail.getQuantity().multiply(detail.getPrice()));
  168 + }
  169 + if (detail.getCheckQuantity() != null) {
  170 + actualPrice = actualPrice.add(detail.getCheckQuantity().multiply(detail.getPrice()));
  171 + }
  172 + }
  173 + }
  174 + order.setTotalQuantity(totalQuantity).setTotalPrice(totalPrice).setActualPrice(actualPrice);
  175 + }
  176 +
  177 + private BigDecimal calculateDifferenceQuantity(BigDecimal quantity, BigDecimal checkQuantity) {
  178 + if (quantity == null || checkQuantity == null) {
  179 + return BigDecimal.ZERO;
  180 + }
  181 + return checkQuantity.subtract(quantity);
  182 + }
  183 +
152 private WmsCheckOrderDO validateCheckOrderExists(Long id) { 184 private WmsCheckOrderDO validateCheckOrderExists(Long id) {
153 WmsCheckOrderDO order = id == null ? null : checkOrderMapper.selectById(id); 185 WmsCheckOrderDO order = id == null ? null : checkOrderMapper.selectById(id);
154 if (order == null) { 186 if (order == null) {
@@ -180,7 +212,7 @@ public class WmsCheckOrderServiceImpl implements WmsCheckOrderService { @@ -180,7 +212,7 @@ public class WmsCheckOrderServiceImpl implements WmsCheckOrderService {
180 private void changeInventory(WmsCheckOrderDO order, List<WmsCheckOrderDetailDO> details) { 212 private void changeInventory(WmsCheckOrderDO order, List<WmsCheckOrderDetailDO> details) {
181 List<WmsInventoryChangeReqDTO.Item> items = new ArrayList<>(details.size()); 213 List<WmsInventoryChangeReqDTO.Item> items = new ArrayList<>(details.size());
182 for (WmsCheckOrderDetailDO detail : details) { 214 for (WmsCheckOrderDetailDO detail : details) {
183 - BigDecimal differenceQuantity = detail.getCheckQuantity().subtract(detail.getQuantity()); 215 + BigDecimal differenceQuantity = calculateDifferenceQuantity(detail.getQuantity(), detail.getCheckQuantity());
184 if (differenceQuantity.compareTo(BigDecimal.ZERO) == 0) { 216 if (differenceQuantity.compareTo(BigDecimal.ZERO) == 0) {
185 continue; 217 continue;
186 } 218 }
@@ -193,7 +225,7 @@ public class WmsCheckOrderServiceImpl implements WmsCheckOrderService { @@ -193,7 +225,7 @@ public class WmsCheckOrderServiceImpl implements WmsCheckOrderService {
193 } 225 }
194 inventoryService.changeInventory(new WmsInventoryChangeReqDTO() 226 inventoryService.changeInventory(new WmsInventoryChangeReqDTO()
195 .setOrderId(order.getId()).setOrderNo(order.getNo()) 227 .setOrderId(order.getId()).setOrderNo(order.getNo())
196 - .setOrderType(WmsInventoryOrderTypeEnum.CHECK.getType()).setItems(items)); 228 + .setOrderType(WmsOrderTypeEnum.CHECK.getType()).setItems(items));
197 } 229 }
198 230
199 } 231 }
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/movement/WmsMovementOrderServiceImpl.java
@@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.wms.controller.admin.order.movement.vo.order.WmsM @@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.wms.controller.admin.order.movement.vo.order.WmsM
10 import cn.iocoder.yudao.module.wms.dal.dataobject.order.movement.WmsMovementOrderDO; 10 import cn.iocoder.yudao.module.wms.dal.dataobject.order.movement.WmsMovementOrderDO;
11 import cn.iocoder.yudao.module.wms.dal.dataobject.order.movement.WmsMovementOrderDetailDO; 11 import cn.iocoder.yudao.module.wms.dal.dataobject.order.movement.WmsMovementOrderDetailDO;
12 import cn.iocoder.yudao.module.wms.dal.mysql.order.movement.WmsMovementOrderMapper; 12 import cn.iocoder.yudao.module.wms.dal.mysql.order.movement.WmsMovementOrderMapper;
13 -import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum; 13 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
14 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum; 14 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum;
15 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService; 15 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
16 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO; 16 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO;
@@ -211,7 +211,7 @@ public class WmsMovementOrderServiceImpl implements WmsMovementOrderService { @@ -211,7 +211,7 @@ public class WmsMovementOrderServiceImpl implements WmsMovementOrderService {
211 } 211 }
212 inventoryService.changeInventory(new WmsInventoryChangeReqDTO() 212 inventoryService.changeInventory(new WmsInventoryChangeReqDTO()
213 .setOrderId(order.getId()).setOrderNo(order.getNo()) 213 .setOrderId(order.getId()).setOrderNo(order.getNo())
214 - .setOrderType(WmsInventoryOrderTypeEnum.MOVEMENT.getType()).setItems(items)); 214 + .setOrderType(WmsOrderTypeEnum.MOVEMENT.getType()).setItems(items));
215 } 215 }
216 216
217 } 217 }
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/receipt/WmsReceiptOrderServiceImpl.java
@@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.wms.controller.admin.order.receipt.vo.order.WmsRe @@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.wms.controller.admin.order.receipt.vo.order.WmsRe
10 import cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt.WmsReceiptOrderDO; 10 import cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt.WmsReceiptOrderDO;
11 import cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt.WmsReceiptOrderDetailDO; 11 import cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt.WmsReceiptOrderDetailDO;
12 import cn.iocoder.yudao.module.wms.dal.mysql.order.receipt.WmsReceiptOrderMapper; 12 import cn.iocoder.yudao.module.wms.dal.mysql.order.receipt.WmsReceiptOrderMapper;
13 -import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum; 13 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
14 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum; 14 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum;
15 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService; 15 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
16 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO; 16 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO;
@@ -215,7 +215,7 @@ public class WmsReceiptOrderServiceImpl implements WmsReceiptOrderService { @@ -215,7 +215,7 @@ public class WmsReceiptOrderServiceImpl implements WmsReceiptOrderService {
215 detail -> BeanUtils.toBean(detail, WmsInventoryChangeReqDTO.Item.class)); 215 detail -> BeanUtils.toBean(detail, WmsInventoryChangeReqDTO.Item.class));
216 inventoryService.changeInventory(new WmsInventoryChangeReqDTO() 216 inventoryService.changeInventory(new WmsInventoryChangeReqDTO()
217 .setOrderId(order.getId()).setOrderNo(order.getNo()) 217 .setOrderId(order.getId()).setOrderNo(order.getNo())
218 - .setOrderType(WmsInventoryOrderTypeEnum.RECEIPT.getType()).setItems(items)); 218 + .setOrderType(WmsOrderTypeEnum.RECEIPT.getType()).setItems(items));
219 } 219 }
220 220
221 } 221 }
yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/order/shipment/WmsShipmentOrderServiceImpl.java
@@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.wms.controller.admin.order.shipment.vo.order.WmsS @@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.wms.controller.admin.order.shipment.vo.order.WmsS
10 import cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment.WmsShipmentOrderDO; 10 import cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment.WmsShipmentOrderDO;
11 import cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment.WmsShipmentOrderDetailDO; 11 import cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment.WmsShipmentOrderDetailDO;
12 import cn.iocoder.yudao.module.wms.dal.mysql.order.shipment.WmsShipmentOrderMapper; 12 import cn.iocoder.yudao.module.wms.dal.mysql.order.shipment.WmsShipmentOrderMapper;
13 -import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum; 13 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
14 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum; 14 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum;
15 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService; 15 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
16 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO; 16 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO;
@@ -214,7 +214,7 @@ public class WmsShipmentOrderServiceImpl implements WmsShipmentOrderService { @@ -214,7 +214,7 @@ public class WmsShipmentOrderServiceImpl implements WmsShipmentOrderService {
214 .setQuantity(detail.getQuantity().multiply(BigDecimal.valueOf(-1L)))); 214 .setQuantity(detail.getQuantity().multiply(BigDecimal.valueOf(-1L))));
215 inventoryService.changeInventory(new WmsInventoryChangeReqDTO() 215 inventoryService.changeInventory(new WmsInventoryChangeReqDTO()
216 .setOrderId(order.getId()).setOrderNo(order.getNo()) 216 .setOrderId(order.getId()).setOrderNo(order.getNo())
217 - .setOrderType(WmsInventoryOrderTypeEnum.SHIPMENT.getType()).setItems(items)); 217 + .setOrderType(WmsOrderTypeEnum.SHIPMENT.getType()).setItems(items));
218 } 218 }
219 219
220 } 220 }
yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/inventory/WmsInventoryServiceImplTest.java
@@ -11,7 +11,7 @@ import cn.iocoder.yudao.module.wms.dal.mysql.inventory.WmsInventoryHistoryMapper @@ -11,7 +11,7 @@ import cn.iocoder.yudao.module.wms.dal.mysql.inventory.WmsInventoryHistoryMapper
11 import cn.iocoder.yudao.module.wms.dal.mysql.inventory.WmsInventoryMapper; 11 import cn.iocoder.yudao.module.wms.dal.mysql.inventory.WmsInventoryMapper;
12 import cn.iocoder.yudao.module.wms.dal.mysql.md.item.WmsItemMapper; 12 import cn.iocoder.yudao.module.wms.dal.mysql.md.item.WmsItemMapper;
13 import cn.iocoder.yudao.module.wms.dal.mysql.md.item.WmsItemSkuMapper; 13 import cn.iocoder.yudao.module.wms.dal.mysql.md.item.WmsItemSkuMapper;
14 -import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum; 14 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
15 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO; 15 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO;
16 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemService; 16 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemService;
17 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService; 17 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemSkuService;
@@ -406,7 +406,7 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest { @@ -406,7 +406,7 @@ public class WmsInventoryServiceImplTest extends BaseDbUnitTest {
406 return new WmsInventoryChangeReqDTO() 406 return new WmsInventoryChangeReqDTO()
407 .setOrderId(1L) 407 .setOrderId(1L)
408 .setOrderNo("RK202605120001") 408 .setOrderNo("RK202605120001")
409 - .setOrderType(WmsInventoryOrderTypeEnum.RECEIPT.getType()) 409 + .setOrderType(WmsOrderTypeEnum.RECEIPT.getType())
410 .setItems(Collections.singletonList(new WmsInventoryChangeReqDTO.Item() 410 .setItems(Collections.singletonList(new WmsInventoryChangeReqDTO.Item()
411 .setSkuId(skuId) 411 .setSkuId(skuId)
412 .setWarehouseId(warehouseId) 412 .setWarehouseId(warehouseId)
yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/order/check/WmsCheckOrderDetailServiceImplTest.java
@@ -91,6 +91,7 @@ public class WmsCheckOrderDetailServiceImplTest extends BaseDbUnitTest { @@ -91,6 +91,7 @@ public class WmsCheckOrderDetailServiceImplTest extends BaseDbUnitTest {
91 assertEquals(2001L, dbUpdateDetail.getSkuId()); 91 assertEquals(2001L, dbUpdateDetail.getSkuId());
92 assertEquals(0, new BigDecimal("11.00").compareTo(dbUpdateDetail.getQuantity())); 92 assertEquals(0, new BigDecimal("11.00").compareTo(dbUpdateDetail.getQuantity()));
93 assertEquals(0, new BigDecimal("8.00").compareTo(dbUpdateDetail.getCheckQuantity())); 93 assertEquals(0, new BigDecimal("8.00").compareTo(dbUpdateDetail.getCheckQuantity()));
  94 + assertEquals(0, new BigDecimal("100.00").compareTo(dbUpdateDetail.getPrice()));
94 assertEquals(100L, dbUpdateDetail.getWarehouseId()); 95 assertEquals(100L, dbUpdateDetail.getWarehouseId());
95 // 断言:新增 96 // 断言:新增
96 List<WmsCheckOrderDetailDO> details = checkOrderDetailMapper.selectListByOrderId(orderId); 97 List<WmsCheckOrderDetailDO> details = checkOrderDetailMapper.selectListByOrderId(orderId);
@@ -133,7 +134,7 @@ public class WmsCheckOrderDetailServiceImplTest extends BaseDbUnitTest { @@ -133,7 +134,7 @@ public class WmsCheckOrderDetailServiceImplTest extends BaseDbUnitTest {
133 reqVO.setInventoryId(300L); 134 reqVO.setInventoryId(300L);
134 reqVO.setQuantity(new BigDecimal(quantity)); 135 reqVO.setQuantity(new BigDecimal(quantity));
135 reqVO.setCheckQuantity(new BigDecimal(checkQuantity)); 136 reqVO.setCheckQuantity(new BigDecimal(checkQuantity));
136 - reqVO.setAmount(new BigDecimal("100.00")); 137 + reqVO.setPrice(new BigDecimal("100.00"));
137 return reqVO; 138 return reqVO;
138 } 139 }
139 140
@@ -146,7 +147,7 @@ public class WmsCheckOrderDetailServiceImplTest extends BaseDbUnitTest { @@ -146,7 +147,7 @@ public class WmsCheckOrderDetailServiceImplTest extends BaseDbUnitTest {
146 .inventoryId(300L) 147 .inventoryId(300L)
147 .quantity(new BigDecimal(quantity)) 148 .quantity(new BigDecimal(quantity))
148 .checkQuantity(new BigDecimal(checkQuantity)) 149 .checkQuantity(new BigDecimal(checkQuantity))
149 - .amount(new BigDecimal("100.00")) 150 + .price(new BigDecimal("100.00"))
150 .build(); 151 .build();
151 } 152 }
152 153
yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/order/check/WmsCheckOrderServiceImplTest.java
1 package cn.iocoder.yudao.module.wms.service.order.check; 1 package cn.iocoder.yudao.module.wms.service.order.check;
2 2
3 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 3 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
  4 +import cn.iocoder.yudao.module.wms.controller.admin.order.check.vo.detail.WmsCheckOrderDetailSaveReqVO;
  5 +import cn.iocoder.yudao.module.wms.controller.admin.order.check.vo.order.WmsCheckOrderSaveReqVO;
4 import cn.iocoder.yudao.module.wms.dal.dataobject.order.check.WmsCheckOrderDO; 6 import cn.iocoder.yudao.module.wms.dal.dataobject.order.check.WmsCheckOrderDO;
5 import cn.iocoder.yudao.module.wms.dal.dataobject.order.check.WmsCheckOrderDetailDO; 7 import cn.iocoder.yudao.module.wms.dal.dataobject.order.check.WmsCheckOrderDetailDO;
6 import cn.iocoder.yudao.module.wms.dal.mysql.order.check.WmsCheckOrderDetailMapper; 8 import cn.iocoder.yudao.module.wms.dal.mysql.order.check.WmsCheckOrderDetailMapper;
7 import cn.iocoder.yudao.module.wms.dal.mysql.order.check.WmsCheckOrderMapper; 9 import cn.iocoder.yudao.module.wms.dal.mysql.order.check.WmsCheckOrderMapper;
8 -import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum; 10 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
9 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum; 11 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum;
10 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService; 12 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
11 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO; 13 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO;
@@ -19,6 +21,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean; @@ -19,6 +21,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean;
19 21
20 import java.math.BigDecimal; 22 import java.math.BigDecimal;
21 import java.time.LocalDateTime; 23 import java.time.LocalDateTime;
  24 +import java.util.Arrays;
  25 +import java.util.List;
22 26
23 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; 27 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
24 import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.CHECK_ORDER_DETAIL_REQUIRED; 28 import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.CHECK_ORDER_DETAIL_REQUIRED;
@@ -49,6 +53,54 @@ public class WmsCheckOrderServiceImplTest extends BaseDbUnitTest { @@ -49,6 +53,54 @@ public class WmsCheckOrderServiceImplTest extends BaseDbUnitTest {
49 private WmsInventoryService inventoryService; 53 private WmsInventoryService inventoryService;
50 54
51 @Test 55 @Test
  56 + public void testCreateCheckOrder_calculateTotals() {
  57 + // mock 数据
  58 + WmsCheckOrderSaveReqVO reqVO = createCheckOrderReqVO(100L,
  59 + createCheckOrderDetailReqVO(null, 200L, "10.00", "7.00", "5.00"),
  60 + createCheckOrderDetailReqVO(null, 201L, "20.00", "25.00", "2.00"));
  61 +
  62 + // 调用
  63 + Long orderId = checkOrderService.createCheckOrder(reqVO);
  64 +
  65 + // 断言:盘库单汇总由后端计算
  66 + WmsCheckOrderDO order = checkOrderMapper.selectById(orderId);
  67 + assertNotNull(order);
  68 + assertEquals(0, new BigDecimal("2.00").compareTo(order.getTotalQuantity()));
  69 + assertEquals(0, new BigDecimal("90.00").compareTo(order.getTotalPrice()));
  70 + assertEquals(0, new BigDecimal("85.00").compareTo(order.getActualPrice()));
  71 + // 断言:盘库明细保存单价
  72 + List<WmsCheckOrderDetailDO> details = checkOrderDetailMapper.selectListByOrderId(orderId);
  73 + assertEquals(2, details.size());
  74 + assertEquals(0, new BigDecimal("5.00").compareTo(details.get(0).getPrice()));
  75 + }
  76 +
  77 + @Test
  78 + public void testUpdateCheckOrder_calculateTotals() {
  79 + // mock 数据
  80 + WmsCheckOrderDO order = createCheckOrder(100L);
  81 + checkOrderMapper.insert(order);
  82 + WmsCheckOrderDetailDO oldDetail = createCheckOrderDetail(order.getId(), 200L, 100L, "10.00", "7.00");
  83 + checkOrderDetailMapper.insert(oldDetail);
  84 + WmsCheckOrderSaveReqVO reqVO = createCheckOrderReqVO(100L,
  85 + createCheckOrderDetailReqVO(oldDetail.getId(), 200L, "8.00", "10.00", "6.00"),
  86 + createCheckOrderDetailReqVO(null, 201L, "2.00", "1.00", "4.00"));
  87 + reqVO.setId(order.getId());
  88 + reqVO.setNo(order.getNo());
  89 +
  90 + // 调用
  91 + checkOrderService.updateCheckOrder(reqVO);
  92 +
  93 + // 断言:盘库单汇总由后端重新计算
  94 + WmsCheckOrderDO dbOrder = checkOrderMapper.selectById(order.getId());
  95 + assertNotNull(dbOrder);
  96 + assertEquals(0, new BigDecimal("1.00").compareTo(dbOrder.getTotalQuantity()));
  97 + assertEquals(0, new BigDecimal("56.00").compareTo(dbOrder.getTotalPrice()));
  98 + assertEquals(0, new BigDecimal("64.00").compareTo(dbOrder.getActualPrice()));
  99 + List<WmsCheckOrderDetailDO> details = checkOrderDetailMapper.selectListByOrderId(order.getId());
  100 + assertEquals(2, details.size());
  101 + }
  102 +
  103 + @Test
52 public void testCompleteCheckOrder_success() { 104 public void testCompleteCheckOrder_success() {
53 // mock 数据 105 // mock 数据
54 Long warehouseId = 100L; 106 Long warehouseId = 100L;
@@ -71,11 +123,12 @@ public class WmsCheckOrderServiceImplTest extends BaseDbUnitTest { @@ -71,11 +123,12 @@ public class WmsCheckOrderServiceImplTest extends BaseDbUnitTest {
71 WmsInventoryChangeReqDTO inventoryReqDTO = captor.getValue(); 123 WmsInventoryChangeReqDTO inventoryReqDTO = captor.getValue();
72 assertEquals(order.getId(), inventoryReqDTO.getOrderId()); 124 assertEquals(order.getId(), inventoryReqDTO.getOrderId());
73 assertEquals(order.getNo(), inventoryReqDTO.getOrderNo()); 125 assertEquals(order.getNo(), inventoryReqDTO.getOrderNo());
74 - assertEquals(WmsInventoryOrderTypeEnum.CHECK.getType(), inventoryReqDTO.getOrderType()); 126 + assertEquals(WmsOrderTypeEnum.CHECK.getType(), inventoryReqDTO.getOrderType());
75 assertEquals(1, inventoryReqDTO.getItems().size()); 127 assertEquals(1, inventoryReqDTO.getItems().size());
76 assertEquals(skuId, inventoryReqDTO.getItems().get(0).getSkuId()); 128 assertEquals(skuId, inventoryReqDTO.getItems().get(0).getSkuId());
77 assertEquals(warehouseId, inventoryReqDTO.getItems().get(0).getWarehouseId()); 129 assertEquals(warehouseId, inventoryReqDTO.getItems().get(0).getWarehouseId());
78 assertEquals(0, new BigDecimal("-3.00").compareTo(inventoryReqDTO.getItems().get(0).getQuantity())); 130 assertEquals(0, new BigDecimal("-3.00").compareTo(inventoryReqDTO.getItems().get(0).getQuantity()));
  131 + assertEquals(0, new BigDecimal("30.00").compareTo(inventoryReqDTO.getItems().get(0).getPrice()));
79 } 132 }
80 133
81 @Test 134 @Test
@@ -158,7 +211,8 @@ public class WmsCheckOrderServiceImplTest extends BaseDbUnitTest { @@ -158,7 +211,8 @@ public class WmsCheckOrderServiceImplTest extends BaseDbUnitTest {
158 .setStatus(WmsOrderStatusEnum.PREPARE.getStatus()) 211 .setStatus(WmsOrderStatusEnum.PREPARE.getStatus())
159 .setWarehouseId(warehouseId) 212 .setWarehouseId(warehouseId)
160 .setTotalQuantity(new BigDecimal("-3.00")) 213 .setTotalQuantity(new BigDecimal("-3.00"))
161 - .setTotalAmount(new BigDecimal("30.00")); 214 + .setTotalPrice(new BigDecimal("300.00"))
  215 + .setActualPrice(new BigDecimal("210.00"));
162 } 216 }
163 217
164 private static WmsCheckOrderDetailDO createCheckOrderDetail(Long orderId, Long skuId, Long warehouseId, 218 private static WmsCheckOrderDetailDO createCheckOrderDetail(Long orderId, Long skuId, Long warehouseId,
@@ -170,8 +224,30 @@ public class WmsCheckOrderServiceImplTest extends BaseDbUnitTest { @@ -170,8 +224,30 @@ public class WmsCheckOrderServiceImplTest extends BaseDbUnitTest {
170 .inventoryId(300L) 224 .inventoryId(300L)
171 .quantity(new BigDecimal(quantity)) 225 .quantity(new BigDecimal(quantity))
172 .checkQuantity(new BigDecimal(checkQuantity)) 226 .checkQuantity(new BigDecimal(checkQuantity))
173 - .amount(new BigDecimal("30.00")) 227 + .price(new BigDecimal("30.00"))
174 .build(); 228 .build();
175 } 229 }
176 230
  231 + private static WmsCheckOrderSaveReqVO createCheckOrderReqVO(Long warehouseId, WmsCheckOrderDetailSaveReqVO... details) {
  232 + WmsCheckOrderSaveReqVO reqVO = new WmsCheckOrderSaveReqVO();
  233 + reqVO.setNo("PK202605120002");
  234 + reqVO.setOrderTime(LocalDateTime.of(2026, 5, 12, 0, 0));
  235 + reqVO.setWarehouseId(warehouseId);
  236 + reqVO.setDetails(Arrays.asList(details));
  237 + return reqVO;
  238 + }
  239 +
  240 + private static WmsCheckOrderDetailSaveReqVO createCheckOrderDetailReqVO(Long id, Long skuId,
  241 + String quantity, String checkQuantity,
  242 + String price) {
  243 + WmsCheckOrderDetailSaveReqVO reqVO = new WmsCheckOrderDetailSaveReqVO();
  244 + reqVO.setId(id);
  245 + reqVO.setSkuId(skuId);
  246 + reqVO.setInventoryId(300L);
  247 + reqVO.setQuantity(new BigDecimal(quantity));
  248 + reqVO.setCheckQuantity(new BigDecimal(checkQuantity));
  249 + reqVO.setPrice(new BigDecimal(price));
  250 + return reqVO;
  251 + }
  252 +
177 } 253 }
yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/order/movement/WmsMovementOrderServiceImplTest.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.wms.dal.dataobject.order.movement.WmsMovementOrde @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.wms.dal.dataobject.order.movement.WmsMovementOrde
7 import cn.iocoder.yudao.module.wms.dal.dataobject.order.movement.WmsMovementOrderDetailDO; 7 import cn.iocoder.yudao.module.wms.dal.dataobject.order.movement.WmsMovementOrderDetailDO;
8 import cn.iocoder.yudao.module.wms.dal.mysql.order.movement.WmsMovementOrderDetailMapper; 8 import cn.iocoder.yudao.module.wms.dal.mysql.order.movement.WmsMovementOrderDetailMapper;
9 import cn.iocoder.yudao.module.wms.dal.mysql.order.movement.WmsMovementOrderMapper; 9 import cn.iocoder.yudao.module.wms.dal.mysql.order.movement.WmsMovementOrderMapper;
10 -import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum; 10 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
11 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum; 11 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum;
12 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService; 12 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
13 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO; 13 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO;
@@ -113,7 +113,7 @@ public class WmsMovementOrderServiceImplTest extends BaseDbUnitTest { @@ -113,7 +113,7 @@ public class WmsMovementOrderServiceImplTest extends BaseDbUnitTest {
113 WmsInventoryChangeReqDTO inventoryReqDTO = captor.getValue(); 113 WmsInventoryChangeReqDTO inventoryReqDTO = captor.getValue();
114 assertEquals(order.getId(), inventoryReqDTO.getOrderId()); 114 assertEquals(order.getId(), inventoryReqDTO.getOrderId());
115 assertEquals(order.getNo(), inventoryReqDTO.getOrderNo()); 115 assertEquals(order.getNo(), inventoryReqDTO.getOrderNo());
116 - assertEquals(WmsInventoryOrderTypeEnum.MOVEMENT.getType(), inventoryReqDTO.getOrderType()); 116 + assertEquals(WmsOrderTypeEnum.MOVEMENT.getType(), inventoryReqDTO.getOrderType());
117 assertEquals(2, inventoryReqDTO.getItems().size()); 117 assertEquals(2, inventoryReqDTO.getItems().size());
118 assertEquals(skuId, inventoryReqDTO.getItems().get(0).getSkuId()); 118 assertEquals(skuId, inventoryReqDTO.getItems().get(0).getSkuId());
119 assertEquals(sourceWarehouseId, inventoryReqDTO.getItems().get(0).getWarehouseId()); 119 assertEquals(sourceWarehouseId, inventoryReqDTO.getItems().get(0).getWarehouseId());
yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/order/receipt/WmsReceiptOrderServiceImplTest.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt.WmsReceiptOrderD @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt.WmsReceiptOrderD
7 import cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt.WmsReceiptOrderDetailDO; 7 import cn.iocoder.yudao.module.wms.dal.dataobject.order.receipt.WmsReceiptOrderDetailDO;
8 import cn.iocoder.yudao.module.wms.dal.mysql.order.receipt.WmsReceiptOrderDetailMapper; 8 import cn.iocoder.yudao.module.wms.dal.mysql.order.receipt.WmsReceiptOrderDetailMapper;
9 import cn.iocoder.yudao.module.wms.dal.mysql.order.receipt.WmsReceiptOrderMapper; 9 import cn.iocoder.yudao.module.wms.dal.mysql.order.receipt.WmsReceiptOrderMapper;
10 -import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum; 10 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
11 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum; 11 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum;
12 import cn.iocoder.yudao.module.wms.enums.order.WmsReceiptOrderTypeEnum; 12 import cn.iocoder.yudao.module.wms.enums.order.WmsReceiptOrderTypeEnum;
13 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService; 13 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
@@ -114,7 +114,7 @@ public class WmsReceiptOrderServiceImplTest extends BaseDbUnitTest { @@ -114,7 +114,7 @@ public class WmsReceiptOrderServiceImplTest extends BaseDbUnitTest {
114 WmsInventoryChangeReqDTO inventoryReqDTO = captor.getValue(); 114 WmsInventoryChangeReqDTO inventoryReqDTO = captor.getValue();
115 assertEquals(order.getId(), inventoryReqDTO.getOrderId()); 115 assertEquals(order.getId(), inventoryReqDTO.getOrderId());
116 assertEquals(order.getNo(), inventoryReqDTO.getOrderNo()); 116 assertEquals(order.getNo(), inventoryReqDTO.getOrderNo());
117 - assertEquals(WmsInventoryOrderTypeEnum.RECEIPT.getType(), inventoryReqDTO.getOrderType()); 117 + assertEquals(WmsOrderTypeEnum.RECEIPT.getType(), inventoryReqDTO.getOrderType());
118 assertEquals(1, inventoryReqDTO.getItems().size()); 118 assertEquals(1, inventoryReqDTO.getItems().size());
119 assertEquals(skuId, inventoryReqDTO.getItems().get(0).getSkuId()); 119 assertEquals(skuId, inventoryReqDTO.getItems().get(0).getSkuId());
120 assertEquals(warehouseId, inventoryReqDTO.getItems().get(0).getWarehouseId()); 120 assertEquals(warehouseId, inventoryReqDTO.getItems().get(0).getWarehouseId());
yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/order/shipment/WmsShipmentOrderServiceImplTest.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment.WmsShipmentOrde @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment.WmsShipmentOrde
7 import cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment.WmsShipmentOrderDetailDO; 7 import cn.iocoder.yudao.module.wms.dal.dataobject.order.shipment.WmsShipmentOrderDetailDO;
8 import cn.iocoder.yudao.module.wms.dal.mysql.order.shipment.WmsShipmentOrderDetailMapper; 8 import cn.iocoder.yudao.module.wms.dal.mysql.order.shipment.WmsShipmentOrderDetailMapper;
9 import cn.iocoder.yudao.module.wms.dal.mysql.order.shipment.WmsShipmentOrderMapper; 9 import cn.iocoder.yudao.module.wms.dal.mysql.order.shipment.WmsShipmentOrderMapper;
10 -import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryOrderTypeEnum; 10 +import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum;
11 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum; 11 import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum;
12 import cn.iocoder.yudao.module.wms.enums.order.WmsShipmentOrderTypeEnum; 12 import cn.iocoder.yudao.module.wms.enums.order.WmsShipmentOrderTypeEnum;
13 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService; 13 import cn.iocoder.yudao.module.wms.service.inventory.WmsInventoryService;
@@ -114,7 +114,7 @@ public class WmsShipmentOrderServiceImplTest extends BaseDbUnitTest { @@ -114,7 +114,7 @@ public class WmsShipmentOrderServiceImplTest extends BaseDbUnitTest {
114 WmsInventoryChangeReqDTO inventoryReqDTO = captor.getValue(); 114 WmsInventoryChangeReqDTO inventoryReqDTO = captor.getValue();
115 assertEquals(order.getId(), inventoryReqDTO.getOrderId()); 115 assertEquals(order.getId(), inventoryReqDTO.getOrderId());
116 assertEquals(order.getNo(), inventoryReqDTO.getOrderNo()); 116 assertEquals(order.getNo(), inventoryReqDTO.getOrderNo());
117 - assertEquals(WmsInventoryOrderTypeEnum.SHIPMENT.getType(), inventoryReqDTO.getOrderType()); 117 + assertEquals(WmsOrderTypeEnum.SHIPMENT.getType(), inventoryReqDTO.getOrderType());
118 assertEquals(1, inventoryReqDTO.getItems().size()); 118 assertEquals(1, inventoryReqDTO.getItems().size());
119 assertEquals(skuId, inventoryReqDTO.getItems().get(0).getSkuId()); 119 assertEquals(skuId, inventoryReqDTO.getItems().get(0).getSkuId());
120 assertEquals(warehouseId, inventoryReqDTO.getItems().get(0).getWarehouseId()); 120 assertEquals(warehouseId, inventoryReqDTO.getItems().get(0).getWarehouseId());
yudao-module-wms/src/test/resources/sql/create_tables.sql
@@ -192,7 +192,8 @@ CREATE TABLE IF NOT EXISTS &quot;wms_check_order&quot; ( @@ -192,7 +192,8 @@ CREATE TABLE IF NOT EXISTS &quot;wms_check_order&quot; (
192 "remark" varchar(255) DEFAULT NULL, 192 "remark" varchar(255) DEFAULT NULL,
193 "warehouse_id" bigint NOT NULL, 193 "warehouse_id" bigint NOT NULL,
194 "total_quantity" decimal(20, 2) NOT NULL DEFAULT '0', 194 "total_quantity" decimal(20, 2) NOT NULL DEFAULT '0',
195 - "total_amount" decimal(10, 2) DEFAULT NULL, 195 + "total_price" decimal(10, 2) DEFAULT NULL,
  196 + "actual_price" decimal(10, 2) DEFAULT NULL,
196 "creator" varchar(64) DEFAULT '', 197 "creator" varchar(64) DEFAULT '',
197 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 198 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
198 "updater" varchar(64) DEFAULT '', 199 "updater" varchar(64) DEFAULT '',
@@ -211,7 +212,7 @@ CREATE TABLE IF NOT EXISTS &quot;wms_check_order_detail&quot; ( @@ -211,7 +212,7 @@ CREATE TABLE IF NOT EXISTS &quot;wms_check_order_detail&quot; (
211 "receipt_time" timestamp DEFAULT NULL, 212 "receipt_time" timestamp DEFAULT NULL,
212 "quantity" decimal(20, 2) NOT NULL DEFAULT '0', 213 "quantity" decimal(20, 2) NOT NULL DEFAULT '0',
213 "check_quantity" decimal(20, 2) NOT NULL DEFAULT '0', 214 "check_quantity" decimal(20, 2) NOT NULL DEFAULT '0',
214 - "amount" decimal(10, 2) DEFAULT NULL, 215 + "price" decimal(10, 2) DEFAULT NULL,
215 "creator" varchar(64) DEFAULT '', 216 "creator" varchar(64) DEFAULT '',
216 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 217 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
217 "updater" varchar(64) DEFAULT '', 218 "updater" varchar(64) DEFAULT '',