Ver código fonte

Merge branch 'master' of http://110.188.24.182:10023/Fengwo/hotline

xf 1 ano atrás
pai
commit
6df943c676

+ 1 - 6
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -129,7 +129,7 @@ namespace Hotline.Api.Controllers.Bi
         }
 
         /// <summary>
-        /// 中心统计
+        /// 话务员办件统计
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
@@ -620,11 +620,6 @@ namespace Hotline.Api.Controllers.Bi
             }
         }
 
-
-
-
-
-
         /// <summary>
         /// 部门满意度统计
         /// </summary>

+ 72 - 12
src/Hotline.Api/Controllers/OrderController.cs

@@ -466,7 +466,7 @@ public class OrderController : BaseController
     /// </summary>
     /// <param name="dto"></param>
     /// <returns></returns>
-    [Permission(EPermission.PublishedOrderList)]
+    [Permission(EPermission.PublishedOrder)]
     [HttpGet("published")]
     public async Task<PagedDto<PublishedDto>> PublishedOrderList([FromQuery] PagedKeywordRequest dto)
     {
@@ -485,7 +485,6 @@ public class OrderController : BaseController
     /// </summary>
     /// <param name="id"></param>
     /// <returns></returns>
-    [Permission(EPermission.PublishedOrder)]
     [HttpGet("published-order/{id}")]
     public async Task<PublishedEntityDto> PublishedOrder(string id)
     {
@@ -586,7 +585,7 @@ public class OrderController : BaseController
                 x => x.VisitState == Share.Enums.Order.EVisitState.Visited)
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
                 x => x.Order.Title.Contains(dto.Keyword!) || x.Order.No.Contains(dto.Keyword!))
-            .WhereIF(dto.VisitType!=null,x=>x.VisitType== dto.VisitType)
+            .WhereIF(dto.VisitType != null, x => x.VisitType == dto.VisitType)
             .WhereIF(dto.FiledType != null && dto.FiledType == FiledType.CenterFiled, d => d.Order.ProcessType == EProcessType.Zhiban)
             .WhereIF(dto.FiledType != null && dto.FiledType == FiledType.OrgFiled, d => d.Order.ProcessType == EProcessType.Jiaoban)
             .WhereIF(dto.IsCountersign != null && dto.IsCountersign == true, d => d.Order.CounterSignType != null)
@@ -1369,7 +1368,7 @@ public class OrderController : BaseController
     /// </summary>
     /// <param name="dto"></param>
     /// <returns></returns>
