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

namespace DistributionApi.IRepositories
{
    public interface IDistributionWorkOrderReportRepository : IRepository<Pro_Project_Info, string>
    {
        #region 物品种类

        /// <summary>
        /// 物品种类运送量 - 总体统计报表
        /// </summary>
        /// <param name="projectid">项目id</param>
        /// <param name="departmentname">科室</param>
        /// <param name="usercode">用户code</param>
        /// <param name="stime">开始时间</param>
        /// <param name="etime">结束时间</param>
        /// <param name="userinfo">用户项目及相关信息</param>
        /// <returns></returns>
        object GetWOCountForGoods(string projectid, string departmentname, string usercode, string stime, string etime, UserAccountInfoModel userinfo);

        /// <summary>
        /// 物品运送量 - 总体统计报表
        /// </summary>
        /// <param name="projectid">项目id</param>
        /// <param name="departmentname">科室</param>
        /// <param name="usercode">用户code</param>
        /// <param name="stime">开始时间</param>
        /// <param name="etime">结束时间</param>
        /// <param name="userinfo">用户项目及相关信息</param>
        /// <returns></returns>
        object GetWOCountForGoodsDetail(string projectid, string departmentname, string usercode, string stime, string etime, UserAccountInfoModel userinfo);

        #endregion

        #region 配送工单
        /// <summary>
        /// 医务科室运送报单量 - 统计报表
        /// </summary>
        /// <param name="projectid">项目id</param>
        /// <param name="usercode">用户code</param>
        /// <param name="stime">开始时间</param>
        /// <param name="etime">结束时间</param>
        /// <param name="userinfo">用户项目及相关信息</param>
        /// <returns></returns>
        object GetWOCountForDepartment(string projectid,string usercode, string stime, string etime, UserAccountInfoModel userinfo);

        /// <summary>
        /// 员工运送工作量 - 统计报表
        /// </summary>
        /// <param name="projectid">项目id</param>
        /// <param name="usercode">用户code</param>
        /// <param name="stime">开始时间</param>
        /// <param name="etime">结束时间</param>
        /// <param name="userinfo">用户项目及相关信息</param>
        /// <returns></returns>
        object GetWOCountForUser(string projectid, string usercode, string stime, string etime, UserAccountInfoModel userinfo);
        #endregion

        #region 工单评价
        /// <summary>
        /// 员工满意度评价 - 统计报表
        /// </summary>
        /// <param name="projectid">项目id</param>
        /// <param name="usercode">用户code</param>
        /// <param name="stime">开始时间</param>
        /// <param name="etime">结束时间</param>
        /// <param name="userinfo">用户项目及相关信息</param>
        /// <returns></returns>
        object GetWOEvaluateCountForUser(string projectid, string usercode, string stime, string etime, UserAccountInfoModel userinfo);

        #endregion
    }
}
