| | |
| | | package cn.iocoder.yudao.module.mes.dal.mysql.md.item; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.string.StrUtils; |
| | | 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.query.MPJLambdaWrapperX; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.MesMdItemPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemTypeDO; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Select; |
| | | import org.apache.ibatis.annotations.Update; |
| | | |
| | | import java.util.Collection; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; |
| | | |
| | | /** |
| | | * MES 物料产品 Mapper |
| | | * |
| | | * @author 芋道源码 |
| | | * @author 超级管理员 |
| | | */ |
| | | @Mapper |
| | | public interface MesMdItemMapper extends BaseMapperX<MesMdItemDO> { |
| | | |
| | | default PageResult<MesMdItemDO> selectPage(MesMdItemPageReqVO reqVO, Collection<Long> itemTypeIds) { |
| | | return selectPage(reqVO, new LambdaQueryWrapperX<MesMdItemDO>() |
| | | MPJLambdaWrapperX<MesMdItemDO> query = new MPJLambdaWrapperX<>(); |
| | | query.selectAll(MesMdItemDO.class); |
| | | // 关联物料分类,仅用于排序:同分类的物料聚在一起,分类之间按分类的显示排序 |
| | | query.leftJoin(MesMdItemTypeDO.class, MesMdItemTypeDO::getId, MesMdItemDO::getItemTypeId) |
| | | .likeIfPresent(MesMdItemDO::getCode, reqVO.getCode()) |
| | | .likeIfPresent(MesMdItemDO::getName, reqVO.getName()) |
| | | .inIfPresent(MesMdItemDO::getItemTypeId, itemTypeIds) |
| | | .inIfPresent(MesMdItemDO::getId, |
| | | StrUtil.isBlank(reqVO.getIds()) ? null : StrUtils.splitToLong(reqVO.getIds(), ",")) |
| | | .eqIfPresent(MesMdItemDO::getStatus, reqVO.getStatus()) |
| | | .betweenIfPresent(MesMdItemDO::getCreateTime, reqVO.getCreateTime()) |
| | | .orderByDesc(MesMdItemDO::getId)); |
| | | .orderByAsc(MesMdItemTypeDO::getSort) |
| | | .orderByAsc(MesMdItemTypeDO::getCode) |
| | | .orderByAsc(MesMdItemDO::getCode); |
| | | return selectPage(reqVO, query); |
| | | } |
| | | |
| | | default MesMdItemDO selectByCode(String code) { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 按 ID 查询记录(不过滤逻辑删除,含已删除行) |
| | | * 用于"取消同步(逻辑删除)后重新同步"时判断主键是否被占用 |
| | | */ |
| | | @Select("SELECT * FROM mes_md_item WHERE id = #{id} LIMIT 1") |
| | | MesMdItemDO selectAnyById(Long id); |
| | | |
| | | /** |
| | | * 恢复逻辑删除的记录(deleted 置 0) |
| | | */ |
| | | @Update("UPDATE mes_md_item SET deleted = 0, update_time = NOW() WHERE id = #{id}") |
| | | int restoreById(Long id); |
| | | |
| | | /** |
| | | * 批量查询已存在的 MDM 物料 ID 集合 |
| | | * |
| | | * @param mdmItemIds MDM 物料 ID 列表 |