-    [Permission(EPermission.MayOrderScreenList)]
+    [Permission(EPermission.CanOrderScreen)]
     [HttpGet("mayscreen")]
     public async Task<PagedDto<OrderVisitDetailDto>> MayScreenList([FromQuery] MayScreenListDto dto)
     {
@@ -2378,12 +2377,16 @@ public class OrderController : BaseController
     public async Task Handle([FromBody] NextWorkflowDto dto)
     {
         //todo 需求待确认
-        //var order = await _orderRepository.Queryable()
-        //    .FirstAsync(d => d.WorkflowId == dto.WorkflowId, HttpContext.RequestAborted);
+        var order = await _orderRepository.Queryable()
+            .FirstAsync(d => d.WorkflowId == dto.WorkflowId, HttpContext.RequestAborted);
         //if (await _orderDelayRepository.AnyAsync(x => x.OrderId == order.Id && x.DelayState == EDelayState.Examining, HttpContext.RequestAborted))
         //{
         //    throw UserFriendlyException.SameMessage("该工单存在正在审核中的延期,不能办理");
         //}
+        if (await _orderSendBackAuditRepository.AnyAsync(x => x.OrderId == order.Id && x.State == ESendBackAuditState.Apply, HttpContext.RequestAborted))
+        {
+            throw UserFriendlyException.SameMessage("该工单存在正在审核中的退回,不能办理");
+        }
 
         await _workflowApplication.NextAsync(dto, HttpContext.RequestAborted);
     }
@@ -2723,7 +2726,7 @@ public class OrderController : BaseController
     /// </summary>
     /// <param name="dto"></param>
     /// <returns></returns>
-    [Permission(EPermission.SendBackOrderList)]
+    [Permission(EPermission.SendBackOrder)]
     [HttpGet("send_back")]
     public async Task<PagedDto<OrderSendBackDto>> UrgeList([FromQuery] OrderSendBackListDto dto)
     {
@@ -2859,6 +2862,10 @@ public class OrderController : BaseController
         var orgs = order.HandlerOrgs;
         model.OrgId = orgs != null && orgs.Count > 0 ? orgs[0].Key : "";
         model.OrgName = orgs != null && orgs.Count > 0 ? orgs[0].Value : "";
+        var step = await _workflowDomainService.FindLastStepAsync(model.WorkflowId, HttpContext.RequestAborted);
+        model.StepName = step.Name;
+        model.StepCode = step.Code;
+
         //if (!dto.Audit) model.State = 1;
         //取消根据进入界面判断是否审批  最新按照系统配置设定
         var audit = true;
@@ -2946,11 +2953,11 @@ public class OrderController : BaseController
         var special = await _orderSpecialRepository.GetAsync(dto.Id);
         if (special is null) throw UserFriendlyException.SameMessage("无效特提审批信息!");
         if (special.State != 0) throw UserFriendlyException.SameMessage("无效特提审批信息,特提审批信息错误,该信息已审核!");
+        if (string.IsNullOrEmpty(dto.NextStepName)) dto.NextStepName = special.NextStepName;
+        if (string.IsNullOrEmpty(dto.NextStepCode)) dto.NextStepCode = special.NextStepCode;
+        if (dto.NextHandlers.Count <= 0) dto.NextHandlers = special.NextHandlers;
         _mapper.Map(dto, special);
-        dto.NextStepCode = special.NextStepCode;
-        dto.NextStepName = special.NextStepName;
-        dto.NextHandlers = special.NextHandlers;
-		if (dto.Files.Any())
+        if (dto.Files.Any())
             special.ReplyFileJson =
                 await _fileRepository.AddFileAsync(dto.Files, special.Id, "", HttpContext.RequestAborted);
         await _orderSpecialRepository.UpdateAsync(special, HttpContext.RequestAborted);
@@ -3032,12 +3039,65 @@ public class OrderController : BaseController
         return new PagedDto<OrderSpecialDto>(total, _mapper.Map<IReadOnlyList<OrderSpecialDto>>(items));
     }
 
+    /// <summary>
+    /// 特提列表
+    /// </summary>
+    /// <param name="pagedDto"></param>
+    /// <returns></returns>
+   // [Permission(EPermission.AuditSpecialOrderList)]
+    [HttpGet("special/getspeciallist")]
+    public async Task<PagedDto<SpecialOrderListDto>> GetSpecialList([FromQuery] SpecialPagedListDto pagedDto)
+    {
+        RefAsync<int> total = 0;
+        var dataList = await _orderRepository.Queryable(viewFilter: true)
+            .LeftJoin<OrderSpecial>((x, p) => x.Id == p.OrderId)
+            .WhereIF(pagedDto.StartTime.HasValue, (x, p) => p.CreationTime >= pagedDto.StartTime)
+            .WhereIF(pagedDto.EndTime.HasValue, (x, p) => p.CreationTime <= pagedDto.EndTime)
+            .WhereIF(!string.IsNullOrEmpty(pagedDto.No), (x, p) => x.No.Contains(pagedDto.No))
+            .WhereIF(pagedDto.State.HasValue, (x, p) => p.State == pagedDto.State)
+              .Select((x, p) => new
+              {
+                  index = SqlFunc.RowNumber($"{p.CreationTime} desc ", $"{p.OrderId}"),
+                  x.Title,
+                  x.Status,
+                  x.No,
+                  x.AcceptType,
+                  x.AcceptTypeCode,
+                  x.HotspotName,
+                  x.HotspotId,
+                  x.HotspotSpliceName,
+                  x.ActualHandleTime,
+                  x.ExpiredTime,
+                  x.NearlyExpiredTime,
+                  p.NextStepName,
+                  p.NextStepCode,
+                  p.StepName,
+                  p.StepCode,
+                  p.CreatorName,
+                  p.CreatorOrgName,
+                  p.CreationTime,
+                  p.State,
+                  p.Opinion,
+                  SpecialId = p.Id,
+                  p.OrderId,
+                  p.WorkflowId
+              })
+           //将结果合并成一个表
+           .MergeTable()
+           //取第一条数据
+           .Where(d => d.index == 1)
+           .OrderByDescending(d => d.CreationTime)
+           //转分页数据
+           .ToPageListAsync(pagedDto.PageIndex, pagedDto.PageSize, total);
+        //返回数据
+        return new PagedDto<SpecialOrderListDto>(total.Value, _mapper.Map<IReadOnlyList<SpecialOrderListDto>>(dataList));
+    }
+
     /// <summary>
     /// 工单列表
     /// </summary>
     /// <param name="dto"></param>
     /// <returns></returns>
-    [Permission(EPermission.ApplySpecialOrderList)]
     [HttpGet("special/apply_list")]
     public async Task<PagedDto<OrderDto>> SpecialList([FromQuery] QueryOrderDto dto)
     {

+ 1 - 1
src/Hotline.Api/Controllers/SettingController.cs

@@ -102,7 +102,7 @@ namespace Hotline.Api.Controllers
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
-        [Permission(EPermission.GetSettingEntity)]
+        //[Permission(EPermission.GetSettingEntity)]
         [HttpGet("getsetting-entity/{id}")]
         public async Task<SystemSetting?> GetSettingEntity(string id)
         {

+ 15 - 4
src/Hotline.Application/Handlers/FlowEngine/WorkflowEndHandler.cs

@@ -6,6 +6,7 @@ using Hotline.FlowEngine.Notifications;
 using Hotline.FlowEngine.WorkflowModules;
 using Hotline.KnowledgeBase;
 using Hotline.Orders;
+using Hotline.Repository.SqlSugar.Knowledge;
 using Hotline.Settings.TimeLimits;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.FlowEngine.Workflow;
@@ -43,8 +44,10 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
     private readonly ITimeLimitDomainService _timeLimitDomainService;
     private readonly IMediator _mediator;
     private readonly ILogger<WorkflowEndHandler> _logger;
+    private readonly IKnowledgeRepository _knowledgeRepository;
+    private readonly IKnowledgeWorkFlowRepository _knowledgeWorkFlowRepository;
 
-    public WorkflowEndHandler(
+	public WorkflowEndHandler(
         IKnowledgeDomainService knowledgeDomainService,
         IOrderDomainService orderDomainService,
         IOrderApplication orderApplication,
@@ -64,7 +67,9 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
         IRepository<OrderVisitApply> orderVisitApplyRepository,
         ITimeLimitDomainService timeLimitDomainService,
         IMediator mediator,
-        ILogger<WorkflowEndHandler> logger)
+        IKnowledgeRepository knowledgeRepository,
+        IKnowledgeWorkFlowRepository knowledgeWorkFlowRepository,
+		ILogger<WorkflowEndHandler> logger)
     {
         _knowledgeDomainService = knowledgeDomainService;
         _orderDomainService = orderDomainService;
@@ -85,7 +90,9 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
         _timeLimitDomainService = timeLimitDomainService;
         _mediator = mediator;
         _logger = logger;
-    }
+        _knowledgeRepository = knowledgeRepository;
+        _knowledgeWorkFlowRepository = knowledgeWorkFlowRepository;
+	}
 
     /// <summary>Handles a notification</summary>
     /// <param name="notification">The notification</param>
@@ -101,7 +108,11 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
             case WorkflowModuleConsts.KnowledgeAdd://新增知识库
             case WorkflowModuleConsts.KnowledgeUpdate://修改知识库
             case WorkflowModuleConsts.KnowledgeDelete://删除知识库
-                if (isReviewPass)
+				var knowledgeWork = await _knowledgeWorkFlowRepository.Queryable().Where(x => x.Id == workflow.ExternalId).FirstAsync(cancellationToken);
+				var knowledge = await _knowledgeRepository.Queryable().Where(x => x.Id == knowledgeWork.KnowledgeId).FirstAsync(cancellationToken);
+				knowledge.Flowed(workflow.FlowedUserIds, workflow.FlowedOrgIds, workflow.HandlerUsers, workflow.HandlerOrgs);
+	            await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
+				if (isReviewPass)
                 {
                     await _knowledgeDomainService.EndWorkKnowledge(workflow, cancellationToken);
                 }

+ 14 - 4
src/Hotline.Application/Handlers/FlowEngine/WorkflowNextHandler.cs

@@ -35,8 +35,10 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
     private readonly IOrderScreenRepository _orderScreenRepository;
     private readonly IQualityApplication _qualityApplication;
     private readonly IOrderDelayRepository _orderDelayRepository;
+    private readonly IKnowledgeRepository _knowledgeRepository;
+    private readonly IKnowledgeWorkFlowRepository _knowledgeWorkFlowRepository;
 
-    public WorkflowNextHandler(
+	public WorkflowNextHandler(
         IOrderDomainService orderDomainService,
         IKnowledgeDomainService knowledgeDomainService,
         IOrderRepository orderRepository,
@@ -47,7 +49,9 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
         ILogger<WorkflowNextHandler> logger,
         IOrderScreenRepository orderScreenRepository,
         IQualityApplication qualityApplication,
-        IOrderDelayRepository orderDelayRepository)
+        IKnowledgeRepository knowledgeRepository,
+        IKnowledgeWorkFlowRepository knowledgeWorkFlowRepository,
+		IOrderDelayRepository orderDelayRepository)
     {
         _orderDomainService = orderDomainService;
         _knowledgeDomainService = knowledgeDomainService;
@@ -60,7 +64,9 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
         _orderScreenRepository = orderScreenRepository;
         _qualityApplication = qualityApplication;
         _orderDelayRepository = orderDelayRepository;
-    }
+        _knowledgeRepository = knowledgeRepository;
+        _knowledgeWorkFlowRepository = knowledgeWorkFlowRepository;
+	}
 
     /// <summary>Handles a notification</summary>
     /// <param name="notification">The notification</param>
@@ -137,7 +143,11 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
             case WorkflowModuleConsts.KnowledgeAdd:
             case WorkflowModuleConsts.KnowledgeUpdate:
             case WorkflowModuleConsts.KnowledgeDelete:
-                break;
+                var knowledgeWork = await _knowledgeWorkFlowRepository.Queryable().Where(x=>x.Id==workflow.ExternalId).FirstAsync(cancellationToken);
+				var knowledge = await _knowledgeRepository.Queryable().Where(x => x.Id == knowledgeWork.KnowledgeId).FirstAsync(cancellationToken);
+                knowledge.Flowed(workflow.FlowedUserIds, workflow.FlowedOrgIds, workflow.HandlerUsers, workflow.HandlerOrgs);
+                await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
+				break;
             case WorkflowModuleConsts.OrderScreen:
                 var screen = await _orderScreenRepository.Queryable().Includes(x => x.Order)
                     .Where(x => x.Id == workflow.ExternalId).FirstAsync(cancellationToken);

+ 135 - 0
src/Hotline.Share/Dtos/Order/OrderSpecialDto.cs

@@ -153,6 +153,11 @@ namespace Hotline.Share.Dtos.Order
 		/// </summary>
 		public bool? AcceptSms { get; set; }
 
+		/// <summary>
+		/// 是否修改期满时间
+		/// </summary>
+		public bool AlterTime { get; set; }
+
 		/// <summary>
 		/// 办理时间限制(如:24小时、7个工作日)
 		/// </summary>
@@ -261,4 +266,134 @@ namespace Hotline.Share.Dtos.Order
 
 		public OrderSpecialDto Special { get; set; }
 	}
