| | |
| | | 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; |
| | |
| | | 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)); |
| | | /** |
| | | * 分页查询未绑定生产批次的临时托盘(无正式托盘码且未作废),供批次新增/补录绑定托盘下拉使用。 |
| | | * <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); |
| | | |
| | | /** |
| | | * 查询袋码绑定托盘时可选的目标托盘:未作废的临时托盘与正式托盘。 |
| | |
| | | @Select("SELECT IFNULL(MAX(pallet_no), 0) FROM mes_pro_pallet WHERE batch_id = #{batchId}") |
| | | Integer selectMaxPalletNo(@Param("batchId") Long batchId); |
| | | |
| | | /** |
| | | * 物理删除某个生成组下尚未绑定批次的临时托盘(仅用于生成失败/取消后的半成品清理) |
| | | * <p> |
| | | * 已绑定批次的托盘可能已被后续业务使用,即使带有生成组标记也不能删。 |
| | | * |
| | | * @param generateUuid 生成组 UUID |
| | | * @param limit 单次最多删除行数 |
| | | * @return 实际删除行数 |
| | | */ |
| | | @org.apache.ibatis.annotations.Delete("DELETE FROM mes_pro_pallet WHERE generate_uuid = #{generateUuid} " |
| | | + "AND batch_id IS NULL AND code IS NULL LIMIT #{limit}") |
| | | int deletePhysicallyByGenerateUuidChunk(@Param("generateUuid") String generateUuid, @Param("limit") int limit); |
| | | |
| | | @org.apache.ibatis.annotations.Update("UPDATE mes_pro_pallet SET sales_id = #{salesId}, outbound_time = #{outboundTime}, update_time = NOW() " |
| | | + "WHERE id = #{id} AND deleted = 0") |
| | | void markOutbound(@Param("id") Long id, @Param("salesId") Long salesId, |