云
7 小时以前 02a1ae81eba7b48223052fb833859f0a65dd7d21
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/bagcode/MesProBagCodeMapper.java
@@ -275,6 +275,18 @@
            "WHERE deleted = 0 AND status <> 30 AND batch_id = #{batchId} AND item_id IS NOT NULL")
    List<Long> selectDistinctItemIdsByBatchId(@Param("batchId") Long batchId);
    /**
     * 物理删除生成组下的一批袋码(仅用于生成失败/取消后的半成品清理)
     * <p>
     * 半成品从未对外展示,逻辑删除只会留下几十万条垃圾并占用索引空间,因此这里直接物理删除。
     *
     * @param uuid  生成组 UUID
     * @param limit 单次最多删除行数
     * @return 实际删除行数
     */
    @org.apache.ibatis.annotations.Delete("DELETE FROM mes_pro_bag_code WHERE uuid = #{uuid} LIMIT #{limit}")
    int deletePhysicallyByUuidChunk(@Param("uuid") String uuid, @Param("limit") int limit);
    default List<MesProBagCodeDO> selectListByIdsForUpdate(Collection<Long> ids) {
        return selectList(new LambdaQueryWrapperX<MesProBagCodeDO>()
                .in(MesProBagCodeDO::getId, ids)