Browse Source

Merge branch 'release' of http://110.188.24.182:10023/Fengwo/hotline into release

tangjiang 8 months ago
parent
commit
325b1f6f55

+ 2 - 2
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -2660,8 +2660,8 @@ namespace Hotline.Api.Controllers.Bi
             var itemsVo = _mapper.Map<IReadOnlyList<UnsignedOrderDto>>(items);
             var itemsVo = _mapper.Map<IReadOnlyList<UnsignedOrderDto>>(items);
             foreach (var item in itemsVo)
             foreach (var item in itemsVo)
             {
             {
-                item.UnsignedTime = _timeLimitDomainService.CalcWorkTimeToHour(item.WorkflowStep.CreationTime, item.WorkflowStep.Status == EWorkflowStepStatus.WaitForAccept ? DateTime.Now : item.WorkflowStep.AcceptTime!.Value, false);
-            }
+				item.UnsignedTime = _timeLimitDomainService.CalcWorkTimeToHour(item.WorkflowStep.CreationTime, item.WorkflowStep.Status != EWorkflowStepStatus.WaitForAccept && item.WorkflowStep.AcceptTime.HasValue ? item.WorkflowStep.AcceptTime!.Value : DateTime.Now, false);
+			}
             return new PagedDto<UnsignedOrderDto>(total, itemsVo);
             return new PagedDto<UnsignedOrderDto>(total, itemsVo);
         }
         }
 
 

+ 392 - 51
src/Hotline.Api/Controllers/CommonPController.cs

@@ -21,63 +21,75 @@ using XF.Domain.Authentications;
 using XF.Domain.Exceptions;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
 using XF.Domain.Repository;
 using Hotline.Configurations;
 using Hotline.Configurations;
