using Hotline.Share.Enums.Order;
using XF.Utility.EnumExtensions;
namespace Hotline.Share.Dtos.JudicialManagement
{
public class EnforcementOrderListDto
{
public string Id { get; set; }
public string WorkflowId { get; set; }
///
/// 工单状态
///
public EOrderStatus Status { get; set; }
public string StatusText => Status.GetDescription();
///
/// 过期状态
///
public EExpiredStatus? ExpiredStatus => CalculateExpiredState();
///
/// 过期状态
///
public string ExpiredStatusText => ExpiredStatus?.GetDescription() ?? string.Empty;
///
/// 工单编码(20220101000001)
///
public string No { get; set; }
///
/// 来源渠道
///
public string? SourceChannel { get; set; }
public string? SourceChannelCode { get; set; }
///
/// 来电号码
///
public string? FromPhone { get; set; }
///
/// 转接号码(转接来源)
///
public string? TransferPhone { get; set; }
///
/// 来电/信人姓名
///
public string? FromName { get; set; }
///
/// 联系电话
///
public string? Contact { get; set; }
///
/// 受理类型
///
public string? AcceptType { get; set; }
public string? AcceptTypeCode { get; set; }
///
/// 紧急程度
///
public EEmergencyLevel EmergencyLevel { get; set; }
public string Title { get; set; }
///
/// 热点
///
public string? HotspotId { get; set; }
public string? HotspotName { get; set; }
public string? HotspotSpliceName { get; set; }
public DateTime CreationTime { get; set; }
///
/// 是否为省工单
///
public bool IsProvince { get; set; }
///
/// 同步省工单编号和省上传下来的工单都用这个字段
///
public string? ProvinceNo { get; set; }
///
/// 实际办理节点名称(会签状态此字段保存最外层会签发起节点名称)
///
public string? ActualHandleStepName { get; set; }
///
/// 实际办理时间
///
public DateTime? ActualHandleTime { get; set; }
///
/// 超期时间(期满时间)
///
public DateTime? ExpiredTime { get; set; }
///
/// 即将超期时间
///
public DateTime? NearlyExpiredTime { get; set; }
///
/// 归档时间(暂为流程结束时间,因流程结束自动归档)
///
public DateTime? FiledTime { get; set; }
///
/// 工单开始时间(受理/接办时间=流程开启时间)
///
public DateTime? StartTime { get; set; }
///
/// 实际办理部门名称
///
public string? ActualHandleOrgName { get; set; }
///
/// 实际办理部门编码
///
public string? ActualHandleOrgCode { get; set; }
///
/// 一级部门code
///
public string? OrgLevelOneCode { get; set; }
///
/// 一级部门名称
///
public string? OrgLevelOneName { get; set; }
///
/// 实际办理人名称
///
public string? ActualHandlerName { get; set; }
///
/// 是否行政执法类
///
public bool? IsEnforcementOrder { get; set; }
///
/// 是否推诿
///
public bool? IsPassTheBuckOrder { get; set; }
///
/// 线索是否属实
///
public bool? IsTheClueTrue { get; set; }
///
/// 诉事项类型Id
///
public string? EventTypeId { get; set; }
///
/// 诉事项类型名称
///
public string? EventTypeName { get; set; }
///
/// 诉事项类型名称
///
public string? EventTypeSpliceName { get; set; }
///
/// 是否显示修改按钮
///
public bool IsShowUpdateButton { get; set; }
///
/// 区域名称
///
public string AreaName { get; set; }
public EExpiredStatus? CalculateExpiredState()
{
DateTime? dateTime = DateTime.Now;
if (Status >= EOrderStatus.Filed)
{
dateTime = ActualHandleTime;
}
//ExpiredStatus
if (ExpiredTime.HasValue)
{
if (dateTime < NearlyExpiredTime)
{
return EExpiredStatus.Normal;
}
else if (dateTime > NearlyExpiredTime && dateTime < ExpiredTime)
{
return EExpiredStatus.GoingToExpired;
}
else
{
return EExpiredStatus.Expired;
}
}
return null;
}
}
public class EnforcementOrgSatisfactionOrderListDto: EnforcementOrderListDto
{
///
/// 回访主表ID
///
public string VisitId { get; set; }
}
}