using Admin.NET.Core;
namespace Admin.NET.Plugin.AiDOP.Entity;
///
/// S5 来料检验 SQE 处置记录。
///
/// 不合格来料检验单(qms_qcp_inspbill.pd=1)经检验主管通过后进入 N3_SQE_DISPOSITION,
/// SQE 提交处置方案落此表。disposition_type 复用 clfs 编码(0 让步接收 / 1 挑选 / 2 报废),
/// 不覆盖 qms_qcp_inspbill.clfs。本批不做仓储确认/库存/入库/附件上传(attachment_json 预留)。
/// 一单一有效处置由 service 校验(status=1 且未软删)。
///
[SugarTable("ado_s5_iqc_sqe_disposition", "S5 来料检验SQE处置")]
[SugarIndex("idx_s5_sqe_disp_inspbill", nameof(InspbillId), OrderByType.Asc)]
[SugarIndex("idx_s5_sqe_disp_flow", nameof(FlowInstanceId), OrderByType.Asc)]
[SugarIndex("uk_s5_sqe_disp_no", nameof(DispositionNo), OrderByType.Asc, true)]
[SugarIndex("idx_s5_sqe_disp_status", nameof(Status), OrderByType.Asc)]
public class AdoS5IqcSqeDisposition : EntityBaseDel, ITenantIdFilter
{
/// 租户
[SugarColumn(ColumnName = "tenant_id", ColumnDescription = "租户", IsNullable = true)]
public long? TenantId { get; set; }
/// 工厂/组织
[SugarColumn(ColumnName = "org_id", ColumnDescription = "工厂/组织", IsNullable = true)]
public long? OrgId { get; set; }
/// 检验单 id(qms_qcp_inspbill.id)
[SugarColumn(ColumnName = "inspbill_id", ColumnDescription = "检验单id")]
public long InspbillId { get; set; }
/// 检验单号(FBILLNO)
[SugarColumn(ColumnName = "inspbill_no", ColumnDescription = "检验单号", Length = 80)]
public string InspbillNo { get; set; } = string.Empty;
/// 来源单号(lydjbh)
[SugarColumn(ColumnName = "source_bill_no", ColumnDescription = "来源单号", Length = 255, IsNullable = true)]
public string? SourceBillNo { get; set; }
/// 业务类型
[SugarColumn(ColumnName = "biz_type", ColumnDescription = "业务类型", Length = 80, IsNullable = true)]
public string? BizType { get; set; } = "S5_IQC_INSPBILL";
/// 流程实例 id
[SugarColumn(ColumnName = "flow_instance_id", ColumnDescription = "流程实例id", IsNullable = true)]
public long? FlowInstanceId { get; set; }
/// 处置单号(唯一)
[SugarColumn(ColumnName = "disposition_no", ColumnDescription = "处置单号", Length = 80)]
public string DispositionNo { get; set; } = string.Empty;
/// 处置方式:0 让步接收 / 1 挑选 / 2 报废
[SugarColumn(ColumnName = "disposition_type", ColumnDescription = "处置方式")]
public int DispositionType { get; set; }
/// 处置数量
[SugarColumn(ColumnName = "disposition_qty", ColumnDescription = "处置数量", Length = 18, DecimalDigits = 6, IsNullable = true)]
public decimal? DispositionQty { get; set; }
/// 让步接收数量
[SugarColumn(ColumnName = "concession_qty", ColumnDescription = "让步接收数量", Length = 18, DecimalDigits = 6, IsNullable = true)]
public decimal? ConcessionQty { get; set; }
/// 挑选数量
[SugarColumn(ColumnName = "selection_qty", ColumnDescription = "挑选数量", Length = 18, DecimalDigits = 6, IsNullable = true)]
public decimal? SelectionQty { get; set; }
/// 报废数量
[SugarColumn(ColumnName = "scrap_qty", ColumnDescription = "报废数量", Length = 18, DecimalDigits = 6, IsNullable = true)]
public decimal? ScrapQty { get; set; }
/// 供应商回复
[SugarColumn(ColumnName = "supplier_response", ColumnDescription = "供应商回复", Length = 500, IsNullable = true)]
public string? SupplierResponse { get; set; }
/// 处置意见
[SugarColumn(ColumnName = "disposition_opinion", ColumnDescription = "处置意见", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
public string? DispositionOpinion { get; set; }
/// 附件 JSON(预留)
[SugarColumn(ColumnName = "attachment_json", ColumnDescription = "附件JSON", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
public string? AttachmentJson { get; set; }
/// SQE 处理人 id
[SugarColumn(ColumnName = "sqe_user_id", ColumnDescription = "SQE处理人id", IsNullable = true)]
public long? SqeUserId { get; set; }
/// SQE 处理人名
[SugarColumn(ColumnName = "sqe_user_name", ColumnDescription = "SQE处理人名", Length = 100, IsNullable = true)]
public string? SqeUserName { get; set; }
/// 状态:1 已提交(本批最小)
[SugarColumn(ColumnName = "status", ColumnDescription = "状态")]
public int Status { get; set; }
/// 提交时间
[SugarColumn(ColumnName = "submitted_at", ColumnDescription = "提交时间", IsNullable = true)]
public DateTime? SubmittedAt { get; set; }
/// 确认人(预留)
[SugarColumn(ColumnName = "confirmed_by", ColumnDescription = "确认人", IsNullable = true)]
public long? ConfirmedBy { get; set; }
/// 确认时间(预留)
[SugarColumn(ColumnName = "confirmed_at", ColumnDescription = "确认时间", IsNullable = true)]
public DateTime? ConfirmedAt { get; set; }
}