+using Hotline.Share.Dtos.Order;
+using System.Runtime.InteropServices;
+using Lucene.Net.Util;
 
 
 namespace Hotline.Api.Controllers
 namespace Hotline.Api.Controllers
 {
 {
-    /// <summary>
-    /// 常用意见接口
-    /// </summary>
-    public class CommonPController : BaseController
-    {
-        private readonly ISystemCommonOpinionDomainService _commonOpinionDomainService;
-        private readonly ISystemAreaDomainService _systemAreaDomainService;
-        private readonly IMapper _mapper;
-        private readonly ISessionContext _sessionContext;
-        // private readonly IRepository<TrCallRecord> _trCallRecordRepository;
-        private readonly IOrderRepository _orderRepository;
-        private readonly IOrderDelayRepository _orderDelayRepository;
-        private readonly ITimeLimitDomainService _timeLimitDomainService;
-        private readonly IOrderScreenRepository _orderScreenRepository;
-        private readonly IRepository<OrderVisitDetail> _orderVisitedDetailRepository;
-        private readonly ICallApplication _callApplication;
-        private readonly IOptionsSnapshot<AppConfiguration> _appOptions;
+	/// <summary>
+	/// 常用意见接口
+	/// </summary>
+	public class CommonPController : BaseController
+	{
+		private readonly ISystemCommonOpinionDomainService _commonOpinionDomainService;
+		private readonly ISystemAreaDomainService _systemAreaDomainService;
+		private readonly IMapper _mapper;
+		private readonly ISessionContext _sessionContext;
+		// private readonly IRepository<TrCallRecord> _trCallRecordRepository;
+		private readonly IOrderRepository _orderRepository;
+		private readonly IOrderDelayRepository _orderDelayRepository;
+		private readonly ITimeLimitDomainService _timeLimitDomainService;
+		private readonly IOrderScreenRepository _orderScreenRepository;
+		private readonly IRepository<OrderVisitDetail> _orderVisitedDetailRepository;
+		private readonly ICallApplication _callApplication;
+		private readonly IOptionsSnapshot<AppConfiguration> _appOptions;
+		private readonly IOrderDomainService _orderDomainService;
+		private readonly IRepository<OrderVisit> _orderVisitRepository;
+		private readonly IRepository<OrderSendBackAudit> _orderSendBackAuditRepository;
 
 
-        public CommonPController(
-            ISystemCommonOpinionDomainService commonOpinionDomainService,
-            ISystemAreaDomainService systemAreaDomainService,
-            ISessionContext sessionContext,
-            // IRepository<TrCallRecord> trCallRecordRepository,
-            IOrderRepository orderRepository,
-            IMapper mapper,
-            IOrderDelayRepository orderDelayRepository,
-            ITimeLimitDomainService timeLimitDomainService,
-            IOrderScreenRepository orderScreenRepository,
-            IRepository<OrderVisitDetail> orderVisitedDetailRepository,
-            ICallApplication callApplication,
-            IOptionsSnapshot<AppConfiguration> appOptions)
-        {
-            _commonOpinionDomainService = commonOpinionDomainService;
-            _systemAreaDomainService = systemAreaDomainService;
-            _mapper = mapper;
-            _sessionContext = sessionContext;
-            // _trCallRecordRepository = trCallRecordRepository;
-            _orderRepository = orderRepository;
-            _orderDelayRepository = orderDelayRepository;
-            _timeLimitDomainService = timeLimitDomainService;
-            _orderScreenRepository = orderScreenRepository;
-            _orderVisitedDetailRepository = orderVisitedDetailRepository;
-            _callApplication = callApplication;
-            _appOptions = appOptions;
-        }
+		public CommonPController(
+			ISystemCommonOpinionDomainService commonOpinionDomainService,
+			ISystemAreaDomainService systemAreaDomainService,
+			ISessionContext sessionContext,
+			// IRepository<TrCallRecord> trCallRecordRepository,
+			IOrderRepository orderRepository,
+			IMapper mapper,
+			IOrderDelayRepository orderDelayRepository,
+			ITimeLimitDomainService timeLimitDomainService,
+			IOrderScreenRepository orderScreenRepository,
+			IRepository<OrderVisitDetail> orderVisitedDetailRepository,
+			ICallApplication callApplication,
+			IOptionsSnapshot<AppConfiguration> appOptions,
+			IOrderDomainService orderDomainService,
+			IRepository<OrderVisit> orderVisitRepository,
+			IRepository<OrderSendBackAudit> orderSendBackAuditRepository)
+		{
+			_commonOpinionDomainService = commonOpinionDomainService;
+			_systemAreaDomainService = systemAreaDomainService;
+			_mapper = mapper;
+			_sessionContext = sessionContext;
+			// _trCallRecordRepository = trCallRecordRepository;
+			_orderRepository = orderRepository;
+			_orderDelayRepository = orderDelayRepository;
+			_timeLimitDomainService = timeLimitDomainService;
+			_orderScreenRepository = orderScreenRepository;
+			_orderVisitedDetailRepository = orderVisitedDetailRepository;
+			_callApplication = callApplication;
+			_appOptions = appOptions;
+			_orderDomainService = orderDomainService;
+			_orderVisitRepository = orderVisitRepository;
+			_orderSendBackAuditRepository = orderSendBackAuditRepository;
+		}
 
 
 
 
-        #region 省市区
+		#region 省市区
 
 
-        /// <summary>
-        /// 获取省市区树形
-        /// </summary>
-        /// <returns></returns>
-        [HttpGet("tree-area")]
+		/// <summary>
+		/// 获取省市区树形
+		/// </summary>
+		/// <returns></returns>
+		[HttpGet("tree-area")]
         [Obsolete("请调用sys/area/tree")]
         [Obsolete("请调用sys/area/tree")]
         public async Task<List<SystemArea>> GetAearTree()
         public async Task<List<SystemArea>> GetAearTree()
         {
         {
@@ -198,5 +210,334 @@ namespace Hotline.Api.Controllers
                 ScreenHandle = screenHandle
                 ScreenHandle = screenHandle
             };
             };
         }
         }
-    }
+
+		/// <summary>
+		/// 首页基础数据
+		/// </summary>
+		/// <returns></returns>
+		[HttpGet("home_data_new")]
+		public async Task<Object> GetHomeDataNew()
+		{
+			var allList = new List<HomeOrderDto>();
+			var allNum = 0;
+			var isAdmin = _orderDomainService.IsCheckAdmin();
+			var IsCenter = _sessionContext.OrgIsCenter;
+			if (_sessionContext.OrgIsCenter)
+			{
+				//待办
+				var waitedList = await _orderRepository
+					.Queryable(hasHandled: false, isAdmin: isAdmin)
+					.Includes(d => d.OrderSpecials)
+					.Where(d => d.Status != EOrderStatus.WaitForAccept && d.Status != EOrderStatus.BackToUnAccept && d.Status != EOrderStatus.SpecialToUnAccept && d.Status != EOrderStatus.HandOverToUnAccept)
+					.Where(d => d.Source < ESource.MLSQ || d.Source > ESource.WZSC)
+					.Where(d => d.Status != EOrderStatus.BackToProvince && d.Status < EOrderStatus.Filed)
+					.Where(d => d.OrderSpecials.Any() == false || d.OrderSpecials.Any(s => s.State > 0))
+					.OrderByDescending(d => new { d.IsUrgent, d.StartTime })
+					.Select(d => new HomeOrderDto
+					{
+						No = d.No,
+						OrderId = d.Id,
+						Title = d.Title,
+						AcceptType = d.AcceptType,
+						HotspotName = d.HotspotName,
+						Type = "Waited",
+						Time = d.ExpiredTime,
+						Status = d.Status,
+						ActualHandleTime = d.ActualHandleTime,
+						CounterSignType = d.CounterSignType
+					})
+					.ToListAsync();
+				allNum += waitedList.Count > 40 ? 40 : waitedList.Count;
+				allList.AddRange(waitedList);
+				// 已超期
+				var waitedExpiredDataList = waitedList.Where(x => (x.Time < DateTime.Now && x.Status < EOrderStatus.Filed) ||
+																  (x.Time < x.ActualHandleTime && x.Status >= EOrderStatus.Filed)).ToList();
+				var waitedExpiredList = waitedExpiredDataList.Take(40).ToList();
+				waitedExpiredList.ForEach(x => x.Type = "WaitedExpired");
+				allNum += waitedExpiredDataList.Count;
+				allList.AddRange(waitedExpiredList);
+				//回访待办
+				var visitDataList = await _orderVisitRepository.Queryable()
+					.Includes(d => d.Order)
+					.Where(d => d.VisitState == EVisitState.WaitForVisit || d.VisitState == EVisitState.NoSatisfiedWaitForVisit)
+					.Where(d => d.EmployeeId == _sessionContext.RequiredUserId)
+					.OrderByDescending(x => x.PublishTime)
+					.Select(d => new HomeOrderDto
+					{
+						No = d.Order.No,
+						OrderId = d.Order.Id,
+						Title = d.Order.Title,
+						AcceptType = d.Order.AcceptType,
+						HotspotName = d.Order.HotspotName,
+						Type = "Visit",
+						Time = d.Order.ExpiredTime,
+						Status = d.Order.Status,
+						CounterSignType = d.Order.CounterSignType
+					})
+					.Take(40)
+					.ToListAsync();
+				allNum += visitDataList.Count;
+				allList.AddRange(visitDataList);
+				//会签待办
+				var signDataList = waitedList.Where(x => x.CounterSignType == ECounterSignType.Center || x.CounterSignType == ECounterSignType.Department).ToList();
+				var signList = signDataList.Take(40).ToList();
+				signList.ForEach(x => x.Type = "Sign");
+				allNum += signDataList.Count;
+				allList.AddRange(signList);
+				//延期待审批
+				var delayDataList = await _orderDelayRepository.Queryable(canView: true, isAdmin: isAdmin)
+					.Includes(d => d.Order)
+					.Where(d => d.DelayState == EDelayState.Examining)
+					.OrderByDescending(d => d.ApplyDelayTime)
+					.Select(d => new HomeOrderDto
+					{
+						No = d.Order.No,
+						OrderId = d.Order.Id,
+						Title = d.Order.Title,
+						AcceptType = d.Order.AcceptType,
+						HotspotName = d.Order.HotspotName,
+						Type = "Delay",
+						Time = d.Order.ExpiredTime,
+						Status = d.Order.Status,
+						CounterSignType = d.Order.CounterSignType
+					}).Take(40)
+					.ToListAsync();
+				allNum += delayDataList.Count;
+				allList.AddRange(delayDataList);
+				//部门即将超期
+				var nearlyExpiredDataList = await _orderRepository.Queryable(canView: !IsCenter)
+					.Includes(d => d.OrderDelays)
+					.Where(d => d.Status < EOrderStatus.Filed && DateTime.Now > d.NearlyExpiredTime && DateTime.Now < d.ExpiredTime)
+					.OrderByDescending(d => d.CreationTime)
+					.Select(d => new HomeOrderDto
+					{
+						No = d.No,
+						OrderId = d.Id,
+						Title = d.Title,
+						AcceptType = d.AcceptType,
+						HotspotName = d.HotspotName,
+						Type = "NearlyExpired",
+						Time = d.ExpiredTime,
+						Status = d.Status,
+						CounterSignType = d.CounterSignType
+					}).Take(40)
+					.ToListAsync();
+				allNum += nearlyExpiredDataList.Count;
+				allList.AddRange(nearlyExpiredDataList);
+				//甄别待审批
+				var screenDataList = await _orderScreenRepository.Queryable(hasHandled: !true, isAdmin: isAdmin)
+					.Includes(d => d.Order)
+					.Includes(d => d.ScreenDetails.Where(sd => sd.AuditUserId == _sessionContext.UserId).OrderByDescending(sd => sd.AuditTime).Take(1).ToList())
+					.Where(d => (d.Status == EScreenStatus.Apply || d.Status == EScreenStatus.Approval || (d.Status == EScreenStatus.SendBack && d.SendBackApply == false)))
+					.Select(d => new HomeOrderDto
+					{
+						No = d.Order.No,
+						OrderId = d.Order.Id,
+						Title = d.Order.Title,
+						AcceptType = d.Order.AcceptType,
+						HotspotName = d.Order.HotspotName,
+						Type = "Screen",
+						Time = d.Order.ExpiredTime,
+						Status = d.Order.Status,
+						CounterSignType = d.Order.CounterSignType
+					}).Take(40)
+					.ToListAsync();
+				allNum += screenDataList.Count;
+				allList.AddRange(screenDataList);
+				//退回待审批
+				var sendBackAuditDataList = await _orderSendBackAuditRepository.Queryable()
+					.Includes(d => d.Order)
+					.Where(d => d.State == ESendBackAuditState.Apply)
+					.WhereIF(_sessionContext.Roles.Contains("role_sysadmin") == false, x => x.SendBackOrgId == _sessionContext.OrgId) // 123 系统管理员;
+					.OrderByDescending(d => d.CreationTime)
+					.Select(d => new HomeOrderDto
+					{
+						No = d.Order.No,
+						OrderId = d.Order.Id,
+						Title = d.Order.Title,
+						AcceptType = d.Order.AcceptType,
+						HotspotName = d.Order.HotspotName,
+						Type = "SendBackAudit",
+						Time = d.Order.ExpiredTime,
+						Status = d.Order.Status,
+						CounterSignType = d.Order.CounterSignType
+					}).Take(40)
+					.ToListAsync();
+				allNum += sendBackAuditDataList.Count;
+				allList.AddRange(sendBackAuditDataList);
+				return new
+				{
+					AllNum = allNum,
+					AllList = allList,
+					WaitedNum = waitedList.Count > 40 ? 40 : waitedList.Count,
+					WaitedList = waitedList.Take(40).ToList(),
+					WaitedExpiredNum = waitedExpiredDataList.Count,
+					WaitedExpiredList = waitedExpiredList,
+					VisitListNum = visitDataList.Count,
+					VisitList = visitDataList,
+					SignDataNum = signDataList.Count,
+					SignDataList = signDataList,
+					DelayNum = delayDataList.Count,
+					DelayDataList = delayDataList,
+					NearlyExpiredNum = nearlyExpiredDataList.Count,
+					NearlyExpiredList = nearlyExpiredDataList,
+					ScreenNum = screenDataList.Count,
+					ScreenList = screenDataList,
+					SendBackAuditNum = sendBackAuditDataList.Count,
+					SendBackAuditList = sendBackAuditDataList
+				};
+			}
+			else
+			{
+				//待办
+				var waitedList = await _orderRepository
+					.Queryable(hasHandled: false, isAdmin: isAdmin)
+					.Includes(d => d.OrderSpecials)
+					.Where(d => d.Status != EOrderStatus.WaitForAccept && d.Status != EOrderStatus.BackToUnAccept && d.Status != EOrderStatus.SpecialToUnAccept && d.Status != EOrderStatus.HandOverToUnAccept)
+					.Where(d => d.Source < ESource.MLSQ || d.Source > ESource.WZSC)
+					.Where(d => d.Status != EOrderStatus.BackToProvince && d.Status < EOrderStatus.Filed)
+					.Where(d => d.OrderSpecials.Any() == false || d.OrderSpecials.Any(s => s.State > 0))
+					.OrderByDescending(d => new { d.IsUrgent, d.StartTime })
+					.Select(d => new HomeOrderDto
+					{
+						No = d.No,
+						OrderId = d.Id,
+						Title = d.Title,
+						AcceptType = d.AcceptType,
+						HotspotName = d.HotspotName,
+						Type = "Waited",
+						Time = d.ExpiredTime,
+						Status = d.Status,
+						ActualHandleTime = d.ActualHandleTime,
+						CounterSignType = d.CounterSignType
+					})
+					.ToListAsync();
+				allNum += waitedList.Count > 40 ? 40 : waitedList.Count;
+				allList.AddRange(waitedList);
+				//已超期
+				var waitedExpiredDataList = waitedList.Where(x => (x.Time < DateTime.Now && x.Status < EOrderStatus.Filed) ||
+																  (x.Time < x.ActualHandleTime && x.Status >= EOrderStatus.Filed)).ToList();
+				var waitedExpiredList = waitedExpiredDataList.Take(40).ToList();
+				waitedExpiredList.ForEach(x => x.Type = "WaitedExpired");
+				allNum += waitedExpiredDataList.Count;
+				allList.AddRange(waitedExpiredList);
+				//会签待办
+				var signDataList = waitedList.Where(x => x.CounterSignType == ECounterSignType.Center || x.CounterSignType == ECounterSignType.Department).ToList();
+				var signList = signDataList.Take(40).ToList();
+				signList.ForEach(x => x.Type = "Sign");
+				allNum += signDataList.Count;
+				allList.AddRange(signList);
+				//甄别待审批
+				var screenDataList = await _orderScreenRepository.Queryable(hasHandled: !true, isAdmin: isAdmin)
+					.Includes(d => d.Order)
+					.Includes(d => d.ScreenDetails.Where(sd => sd.AuditUserId == _sessionContext.UserId).OrderByDescending(sd => sd.AuditTime).Take(1).ToList())
+					.Where(d => (d.Status == EScreenStatus.Apply || d.Status == EScreenStatus.Approval || (d.Status == EScreenStatus.SendBack && d.SendBackApply == false)))
+					.Select(d => new HomeOrderDto
+					{
+						No = d.Order.No,
+						OrderId = d.Order.Id,
+						Title = d.Order.Title,
+						AcceptType = d.Order.AcceptType,
+						HotspotName = d.Order.HotspotName,
+						Type = "Screen",
+						Time = d.Order.ExpiredTime,
+						Status = d.Order.Status,
+						CounterSignType = d.Order.CounterSignType
+					}).Take(40)
+					.ToListAsync();
+				allNum += screenDataList.Count;
+				allList.AddRange(screenDataList);
+				//延期待审批
+				var delayDataList = await _orderDelayRepository.Queryable(canView: true, isAdmin: isAdmin)
+					.Includes(d => d.Order)
+					.Where(d => d.DelayState == EDelayState.Examining)
+					.OrderByDescending(d => d.ApplyDelayTime)
+					.Select(d => new HomeOrderDto
+					{
+						No = d.Order.No,
+						OrderId = d.Order.Id,
+						Title = d.Order.Title,
+						AcceptType = d.Order.AcceptType,
+						HotspotName = d.Order.HotspotName,
+						Type = "Delay",
+						Time = d.Order.ExpiredTime,
+						Status = d.Order.Status,
+						CounterSignType = d.Order.CounterSignType
+					}).Take(40)
+					.ToListAsync();
+				allNum += delayDataList.Count;
+				allList.AddRange(delayDataList);
+				//甄别待申请
+				var screenApplyDataList = await _orderVisitedDetailRepository.Queryable(false, true)
+				.Includes(x => x.OrderVisit)
+				.Includes(x => x.OrderVisit, y => y.Order)
+				.Includes(x => x.OrderVisit, y => y.Employee)
+				.Includes(x => x.OrderScreens)
+				.Where(x => x.OrderScreens.Any(s => s.Status == EScreenStatus.SendBack && s.SendBackApply == true) || x.OrderScreens.Any(s => (s.Status != EScreenStatus.SendBack && s.SendBackApply != true)) == false)
+				.Where(x => x.OrderVisit.VisitState == EVisitState.Visited && x.OrderVisit.IsCanHandle)
+				.Where(x => x.VisitTarget == EVisitTarget.Org && x.VisitOrgCode == _sessionContext.OrgId && (
+					SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" ||
+					SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
+					SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "1" ||
+					SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "2"
+				))
+				.OrderByDescending(x => x.CreationTime)
+				.Select(x => new HomeOrderDto
+				{
+					No = x.OrderVisit.Order.No,
+					OrderId = x.OrderVisit.Order.Id,
+					Title = x.OrderVisit.Order.Title,
+					AcceptType = x.OrderVisit.Order.AcceptType,
+					HotspotName = x.OrderVisit.Order.HotspotName,
+					Type = "ScreenApply",
+					Time = x.OrderVisit.Order.ExpiredTime,
+					Status = x.OrderVisit.Order.Status,
+					CounterSignType = x.OrderVisit.Order.CounterSignType
+				}).Take(40).ToListAsync();
+				allNum += screenApplyDataList.Count;
+				allList.AddRange(screenApplyDataList);
+				//退回待审批
+				var sendBackAuditDataList = await _orderSendBackAuditRepository.Queryable()
+					.Includes(d => d.Order)
+					.Where(d => d.State == ESendBackAuditState.Apply)
+					.WhereIF(_sessionContext.Roles.Contains("role_sysadmin") == false, x => x.SendBackOrgId == _sessionContext.OrgId) // 123 系统管理员;
+					.OrderByDescending(d => d.CreationTime)
+					.Select(d => new HomeOrderDto
+					{
+						No = d.Order.No,
+						OrderId = d.Order.Id,
+						Title = d.Order.Title,
+						AcceptType = d.Order.AcceptType,
+						HotspotName = d.Order.HotspotName,
+						Type = "SendBackAudit",
+						Time = d.Order.ExpiredTime,
+						Status = d.Order.Status,
+						CounterSignType = d.Order.CounterSignType
+					}).Take(40)
+					.ToListAsync();
+				allNum += sendBackAuditDataList.Count;
+				allList.AddRange(sendBackAuditDataList);
+				return new
+				{
+					AllNum = allNum,
+					AllList = allList,
+					WaitedNum = waitedList.Count > 40 ? 40 : waitedList.Count,
+					WaitedList = waitedList.Take(40).ToList(),
+					WaitedExpiredNum = waitedExpiredDataList.Count,
+					WaitedExpiredList = waitedExpiredList,
+					SignDataNum = signDataList.Count,
+					SignDataList = signDataList,
+					ScreenNum = screenDataList.Count,
+					ScreenList = screenDataList,
+					DelayNum = delayDataList.Count,
+					DelayDataList = delayDataList,
+					ScreenApplyNum = screenApplyDataList.Count,
+					ScreenApplyList = screenApplyDataList,
+					SendBackAuditNum = sendBackAuditDataList.Count,
+					SendBackAuditList = sendBackAuditDataList
+				};
+			}
+		}
+
+	}
 }
 }

