package com.qy.worksheetsystem.service;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Service;

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

/**
 * @author qingwu
 * @date 2024/12/5
 * @apiNote
 */
public interface ProjectPersonService {
    /**
     * 项目里员工添加员工
     *
     * @return
     */
    public Map addProjectPerson(Map<String, Object> mapParam);

    /**
     * 通过人员编码获取员工ID
     *
     * @param number
     * @return
     */
    public String getPersonIdBYNumber(String number);

    /**
     * 通过id获取项目管理名称和编码
     *
     * @param id
     * @return
     */
    public List<Map<String, String>> getProjectManagementInfoBYId(String id);

    /**
     * 获取项目成员表id
     *
     * @return
     */
    public String getMemberManagementID();

    /**
     * 启用禁用
     *
     * @param state
     * @param personID
     * @param projectID
     * @return
     */
    public int updateStateByPersonIdAndPerobject(boolean state, String personID, String projectID);

    /**
     * 获取所有人员信息数据  Id 工号 名称 组织 职位
     *
     * @return
     */
    List<Map<String, String>> getPersonAll();

    /**
     * 通过项目id获取项目角色名称，角色  id,  人员id  人员名称
     *
     * @param perobjectId
     * @return
     */
    List<Map<String, Object>> getMemberManagementInfoByPerobjectId(String perobjectId);

    /**
     * 获取员工时间范围内项目列表
     *
     * @param state
     * @return
     */
    List<Map<String, String>> getProjectManagementByState(String state, String dateTime);

    /**
     * 获取员工有效项目列表
     *
     * @param state
     * @param dateTime
     * @return
     */
    List<Map<String, String>> getProjectListByState(String state, String dateTime, String personNumber);

    /**
     * 选择项目角色列表
     *
     * @return
     */

    List<Map<String, String>> getProjectRoleList();

    List<Map<String, String>> getManagementByNumber(String number);

    Map<String, String> getPerson(String personID);


}
