namespace Model
{
    using System.Collections.Generic;
    using System.Data.Linq;
    using System.Data.Linq.Mapping;
    using System.Reflection;
    using System;

    public partial class SGGLDB : DataContext
    {

        /// <summary>
        /// 获取当前用户在移动端待办事项
        /// </summary>
        /// <param name="unitcode"></param>
        /// <param name="isono"></param>
        /// <returns></returns>
        [Function(Name = "[dbo].[Sp_APP_GetToDoItems]")]
        public IEnumerable<ToDoItem> Sp_APP_GetToDoItems([Parameter(DbType = "nvarchar(50)")] string projectId, [Parameter(DbType = "nvarchar(50)")] string userId)
        {
            IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)MethodInfo.GetCurrentMethod()), projectId, userId);
            return (ISingleResult<ToDoItem>)result.ReturnValue;
        }

        /// <summary>
        /// 获取当前用户在移动端待办事项
        /// </summary>
        /// <param name="unitcode"></param>
        /// <param name="isono"></param>
        /// <returns></returns>
        [Function(Name = "[dbo].[Sp_APP_GetCQMSToDoItems]")]
        public IEnumerable<ToDoItem> Sp_APP_GetCQMSToDoItems([Parameter(DbType = "nvarchar(50)")] string projectId, [Parameter(DbType = "nvarchar(50)")] string userId)
        {
            IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)MethodInfo.GetCurrentMethod()), projectId, userId);
            return (ISingleResult<ToDoItem>)result.ReturnValue;
        }
        /// <summary>
        /// 获取当前用户在移动端待办事项
        /// </summary>
        /// <param name="unitcode"></param>
        /// <param name="isono"></param>
        /// <returns></returns>
        [Function(Name = "[dbo].[Sp_APP_GetHSSEToDoItems]")]
        public IEnumerable<ToDoItem> Sp_APP_GetHSSEToDoItems([Parameter(DbType = "nvarchar(50)")] string projectId, [Parameter(DbType = "nvarchar(50)")] string userId)
        {
            IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)MethodInfo.GetCurrentMethod()), projectId, userId);
            return (ISingleResult<ToDoItem>)result.ReturnValue;
        }
        
        /// <summary>
        /// 获取当前用户在本部待办事项
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        [Function(Name = "[dbo].[Sp_Main_GetToDoItems]")]
        public IEnumerable<ToDoItem> Sp_Main_GetToDoItems([Parameter(DbType = "nvarchar(50)")] string userId, [Parameter(DbType = "nvarchar(50)")] string projectId)
        {
            IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)MethodInfo.GetCurrentMethod()), userId, projectId);
            return (ISingleResult<ToDoItem>)result.ReturnValue;
        }

        /// <summary>
        /// 获取人员培训教材
        /// </summary>
        /// <param name="planId"></param>
        /// <param name="workPostId"></param>
        /// <returns></returns>
        [Function(Name = "[dbo].[Sp_GetTraining_TaskItemTraining]")]
        public IEnumerable<TrainingTaskItemItem> Sp_GetTraining_TaskItemTraining([Parameter(DbType = "nvarchar(50)")] string planId, [Parameter(DbType = "nvarchar(200)")] string workPostId)
        {
            IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)MethodInfo.GetCurrentMethod()), planId, workPostId);
            return (ISingleResult<TrainingTaskItemItem>)result.ReturnValue;
        }

        /// <summary>
        /// 获取隐患整改单
        /// </summary>
        /// <param name="projectId"></param>
        /// <param name="states"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        [Function(Name = "[dbo].[SP_RectifyNoticesListByProjectStates]")]
        public IEnumerable<RectifyNoticesItem> SP_RectifyNoticesListByProjectStates([Parameter(DbType = "nvarchar(50)")] string projectId, [Parameter(DbType = "nvarchar(50)")] string states, [Parameter(DbType = "INT")] int pageIndex, [Parameter(DbType = "INT")] int pageSize)
        {
            IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)MethodInfo.GetCurrentMethod()), projectId, states, pageIndex, pageSize);
            return (ISingleResult<RectifyNoticesItem>)result.ReturnValue;
        }

        /// <summary>
        /// 获取现场单位考勤
        /// </summary>
        /// <param name="projectId"></param>
        /// <param name="unitId"></param>
        /// <param name="postId"></param>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <returns></returns>
        [Function(Name = "[dbo].[spInOutManHoursReport]")]
        public IEnumerable<InOutstatisticsItem> spInOutManHoursReport([Parameter(DbType = "nvarchar(50)")] string projectId, [Parameter(DbType = "nvarchar(max)")] string unitId, [Parameter(DbType = "nvarchar(max)")] string postId, [Parameter(DbType = "DateTime")] DateTime? startTime, [Parameter(DbType = "DateTime")] DateTime? endTime)
        {
            IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)MethodInfo.GetCurrentMethod()), projectId, unitId, postId, startTime,endTime);
            return (ISingleResult<InOutstatisticsItem>)result.ReturnValue;
        }

        /// <summary>
        /// 获取现场单位考勤
        /// </summary>
        /// <param name="projectId"></param>
        /// <param name="unitId"></param>
        /// <param name="postId"></param>
        /// <param name="day"></param>
        /// <param name="endTime"></param>
        /// <returns></returns>
        [Function(Name = "[dbo].[spAbsenceDutyReport]")]
        public IEnumerable<AbsenceDutyItem> spAbsenceDutyReport([Parameter(DbType = "nvarchar(50)")] string projectId, [Parameter(DbType = "nvarchar(max)")] string unitId, [Parameter(DbType = "nvarchar(max)")] string workPostId, [Parameter(DbType = "DateTime")] DateTime? day)
        {
            IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)MethodInfo.GetCurrentMethod()), projectId, unitId, workPostId, day);
            return (ISingleResult<AbsenceDutyItem>)result.ReturnValue;
        }
    }
}