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
}
}