| | |
| | | import cn.iocoder.yudao.module.mdm.controller.admin.item.vo.MdmItemPageReqVO; |
| | | import cn.iocoder.yudao.module.mdm.dal.dataobject.item.MdmItemDO; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.Collection; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * MDM 物料主数据 Mapper |
| | |
| | | return selectOne(MdmItemDO::getCode, code); |
| | | } |
| | | |
| | | /** |
| | | * 根据编码和删除状态查询物料(用于解决软删除唯一键冲突) |
| | | */ |
| | | default MdmItemDO selectByCodeAndDeleted(String code, Boolean deleted) { |
| | | return selectOne(new LambdaQueryWrapperX<MdmItemDO>() |
| | | .eq(MdmItemDO::getCode, code) |
| | | .eq(MdmItemDO::getDeleted, deleted)); |
| | | } |
| | | |
| | | /** |
| | | * 物理删除(用于清理已软删除的重复记录) |
| | | * 注意:由于 BaseDO 有 @TableLogic,deleteById 是软删除,需要使用原生 SQL |
| | | */ |
| | | @org.apache.ibatis.annotations.Delete("DELETE FROM mdm_item WHERE id = #{id}") |
| | | void physicalDeleteById(Long id); |
| | | |
| | | default MdmItemDO selectByBarCode(String barCode) { |
| | | return selectOne(MdmItemDO::getBarCode, barCode); |
| | | } |
| | |
| | | return selectList(MdmItemDO::getId, ids); |
| | | } |
| | | |
| | | /** |
| | | * 查询物料被哪些业务表引用(未删除的记录) |
| | | * |
| | | * @param itemId 物料编号 |
| | | * @return 引用来源列表,每项包含 source(来源名) 和 cnt(引用数量),仅返回 cnt > 0 的 |
| | | */ |
| | | List<Map<String, Object>> selectItemReferenceCount(@Param("itemId") Long itemId); |
| | | |
| | | } |