package cn.iocoder.yudao.module.aftersales.dal.dataobject.problem; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.module.aftersales.enums.AfterSaleProblemStatusEnum; 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_problem") @KeySequence("after_sale_problem_seq") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor public class AfterSaleProblemDO extends BaseDO { /** * 问题编号 */ @TableId private Long id; /** * 问题单号,格式 AP+yyyyMMdd+6位 */ private String no; /** * 问题标题 */ private String title; /** * 来源工单编号,关联 after_sale_ticket.id */ private Long sourceTicketId; /** * 来源工单单号(冗余) */ private String sourceTicketNo; /** * 客户编号(来源工单带入) */ private Long customerId; /** * 物料编号(默认取来源工单首条明细) */ private Long itemId; /** * 物料编码(冗余) */ private String itemCode; /** * 物料名称(冗余) */ private String itemName; /** * 生产批次编号(可选) */ private Long batchId; /** * 生产批次号(可选) */ private String batchCode; /** * 问题类型,枚举 {@link cn.iocoder.yudao.module.aftersales.enums.AfterSaleIssueTypeEnum} */ private Integer issueType; /** * 问题分类 */ private String issueCategory; /** * 严重程度: 0-轻微 1-一般 2-严重 3-致命 */ private Integer severityLevel; /** * 问题描述 */ private String description; /** * 根因分类,枚举 {@link cn.iocoder.yudao.module.aftersales.enums.AfterSaleRootCauseCategoryEnum} */ private Integer rootCauseCategory; /** * 根因分析 */ private String rootCause; /** * 解决方案 */ private String solution; /** * 状态,枚举 {@link AfterSaleProblemStatusEnum} */ private Integer status; /** * 沉淀人用户编号 */ private Long ownerUserId; /** * 发布时间 */ private LocalDateTime publishTime; /** * 备注 */ private String remark; }