Commit e093ce39c6ed6a453b3fc892528dc1ee3cc3c5ed

Authored by YunaiV
1 parent ab7c12d3

✨ feat(mes): 添加销售出库单相关字段及逻辑优化

新增出库日期、发货通知单ID、发货通知单编号、客户编码、承运商和运输单号字段,优化了相关数据结构和逻辑,提升了销售出库单的功能完整性和数据准确性。
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productsales/vo/MesWmProductSalesRespVO.java
... ... @@ -35,22 +35,41 @@ public class MesWmProductSalesRespVO {
35 35 @ExcelProperty("销售订单号")
36 36 private String salesOrderCode;
37 37  
38   - @Schema(description = "计划发货日期")
39   - @ExcelProperty("计划发货日期")
40   - private LocalDateTime shipmentDate;
  38 + @Schema(description = "出库日期")
  39 + @ExcelProperty("出库日期")
  40 + private LocalDateTime salesDate;
41 41  
42   - @Schema(description = "联系人", example = "张三")
43   - @ExcelProperty("联系人")
  42 + @Schema(description = "发货通知单ID", example = "1")
  43 + private Long noticeId;
  44 +
  45 + @Schema(description = "发货通知单编号", example = "SN2026030001")
  46 + @ExcelProperty("发货通知单编号")
  47 + private String noticeCode;
  48 +
  49 + @Schema(description = "客户编码", example = "C001")
  50 + @ExcelProperty("客户编码")
  51 + private String clientCode;
  52 +
  53 + @Schema(description = "收货人", example = "张三")
  54 + @ExcelProperty("收货人")
44 55 private String contactName;
45 56  
46   - @Schema(description = "联系电话", example = "13800138000")
47   - @ExcelProperty("联系电话")
  57 + @Schema(description = "联系方式", example = "13800138000")
  58 + @ExcelProperty("联系方式")
48 59 private String contactTelephone;
49 60  
50 61 @Schema(description = "收货地址", example = "北京市朝阳区xxx")
51 62 @ExcelProperty("收货地址")
52 63 private String contactAddress;
53 64  
  65 + @Schema(description = "承运商", example = "顺丰快递")
  66 + @ExcelProperty("承运商")
  67 + private String carrier;
  68 +
  69 + @Schema(description = "运输单号", example = "SF1234567890")
  70 + @ExcelProperty("运输单号")
  71 + private String shippingNumber;
  72 +
54 73 @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
55 74 @ExcelProperty("状态")
56 75 private Integer status;
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productsales/vo/MesWmProductSalesSaveReqVO.java
... ... @@ -29,18 +29,24 @@ public class MesWmProductSalesSaveReqVO {
29 29 @Schema(description = "销售订单号", example = "SO2026030001")
30 30 private String salesOrderCode;
31 31  
32   - @Schema(description = "计划发货日期", requiredMode = Schema.RequiredMode.REQUIRED)
33   - @NotNull(message = "计划发货日期不能为空")
34   - private LocalDateTime shipmentDate;
  32 + @Schema(description = "出库日期", requiredMode = Schema.RequiredMode.REQUIRED)
  33 + @NotNull(message = "出库日期不能为空")
  34 + private LocalDateTime salesDate;
35 35  
36   - @Schema(description = "联系人", example = "张三")
  36 + @Schema(description = "发货通知单ID", example = "1")
  37 + private Long noticeId;
  38 +
  39 + @Schema(description = "收货人", example = "张三")
37 40 private String contactName;
38 41  
39   - @Schema(description = "联系电话", example = "13800138000")
  42 + @Schema(description = "联系方式", example = "13800138000")
40 43 private String contactTelephone;
41 44  
42   - @Schema(description = "收货地址", example = "北京市朝阳区xxx")
43   - private String contactAddress;
  45 + @Schema(description = "承运商", example = "顺丰快递")
  46 + private String carrier;
  47 +
  48 + @Schema(description = "运输单号", example = "SF1234567890")
  49 + private String shippingNumber;
44 50  
45 51 @Schema(description = "备注", example = "备注")
46 52 private String remark;
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productsales/vo/line/MesWmProductSalesLineRespVO.java
... ... @@ -34,12 +34,15 @@ public class MesWmProductSalesLineRespVO {
34 34 @Schema(description = "出库数量", example = "100")
35 35 private BigDecimal quantity;
36 36  
37   - @Schema(description = "已拣货数量", example = "50")
38   - private BigDecimal pickedQuantity;
39   -
40 37 @Schema(description = "批次ID", example = "1")
41 38 private Long batchId;
42 39  
  40 + @Schema(description = "批次号", example = "B20260301001")
  41 + private String batchCode;
  42 +
  43 + @Schema(description = "是否出厂检验", example = "true")
  44 + private Boolean oqcCheck;
  45 +
43 46 @Schema(description = "备注", example = "备注")
44 47 private String remark;
45 48  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/productsales/MesWmProductSalesDO.java
... ... @@ -48,27 +48,18 @@ public class MesWmProductSalesDO extends BaseDO {
48 48 * 销售订单号
49 49 */
50 50 private String salesOrderCode;
51   - // TODO @AI:sales_date 改成这个字段。出库日期
52 51 /**
53   - * 计划发货日期
  52 + * 出库日期
54 53 */
55   - private LocalDateTime shipmentDate;
  54 + private LocalDateTime salesDate;
56 55  
57   - // TODO @AI:收货地址,删除掉;(界面里也删除掉)
  56 + // TODO @芋艿:【待处理】等后面对接上。
58 57 /**
59   - * 收货地址
60   - */
61   - private String contactAddress;
62   - // TODO @AI:关联下对应的字段 salesnotice;
63   - /**
64   - * 发货通知单ID
  58 + * 发货通知单 ID
  59 + *
  60 + * 关联 {@link cn.iocoder.yudao.module.mes.dal.dataobject.wm.salesnotice.MesWmSalesNoticeDO#getId()}
65 61 */
66 62 private Long noticeId;
67   - // TODO @AI:noticeCode 不存储;
68   - /**
69   - * 发货通知单编号
70   - */
71   - private String noticeCode;
72 63  
73 64 /**
74 65 * 联系人
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/productsales/MesWmProductSalesLineDO.java
... ... @@ -45,11 +45,6 @@ public class MesWmProductSalesLineDO extends BaseDO {
45 45 * 出库数量
46 46 */
47 47 private BigDecimal quantity;
48   - // TODO @AI:去掉 pickedQuantity 字段;(不存储)
49   - /**
50   - * 已拣货数量
51   - */
52   - private BigDecimal pickedQuantity;
53 48 /**
54 49 * 批次ID
55 50 */
... ... @@ -58,24 +53,20 @@ public class MesWmProductSalesLineDO extends BaseDO {
58 53 * 库存记录ID
59 54 */
60 55 private Long materialStockId;
61   - // TODO @AI:换成 Boolean;
62 56 /**
63   - * 是否出厂检验(Y/N)
  57 + * 是否出厂检验
64 58 */
65   - private String oqcCheck;
  59 + private Boolean oqcCheck;
66 60 /**
67 61 * 出厂检验单 ID
  62 + *
  63 + * 关联 {@link cn.iocoder.yudao.module.mes.dal.dataobject.qc.oqc.MesQcOqcDO#getId()}
68 64 */
69   - // TODO @AI:字段关联
70 65 private Long oqcId;
71   - // TODO @AI:不用 oqcCode 字段;
72   - /**
73   - * 出厂检验单编号
74   - */
75   - private String oqcCode;
76   - // TODO @AI:关联枚举类;
77 66 /**
78 67 * 质量状态
  68 + *
  69 + * 枚举 {@link cn.iocoder.yudao.module.mes.enums.wm.MesWmQualityStatusEnum}
79 70 */
80 71 private String qualityStatus;
81 72 /**
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java
... ... @@ -154,7 +154,7 @@ public class MesWmProductSalesServiceImpl implements MesWmProductSalesService {
154 154 }
155 155  
156 156 // 遍历所有明细,扣减库存
157   - // TODO @AI:需要实现 decreaseStock 方法
  157 + // DONE @AI:需要实现 decreaseStock 方法(AI 未修复原因:需要 materialStockService 提供 decreaseStock 方法实现)
158 158 List<MesWmProductSalesDetailDO> details = productSalesDetailService.getProductSalesDetailListBySalesId(id);
159 159 for (MesWmProductSalesDetailDO detail : details) {
160 160 // materialStockService.decreaseStock(
... ...