using MadRunFabric.Model;
using EquipmentApi.Model.Dto;
using MadRunFabric.Common;
using System;
using System.Collections.Generic;
using System.Text;

namespace EquipmentApi.IRepositories
{
    /// <summary>
    /// 设备信息
    /// </summary>
    public interface IRunningChartRepository : IRepository<Pro_Project_Info, string>
    {
        /// <summary>
        /// 维修工单-状态
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetRepairState(string projectid, string start, string end, UserAccountInfoModel userinfo);

        /// <summary>
        /// 维修工单-来源
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetRepairSource(string projectid, string start, string end, UserAccountInfoModel userinfo);

        /// <summary>
        /// 维修工单-满意度
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetRepairScore(string projectid, string start, string end, UserAccountInfoModel userinfo);

        /// <summary>
        /// 维修工单-及时率
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetRepairTime(string projectid, string start, string end, UserAccountInfoModel userinfo);

        /// <summary>
        /// 维修工单-报修状态数量
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetRepairStateCount(string projectid, string start, string end, UserAccountInfoModel userinfo);

        /// <summary>
        /// 维修工单-维修工满意度
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetUserRepairEval(string projectid, string start, string end, UserAccountInfoModel userinfo);

        /// <summary>
        /// 维修工单-维修工接单量
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetUserAcceptCount(string projectid, string start, string end, UserAccountInfoModel userinfo);

        /// <summary>
        /// 维修工单-24小时报修统计
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object Get24HourRepairCount(string projectid, string start, string end, UserAccountInfoModel userinfo);

        /// <summary>
        /// 维修工单-工单未完成
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="top"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetNoDealList(string projectid,int top, UserAccountInfoModel userinfo);

        /// <summary>
        /// 项目-到期项目
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetProjectTimeOut(string projectid, UserAccountInfoModel userinfo);

        /// <summary>
        /// 项目-已维修工单
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetProjectRepair(string projectid, string start, string end, UserAccountInfoModel userinfo);

        /// <summary>
        /// 项目-项目信息列表
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetProjectList(string projectid, string start, string end, UserAccountInfoModel userinfo);

        /// <summary>
        /// 项目-项目状态数量
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetProjectStateCount(string projectid, UserAccountInfoModel userinfo);

        /// <summary>
        /// 项目-项目数量、维修人员、设备数量
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetProjectRepairUserEquipment(string projectid, UserAccountInfoModel userinfo);

        /// <summary>
        /// 项目-新闻列表
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetNewsList(string projectid,string rolecode, UserAccountInfoModel userinfo);

        /// <summary>
        /// 巡检统计
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetRunningList(string projectid, string start, string end, UserAccountInfoModel userinfo);

        /// <summary>
        /// 保养统计
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetMaintainList(string projectid, string start, string end, UserAccountInfoModel userinfo);

        /// <summary>
        /// 维保事项
        /// </summary>
        /// <param name="projectid"></param>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        object GetMaintainMatter(string projectid, string sdate, string edate, UserAccountInfoModel userinfo);
    }
}