+
+
+    public record SpecialPagedListDto : PagedRequest
+    {
+		/// <summary>
+		/// 申请开始时间
+		/// </summary>
+        public DateTime? StartTime { get; set; }
+
+		/// <summary>
+		/// 申请结束时间
+		/// </summary>
+        public DateTime? EndTime { get; set; }
+
+        /// <summary>
+        ///  审核结果  0  待审核  1 审核通过  2 审核不通过
+        /// </summary>
+        public int? State { get; set; }
+
+		/// <summary>
+		/// 工单编号
+		/// </summary>
+        public string? No { get; set; }
+    }
+
+    public class SpecialOrderListDto
+	{
+		public string SpecialId { get; set; }
+
+        public string OrderId { get; set; }
+
+		public string WorkflowId { get; set; }
+
+        /// <summary>
+        /// 工单状态
+        /// </summary>
+        public EOrderStatus Status { get; set; }
+        public string StatusText => Status.GetDescription();
+
+        /// <summary>
+        /// 过期状态
+        /// </summary>
+        public EExpiredStatus? ExpiredStatus => CalculateExpiredState();
+
+        /// <summary>
+        /// 过期状态
+        /// </summary>
+        public string ExpiredStatusText => ExpiredStatus?.GetDescription() ?? string.Empty;
+
+        /// <summary>
+        /// 受理类型
+        /// </summary>
+        public string? AcceptType { get; set; }
+        public string? AcceptTypeCode { get; set; }
+
+        /// <summary>
+        /// 热点
+        /// </summary>
+        public string? HotspotId { get; set; }
+        //public string? HotspotCode { get; set; }
+        public string? HotspotName { get; set; }
+        public string? HotspotSpliceName { get; set; }
+
+        /// <summary>
+        /// 过期时间
+        /// </summary>
+        public DateTime? ExpiredTime { get; set; }
+
+        /// <summary>
+        /// 即将超期时间
+        /// </summary>
+        public DateTime? NearlyExpiredTime { get; set; }
+
+        /// <summary>
+        /// 实际办理时间
+        /// </summary>
+        public DateTime? ActualHandleTime { get; set; }
+
+        public string Title { get; set; }
+
+		public string No { get; set; }
+        public string NextStepCode { get; set; } = string.Empty;
+        public string NextStepName { get; set; } = string.Empty;
+
+        public string? StepCode { get; set; } = string.Empty;
+        public string? StepName { get; set; } = string.Empty;
+
+        /// <summary>
+        /// 特提意见
+        /// </summary>
+        public string? Opinion { get; set; }
+
+        /// <summary>
+        ///  审核结果  0  待审核  1 审核通过  2 审核不通过
+        /// </summary>
+        public int State { get; set; }
+
+		public string CreatorName { get; set; }
+
+        public string CreatorOrgName { get; set; }
+
+		public DateTime CreationTime { 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;
+        }
+    }
 }

+ 5 - 0
src/Hotline.Share/Dtos/Quality/QualityDto.cs

@@ -69,6 +69,11 @@ namespace Hotline.Share.Dtos.Quality
 		/// </summary>
 		public int Second { get; set; }
 
+		/// <summary>
+		/// 扣分时间点- 秒
+		/// </summary>
+		public int EndSecond { get; set; }
+
 		/// <summary>
 		/// 质检项目名称
 		/// </summary>

+ 4 - 1
src/Hotline/Orders/OrderSpecial.cs

@@ -28,7 +28,10 @@ namespace Hotline.Orders
         public string NextStepCode { get; set; } = string.Empty;
         public string NextStepName { get; set; } = string.Empty;
 
