# `Sp_MaterialCheck_BtnEventMaterialCheck` (procedure) > @author:钱豹 @date:20210602 封存 @describe:按主计划中的 规划中 次序,列出相应工单对应的材料,进行材料核实 1.先做库存匹配 2.逐条核实库存,如果需要采购,需要注明到料日期 - **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 PROCEDURE `Sp_MaterialCheck_BtnEventMaterialCheck`'`._ ## Narrative **Business context:** 生产管理 — 主辅料稽查 (material check) entry-point. For the 主计划 → 规划中 work-order rows selected by the user, this proc lists the materials each work-order needs, matches them against on-hand `elematerialsstock`, marks rows that can be fulfilled from stock, and flags the rest as needing a purchase with a 到料日期 placeholder. The header notes "1.先做库存匹配 2.逐条核实库存,如果需要采购,需要注明到料日期" (author 钱豹, 2021-06-02 封存). **What it does:** Reads the operator-selected ids from `sProInParam`. Looks up the warehouse-allow-list constant `ComMaterialsWareHouse` from `gdsformconst`. Builds `Materials_Tmp` (required) and `Materials_Tmp_Check` (with diff text) plus `elematerialsstock_Tmp_Check` (live stock snapshot). For each row, compares required `dQty` vs stock `dAuxiliaryQty`; on a match writes `bPlanMaterialCheck=1, bPlanMaterialCheckResult=1` to `mftworkordermaterials`; on a shortfall sets `bPlanMaterialCheck=1, bPlanMaterialCheckResult=0` with the diff text in `sMaterial / sMaterialDiff` so the user can resolve via 稽查通过 / 稽查失败. **Invocation:** Dispatched dynamically by `GenericProcedureCallServiceImpl.doGenericProcedureCall()` — the 主辅料稽查 toolbar button names `Sp_MaterialCheck_BtnEventMaterialCheck` as the action (`Sp__BtnEvent*` pattern). Also `CALL`-ed inline by the APS-state procs `Sp_Manufacture_GetAPSStateOee` and `Sp_Manufacture_GetPlanAPSstate` (which reuse the check logic when refreshing APS planning state). Companions: `Sp_MaterialCheck_BtnEventMaterialCheckPass` and `Sp_MaterialCheck_BtnEventMaterialCheckFail`. Install script ships at `script/标版/30100101/schedule/Sp_MaterialCheck_BtnEventMaterialCheck.sql` (plus a dated variant `*MaterialCheck230511.sql`).