/mes/wm/material-stock/page)/mes/pro/scan-in)| 操作 | 库存状态变化 | 说明 |
|---|---|---|
| 生产线扫码入库 | → 暂存库(TEMP=10) | 扫码袋码入库成功后,库存进入暂存库(待质检),不再直接进入合格库 |
| 种子质检提交「合格」 | 暂存库 → 合格库(QUALIFIED=20) | 质检结果=合格时,按批次将暂存库库存整批转为合格库(正式库存) |
| 销售扫码出库 | 合格库 → 已出库(OUT=30) | 扣减合格库库存,数量≤0 时状态自动变为已出库 |
| 不合格(质检结果=不合格) | 留在暂存库 | 本期不做退货/报废流,由后续人工处理 |
核心变化:生产线扫码入库从「直接进合格库」改为「先进暂存库待质检」,质检合格后才进入合格库。前端需在库存台账页按状态维度区分展示三个库。
POST /mes/pro/scan-in/inbound,请求参数**保持不变**。batchId,库存进入**暂存库**。| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /mes/wm/material-stock/page | 库存台账分页,新增按 stockState 过滤 |
请求参数(新增/强调):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| stockState | Integer | 否 | 库存状态:10-暂存库,20-合格库,30-已出库 |
| itemId | Long | 否 | 品种(物料)ID |
| batchCode | String | 否 | 批次号 |
| warehouseId | Long | 否 | 仓库 ID |
响应字段(已有,无需新增): 含 itemCode、itemName、batchCode、warehouseName、quantity、stockState 等。
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /mes/wm/material-stock/summary-by-item | 按品种汇总数量 |
| GET | /mes/wm/material-stock/summary-by-batch | 按批次汇总数量 |
| GET | /mes/wm/material-stock/summary-by-warehouse | 按仓库汇总数量 |
请求参数(均可选,复用库存查询条件):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| stockState | Integer | 否 | 库存状态过滤,不传则按状态分开展示 |
| itemId | Long | 否 | 品种过滤 |
| batchCode | String | 否 | 批次号过滤 |
| warehouseId | Long | 否 | 仓库过滤 |
| areaId / locationId | Long | 否 | 库位/库区过滤 |
响应字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| itemId / itemCode / itemName | Long/String/String | 品种维度(按品种汇总时返回) |
| batchId / batchCode | Long/String | 批次维度(按批次汇总时返回) |
| warehouseId / warehouseName | Long/String | 仓库维度(按仓库汇总时返回) |
| stockState / stockStateName | Integer/String | 库存状态及名称 |
| totalQuantity | BigDecimal | 汇总数量 |
响应示例:
{
"code": 0,
"data": [
{ "itemId": 1, "itemCode": "ITEM001", "itemName": "早稻种子", "stockState": 10, "stockStateName": "暂存库", "totalQuantity": 500.00 },
{ "itemId": 1, "itemCode": "ITEM001", "itemName": "早稻种子", "stockState": 20, "stockStateName": "合格库", "totalQuantity": 400.00 }
]
}
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /mes/wm/stock-warning/page | 预警分页(落库记录,含已处理历史) |
| GET | /mes/wm/stock-warning/current | 实时计算当前预警(不落库,秒级) |
| POST | /mes/wm/stock-warning/refresh | 重新计算并落库当前预警 |
| PUT | /mes/wm/stock-warning/handle | 处理预警(标记已处理) |
GET /page 请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| itemCode | String | 否 | 品种编码模糊查询 |
| batchCode | String | 否 | 批次号模糊查询 |
| warningType | Integer | 否 | 预警类型:10-低库存,20-临期,30-库龄 |
| status | Integer | 否 | 处理状态:10-未处理,20-已处理 |
| pageNo / pageSize | Integer | 是 | 分页 |
GET /page 响应字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| id | Long | 预警记录编号 |
| itemCode / itemName | String | 品种编码/名称 |
| batchCode | String | 批次号 |
| warehouseName | String | 仓库名称 |
| warningType / warningTypeName | Integer/String | 预警类型及名称 |
| thresholdValue / currentValue | BigDecimal | 阈值(低库存=最低库存、临期=剩余天数阈值、库龄=超龄天数)/ 当前值 |
| expireDate | String(datetime) | 过期日期(临期预警才有) |
| receiptTime | String(datetime) | 入库时间(库龄预警才有) |
| status / statusName | Integer/String | 处理状态及名称 |
| handleTime / handleRemark | String/String | 处理时间/备注 |
PUT /handle 请求体:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Long | 是 | 预警记录编号 |
| handleRemark | String | 否 | 处理备注 |
业务规则:
- 预警针对**合格库**(正式库存)计算:低库存=在库数量 ≤ 品种最低库存;临期=批次剩余天数 ≤ 品种有效期天数;库龄=入库天数 ≥ 365 天。
- 预警双通道:/current 实时计算(适合看板刷新);/page 为定时落库记录(适合列表,含处理历史)。
- 定时任务 MesWmStockWarningJob(Quartz,JobHandler)每日重算:删除旧未处理预警、写入当前预警,已处理记录保留为历史。
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /mes/wm/stock-taking-task/scan | PDA 扫码盘点(解析追溯码定位批次,写入盘点结果) |
| POST | /mes/wm/stock-taking-task/process-difference | 处理盘点差异(盘盈入库/盘亏出库,调整库存) |
| POST | /mes/wm/stock-taking-task/finish | 完成盘点任务(已有) |
POST /scan 请求体:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| taskId | Long | 是 | 盘点任务编号 |
| scanCode | String | 是 | 追溯码/袋码/托盘码/批次号 |
| takingQuantity | BigDecimal | 是 | 盘点数量 |
| remark | String | 否 | 备注 |
响应: 返回盘点结果编号(Long)。
业务规则:
- 仅**盘点中**状态的任务允许扫码(提交盘点任务后)。
- 扫码解析顺序:批次号 → 袋码 → 托盘码,最终定位到仓库批次。
- 同一任务行**只允许盘点一次**,重复扫码报错「该盘点清单行已有盘点记录,不能重复盘点」;如需修改先删除对应盘点结果再重新扫码。
- 扫码批次不在任务范围内时报「扫码批次不在盘点任务范围内」。
- 盘点流程:创建任务 → 提交(进入盘点中)→ PDA 扫码逐个批次盘点 → 完成(任务→已完成,解冻库存)→ 处理差异(写盘盈/盘亏库存流水)。
| 上一步 | 下一步 | 带入字段 |
|---|---|---|
| 生产线扫码入库 | 库存台账(暂存库) | 袋码→生产批次→仓库批次(batchId/batchCode/itemId/warehouseId 自动桥接) |
| 种子质检提交合格 | 库存台账(合格库) | 按批次号(batchCode)将暂存库整批转合格库,无需前端传库存 ID |
| 销售扫码出库 | 库存台账(已出库) | 销售扫码解析批次 → 定位合格库库存 → 扣减 |
| PDA 扫码盘点 | 盘点结果/任务行 | 追溯码 → 批次 → 任务行(taskId+batchId 定位) |
stockState 参数。stockStateName(台账)或前端字典。/page 数据;提供「实时计算」按钮调 /current;「处理」按钮弹窗填备注调 /handle;「重新计算」按钮调 /refresh。warningTypeName / statusName。stockState 筛选,展示 totalQuantity。taskId 固定为当前任务,scanCode 扫码、takingQuantity 手输)。mes:wm-stock-warning:query/update、mes:wm-stock-taking-task:update、mes:wm-material-stock:query。MesWmStockWarningJob(每日执行一次)。