# `Fun_getProcessByControlName` (function)

> 根据工单ID，控制表ID获取工艺流


- **Type:** FUNCTION
- **Returns:** `longtext`
- **Deterministic:** NO
- **SQL data access:** CONTAINS SQL

## Parameters

| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | `sWorkOrderId` | `varchar(50)` |
| 2 | IN | `sWorkControlId` | `varchar(50)` |

## Body

_Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE FUNCTION `Fun_getProcessByControlName`'`._

## Narrative

**Business context:** Work-order process-flow renderer (生产管理 → 工单 / 生产计划) — assembles a JSON array describing each `mftworkorderprocess` step of a given work-order along with a colour-coded state for the planning UI's gantt/flow chart. Despite the header comment mentioning a `控制表ID` parameter, only `sWorkOrderId` is actually used in the body (the second arg is unreferenced).

**What it does:** joins `mftProductionPlanSlave` → `mftworkorderprocess` → `eleprocess` → `sisprocessclassify`, groups by `iOrder` to collapse multi-slave rows into one entry per process step, picks `MIN(sState)` as the worst-case status, and `GROUP_CONCAT`s a `JSON_OBJECT` per step (`sProcessName`, `sWorkOrderId`, `sState`, `background` colour decided by state/`bFrozen`). Returns a `[...]`-wrapped JSON array, or `''` when no rows match.

**Invocation:** wrapped by `Fun_getProcessByWorkOrderId` (the one-arg convenience version that passes `''` as `sWorkControlId`). Neither function is referenced by any other routine, form-master sSqlStr, gdsmodule hook, or xly-src file. Status: appears orphaned. No live caller found in any channel — candidate for maintainer audit (likely a feature-flag UI helper that was wired in a deprecated form).
