Sp_ComematerialsInspection_BtnRepair (procedure)
- Type: PROCEDURE
- Deterministic: NO
- SQL data access: CONTAINS SQL
Parameters
| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | sProInParam |
varchar(10000) |
| 2 | IN | sMakePerson |
varchar(100) |
| 3 | IN | sBrId |
varchar(100) |
| 4 | IN | sSuId |
varchar(100) |
| 5 | OUT | sReturn |
varchar(1000) |
| 6 | OUT | sCode |
int |
Body
Body is not pre-cached. To inspect: mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURESpComematerialsInspection_BtnRepair'._
Narrative
Business context: 质量管理 → 采购进料检验(IQC) — "异常/不合格" button on the 来料检验 (incoming-materials inspection) list. Stamps the selected qlycomematerialstestmaster rows as failed inspection (iTestResult = 2) and writes the operator-provided exception memo onto each one, optionally merging in extra column changes from the same dialog.
What it does: Validates JSON parameter sProInParam (rejected with Sp_Sis_GetConst('paramsErro', …) when shorter than 5 chars), then extracts .params (the selected-row list with sId values) and .changeValue (the column-change payload, including textareaValue for the exception memo and a valueKey list of extra columns to also update). For each valueKey it builds a SET col = value, … fragment, then unconditionally appends iTestResult = 2, sExceptionMemo = <textareaValue>. For each selected row it PREPAREs a dynamic UPDATE qlycomematerialstestmaster SET <p_setSql> WHERE sId = '<rowId>' AND sBrandsId = … AND sSubsidiaryId = … and executes it. Builds the SQL via raw string concatenation — relies on the dialog producing pre-quoted JSON values, so any unescaped quote in the memo would break the prepared statement.
Invocation: Dispatched generically by GenericProcedureCallController.doGenericProcedureCall() → GenericProcedureCallServiceImpl — the front-end "btnRepair" button posts the proc name with the JSON payload. No gdsmodule hook, no form-master binding, no other proc references this one, no install script ships in xly-src — the body lives only in the live DB.