using APT.Infrastructure.Core;
using APT.BaseData.Domain.Entities.FM;
using System.Collections.Generic;
using APT.Infrastructure.Api;
using System;

namespace APT.BaseData.Domain.IServices.FM
{
    /// <summary>
    /// 
    /// </summary>
    public partial interface IFMDepartmentService : ICommonService
    {
        //IEnumerable<TreeNode<T_FM_DEPARTMENT>> TreeData(KeywordFilter filter);


        /// <summary>
        /// 返回所有下级部门节点
        /// </summary>
        /// <param name="orgId"></param>
        /// <param name="listDepIDInt"></param>
        /// <param name="departmentIdPs"></param>
        void GetDepartmentIds(Guid orgId, List<Guid> listDepIDInt, ref List<Guid> departmentIdPs);

        /// <summary>
        /// 判断是否要权限限制
        /// 要返回所有下级部门节点
        /// </summary>
        /// <param name="orgId"></param>
        /// <param name="listDepIDInt"></param>
        /// <param name="departmentIdPs"></param>
        /// <param name="isAll">是否不限权限</param>
        void GetDepartmentIds(Guid orgId, List<Guid> listDepIDInt, ref List<Guid> departmentIdPs, ref bool isAll);
        /// <summary>
        /// 获取组织ID的部门级组织
        /// </summary>
        /// <param name="DepartmentID"></param>
        /// <returns></returns>
        T_FM_DEPARTMENT GetDEPARTMENTLevel(Guid DepartmentID);


        /// <summary>
        /// 获取人事部
        /// </summary>
        /// <returns></returns>
        T_FM_DEPARTMENT GetRSDep(string DepName = "企业管理部", params string[] paths);

        /// <summary>
        /// 增加文件库
        /// </summary>
        /// <param name="MODULE">模块</param>
        /// <param name="FORM">表单</param>
        /// <param name="FILE_NAME">文件名称</param>
        /// <param name="VALUE_FIELD">附件取值字段</param>
        /// <param name="FILE_TYPE">文件类型</param>
        /// <param name="VALID_TIME">有效日期</param>
        /// <param name="DATA_ID">对应表单id</param>
        /// <param name="IMG_FILE_IDs">文件id</param>
        /// <param name="USER_ID">文件上传人id</param>
        /// 
        /// 
        void AddDocument(string MODULE, string FORM, string FILE_NAME, string VALUE_FIELD, string FILE_TYPE, DateTime VALID_TIME, Guid DATA_ID, List<Guid?> IMG_FILE_IDs,Guid? USER_ID);
    }
}