package cn.iocoder.yudao.module.aftersales.dal.dataobject.ticket; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.module.aftersales.enums.AfterSaleIssueTypeEnum; import cn.iocoder.yudao.module.aftersales.enums.AfterSaleTicketStatusEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; import java.time.LocalDateTime; /** * 售后工单 DO */ @TableName("after_sale_ticket") @KeySequence("after_sale_ticket_seq") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor public class AfterSaleTicketDO extends BaseDO { /** * 工单编号 */ @TableId private Long id; /** * 工单单号 */ private String no; /** * 工单主题/标题 */ private String name; /** * 客户编号,关联 crm_customer.id */ private Long customerId; /** * 联系人编号,关联 crm_contact.id */ private Long contactId; /** * 销售订单编号,关联 erp_sale_order.id */ private Long saleOrderId; /** * 销售订单号(冗余) */ private String saleOrderNo; /** * 合同编号,关联 crm_contract.id */ private Long contractId; /** * 问题类型 * * 枚举 {@link AfterSaleIssueTypeEnum} */ private Integer issueType; /** * 问题分类: 外观缺陷/功能故障/尺寸偏差/包装破损/其他 */ private String issueCategory; /** * 问题描述 */ private String issueDescription; /** * 严重程度: 0-轻微 1-一般 2-严重 3-致命 */ private Integer severityLevel; /** * 工单状态 * * 枚举 {@link AfterSaleTicketStatusEnum} */ private Integer status; /** * 负责人用户编号 */ private Long ownerUserId; /** * 处理人用户编号 */ private Long handlerUserId; /** * BPM 工作流实例编号 */ private String processInstanceId; /** * 关联退货申请编号,关联 after_sale_return.id */ private Long returnId; /** * 关联维修记录编号,关联 after_sale_repair.id */ private Long repairId; /** * 解决时间 */ private LocalDateTime resolvedTime; /** * 关闭时间 */ private LocalDateTime closedTime; /** * 备注 */ private String remark; }