0, '待确认' => 1, '待审核' => 2, '已审核' => 3]; } else { // confirm(审批页)等 $map = ['待审核' => 0, '已驳回' => 1, '待确认' => 2, '已审核' => 3]; } return $map[$label] ?? 99; } /** @return string[] */ public static function wflowPendingIssueValues(): array { return [self::WFLOW_PENDING_ISSUE, '0', '']; } /** @return string[] */ public static function podPickedValues(): array { return [self::POD_PICKED, '1']; } /** @return string[] */ public static function podUnpickedValues(): array { return [self::POD_UNPICKED, '0', '']; } /** @return string[] */ public static function poCompletedValues(): array { return [self::PO_COMPLETED, '1']; } /** @return string[] */ public static function poInProgressValues(): array { return [self::PO_IN_PROGRESS, '0']; } public static function sqlPoCompleted(string $column = 'status'): string { $c = self::quoteSqlIdent($column); return "TRIM(CAST({$c} AS CHAR)) IN ('" . self::PO_COMPLETED . "','1')"; } public static function sqlPoInProgress(string $column = 'status'): string { $c = self::quoteSqlIdent($column); return "TRIM(CAST({$c} AS CHAR)) IN ('" . self::PO_IN_PROGRESS . "','0')"; } public static function sqlPodNotVoid(string $column = 'status'): string { $c = self::quoteSqlIdent($column); $void = str_replace("'", "''", self::POD_VOID); return "({$c} IS NULL OR TRIM(CAST({$c} AS CHAR)) NOT IN ('{$void}','2'))"; } protected static function quoteSqlIdent(string $column): string { if (strpos($column, '.') !== false) { $parts = explode('.', $column, 2); return '`' . str_replace('`', '', $parts[0]) . '`.`' . str_replace('`', '', $parts[1]) . '`'; } return '`' . str_replace('`', '', $column) . '`'; } }