using Hotline.JudicialManagement;
using Hotline.Share.Dtos.JudicialManagement;
using Hotline.Share.Dtos.Order;
using SqlSugar;

namespace Hotline.Application.JudicialManagement
{
    public interface IEnforcementApplication
    {
        /// <summary>
        /// 受理工单
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ISugarQueryable<JudicialManagementOrders> GetOwnOrderList(QueryEnforcementOrderNewDto dto);

        /// <summary>
        /// 司法行政监督管理工单查询
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ISugarQueryable<JudicialManagementOrders> GetOrderList(QueryEnforcementOrderNewDto dto);

        /// <summary>
        /// 事项分类统计--明细
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ISugarQueryable<JudicialManagementOrders> GetEventClassificationStatisticsOrderListAsync(QueryEventClassificationStatisticsDto dto);

        /// <summary>
        /// 执法部门办件统计
        /// </summary>
        /// <param name="StartTime"></param>
        /// <param name="EndTime"></param>
        /// <returns></returns>
        ISugarQueryable<EmDepartmentalProcessingStatisticsDto> GetDepartmentalProcessingStatisticsAsync(DateTime StartTime, DateTime EndTime);

        /// <summary>
        /// 执法部门办件统计---明细
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ISugarQueryable<EnforcementOrderListDto> GetDepartmentalProcessingStatisticsOrderListAsync(QueryDepartmentalProcessingStatisticsDto dto);

        /// <summary>
        /// 区域分类统计
        /// </summary>
        /// <returns></returns>
        ISugarQueryable<RegionalClassificationStatisticsDto> GetRegionalClassificationStatisticsAsync(DateTime StartTime, DateTime EndTime);

        /// <summary>
        /// 区域分类统计---明细
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ISugarQueryable<JudicialManagementOrders> GetRegionalClassificationStatisticsOrderListAsync(QueryRegionalClassificationStatisticsDto dto);

        /// <summary>
        /// 部门满意度统计
        /// </summary>
        /// <param name="StartTime"></param>
        /// <param name="EndTime"></param>
        /// <param name="TypeId">1:办件结果 2:办件态度</param>
        /// <returns></returns>
        ISugarQueryable<VisitAndOrgSatisfactionStatisticsDto> GetVisitAndOrgSatisfactionStatisticsAsync(DateTime StartTime, DateTime EndTime, int TypeId);

        /// <summary>
        /// 部门满意度统计---明细
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ISugarQueryable<EnforcementOrgSatisfactionOrderListDto> GetVisitAndOrgSatisfactionStatisticsOrderListAsync(QueryOrgSatisfactionStatisticsDto dto);

    }
}
