package cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.task;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.task.vo.line.MesWmStockTakingTaskLinePageReqVO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.task.MesWmStockTakingTaskLineDO;
|
import org.apache.ibatis.annotations.Mapper;
|
|
import java.util.List;
|
|
/**
|
* MES 盘点任务行 Mapper
|
*
|
* @author 超级管理员
|
*/
|
@Mapper
|
public interface MesWmStockTakingTaskLineMapper extends BaseMapperX<MesWmStockTakingTaskLineDO> {
|
|
default List<MesWmStockTakingTaskLineDO> selectListByTaskId(Long taskId) {
|
return selectList(new LambdaQueryWrapperX<MesWmStockTakingTaskLineDO>()
|
.eq(MesWmStockTakingTaskLineDO::getTaskId, taskId)
|
.orderByAsc(MesWmStockTakingTaskLineDO::getId));
|
}
|
|
default void deleteByTaskId(Long taskId) {
|
delete(MesWmStockTakingTaskLineDO::getTaskId, taskId);
|
}
|
|
default PageResult<MesWmStockTakingTaskLineDO> selectPage(MesWmStockTakingTaskLinePageReqVO reqVO) {
|
return selectPage(reqVO, new LambdaQueryWrapperX<MesWmStockTakingTaskLineDO>()
|
.eqIfPresent(MesWmStockTakingTaskLineDO::getTaskId, reqVO.getTaskId())
|
.orderByAsc(MesWmStockTakingTaskLineDO::getId));
|
}
|
|
/**
|
* 按 任务 + 物料 + 库位 查询盘点清单行
|
*
|
* 同一物料在同一库位可能因批次/供应商不同存在多行,此时取最早生成的一行,
|
* 避免 selectOne 因多行直接抛异常(用户未选择盘点清单时走该兜底逻辑)。
|
*/
|
default MesWmStockTakingTaskLineDO selectByTaskIdAndItemIdAndAreaId(Long taskId, Long itemId, Long areaId) {
|
List<MesWmStockTakingTaskLineDO> list = selectList(new LambdaQueryWrapperX<MesWmStockTakingTaskLineDO>()
|
.eq(MesWmStockTakingTaskLineDO::getTaskId, taskId)
|
.eq(MesWmStockTakingTaskLineDO::getItemId, itemId)
|
.eqIfPresent(MesWmStockTakingTaskLineDO::getAreaId, areaId)
|
.orderByAsc(MesWmStockTakingTaskLineDO::getId));
|
return list.isEmpty() ? null : list.get(0);
|
}
|
|
}
|