云
6 天以前 87733eb3623593da247c051593d64b8ff9e1d3a4
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/pallet/MesProPalletMapper.java
@@ -3,13 +3,17 @@
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.framework.mybatis.core.util.MyBatisUtils;
import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletUnboundPageReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.pallet.MesProPalletDO;
import cn.iocoder.yudao.module.mes.enums.pro.MesProPalletStatusEnum;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.Collection;
import java.util.List;
/**
@@ -47,16 +51,38 @@
        return selectList(MesProPalletDO::getBatchId, batchId);
    }
    /** 查询未绑定生产批次的临时托盘(无正式托盘码且未作废),供批次新增/补录绑定托盘下拉使用 */
    default List<MesProPalletDO> selectUnboundList() {
        return selectList(new LambdaQueryWrapperX<MesProPalletDO>()
                .isNull(MesProPalletDO::getBatchId)
                .isNull(MesProPalletDO::getCode)
                .eq(MesProPalletDO::getStatus, MesProPalletStatusEnum.IN_USE.getStatus())
                .orderByAsc(MesProPalletDO::getId));
    /** 批量按扫码内容反查托盘(兼容业务码、正式托盘码、临时托盘码),用于扫码事件展示托盘码 */
    default List<MesProPalletDO> selectListByScanCodes(Collection<String> codes) {
        return selectList(new LambdaQueryWrapperX<MesProPalletDO>().and(q ->
                q.in(MesProPalletDO::getBusinessCode, codes).or().in(MesProPalletDO::getCode, codes)
                        .or().in(MesProPalletDO::getTempCode, codes)));
    }
    /**
     * 批量查询多个批次下的托盘码(按托盘序号升序)
     */
    default List<MesProPalletDO> selectListByBatchIds(Collection<Long> batchIds) {
        return selectList(new LambdaQueryWrapperX<MesProPalletDO>()
                .in(MesProPalletDO::getBatchId, batchIds)
                .orderByAsc(MesProPalletDO::getPalletNo));
    }
    /**
     * 分页查询未绑定生产批次的临时托盘(无正式托盘码且未作废),供批次新增/补录绑定托盘下拉使用。
     * <p>
     * 关键字同时匹配临时托盘码与关联品种的编码、名称,便于下拉输入框直接按品种检索。
     */
    default PageResult<MesProPalletDO> selectUnboundPage(MesProPalletUnboundPageReqVO reqVO) {
        IPage<MesProPalletDO> result = selectUnboundPage(MyBatisUtils.buildPage(reqVO),
                reqVO.getKeyword(), MesProPalletStatusEnum.IN_USE.getStatus());
        return new PageResult<>(result.getRecords(), result.getTotal());
    }
    IPage<MesProPalletDO> selectUnboundPage(IPage<MesProPalletDO> page,
                                            @Param("keyword") String keyword,
                                            @Param("status") Integer status);
    /**
     * 查询袋码绑定托盘时可选的目标托盘:未作废的临时托盘与正式托盘。
     * <p>
     * 传入品种时仅返回该品种的托盘,以及尚未确定品种的预生成临时托盘(item_id 为空,绑定袋码时回填品种)。