| | |
| | | .orderByAsc(MesWmStockTakingTaskLineDO::getId)); |
| | | } |
| | | |
| | | /** |
| | | * 按 任务 + 物料 + 库位 查询盘点清单行 |
| | | * |
| | | * 同一物料在同一库位可能因批次/供应商不同存在多行,此时取最早生成的一行, |
| | | * 避免 selectOne 因多行直接抛异常(用户未选择盘点清单时走该兜底逻辑)。 |
| | | */ |
| | | default MesWmStockTakingTaskLineDO selectByTaskIdAndItemIdAndAreaId(Long taskId, Long itemId, Long areaId) { |
| | | return selectOne(new LambdaQueryWrapperX<MesWmStockTakingTaskLineDO>() |
| | | List<MesWmStockTakingTaskLineDO> list = selectList(new LambdaQueryWrapperX<MesWmStockTakingTaskLineDO>() |
| | | .eq(MesWmStockTakingTaskLineDO::getTaskId, taskId) |
| | | .eq(MesWmStockTakingTaskLineDO::getItemId, itemId) |
| | | .eqIfPresent(MesWmStockTakingTaskLineDO::getAreaId, areaId)); |
| | | .eqIfPresent(MesWmStockTakingTaskLineDO::getAreaId, areaId) |
| | | .orderByAsc(MesWmStockTakingTaskLineDO::getId)); |
| | | return list.isEmpty() ? null : list.get(0); |
| | | } |
| | | |
| | | } |