using Admin.NET.Core; namespace Admin.NET.Plugin.AiDOP.Entity; /// /// S6 过程检验(IPQC)不合格质量处置记录。 /// /// 整批不合格过程检验单(主管 N2 判定不合格)进入 N3_QUALITY_DISPOSITION,质量工程师提交处置方案落此表。 /// 仅"记录处置结论"(disposition_type=REWORK/CONCESSION/SCRAP/OTHER); /// 本批不做仓储确认/库存/入库/出库/返工单/报废单/附件上传(attachment_json 预留)。 /// 一单一有效处置由 service 校验(status=1 且未软删)+ inspection_id 唯一约束。 /// [SugarTable("ado_s6_ipqc_quality_disposition", "S6过程检验质量处置")] [SugarIndex("uk_s6_ipqc_disp_insp", nameof(InspectionId), OrderByType.Asc, true)] [SugarIndex("idx_s6_ipqc_disp_flow", nameof(FlowInstanceId), OrderByType.Asc)] [SugarIndex("uk_s6_ipqc_disp_no", nameof(DispositionNo), OrderByType.Asc, true)] public class AdoS6IpqcQualityDisposition : 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_gcjyd.id,BizId) [SugarColumn(ColumnName = "inspection_id", ColumnDescription = "检验单id")] public long InspectionId { get; set; } /// 检验单号(qms_gcjyd.djbh) [SugarColumn(ColumnName = "inspection_no", ColumnDescription = "检验单号", Length = 255, IsNullable = true)] public string? InspectionNo { get; set; } /// 业务类型(IPQC_INSPECTION) [SugarColumn(ColumnName = "biz_type", ColumnDescription = "业务类型", Length = 80, IsNullable = true)] public string? BizType { get; set; } = "IPQC_INSPECTION"; /// 流程实例 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; /// 处置类型:REWORK 返工 / CONCESSION 让步 / SCRAP 报废 / OTHER 其它 [SugarColumn(ColumnName = "disposition_type", ColumnDescription = "处置类型", Length = 32)] public string DispositionType { get; set; } = string.Empty; /// 处置数量 [SugarColumn(ColumnName = "disposition_qty", ColumnDescription = "处置数量", Length = 18, DecimalDigits = 6, IsNullable = true)] public decimal? DispositionQty { get; set; } /// 返工数量 [SugarColumn(ColumnName = "rework_qty", ColumnDescription = "返工数量", Length = 18, DecimalDigits = 6, IsNullable = true)] public decimal? ReworkQty { get; set; } /// 让步数量 [SugarColumn(ColumnName = "concession_qty", ColumnDescription = "让步数量", Length = 18, DecimalDigits = 6, IsNullable = true)] public decimal? ConcessionQty { get; set; } /// 报废数量 [SugarColumn(ColumnName = "scrap_qty", ColumnDescription = "报废数量", Length = 18, DecimalDigits = 6, IsNullable = true)] public decimal? ScrapQty { get; set; } /// 处置意见(必填) [SugarColumn(ColumnName = "disposition_opinion", ColumnDescription = "处置意见", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)] public string? DispositionOpinion { get; set; } /// 责任部门 [SugarColumn(ColumnName = "responsibility_dept", ColumnDescription = "责任部门", Length = 255, IsNullable = true)] public string? ResponsibilityDept { get; set; } /// 责任人 [SugarColumn(ColumnName = "responsible_user", ColumnDescription = "责任人", Length = 100, IsNullable = true)] public string? ResponsibleUser { get; set; } /// 附件 JSON(预留,本批不做上传) [SugarColumn(ColumnName = "attachment_json", ColumnDescription = "附件JSON", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)] public string? AttachmentJson { get; set; } /// 状态:1 已提交(本批最小) [SugarColumn(ColumnName = "status", ColumnDescription = "状态")] public int Status { get; set; } /// 提交人 id(质量工程师) [SugarColumn(ColumnName = "submitted_by", ColumnDescription = "提交人id", IsNullable = true)] public long? SubmittedBy { get; set; } /// 提交人姓名 [SugarColumn(ColumnName = "submitted_by_name", ColumnDescription = "提交人姓名", Length = 100, IsNullable = true)] public string? SubmittedByName { get; set; } /// 提交时间 [SugarColumn(ColumnName = "submitted_at", ColumnDescription = "提交时间", IsNullable = true)] public DateTime? SubmittedAt { get; set; } /// 确认人(预留,本批 N3 提交即完成,不做独立确认) [SugarColumn(ColumnName = "confirmed_by", ColumnDescription = "确认人", IsNullable = true)] public long? ConfirmedBy { get; set; } /// 确认时间(预留) [SugarColumn(ColumnName = "confirmed_at", ColumnDescription = "确认时间", IsNullable = true)] public DateTime? ConfirmedAt { get; set; } /// 乐观锁版本 [SugarColumn(ColumnName = "row_version", ColumnDescription = "乐观锁版本", IsNullable = true)] public long? RowVersion { get; set; } }