using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using Hotline.Share.Dtos.File; using Hotline.Share.Dtos.Users; using Hotline.Share.Enums.Order; using Hotline.Share.Enums.Settings; using Hotline.Share.Requests; using XF.Utility.EnumExtensions; namespace Hotline.Share.Dtos.Order { public record QueryOrderDto : PagedKeywordRequest { /// /// 诉求内容 /// public string? Content { get; set; } /// /// 受理类型 /// public List AcceptTypes { get; set; } = new(); /// /// 来源渠道 /// public List Channels { get; set; } = new(); /// /// 转接号码(转接来源) /// public string? TransferPhone { get; set; } /// /// 热点分类 /// public List HotspotIds { get; set; } = new(); /// /// 接办部门 /// public List OrgCodes { get; set; } = new(); /// /// 受理坐席名字或工号 /// public string? NameOrNo { get; set; } /// /// 受理时间(工单创建时间) /// public DateTime? CreationTimeStart { get; set; } public DateTime? CreationTimeEnd { get; set; } /// /// 紧急程度 /// public List EmergencyLevels { get; set; } = new(); /// /// 来电或联系电话 /// public string? PhoneNo { get; set; } /// /// 推送分类 /// public string? PushTypeCode { get; set; } /// /// 过期时间 /// public DateTime? ExpiredTimeStart { get; set; } public DateTime? ExpiredTimeEnd { get; set; } /// /// 工单状态 /// public List Statuses { get; set; } = new(); } public record QueryOrderPublishDto : PagedKeywordRequest { /// /// 发布状态 /// public EPubState? PubState { get; set; } /// /// 归档方式 /// public FiledType? FiledType { get; set; } /// /// 工单标题 /// public string? OrderTitle { get; set; } /// /// 发布人 /// public string? PubMan { get; set; } /// /// 发布范围 /// public EPublicState? PubRange { get; set; } /// /// 受理类型 /// public List? AcceptTypes { get; set; } = new(); /// /// 热点分类 /// public List? HotspotIds { get; set; } = new(); /// /// 受理时间(工单创建时间) /// public DateTime? CreationTimeStart { get; set; } public DateTime? CreationTimeEnd { get; set; } /// /// 归档时间 /// public DateTime? FiledTimeStart { get; set; } public DateTime? FiledTimeEnd { get; set; } /// /// 是否会签 /// public bool? IsCountersign { get; set; } } public enum FiledType { [Description("中心归档")] CenterFiled = 10, [Description("部门归档")] OrgFiled = 20, } public record QueryOrderRedoRecordDto: PagedKeywordRequest { } public record CanDelayOrderListDto : PagedKeywordRequest { } public record ApplyDelayDto { public string OrderId { get; set; } public int DelayNum { get; set; } public ETimeType DelayUnit { get; set; } public string DelayReason { get; set; } public List Files { get; set; } } public class PublishOrderDelayDto { public string Id { get; set; } /// /// 工单编号(冗余) /// public string No { get; set; } /// /// 工单ID /// public string OrderId { get; set; } public OrderDto? Order { get; set; } /// /// 延期申请时间 /// public DateTime ApplyDelayTime { get; set; } /// /// 申请部门Code /// public string ApplyOrgCode { get; set; } /// /// 申请部门名称 /// public string ApplyOrgName { get; set; } /// /// 申请人 /// public string EmployeeId { get; set; } /// /// /// public string? EmployeeName { get; set; } /// /// 延期申请时限 /// public int DelayNum { get; set; } /// /// 延期申请单位 /// public ETimeType DelayUnit { get; set; } /// /// 延期申请理由 /// public string DelayReason { get; set; } /// /// 申请前期满时间 /// public DateTime? BeforeDelay { get; set; } /// /// 申请后期满时间 /// public DateTime? AfterDelay { get; set; } /// /// 审批状态 /// public EDelayState DelayState { get; set; } /// /// 是否省延期 /// public bool IsProDelay { get; set; } public List FileJson { get; set; } } public record OrderDelayDto { /// /// 工单编号(冗余) /// public string No { get; set; } /// /// 工单ID /// public string OrderId { get; set; } public OrderDto? Order { get; set; } /// /// 延期申请时间 /// public DateTime ApplyDelayTime { get; set; } /// /// 申请部门Code /// public string ApplyOrgCode { get; set; } /// /// 申请部门名称 /// public string ApplyOrgName { get; set; } /// /// 申请人 /// public string EmployeeId { get; set; } /// /// /// public string? EmployeeName { get; set; } /// /// 延期申请时限 /// public int DelayNum { get; set; } /// /// 延期申请单位 /// public ETimeType DelayUnit { get; set; } public string DelayUnitText => DelayUnit.GetDescription(); /// /// 延期申请理由 /// public string DelayReason { get; set; } /// /// 申请前期满时间 /// public DateTime? BeforeDelay { get; set; } /// /// 申请后期满时间 /// public DateTime? AfterDelay { get; set; } /// /// 审批状态 /// public EDelayState DelayState { get; set; } public string DelayStateText => DelayState.GetDescription(); /// /// 是否省延期 /// public bool IsProDelay { get; set; } /// /// 流程ID /// public string? WorkflowId { get; set; } public DateTime CreationTime { get; set; } public string Id { get; set; } public string? CreatorId { get; set; } public string? CreatorName { get; set; } public string? CreatorOrgId { get; set; } public string? CreatorOrgName { get; set; } public int CreatorOrgLevel { get; set; } /// /// 一级部门Id /// public string? AreaId { get; set; } /// /// 当前办理节点 /// public string? CurrentStepName { get; set; } /// /// 当前办理人 /// public string? ActualHandlerName { get; set; } /// /// 是否可办理 /// public bool IsCanHandle { get; set; } public List Files { get; set; } public List FileJson { get; set; } } public record DelayCalcEndTimeDto { public DateTime BeginTime { get; set; } public int DelayNum { get; set; } public ETimeType DelayUnit { get; set; } } public record DelayListDto : PagedKeywordRequest { /// /// 是否已办 true:已办 false:待办 /// public bool? IsApply { get; set; } public EDelayState? DelayState { get; set; } } public record ApplySuperviseDto { public string OrderId { get; set; } } public record SuperviseListDto : PagedKeywordRequest { /// /// 督办回复状态 /// public int? SuperviseState { get; set; } public DateTime? CreationTimeStart { get; set; } public DateTime? CreationTimeEnd { get; set; } } public record ScreenListDto : PagedKeywordRequest { /// /// 甄别申请状态 /// public EScreenStatus? Status { get; set; } public DateTime? CreationTimeStart { get; set; } public DateTime? CreationTimeEnd { get; set; } public string? OrderId { get; set; } } public record MayScreenListDto : PagedKeywordRequest { /// /// 部门编号 /// public string VisitOrgCode { get; set; } public DateTime? CreationTimeStart { get; set; } public DateTime? CreationTimeEnd { get; set; } } public record UrgeListDto : PagedKeywordRequest { /// /// 回复状态 /// public int? UrgeState { get; set; } public DateTime? CreationTimeStart { get; set; } public DateTime? CreationTimeEnd { get; set; } } public class QueryRepeatableEventDto { public string? HotspotSpliceName { get; set; } public string? Address { get; set; } } public enum EPublicState { /// /// 全部 /// [Description("全部")] All = 0, /// /// 公开 /// [Description("公开")] Pub = 1, /// /// 不公开 /// [Description("不公开")] NoPub = 2, } public enum EPubState { /// /// 全部 /// [Description("全部")] All = 0, /// /// 已发布 /// [Description("已发布")] Pub = 1, /// /// 未发布 /// [Description("未发布")] NoPub = 2 } }