库存记录与提交的物料、批次或库位信息不一致、数据不合法、参数错误、记录不一致。提示必须同时包含三要素:
成品仓/2区/A-01),**不要直接暴露纯数字 ID**;名称解析失败时才回退 ID=xxx 并明确标注。// ❌ 笼统、多条件堆叠、无法定位
throw exception(WM_MATERIAL_STOCK_SELECTION_MISMATCH);
// ❌ 只给条件不给值、不给动作、暴露生硬 ID
throw new ServiceException(WM_MATERIAL_STOCK_SELECTION_MISMATCH.getCode(),
"不一致:库位(库存 8 ≠ 提交 null)");
// ✅ 维度 + 两侧可读值 + 动作
throw new ServiceException(WM_MATERIAL_STOCK_SELECTION_MISMATCH.getCode(),
"所选库存记录与单据不一致:所选库存库位[A-01],单据库位为[未选择]。"
+ "请重新选择该物料正确的库存;若仓库/库区/库位/批次被禁用无法修改,请删除本条明细后重新添加。");
itemId → batchId → batchCode → warehouseId → locationId → areaId),**按业务优先级只返回/抛出第一处不满足**,避免一次抛多条让用户抓不住重点。ID=xxx 而非抛二次异常。新增或修改任何可能由多个原因触发的提示前,逐项确认: