package cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.strategy.user; import cn.iocoder.yudao.framework.common.util.string.StrUtils; import cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.BpmTaskCandidateStrategy; import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum; import cn.iocoder.yudao.module.system.api.dept.PostApi; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import jakarta.annotation.Resource; import org.springframework.stereotype.Component; import java.util.List; import java.util.Set; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; /** * 岗位 {@link BpmTaskCandidateStrategy} 实现类 * * @author kyle */ @Component public class BpmTaskCandidatePostStrategy implements BpmTaskCandidateStrategy { @Resource private PostApi postApi; @Resource private AdminUserApi adminUserApi; @Override public BpmTaskCandidateStrategyEnum getStrategy() { return BpmTaskCandidateStrategyEnum.POST; } @Override public void validateParam(String param) { Set postIds = StrUtils.splitToLongSet(param); postApi.validPostList(postIds); } @Override public Set calculateUsers(String param) { Set postIds = StrUtils.splitToLongSet(param); List users = adminUserApi.getUserListByPostIds(postIds); return convertSet(users, AdminUserRespDTO::getId); } }