namespace Admin.NET.Plugin.AiDOP.Manufacturing.Dto;
///
/// 检验员提交检验结果入参。写 qms_gcjyd 白名单列(jgpd/jyhgsl/jybhgsl/ybl/jyr/bz),并推进 ApprovalFlow N1→N2。
/// 判定 jgpd 可空(枚举未确认时不阻塞技术链路,不强写未知值)。
///
public class IpqcSubmitInspectionInput
{
/// 检验单 id(qms_gcjyd.id,BizId)
public long Id { get; set; }
/// 结果判定(jgpd,字典码;枚举未确认,可空,不强写)
public int? Jgpd { get; set; }
/// 检验合格数量(jyhgsl,不得为负)
public decimal Jyhgsl { get; set; }
/// 检验不合格数量(jybhgsl,不得为负,不得大于样本量)
public decimal Jybhgsl { get; set; }
/// 样本量(ybl,检验数,不得为负)
public decimal? Ybl { get; set; }
/// 备注(bz,可选)
public string? Bz { get; set; }
/// 提交说明(流程意见,可选)
public string? Comment { get; set; }
}
///
/// 检验主管审核通过入参(整批判定驱动流程分流)。
/// Qualified=true 整批合格→end;Qualified=false 整批不合格→N3 质量处置。
/// Jgpd 为整批判定值(写 qms_gcjyd.jgpd,可空,枚举未确认不硬编码、由前端传测试/已确认合法值)。
///
public class IpqcSupervisorApproveInput
{
/// 检验单 id
public long Id { get; set; }
/// 整批是否合格(true=合格结束 / false=不合格转质量处置)
public bool Qualified { get; set; } = true;
/// 整批判定 jgpd(写 qms_gcjyd.jgpd,可空,不硬编码枚举)
public int? Jgpd { get; set; }
/// 审批意见(可选)
public string? Comment { get; set; }
}
/// 检验主管退回入参(回 N1,意见必填)。
public class IpqcSupervisorReturnInput
{
/// 检验单 id
public long Id { get; set; }
/// 退回意见(必填)
public string? Comment { get; set; }
}
///
/// 过程检验单流程状态输出(只读,供前端按钮控制)。
///
public class IpqcFlowStateOutput
{
/// BizType(IPQC_INSPECTION)
public string BizType { get; set; } = IpqcInspectionFlowConst.BizType;
/// BizId(=检验单 id)
public long BizId { get; set; }
/// 流程实例 id(未启动为 null)
public long? InstanceId { get; set; }
/// 流程状态(NotStarted / Running / Approved / Rejected / Cancelled / Terminated)
public string FlowStatus { get; set; } = "NotStarted";
/// 业务状态(INSPECTING / PENDING_REVIEW / APPROVED / RETURNED)
public string? BusinessStatus { get; set; }
/// 当前节点码(N1_INSPECT / N2_SUP_REVIEW,未启动/已结束为 null)
public string? CurrentNodeCode { get; set; }
/// 当前节点名
public string? CurrentNodeName { get; set; }
/// 当前节点角色
public string? CurrentAssigneeRole { get; set; }
/// 当前用户是否可提交检验结果
public bool CanSubmitResult { get; set; }
/// 当前用户是否可主管通过
public bool CanSupervisorApprove { get; set; }
/// 当前用户是否可主管退回
public bool CanSupervisorReturn { get; set; }
/// 当前用户是否可提交质量处置(当前节点 N3 且本人 pending)
public bool CanSubmitDisposition { get; set; }
/// 是否需质量处置(1=不合格转N3 / 0=合格结束;主管 N2 整批判定驱动)
public int? DispositionRequired { get; set; }
/// 是否已有质量处置记录
public bool HasDisposition { get; set; }
/// 流程是否已完成/终态
public bool IsCompleted { get; set; }
/// 检验员姓名
public string? InspectorName { get; set; }
/// 检验主管姓名
public string? SupervisorName { get; set; }
/// 更新时间
public DateTime? UpdatedAt { get; set; }
/// 提示信息
public string? Message { get; set; }
}