# `Sp_BillOfNoPicking` (procedure)


- **Type:** PROCEDURE
- **Deterministic:** NO
- **SQL data access:** CONTAINS SQL

## Parameters

| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | `sBrId` | `varchar(100)` |
| 2 | IN | `sSuId` | `varchar(100)` |
| 3 | IN | `sLoginId` | `varchar(100)` |
| 4 | IN | `bFilter` | `text` |
| 5 | IN | `pageNum` | `int` |
| 6 | IN | `pageSize` | `int` |
| 7 | IN | `sUnTaskFormId` | `varchar(100)` |
| 8 | OUT | `totalCount` | `int` |
| 9 | IN | `countCloumn` | `varchar(5000)` |
| 10 | OUT | `countMapJson` | `longtext` |
| 11 | IN | `sFilterOrderBy` | `varchar(5000)` |
| 12 | IN | `sGroupby_select_sql` | `varchar(5000)` |
| 13 | IN | `sGroupby_group_sql` | `varchar(5000)` |

## Body

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

## Narrative

**Business context:** 未领料清单 — paginated list-query builder for the "unpicked materials" report that hangs off the 生产领料 / 扫码领料 / 材料检验 / 材料转换 form group, returning the bills whose materials still need picking (driven by the `CkxReelPaper` system setting in `SysSystemSettings`).

**What it does:** Builds a `P_Tmp_List` temp table, composes a dynamic `p_sSql` (with optional `bFilter`, `sFilterOrderBy`, `sGroupby_*`, and a `p_sLimit` pageNum/pageSize slice), then `CALL Sp_Do_UpdateByPageSizeBefore` to project the final rows. Returns `totalCount` and `countMapJson` for grouped sums. Reel-paper materials switch to per-sheet picking via the `p_bReelPaper` flag. Column whitelist is mirrored by `Fun_getInitColumnByProName` for the same key `Sp_BillOfNoPicking`.

**Invocation:** Bound as `gdsconfigformmaster.sSqlStr` on 5 forms — `1/2 生产工单->生产领料` (`192116810113315311392412610`), `扫码领料` (`101251240115015959855666640`), `扫码领料(唯一码)` (`101251240115016051703207440`), `材料加工->材料检验` (`101251240115016088819365630`), `生产工单->材料转换` (`101251240115016189233954050`). Page-load and filter actions invoke it through the standard form-data-source pipeline.
