package cn.iocoder.yudao.module.hrm.dal.mysql.salary; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.hrm.dal.dataobject.salary.HrmSocialSecuritySchemeDeptDO; import org.apache.ibatis.annotations.Mapper; import java.util.Collection; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** * 社保公积金方案适用部门 Mapper * * @author 超级管理员 */ @Mapper public interface HrmSocialSecuritySchemeDeptMapper extends BaseMapperX { /** * 按方案整组替换:先删除该方案的全部(逻辑删除)关联行 */ default void deleteBySchemeId(Long schemeId) { delete(new LambdaQueryWrapperX() .eq(HrmSocialSecuritySchemeDeptDO::getSchemeId, schemeId)); } default List selectListBySchemeId(Long schemeId) { return selectList(new LambdaQueryWrapperX() .eq(HrmSocialSecuritySchemeDeptDO::getSchemeId, schemeId)); } default List selectListBySchemeIds(Collection schemeIds) { return selectList(new LambdaQueryWrapperX() .inIfPresent(HrmSocialSecuritySchemeDeptDO::getSchemeId, schemeIds)); } default List selectListByDeptIds(Collection deptIds) { return selectList(new LambdaQueryWrapperX() .inIfPresent(HrmSocialSecuritySchemeDeptDO::getDeptId, deptIds)); } default List selectListByDeptId(Long deptId) { return selectList(new LambdaQueryWrapperX() .eq(HrmSocialSecuritySchemeDeptDO::getDeptId, deptId)); } /** * 查询全部已绑定部门的方案ID(用于区分「部门专属方案」与「全局默认方案」) */ default Set selectAllBoundSchemeIds() { return selectObjs(new LambdaQueryWrapperX() .select(HrmSocialSecuritySchemeDeptDO::getSchemeId)) .stream().map(obj -> (Long) obj).collect(Collectors.toSet()); } }