namespace Admin.NET.Plugin.AiDOP.Manufacturing; /// /// S6 过程检验单(IPQC)检验员+主管+质量处置流程常量(BizType / 节点码 / 网关 / 角色码 / 角色固定 Id)。 /// /// v2 流程:N1_INSPECT 检验员录入 → N2_SUP_REVIEW 检验主管审核(整批判定) /// → GW_RESULT 网关(disposition_required==1→N3 / 否则→end)→ N3_QUALITY_DISPOSITION 质量处置 → end。 /// 退回:N2→N1。整批不合格进入 N3 由主管 N2 显式决策驱动(disposition_required),与整批判定 jgpd 一致; /// 不猜 jgpd/pd 枚举、不硬编码。处置只"记录方案",不触发库存/生产/仓储实际动作。 /// 角色 Id 取号避撞 S5 IQC(S5 用 132991501000x;S6 用 132991601000x)。 /// public static class IpqcInspectionFlowConst { /// 流程业务类型编码 public const string BizType = "IPQC_INSPECTION"; /// N1 检验员检验节点 public const string NodeInspect = "N1_INSPECT"; /// N2 检验主管审核节点 public const string NodeSupervisor = "N2_SUP_REVIEW"; /// GW_RESULT 排他网关(按 disposition_required 分流:==1→N3,否则→end) public const string GatewayResult = "GW_RESULT"; /// N3 质量处置节点 public const string NodeDisposition = "N3_QUALITY_DISPOSITION"; /// 检验员角色编码 public const string RoleInspectorCode = "ROLE_S6_IPQC_INSPECTOR"; /// 检验主管角色编码 public const string RoleSupervisorCode = "ROLE_S6_IPQC_SUPERVISOR"; /// 质量工程师角色编码 public const string RoleQualityEngineerCode = "ROLE_S6_IPQC_QUALITY_ENGINEER"; /// 检验员角色固定 Id(种子与流程定义共用) public const long RoleInspectorId = 1329916010001L; /// 检验主管角色固定 Id public const long RoleSupervisorId = 1329916010002L; /// 质量工程师角色固定 Id public const long RoleQualityEngineerId = 1329916010003L; /// 流程定义版本(v2 加入 GW_RESULT/N3;seed 幂等升级依据) public const int FlowDefinitionVersion = 2; /// UAT 冒烟绑定账号(同绑三角色,仅 UAT 自审;职责隔离须用三独立账号验证) public const string UatAccount = "superAdmin.NET"; // 业务状态(落轻量扩展表 business_status,不回写 qms_gcjyd.status) public const string StatusInspecting = "INSPECTING"; public const string StatusPendingReview = "PENDING_REVIEW"; public const string StatusApproved = "APPROVED"; public const string StatusReturned = "RETURNED"; public const string StatusPendingDisposition = "PENDING_DISPOSITION"; public const string StatusDisposed = "DISPOSED"; // 处置类型(IPQC 自定义,非复用 S5 数值枚举;仅记录方案,不触发实际动作) public const string DispTypeRework = "REWORK"; public const string DispTypeConcession = "CONCESSION"; public const string DispTypeScrap = "SCRAP"; public const string DispTypeOther = "OTHER"; }