using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Hotline.FlowEngine.Workflows;
using Hotline.Orders;
using Hotline.Settings;
using Hotline.Share.Dtos;
using Hotline.Share.Dtos.Bi;
using Hotline.Share.Dtos.DataSharing.PusherHotlineDto;
using Hotline.Share.Dtos.FlowEngine;
using Hotline.Share.Dtos.FlowEngine.Workflow;
using Hotline.Share.Dtos.Order;
using Hotline.Share.Enums.Order;
using Hotline.Share.Enums.Settings;
using Hotline.Share.Requests;
using MediatR;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using XF.Domain.Authentications;
using XF.Domain.Entities;
namespace Hotline.Application.Orders
{
public interface IOrderApplication
{
///
/// 派单量统计
///
///
///
Task> SendOrderReportAsync(QuerySendOrderRequest dto);
///
/// 更新工单办理期满时间
/// 1.更新工单 2.更新流程
///
///
Task DelayOrderExpiredTimeAsync(string orderId, int timeCount, ETimeType timeType, bool IsProDelay, CancellationToken cancellationToken);
///
/// 新增工单办理流程记录
///
Task AddOrderTracesAsync(string orderId, ICollection traces, CancellationToken cancellationToken);
///
/// 撤销工单
///
Task CancelOrderAsync(string orderId, string opinion, CancellationToken cancellationToken);
ISugarQueryable GetToExpireAsync(AboutToExpireListDto dto);
//Task> GetToExpireNodeAsync(AboutToExpireListDto dto, CancellationToken cancellationToken);
ISugarQueryable GetAboutToExpireAsync(AboutToExpireListDto dto);
//Task> GetAboutToExpireNodeAsync(AboutToExpireListDto dto, CancellationToken cancellationToken);
Task OrderParticiple(string inputStr, string orderId, DateTime time, CancellationToken cancellationToken);
Task OrderSensitiveParticiple(string inputStr, string orderId, CancellationToken cancellationToken);
///
/// 接收外部平台工单
///
Task ReceiveOrderFromExternalAsync(AddOrderDto dto, ISessionContext current, CancellationToken cancellationToken);
///
/// 接收外部平台修改工单附件
///
Task UpdateOrderFilesAnonymousAsync(UpdateOrderFilesDto dto, CancellationToken cancellationToken);
///
/// 工单回访
///
///
///
///
Task OrderVisitWeb(OrderVisitWebDto dto, CancellationToken cancellationToken);
///
/// 回访保存
///
///
///
///
Task SaveOrderVisit(VisitDto dto, CancellationToken cancellationToken);
///
/// 发送回访短信
///
///
///
Task VisitPushSMSAsync(VisitSmsInDto dto, CancellationToken cancellationToken);
///
/// 回访来源统计
///
///
///
Task> QueryOrderVisitSourceChannelAsync(QueryOrderVisitSourceChannelDto dto);
///
/// 发布量统计
///
///
///
Task<(int, IList)> QueryPublishedOrderAsync(QueryOrderPublishStatisticsDto dto, bool isFull);
///
/// 部门发布量统计
///
///
///
///
Task<(int, IList)> QueryPublishedOrderDepartmentAsync(QueryOrderPublishStatisticsAllDto dto, bool isFull);
#region 工单办理
ISugarQueryable QueryOrders(QueryOrderDto dto);
///
/// 保存工单办理时页面填写的数据
///
///
///
Task SaveOrderWorkflowInfo(NextWorkflowDto dto, CancellationToken cancellationToken);
#endregion
///
/// 未签收统计
///
///
///
ISugarQueryable QueryUnsignedOrders(QueryUnsignedOrdersRequest dto);
///
/// 信件来源统计
///
///
///
ISugarQueryable QueryOrderSource(QueryOrderSourceRequest dto);
///
/// 信件来源统计
///
///
///
ISugarQueryable QueryOrderSourceDetail(QueryOrderSourceDetailRequest dto);
///
/// 部门超期统计
///
///
///
ISugarQueryable QueryOrgDataList(ReportPagedRequest dto);
///
/// 部门超期统计明细
///
///
///
ISugarQueryable QueryOrgDataListDetail(OrgDataListDetailRequest dto);
///
/// 部门全量超期统计明细
///
///
///
ISugarQueryable QueryOrgDataListDetail(OrgDataListAllDetailRequest dto);
///
/// 回退错件统计
///
///
///
ISugarQueryable OrderReTransact(QueryOrderReTransactRequest dto);
///
/// 回退错件明细统计
///
///
///
ISugarQueryable QueryOrderSourceDetail(QueryOrderReTransactDetailRequest dto);
///
/// 部门满意度统计
///
///
Task> VisitAndOrgSatisfactionStatistics(PagedKeywordSonRequest dto);
///
/// 子部门满意度
///
///
///
Task> VisitAndOrgStatisfactionOrgDetail(PagedKeywordSonRequest dto);
///
/// 热点-区域统计
///
///
///
Task<(List area, object items)> HotspotAndAreaStatistics(HotspotAndAreaStatisticsReq dto);
///
/// 热点-区域统计导出
///
///
///
Task HotspotAndAreaStatisticsExport(HotspotAndAreaStatisticsReq dto);
///
/// 热点-区域统计
///
///
///
///
///
DataTable InitHotspotTable(DataTable dt, List AddColumnName, int HotspotLevel);
///
/// 热点类型满意度统计
///
///
///
Task> VisitAndHotspotSatisfactionStatistics(VisitAndHotspotPagedKeywordRequest dto);
///
/// 热点满意度明细统计
///
///
///
ISugarQueryable VisitAndHotspotSatisfactionDetail(VisitAndHotspotPagedKeywordRequest dto);
///
/// 话务员办件统计
///
///
///
ISugarQueryable CentreDataList(ReportPagedRequest dto);
///
/// 热点受理类型统计
///
///
///
Task<(List acceptTypes, object items)> HotspotAndAcceptTypeStatistics(HotspotAndAcceptTypeStatisticsReq dto);
///
/// 热点受理类型统计--导出
///
///
///
Task HotspotAndAcceptTypeStatisticsExport(HotspotAndAcceptTypeStatisticsReq dto);
///
/// 热点受理类型明细
///
///
///
ISugarQueryable HotspotAndAcceptTypeStatisticsDetail(HotspotAndAcceptTypeStatisticsDetailReq dto);
///
/// 甄别申请统计
///
///
///
ISugarQueryable OrderScreenApply(OrderScreenApplyPagedRequest dto);
///
/// 甄别审批统计
///
///
///
ISugarQueryable OrderScreenAudit(OrderScreenAuditPagedRequest dto);
///
/// 中心受理统计(日期)
///
///
///
ISugarQueryable OrderCenterAccept(OrderCenterAcceptPagedRequest dto);
///
/// 中心受理统计(值班坐席)
///
///
ISugarQueryable OrderCenterAcceptUser(OrderCenterAcceptPagedRequest dto);
///
/// 扭转信件统计
///
///
///
ISugarQueryable OrderVisitJudeStatistics(OrderVisitJudeStatisticsReq dto);
///
/// 观察关注列表
///
///
///
ISugarQueryable OrderObserveList(OrderObserveListDto dto);
}
}