-        [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
+        public string? StepCode { get; set; } = string.Empty;
+        public string? StepName { get; set; } = string.Empty;
+
+		[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
 		public List<Kv> NextHandlers { get; set; }
 
 		/// <summary>

+ 422 - 346
src/Hotline/Permissions/EPermission.cs

@@ -26,11 +26,11 @@ namespace Hotline.Permissions
         /// </summary>
         [Display(GroupName ="首页",Name ="部门首页",Description ="部门首页")]
         HomeOrg = 000002,
-        #region 业务办(10,00,00)
+        #region 业务办(10,00,00)
         /// <summary>
-        /// 业务
+        /// 业务办
         /// </summary>
-        [Display(GroupName = "业务办", Name = "业务办",Description = "业务办")]
+        [Display(GroupName = "业务办", Name = "业务办",Description = "业务办")]
         BusTodo = 100000,
 
         #region 工单坐席待办
@@ -67,127 +67,19 @@ namespace Hotline.Permissions
         /// <summary>
         /// 退回申请
         /// </summary>
-        [Display(GroupName = "OrderSendBack", Name = "退回申请", Description = "退回申请")]
+        [Display(GroupName = "工单待办", Name = "退回申请", Description = "退回申请")]
         ApplySendBack = 100201,
         #endregion
 
-        #region 发布待办
+        #region 工单受理
         /// <summary>
-        /// 发布待办
+        /// 工单受理
         /// </summary>
-        [Display(GroupName = "发布待办",Name ="发布待办",Description = "发布待办")]
-        PublishTodo = 100300,
-
-        /// <summary>
-        /// 发布工单
-        /// </summary>
-        [Display(GroupName = "发布待办", Name = "发布工单", Description = "发布工单")]
-        PublishOrder = 100301,
+        [Display(GroupName ="工单受理",Name ="工单受理",Description ="工单受理")]
+        OrderAccept = 100300,
 
         #endregion
 
-        #region 回访待办
-        /// <summary>
-        /// 回访待办
-        /// </summary>
-        [Display(GroupName = "回访待办",Name ="回访待办",Description = "回访待办")]
-        VisitTodo = 100400,
-
-        /// <summary>
-        /// 回访
-        /// </summary>
-        [Display(GroupName = "回访待办", Name = "回访", Description = "回访")]
-        Visit = 100401,
-        /// <summary>
-        /// 短信回访
-        /// </summary>
-        [Display(GroupName ="回访待办",Name ="短信回访",Description ="短信回访")]
-        MessageVisit = 100402,
-        /// <summary>
-        /// 智能回访
-        /// </summary>
-        [Display(GroupName ="回访待办",Name = "智能回访",Description ="智能回访")]
-        AiVisit = 100403,
-        /// <summary>
-        /// 分配回访人
-        /// </summary>
-        [Display(GroupName = "回访待办",Name ="分配回访人",Description = "分配回访人")]
-        MultiplePeople = 100404,
-        #endregion
-
-        #region 延期待办
-        /// <summary>
-        /// 延期待办
-        /// </summary>
-        [Display(GroupName = "延期待办",Name = "延期待办",Description = "延期待办")]
-        DelayOrder = 100500,
-        /// <summary>
-        /// 延期审核
-        /// </summary>
-        [Display(GroupName ="延期待办",Name ="延期审核",Description ="延期审核")]
-        DelayOrderAudit = 100501,
-        /// <summary>
-        /// 延期退回
-        /// </summary>
-        [Display(GroupName ="延期待办",Name = "延期退回",Description ="延期退回")]
-        DelayOrderReturn = 100502,
-        #endregion
-
-        #region 甄别待办
-        /// <summary>
-        /// 甄别待办
-        /// </summary>
-        [Display(GroupName ="甄别待办",Name ="甄别待办",Description ="甄别待办")]
-        ScreenOrder = 100600,
-        /// <summary>
-        /// 甄别审批
-        /// </summary>
-        [Display(GroupName = "甄别待办", Name ="甄别审批",Description ="甄别审批")]
-        ScreenOrderAudit = 100601,
-        /// <summary>
-        /// 甄别退回
-        /// </summary>
-        [Display(GroupName = "甄别待办",Name ="甄别退回",Description ="甄别退回")]
-        ScreenOrderReturn = 100602,
-        #endregion
-
-        #region 督办待办
-        /// <summary>
-        /// 督办待办
-        /// </summary>
-        [Display(GroupName ="督办待办",Name ="督办待办",Description ="督办待办")]
-        OrderSupervise = 100700,
-
-        SuperviseOrderReply = 100701,
-        #endregion
-
-        #region 退回待办
-        /// <summary>
-        /// 退回待办
-        /// </summary>
-        [Display(GroupName = "退回待办",Name ="退回待办",Description ="退回待办")]
-        OrderSendBack = 100800,
-
-        /// <summary>
-		/// 退回审核
-		/// </summary>
-		[Display(GroupName = "退回申请", Name = "退回审核", Description = "退回审核")]
-        SendBackAudit = 100801,
-        #endregion
-
-        #region 催办待办
-        /// <summary>
-        /// 催办待办
-        /// </summary>
-        [Display(GroupName = "催办待办",Name ="催办待办",Description = "催办待办")]
-        OrderUrging = 100900,
-        /// <summary>
-        /// 催办签收
-        /// </summary>
-        [Display(GroupName = "催办待办",Name ="催办签收",Description ="催办签收")]
-        OrderUrgingSign = 100902,
-
-        #endregion
         #endregion
 
         #region 业务管理(20,00,00)
@@ -197,11 +89,11 @@ namespace Hotline.Permissions
         [Display(GroupName = "业务管理",Name ="业务管理",Description = "业务管理")]
         BugManage = 200000,
 
-        #region 工单列表
+        #region 综合查询
         /// <summary>
-        /// 工单列表
+        /// 综合查询
         /// </summary>
-        [Display(GroupName = "工单列表",Name = "工单列表",Description = "工单列表")]
+        [Display(GroupName = "综合查询", Name = "综合查询", Description = "综合查询")]
         OrderList = 200100,
 
         /// <summary>
@@ -278,294 +170,386 @@ namespace Hotline.Permissions
         CancelOrderDelay = 200113,
         #endregion
 
-        #region 发布列表
-        [Display(GroupName = "业务管理",Name ="发布列表",Description = "发布列表")]
-        PublishedOrder = 200200,
-
+        #region 延期管理
         /// <summary>
-        /// 已发布列表
+        /// 延期管理
         /// </summary>
-        [Display(GroupName = "业务管理", Name = "已发布列表", Description = "已发布列表")]
-        PublishedOrderList = 200201,
+        [Display(GroupName = "业务管理", Name = "延期管理", Description = "延期管理")]
+        DelayOrderManage = 200200,
 
+        #region 延期待审批
         /// <summary>
-        /// 修改发布
+        /// 延期待办
         /// </summary>
-        [Display(GroupName = "OrderPublish", Name = "修改发布", Description = "修改发布")]
-        PublishedModify = 200202,
-        #endregion
-
-        #region 回访列表
-        [Display(GroupName = "业务管理",Name ="回访列表",Description ="回访列表")]
-        OrderVisited = 200300,
-
+        [Display(GroupName = "延期待办", Name = "延期待办", Description = "延期待办")]
+        DelayOrder = 200201,
+        /// <summary>
+        /// 延期审核
+        /// </summary>
+        [Display(GroupName = "延期待办", Name = "延期审核", Description = "延期审核")]
+        DelayOrderAudit = 200202,
         #endregion
 
         #region 延期列表
         /// <summary>
         /// 延期列表
         /// </summary>
-        [Display(GroupName = "业务管理",Name ="延期列表",Description = "延期列表")]
-        DelaiedOrder = 200400,
+        [Display(GroupName = "业务管理",Name ="延期列表",Description ="延期列表")]
+        DelaiedOrder = 200203,
+
         /// <summary>
         /// 延期审批
         /// </summary>
-        [Display(GroupName ="业务管理",Name = "延期审批", Description = "延期审批")]
-        DelaiedOrderAudit = 200401,
+        [Display(GroupName = "业务管理", Name = "延期审批", Description = "延期审批")]
+        DelaiedOrderAudit = 200204,
         /// <summary>
         /// 延期撤销
         /// </summary>
-        [Display(GroupName = "业务管理",Name ="延期撤销",Description = "延期撤销")]
-        DelaiedOrderRevoke = 200402,
+        [Display(GroupName = "业务管理", Name = "延期撤销", Description = "延期撤销")]
+        DelaiedOrderRevoke = 200205,
         /// <summary>
         /// 延期退回
         /// </summary>
-        [Display(GroupName = "业务管理",Name ="延期退回",Description ="延期退回")]
-        DelaiedOrderReturn = 200403,
+        [Display(GroupName = "业务管理", Name = "延期退回", Description = "延期退回")]
+        DelaiedOrderReturn = 200206,
+        #endregion
         #endregion
 
-        #region 甄别列表
+        #region 甄别管理
         /// <summary>
-        /// 甄别列表
+        /// 甄别管理
         /// </summary>
-        [Display(GroupName = "业务管理",Name ="甄别列表",Description = "甄别列表")]
-        OrderScreen = 200500,
+        [Display(GroupName ="业务管理",Name ="甄别管理",Description ="甄别管理")]
+        OrderScreenManage = 200300,
+        #region 甄别待办
         /// <summary>
-        /// 甄别审批
+        /// 甄别待办
         /// </summary>
-        [Display(GroupName = "业务管理",Name ="甄别审批",Description ="甄别审批")]
-        OrderScreenAudit = 200501,
+        [Display(GroupName = "甄别待办", Name = "甄别待办", Description = "甄别待办")]
+        ScreenOrder = 200301,
         /// <summary>
-        /// 甄别导出
+        /// 甄别审批
         /// </summary>
-        [Display(GroupName = "业务管理",Name = "甄别导出",Description ="甄别导出")]
-        OrderScreenExport = 200502,
+        [Display(GroupName = "甄别待办", Name = "甄别审批", Description = "甄别审批")]
+        ScreenOrderAudit = 200302,
         /// <summary>
         /// 甄别退回
         /// </summary>
-        [Display(GroupName ="业务管理",Name ="甄别退回",Description ="甄别退回")]
-        OrderScreenReturn = 200503,
+        [Display(GroupName = "甄别待办", Name = "甄别退回", Description = "甄别退回")]
+        ScreenOrderReturn = 200303,
         #endregion
 
         #region 甄别待申请
         /// <summary>
         /// 待甄别列表
         /// </summary>
-        [Display(GroupName = "业务管理",Name ="待甄别列表",Description ="待甄别列表")]
-        CanOrderScreen = 200600,
-        /// <summary>
-		/// 工单甄别列表
-		/// </summary>
-		[Display(GroupName = "业务管理", Name = "工单甄别待申请列表", Description = "工单甄别待申请列表")]
-        MayOrderScreenList = 200601,
+        [Display(GroupName = "业务管理", Name = "待甄别列表", Description = "待甄别列表")]
+        CanOrderScreen = 200304,
         /// <summary>
         /// 申请甄别
         /// </summary>
         [Display(GroupName = "业务管理", Name = "申请甄别", Description = "申请甄别")]
-        ApplyScreen = 200602,
+        ApplyScreen = 200305,
         #endregion
 
-        #region 督办列表
+
+        #region 甄别列表
         /// <summary>
-        /// 督办列表
+        /// 甄别列表
         /// </summary>
-        [Display(GroupName = "业务管理",Name ="督办列表",Description ="督办列表")]
-        SuperviseOrder = 200700,
+        [Display(GroupName = "业务管理", Name = "甄别列表", Description = "甄别列表")]
+        OrderScreen = 200306,
         /// <summary>
-        /// 回复督办
+        /// 甄别审批
+        /// </summary>
+        [Display(GroupName = "业务管理", Name = "甄别审批", Description = "甄别审批")]
+        OrderScreenAudit = 200307,
+        /// <summary>
+        /// 甄别退回
         /// </summary>
-		[Display(GroupName = "OrderSupervise", Name = "回复督办", Description = "回复督办")]
-        ReplySuperviseOrder = 200701,
-		#endregion
+        [Display(GroupName = "业务管理", Name = "甄别退回", Description = "甄别退回")]
+        OrderScreenReturn = 200308,
+        #endregion
+
 
-		#region 省退回申请
-		/// <summary>
-		/// 省退回申请
-		/// </summary>
-		[Display(GroupName = "省退回申请",Name ="省退回申请",Description ="省退回申请")]
-        SendBackOrder = 200800,
 
+        #endregion
+
+        #region 特提管理
         /// <summary>
-        ///工单退回列表
+        /// 特提管理
         /// </summary>
-        [Display(GroupName = "省退回申请", Name = "工单退回列表", Description = "工单退回列表")]
-        SendBackOrderList = 200801,
+        [Display(GroupName ="特提管理",Name ="特提管理",Description ="特提管理")]
+        SpecialOrderManage = 200400,
 
+        #region 特提列表
         /// <summary>
-		/// 退回审核
-		/// </summary>
-		[Display(GroupName = "省退回申请", Name = "退回审核", Description = "退回审核")]
-        AuditSendBack = 200802,
+        /// 特提列表
+        /// </summary>
+        [Display(GroupName = "特提列表", Name = "特提列表", Description = "特提列表")]
+        SpecialOrder = 200401,
+
         #endregion
 
-        #region 市民画像管理
+        #region 特提待审批
         /// <summary>
-        /// 市民画像管理
+        /// 特提待审批
         /// </summary>
-        [Display(GroupName = "市民画像管理",Name ="市民画像管理",Description ="市民画像管理")]
-        Citizen  = 200900,
+        [Display(GroupName = "特提待审批", Name = "特提待审批", Description = "特提待审批")]
+        SpecialOrderApply = 200402,
 
         /// <summary>
-		/// 市民信息列表
-		/// </summary>
-		[Display(GroupName = "市民画像管理", Name = "市民信息列表", Description = "市民信息列表")]
-        CitizenList = 200901,
+        ///工单特提列表
+        /// </summary>
+        [Display(GroupName = "特提审核", Name = "工单特提列表", Description = "工单特提列表")]
+        AuditSpecialOrderList = 200403,
 
         /// <summary>
-        /// 新增市民信息
+        /// 特提审核
         /// </summary>
-        [Display(GroupName = "市民画像管理", Name = "新增市民信息", Description = "新增市民信息")]
-        AddCitizen = 200902,
+        [Display(GroupName = "特提审核", Name = "特提审核", Description = "特提审核")]
+        AuditSpecial = 200404,
+
 
+        #endregion
+
+        #endregion
+
+        #region 退回管理
         /// <summary>
-        /// 删除市民信息
+        /// 退回管理
         /// </summary>
-        [Display(GroupName = "市民画像管理", Name = "删除市民信息", Description = "删除市民信息")]
-        DeleteCitizen = 200903,
+        [Display(GroupName ="退回管理",Description ="退回管理",Name ="退回管理")]
+        BackOrderManage = 200500,
 
+        #region 业务退回审批
         /// <summary>
-        /// 修改市民信息
+        ///工单业务退回审批列表
         /// </summary>
-        [Display(GroupName = "市民画像管理", Name = "修改市民信息", Description = "修改市民信息")]
-        UpdateCitizen = 200904,
+        [Display(GroupName = "业务退回审批", Name = "工单业务退回审批列表", Description = "工单业务退回审批列表")]
+        OrderPreviousList = 200501,
 
         /// <summary>
-        /// 市民画像标签记录
+        /// 工单业务退回审批
         /// </summary>
-        [Display(GroupName ="市民画像管理",Name ="市民画像标签记录",Description = "市民画像标签记录")]
-        CitizenTag = 200905,
-
+        [Display(GroupName = "业务退回审批", Name = "业务退回审批", Description = "业务退回审批")]
+        OrderPreviousAudit = 200502,
         #endregion
 
-        #region 重复性事件管理
+        #region 省退回申请
         /// <summary>
-        /// 重复性事件管理
+        /// 省退回申请
         /// </summary>
-        [Display(GroupName = "重复性事件管理",Name ="重复性事件管理",Description ="重复性事件管理")]
-        RepeatableEvent = 200900,
+        [Display(GroupName = "省退回申请", Name = "省退回申请", Description = "省退回申请")]
+        SendBackOrder = 200503,
 
         /// <summary>
-		/// 重复性事件列表
+		/// 退回审核
 		/// </summary>
-		[Display(GroupName = "RepeatableEvent", Name = "重复性事件列表", Description = "重复性事件列表")]
-        RepeatableEventList = 200901,
+		[Display(GroupName = "省退回申请", Name = "退回审核", Description = "退回审核")]
+        AuditSendBack = 200504,
+        #endregion
+
+        #endregion
 
+        #region 催办管理
         /// <summary>
-        /// 修改重复性事件
+        /// 催办管理
         /// </summary>
-        [Display(GroupName = "RepeatableEvent", Name = "修改重复性事件", Description = "修改重复性事件")]
-        UpdateRepeatableEvent = 200902,
+        [Display(GroupName ="催办管理",Name ="催办管理",Description ="催办管理")]
+        UrgeOrderManage = 200600,
 
+        #region 催办待办
+        /// <summary>
+        /// 催办待办
+        /// </summary>
+        [Display(GroupName = "催办待办", Name = "催办待办", Description = "催办待办")]
+        OrderUrging = 200601,
 
         #endregion
 
-        #region 二次回访申请
-        [Display(GroupName = "二次回访申请",Name ="二次回访申请")]
-        OrderVisitAgain = 201000,
+        #region 催办查询
+        /// <summary>
+        /// 催办查询
+        /// </summary>
+        [Display(GroupName = "业务查询", Name = "催办查询", Description = "催办查询")]
+        UrgeOrder = 200602,
+
+        #endregion
 
+
+        #endregion
+
+        #region 督办管理
         /// <summary>
-        /// 可申请二次回访列表
+        /// 督办管理
         /// </summary>
-        [Display(GroupName = "二次回访申请", Name = "可申请二次回访列表", Description = "可申请二次回访列表")]
-        OrderVisitAgainList = 201001,
+        [Display(GroupName ="督办管理",Name ="督办管理",Description ="督办管理")]
+        SuperviseOrderManage = 200700,
 
+        #region 督办待办
         /// <summary>
-        /// 申请二次回访
+        /// 督办待办
         /// </summary>
-        [Display(GroupName = "二次回访申请", Name = "申请二次回访", Description = "申请二次回访")]
-        ApplyOrderVisit = 201002,
+        [Display(GroupName = "督办管理", Name = "督办待办", Description = "督办待办")]
+        OrderSupervise = 200701,
+        /// <summary>
+        /// 督办回复
+        /// </summary>
+        [Display(GroupName = "督办管理", Name ="督办回复",Description ="督办回复")]
+        SuperviseOrderReply = 200702,
         #endregion
 
-        #region 二次回访审核
+        #region 督办列表
         /// <summary>
-        /// 二次回访审核
+        /// 督办列表
         /// </summary>
-        [Display(GroupName = "二次回访审核",Name = "二次回访审核",Description ="二次回访审核")]
-        VisitApply  = 201100,
+        [Display(GroupName = "督办管理", Name = "督办列表", Description = "督办列表")]
+        SuperviseOrder = 200703,
+        /// <summary>
+        /// 回复督办
+        /// </summary>
+		[Display(GroupName = "督办管理", Name = "回复督办", Description = "回复督办")]
+        ReplySuperviseOrder = 200704,
+        #endregion
+        #endregion
 
+        #region 发布管理
         /// <summary>
-        /// 二次回访申请列表
+        /// 发布管理
         /// </summary>
-        [Display(GroupName = "二次回访审核", Name = "二次回访申请列表", Description = "二次回访申请列表")]
-        VisitApplyList = 201101,
+        [Display(GroupName ="发布管理",Name ="发布管理",Description ="发布管理")]
+        PublishedOrderManage = 200800,
 
+        #region 发布待办
         /// <summary>
-        /// 审核二次回访
+        /// 发布待办
         /// </summary>
-        [Display(GroupName = "ExaminOrderVisit", Name = "二次回访审核", Description = "二次回访审核")]
-        ExaminOrderVisit = 201102,
+        [Display(GroupName = "发布待办", Name = "发布待办", Description = "发布待办")]
+        PublishTodo = 200801,
+        /// <summary>
+        /// 发布工单
+        /// </summary>
+        [Display(GroupName = "发布待办", Name = "发布工单", Description = "发布工单")]
+        PublishOrder = 200802,
+        /// <summary>
+        /// 批量发布工单
+        /// </summary>
+        [Display(GroupName ="发布待办",Name ="批量发布工单",Description ="批量发布工单")]
+        BatchPublishOrder = 200803,
+
         #endregion
 
-        #region 特提申请
+        #region 发布列表
         /// <summary>
-        /// 特提申请
+        /// 发布列表
         /// </summary>
-        [Display(GroupName = "特提申请",Name ="特提申请",Description ="特提申请")]
-        SpecialOrder = 201200,
+        [Display(GroupName = "业务管理", Name = "发布列表", Description = "发布列表")]
+        PublishedOrder = 200804,
 
-		/// <summary>
-		///工单特提申请列表
-		/// </summary>
-		[Display(GroupName = "特提申请", Name = "工单特提申请列表", Description = "工单特提申请列表")]
-		ApplySpecialOrderList = 201201,
+        /// <summary>
+        /// 修改发布
+        /// </summary>
+        [Display(GroupName = "业务管理", Name = "修改发布", Description = "修改发布")]
+        PublishedModify = 200805,
+        #endregion
 
-		/// <summary>
-		/// 特提申请
-		/// </summary>
-		[Display(GroupName = "特提申请", Name = "特提申请", Description = "特提申请")]
-        ApplySpecialOrder = 201202,
         #endregion
 
-        #region 特提审批
+        #region 回访管理
         /// <summary>
-        /// 特提审核
+        /// 回访管理
         /// </summary>
-        [Display(GroupName = "特提审核",Name ="特提审核",Description ="特提审核")]
-        SpecialOrderApply = 201300,
+        [Display(GroupName ="回访管理",Name ="回访管理",Description ="回访管理")]
+        VisitOrderManage = 200900,
 
+        #region 回访待办
         /// <summary>
-        ///工单特提列表
+        /// 回访待办
         /// </summary>
-        [Display(GroupName = "特提审核", Name = "工单特提列表", Description = "工单特提列表")]
-        AuditSpecialOrderList = 201301,
+        [Display(GroupName = "回访待办", Name = "回访待办", Description = "回访待办")]
+        VisitTodo = 200901,
 
-		/// <summary>
-		/// 特提审核
-		/// </summary>
-		[Display(GroupName = "特提审核", Name = "特提审核", Description = "特提审核")]
-        AuditSpecial = 201302,
+        /// <summary>
+        /// 回访
+        /// </summary>
+        [Display(GroupName = "回访待办", Name = "回访", Description = "回访")]
+        Visit = 200902,
+        /// <summary>
+        /// 分配回访人
+        /// </summary>
+        [Display(GroupName = "回访待办", Name = "分配回访人", Description = "分配回访人")]
+        MultiplePeople = 200903,
+        #endregion
 
+        #region 回访列表
+        /// <summary>
+        /// 回访列表
+        /// </summary>
+        [Display(GroupName = "业务管理", Name = "回访列表", Description = "回访列表")]
+        OrderVisited = 200904,
 
         #endregion
 
-        #region 业务退回审批
+        #region 智能回访任务
         /// <summary>
-        ///工单业务退回审批列表
+        /// 智能回访任务
         /// </summary>
-        [Display(GroupName = "业务退回审批", Name = "工单业务退回审批列表", Description = "工单业务退回审批列表")]
-        OrderPreviousList = 201400,
+        [Display(GroupName = "智能回访", Name = "智能回访任务", Description = "智能回访任务")]
+        AiVisitTask = 200905,
+        /// <summary>
+        /// 新增智能回访任务
+        /// </summary>
+        [Display(GroupName = "智能回访", Name = "新增智能回访任务", Description = "新增智能回访任务")]
+        AddAiVisitTask = 200906,
+
+        #endregion
 
+        #endregion
+
+        #region 超期管理
         /// <summary>
-        /// 工单业务退回审批
+        /// 超期管理
         /// </summary>
-        [Display(GroupName = "业务退回审批", Name = "业务退回审批", Description = "业务退回审批")]
-        OrderPreviousAudit = 201401,
+        [Display(GroupName ="业务管理",Name ="超期管理",Description ="超期管理")]
+        OverdueSoonOrderManage = 201000,
+
+
+        #region 工单即将超期
+        /// <summary>
+        /// 工单即将超期
+        /// </summary>
+        [Display(GroupName = "工单即将超期", Name = "工单即将超期", Description = "工单即将超期")]
+        OverdueSoonOrder = 201001,
+
         #endregion
+
+        #region 工单超期列表
+        /// <summary>
+        /// 工单超期列表
+        /// </summary>
+        [Display(GroupName = "工单超期列表", Name = "工单超期列表", Description = "工单超期列表")]
+        OverdueOrder = 201002,
+
+        #endregion
+
         #endregion
 
-        #region 业务查询(30,00,00)
+        #region 会签查询
         /// <summary>
-        /// 业务查询
+        /// 会签查询
         /// </summary>
-        [Display(GroupName = "业务查询",Name ="业务查询",Description = "业务查询")]
-        BugQuery = 300000,
+        [Display(GroupName = "会签查询", Name = "会签查询", Description = "会签查询")]
+        CounterSign = 201100,
+
+        #endregion
 
         #region 观察件查询
         /// <summary>
         /// 观察件查询
         /// </summary>
-        [Display(GroupName = "业务查询",Name ="观察件查询")]
-        OrderObserve =  300100,
+        [Display(GroupName = "业务查询", Name = "观察件查询")]
+        OrderObserve = 201200,
 
         #endregion
 
@@ -574,46 +558,68 @@ namespace Hotline.Permissions
         /// 工单终结列表
         /// </summary>
         [Display(GroupName = "业务查询", Name = "工单终结查询", Description = "工单终结查询")]
-        OrderFinality = 300200,
+        OrderFinality = 201300,
 
         #endregion
 
-        #region 催办查询
+        #region 重复性事件管理
         /// <summary>
-        /// 催办查询
+        /// 重复性事件管理
         /// </summary>
-        [Display(GroupName = "业务查询",Name = "催办查询",Description = "催办查询")]
-        UrgeOrder = 300300,
-        
-        #endregion
+        [Display(GroupName = "重复性事件管理", Name = "重复性事件管理", Description = "重复性事件管理")]
+        RepeatableEvent = 201400,
 
-        #region 会签查询
         /// <summary>
-        /// 会签查询
+		/// 重复性事件列表
+		/// </summary>
+		[Display(GroupName = "RepeatableEvent", Name = "重复性事件列表", Description = "重复性事件列表")]
+        RepeatableEventList = 201401,
+
+        /// <summary>
+        /// 修改重复性事件
         /// </summary>
-        [Display(GroupName = "会签查询",Name ="会签查询",Description ="会签查询")]
-        CounterSign = 300400,
+        [Display(GroupName = "RepeatableEvent", Name = "修改重复性事件", Description = "修改重复性事件")]
+        UpdateRepeatableEvent = 201402,
+
 
         #endregion
 
-        #region 工单即将超期
+        #region 二次回访申请
+        [Display(GroupName = "二次回访申请",Name ="二次回访申请")]
+        OrderVisitAgain = 201000,
+
         /// <summary>
-        /// 工单即将超期
+        /// 可申请二次回访列表
         /// </summary>
-        [Display(GroupName ="工单即将超期",Name ="工单即将超期",Description = "工单即将超期")]
-        OverdueSoonOrder = 300500,
+        [Display(GroupName = "二次回访申请", Name = "可申请二次回访列表", Description = "可申请二次回访列表")]
+        OrderVisitAgainList = 201001,
 
+        /// <summary>
+        /// 申请二次回访
+        /// </summary>
+        [Display(GroupName = "二次回访申请", Name = "申请二次回访", Description = "申请二次回访")]
+        ApplyOrderVisit = 201002,
         #endregion
 
-        #region 工单超期列表
+        #region 二次回访审核
         /// <summary>
-        /// 工单超期列表
+        /// 二次回访审核
         /// </summary>
-        [Display(GroupName = "工单超期列表",Name ="工单超期列表",Description = "工单超期列表")]
-        OverdueOrder = 300600,
+        [Display(GroupName = "二次回访审核",Name = "二次回访审核",Description ="二次回访审核")]
+        VisitApply  = 201100,
 
-        #endregion
+        /// <summary>
+        /// 二次回访申请列表
+        /// </summary>
+        [Display(GroupName = "二次回访审核", Name = "二次回访申请列表", Description = "二次回访申请列表")]
+        VisitApplyList = 201101,
 
+        /// <summary>
+        /// 审核二次回访
+        /// </summary>
+        [Display(GroupName = "ExaminOrderVisit", Name = "二次回访审核", Description = "二次回访审核")]
+        ExaminOrderVisit = 201102,
+        #endregion
         #endregion
 
         #region 质检管理(40,00,00)
@@ -764,24 +770,6 @@ namespace Hotline.Permissions
 
         #endregion
 
-        #region 智能回访(120000)
-        /// <summary>
-        /// 智能回访
-        /// </summary>
-        [Display(GroupName ="智能回访",Name ="智能回访",Description ="智能回访")]
-        AiVisitDir = 120000,
-        /// <summary>
-        /// 智能回访任务
-        /// </summary>
-        [Display(GroupName ="智能回访",Name ="智能回访任务",Description ="智能回访任务")]
-        AiVisitTask = 120100,
-        /// <summary>
-        /// 新增智能回访任务
-        /// </summary>
-        [Display(GroupName = "智能回访",Name ="新增智能回访任务",Description ="新增智能回访任务")]
-        AddAiVisitTask = 120101,
-        #endregion
-
         #region 系统管理(50,00,00)
 
         /// <summary>
@@ -1584,7 +1572,7 @@ namespace Hotline.Permissions
         EditMsgTemplate = 701002,
         #endregion
 
-        #region 
+        #region 数据导入
         /// <summary>
         /// 数据导入
         /// </summary>
@@ -1593,6 +1581,45 @@ namespace Hotline.Permissions
 
         #endregion
 
+        #region 市民画像管理
+        /// <summary>
+        /// 市民画像管理
+        /// </summary>
+        [Display(GroupName = "市民画像管理", Name = "市民画像管理", Description = "市民画像管理")]
+        Citizen = 701200,
+
+        /// <summary>
+		/// 市民信息列表
+		/// </summary>
+		[Display(GroupName = "市民画像管理", Name = "市民信息列表", Description = "市民信息列表")]
+        CitizenList = 701201,
+
+        /// <summary>
+        /// 新增市民信息
+        /// </summary>
+        [Display(GroupName = "市民画像管理", Name = "新增市民信息", Description = "新增市民信息")]
+        AddCitizen = 701202,
+
+        /// <summary>
+        /// 删除市民信息
+        /// </summary>
+        [Display(GroupName = "市民画像管理", Name = "删除市民信息", Description = "删除市民信息")]
+        DeleteCitizen = 701203,
+
+        /// <summary>
+        /// 修改市民信息
+        /// </summary>
+        [Display(GroupName = "市民画像管理", Name = "修改市民信息", Description = "修改市民信息")]
+        UpdateCitizen = 701204,
+
+        /// <summary>
+        /// 市民画像标签记录
+        /// </summary>
+        [Display(GroupName = "市民画像管理", Name = "市民画像标签记录", Description = "市民画像标签记录")]
+        CitizenTag = 701205,
+
+        #endregion
+
 
         #endregion
 
@@ -1685,40 +1712,32 @@ namespace Hotline.Permissions
 
         #endregion
 
-        #region 大屏管理(12,00,00)
+        #region 数据统计(11,00,00)
         /// <summary>
-        /// 大屏管理
+        /// 数据统计
         /// </summary>
-        [Display(GroupName = "大屏管理",Name = "大屏管理",Description ="大屏管理")]
-        ScreenManage = 120000,
+        [Display(GroupName = "数据统计",Name ="数据统计",Description ="数据统计")]
+        DataCanter = 110000,
 
-        #region 大屏数据
+        #region 大屏数据 (11,04,00)
         /// <summary>
         /// 数据大屏
         /// </summary>
-        [Display(GroupName ="大屏管理",Name = "数据大屏",Description ="数据大屏")]
-        ScreenData = 120100,
+        [Display(GroupName = "大屏管理", Name = "数据大屏", Description = "数据大屏")]
+        ScreenManage = 110400,
         /// <summary>
         /// 坐席监控
         /// </summary>
-        [Display(GroupName = "大屏管理",Name ="坐席监控",Description ="坐席监控")]
-        SeatMonitor = 120200,
+        [Display(GroupName = "大屏管理", Name = "坐席监控", Description = "坐席监控")]
+        SeatMonitor = 110401,
         /// <summary>
         /// 数据大屏
         /// </summary>
-        [Display(GroupName ="大屏管理",Name = "数据大屏",Description ="数据大屏")]
-        ScreenDataTwo = 120300,
-        #endregion
+        [Display(GroupName = "大屏管理", Name = "数据大屏", Description = "数据大屏")]
+        ScreenData = 110402,
         #endregion
 
-        #region 数据统计(110000)
-        /// <summary>
-        /// 数据统计
-        /// </summary>
-        [Display(GroupName = "数据统计",Name ="数据统计",Description ="数据统计")]
-        DataCanter = 110000,
-
-        #region 话务统计
+        #region 话务统计(11,01,00)
         /// <summary>
         /// 话务统计
         /// </summary>
@@ -1749,29 +1768,30 @@ namespace Hotline.Permissions
         /// </summary>
         [Display(GroupName ="数据统计",Name ="坐席小休统计表",Description ="坐席小休统计表")]
         SeatRestStatistics = 110105,
+        /// <summary>
+        /// 通话时段统计
+        /// </summary>
+        [Display(GroupName ="数据统计",Name ="通话时段统计",Description ="通话时段统计")]
+        HourCallStatistics = 110106,
+        /// <summary>
+        /// 热线号码统计
+        /// </summary>
+        [Display(GroupName ="数据统计",Name ="热线号码统计",Description ="热线号码统计")]
+        HotLineNumStatistics = 110107,
         #endregion
 
-        #region 工单统计
+        #region 业务统计(11,02,00)
         /// <summary>
         /// 工单统计
         /// </summary>
         [Display(GroupName = "数据统计",Name = "工单统计",Description ="工单统计")]
         OrderStatistics = 110200,
         /// <summary>
-        /// 中心统计
+        /// 话务员办件统计
         /// </summary>
-        [Display(GroupName = "数据统计",Name = "中心统计",Description ="中心统计")]
+        [Display(GroupName = "数据统计",Name = "话务员办件统计",Description = "话务员办件统计")]
         CenterStatistics = 110201,
-        /// <summary>
-        /// 部门超期统计
-        /// </summary>
-        [Display(GroupName = "数据统计",Name = "部门超期统计",Description ="部门超期统计")]
-        OrgOverdueStatistics = 110202,
-        /// <summary>
-        /// 部门延期统计
-        /// </summary>
-        [Display(GroupName ="数据统计",Name ="部门延期统计",Description ="部门延期统计")]
-        OrgDelayStatistics = 110203,
+        
         /// <summary>
         /// 回访不满意原因统计
         /// </summary>
@@ -1807,9 +1827,24 @@ namespace Hotline.Permissions
         /// </summary>
         [Display(GroupName ="数据统计",Name ="受理量前10",Description = "受理量前10")]
         OrderStartCountTopTen = 110210,
+        /// <summary>
+        /// 回访量统计
+        /// </summary>
+        [Display(GroupName ="数据统计",Name ="回访量统计",Description ="回访量统计")]
+        VisitOrderStatistics = 110211,
+        /// <summary>
+        /// 热点类型小类统计
+        /// </summary>
+        [Display(GroupName ="数据统计",Name ="热点类型小类统计",Description ="热点类型小类统计")]
+        HotSpotSubclassStatistics = 110212,
+        /// <summary>
+        /// 部门受理类型统计周期
+        /// </summary>
+        [Display(GroupName ="数据统计",Name ="部门受理类型统计周期",Description ="部门受理类型统计周期")]
+        OrgAcceptTypeStatistics = 110213,
         #endregion
 
-        #region 知识库统计
+        #region 知识库统计(11,03,00)
         /// <summary>
         /// 知识库统计
         /// </summary>
@@ -1822,6 +1857,47 @@ namespace Hotline.Permissions
         KnowledgeDataStatistics = 110301,
         #endregion
 
+        #region  中心办件统计(11,05,00)
+        /// <summary>
+        /// 中心办件统计
+        /// </summary>
+        [Display(GroupName ="数据统计",Name ="中心办件统计",Description ="中心办件统计")]
+        CallCenterAccpetStatistics = 110500,
+        /// <summary>
+        /// 中心统计报表
+        /// </summary>
+        [Display(GroupName ="中心办件统计",Name ="中心统计报表",Description ="中心统计报表")]
+        CallCenterStatistics = 110501,
+
+        #endregion
+
+        #region 部门办件统计(11,06,00)
+        /// <summary>
+        /// 部门办件统计
+        /// </summary>
+        [Display(GroupName ="数据统计",Name ="部门办件统计",Description ="部门办件统计")]
+        OrgAcceptStatistics = 110600,
+
+        /// <summary>
+        /// 部门办件统计表
+        /// </summary>
+        [Display(GroupName ="数据统计",Name = "部门办件统计表", Description ="部门办件统计表")]
+        OrgOrderStatistics = 110601,
+
+        /// <summary>
+        /// 部门超期统计
+        /// </summary>
+        [Display(GroupName = "数据统计", Name = "部门超期统计", Description = "部门超期统计")]
+        OrgOverdueStatistics = 110602,
+
+        /// <summary>
+        /// 部门延期统计
+        /// </summary>
+        [Display(GroupName = "数据统计", Name = "部门延期统计", Description = "部门延期统计")]
+        OrgDelayStatistics = 110603,
+        #endregion
+
+
         #endregion
 
         #region 公用(99,00,00)