4 天以前 83e1b4d0e661f11a407fd6ea86e906b9b87b7180
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket;
 
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
 
import java.math.BigDecimal;
import java.util.List;
 
/**
 * 售后工单保存 VO
 */
@Schema(description = "售后工单 - 保存 Request VO")
@Data
public class AfterSaleTicketSaveReqVO {
 
    @Schema(description = "工单编号", example = "1")
    private Long id;
 
    @Schema(description = "工单主题", requiredMode = Schema.RequiredMode.REQUIRED, example = "产品外观缺陷")
    @NotEmpty(message = "工单主题不能为空")
    private String name;
 
    @Schema(description = "客户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "客户不能为空")
    private Long customerId;
 
    @Schema(description = "联系人编号", example = "1")
    private Long contactId;
 
    @Schema(description = "销售订单编号", example = "1")
    private Long saleOrderId;
 
    @Schema(description = "销售订单号", example = "SO202401010001")
    private String saleOrderNo;
 
    @Schema(description = "合同编号", example = "1")
    private Long contractId;
 
    @Schema(description = "问题类型: 1-一般问题 2-维修问题 3-退货问题", example = "1")
    private Integer issueType;
 
    @Schema(description = "问题分类", example = "外观缺陷")
    private String issueCategory;
 
    @Schema(description = "问题描述", example = "收到货后发现产品表面有划痕")
    private String issueDescription;
 
    @Schema(description = "严重程度: 0-轻微 1-一般 2-严重 3-致命", example = "1")
    private Integer severityLevel;
 
    @Schema(description = "备注", example = "客户要求尽快处理")
    private String remark;
 
    @Schema(description = "明细行列表")
    private List<Item> items;
 
    @Schema(description = "工单明细行")
    @Data
    public static class Item {
 
        @Schema(description = "销售订单行编号", example = "1")
        private Long saleOrderItemId;
 
        @Schema(description = "MDM物料编号", requiredMode = Schema.RequiredMode.REQUIRED)
        @NotNull(message = "物料不能为空")
        private Long itemId;
 
        @Schema(description = "物料编码", example = "MAT-001")
        private String itemCode;
 
        @Schema(description = "物料名称", example = "电子元器件")
        private String itemName;
 
        @Schema(description = "生产批次编号", example = "1")
        private Long batchId;
 
        @Schema(description = "生产批次号", example = "BATCH-2024-001")
        private String batchCode;
 
        @Schema(description = "销售数量", example = "100.000")
        private BigDecimal saleQuantity;
 
        @Schema(description = "退货数量", example = "10.000")
        private BigDecimal returnQuantity;
 
        @Schema(description = "是否需要维修", example = "false")
        private Boolean needRepair;
 
        @Schema(description = "是否需要退货", example = "true")
        private Boolean needReturn;
 
        @Schema(description = "备注")
        private String remark;
    }
 
}