package nckd.jimin.jyyy.hr.tsrsc.plugin.form;

import kd.bos.form.events.SetFilterEvent;
import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.permission.PermissionServiceHelper;
import kd.bos.servicehelper.user.UserServiceHelper;
import kd.hrmp.hrpi.business.domian.service.impl.PersonServiceImpl;
import kd.sdk.plugin.Plugin;

import java.util.List;
import java.util.Map;

/**
 * 候选人列表过滤插件
 * 默认按照制单人 = 当前用户 or 对应应聘登记表的招聘需求负责人工号 = 当前HR人员工号
 * 如果当前用户在 角色编码 = S-001 下，不受控制
 * @author ：Tyx
 * @since ：2025-07-09
 */
public class AppFileFilterListPlugin extends AbstractListPlugin implements Plugin {

    @Override
    public void setFilter(SetFilterEvent e) {
        super.setFilter(e);
        //当前用户ID
        Long userId = UserServiceHelper.getCurrentUserId();
        //查询角色是否在 编码 = S-001 的角色下 在的话不做任何过滤
        List<Long> userIds = PermissionServiceHelper.getUsersByRoleNum("S-001");
        if(userIds.contains(userId))
            return;
        Map<String, Object> userInfo = UserServiceHelper.getUserInfoByID(userId);
        String personNumber = userInfo.get("number").toString();
        QFilter filter = new QFilter("creator.id", QCP.equals, userId);
        filter.or("arfrsm.nckd_managernumber",QCP.equals, personNumber);
        e.addCustomQFilter(filter);
    }
}