Sp_Calc_sPmd.md 2.33 KB

Sp_Calc_sPmd (procedure)

生产领料、补料、退料、报废

  • Type: PROCEDURE
  • Deterministic: NO
  • SQL data access: CONTAINS SQL

Parameters

# Mode Name Type
1 IN iFlag int
2 IN iTmpCheck int
3 IN sFormGuid varchar(100)
4 IN sGuid varchar(100)
5 IN sLoginId varchar(100)
6 OUT sReturn varchar(4000)
7 IN sBrId varchar(100)
8 IN sSuId varchar(100)
9 OUT sCode int

Body

Body is not pre-cached. To inspect: mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURESpCalc_sPmd'._

Narrative

Business context: Unified material-movement audit (COMMENT '生产领料、补料、退料、报废') — single procedure that handles production issue (领料), re-issue (补料), return (退料), scrap (报废), and several inbound variants, all keyed by sFormGuid against MitProductionMaterialsMaster. Posts movements into MitMaterialsStore (the unified material-stock ledger) on check; reverses on uncheck.

What it does: Guards on bInvalid/SysLocking. Reads SysSystemSettings.CkxMaterialsStockLimit to decide whether stock-shortage refusal is hard. On iFlag=1 enforces Sp_calc_materialsstoreLimit per slave row (returns negative sCode with the offending material list), calls Sp_MaterialsStoreVirtual to recompute the virtual-stock projection, inserts movement rows into MitMaterialsStore keyed on sFormId (issue vs return etc. controlled by the source form's sign convention), then flips bCheck=1, sStatus=1, sCheckPerson, tCheckDate on MitProductionMaterialsMaster. iFlag=0 symmetrically reverses (deletes the MitMaterialsStore rows and clears flags).

Invocation: Bound to gdsmodule.sProcName on a wide set of forms under 物料领用流程 (生产领料单据, 生产退料单据, 1/1 新增生产补料) and 材料库 (来料入库单据, 其它入库单据, 其它出库单据, 生产领料(新), 生产退料(唯一码), 生产补料(唯一码)), plus 扫码领料(单据) under 功能操作 — all dispatched by BusinessBaseServiceImpl.getPrcName(sFormGuid, …). xly-src ships current (script/标版/20250616/Sp_Calc_sPmd.sql) and legacy (Sp_Calc_sPmd(old).sql) versions plus an upgrade patch — verify which is deployed.