+ 64 - 0
src/Hotline.Share/Dtos/Order/HomeOrderDto.cs

@@ -0,0 +1,64 @@
+using Hotline.Share.Enums.FlowEngine;
+using Hotline.Share.Enums.Order;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Hotline.Share.Dtos.Order
+{
+	public class HomeOrderDto
+	{
+		/// <summary>
+		/// 工单编号
+		/// </summary>
+		public string No { get; set; }
+
+		/// <summary>
+		/// 工单Id
+		/// </summary>
+		public string OrderId { get; set; }
+
+		/// <summary>
+		/// 工单标题
+		/// </summary>
+		public string Title { get; set; }
+
+		/// <summary>
+		/// 受理类型
+		/// </summary>
+		public string? AcceptType { get; set; }
+
+		/// <summary>
+		/// 热点类型
+		/// </summary>
+		public string? HotspotName { get; set; }
+
+		/// <summary>
+		/// 时间
+		/// </summary>
+		public DateTime? Time { get; set; }
+
+		/// <summary>
+		/// 类型
+		/// </summary>
+		public string Type { get; set; }
+
+		/// <summary>
+		/// 会签类型
+		/// </summary>
+		public ECounterSignType? CounterSignType { get; set; }
+
+		/// <summary>
+		/// 工单状态
+		/// </summary>
+		public EOrderStatus Status { get; set; }
+
+		/// <summary>
+		/// 实际办理时间
+		/// </summary>
+		public DateTime? ActualHandleTime { get; set; }
+
+	}
+}