package com.mortals.xhx.module.window.service;

import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.common.pdu.window.WindowPdu;
import com.mortals.xhx.module.perform.model.vo.StaffErrorMessageVo;
import com.mortals.xhx.module.staff.model.StaffEntity;
import com.mortals.xhx.module.window.dao.WindowOwnerDao;
import com.mortals.xhx.module.window.model.WindowOwnerDetailEntity;
import com.mortals.xhx.module.window.model.WindowOwnerEntity;

import java.util.List;

/**
 * WindowOwnerService
 * <p>
 * 窗口负责人 service接口
 *
 * @author zxfei
 * @date 2023-07-12
 */
public interface WindowOwnerService extends ICRUDService<WindowOwnerEntity, Long> {

    WindowOwnerDao getDao();

    /**
     * 获取基础平台与考勤绩效系统已分配的窗口差集列表
     *
     * @param pdu
     * @return
     */
    List<WindowPdu> subWindowPduList(WindowPdu pdu);


    /**
     * 获取基础平台与考勤绩效系统已分配的窗口差集列表
     *
     * @param context
     * @return
     */
    List<WindowOwnerDetailEntity> ownerWindowList(Context context);


    Rest<List<StaffEntity>> getWindowPerson(Long windowId, Context context);


    Rest<List<String>> getPerformYearList(Context context);
    Rest<List<String>> getPerformSeasonList(Context context);
    Rest<List<String>> getPerformMonthList(Context context);

    /**
     * 获取负责人管辖的工作人员
     * @param id
     * @return
     */
    List<StaffErrorMessageVo> getStaffList(Long id);
}