| | |
| | | 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.bagcode.vo.MesProBagCodePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeUnboundTonBagPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.bagcode.MesProBagCodeDO; |
| | | import cn.iocoder.yudao.module.mes.enums.pro.MesProBagCodeStatusEnum; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | 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; |
| | |
| | | .orderByAsc(MesProBagCodeDO::getId)); |
| | | } |
| | | |
| | | default List<MesProBagCodeDO> selectUnboundPalletlessList() { |
| | | return selectList(new LambdaQueryWrapperX<MesProBagCodeDO>() |
| | | .isNull(MesProBagCodeDO::getBatchId) |
| | | .isNull(MesProBagCodeDO::getPalletId) |
| | | .in(MesProBagCodeDO::getStatus, MesProBagCodeStatusEnum.GENERATED.getStatus(), |
| | | MesProBagCodeStatusEnum.PRINTED.getStatus()) |
| | | .isNotNull(MesProBagCodeDO::getItemId) |
| | | .orderByAsc(MesProBagCodeDO::getId)); |
| | | /** |
| | | * 分页查询可绑定批次的吨袋:无托盘、未绑定批次、品种计量单位类型为吨。 |
| | | * <p> |
| | | * 计量单位类型在 MDM 侧维护,因此通过 mdm_item + mdm_unit_measure 关联过滤, |
| | | * 避免把全部袋码拉到内存再逐个查单位,数据量大时不可用。 |
| | | */ |
| | | default PageResult<MesProBagCodeDO> selectUnboundTonBagPage(MesProBagCodeUnboundTonBagPageReqVO reqVO, |
| | | String unitType) { |
| | | IPage<MesProBagCodeDO> result = selectUnboundTonBagPage(MyBatisUtils.buildPage(reqVO), reqVO.getKeyword(), |
| | | unitType, List.of(MesProBagCodeStatusEnum.GENERATED.getStatus(), |
| | | MesProBagCodeStatusEnum.PRINTED.getStatus())); |
| | | return new PageResult<>(result.getRecords(), result.getTotal()); |
| | | } |
| | | |
| | | IPage<MesProBagCodeDO> selectUnboundTonBagPage(IPage<MesProBagCodeDO> page, |
| | | @Param("keyword") String keyword, |
| | | @Param("unitType") String unitType, |
| | | @Param("statuses") Collection<Integer> statuses); |
| | | |
| | | /** 批次内有效袋码的品种编号集合(忽略历史空品种袋码),用于录入批次时的品种一致性校验 */ |
| | | @Select("SELECT DISTINCT item_id FROM mes_pro_bag_code " + |
| | | "WHERE deleted = 0 AND status <> 30 AND batch_id = #{batchId} AND item_id IS NOT NULL") |