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 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; } }