Эх сурвалжийг харах

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

田爽 1 жил өмнө
parent
commit
98ef2bc4c7

+ 3 - 3
src/Hotline.Application/Handlers/FlowEngine/WorkflowNextHandler.cs

@@ -71,14 +71,14 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
             $"收到{nameof(NextStepNotify)}, notification: {JsonConvert.SerializeObject(notification)}");
             $"收到{nameof(NextStepNotify)}, notification: {JsonConvert.SerializeObject(notification)}");
         var workflow = notification.Workflow;
         var workflow = notification.Workflow;
         var data = notification.Dto;
         var data = notification.Dto;
-
+        
         var currentTag = string.IsNullOrEmpty(notification.Trace.Tag)
         var currentTag = string.IsNullOrEmpty(notification.Trace.Tag)
             ? null
             ? null
             : System.Text.Json.JsonSerializer.Deserialize<DefinitionTag>(notification.Trace.Tag);
             : System.Text.Json.JsonSerializer.Deserialize<DefinitionTag>(notification.Trace.Tag);
         var nextTag = string.IsNullOrEmpty(notification.NextStepDefine.Tag)
         var nextTag = string.IsNullOrEmpty(notification.NextStepDefine.Tag)
             ? null
             ? null
             : System.Text.Json.JsonSerializer.Deserialize<DefinitionTag>(notification.NextStepDefine.Tag);
             : System.Text.Json.JsonSerializer.Deserialize<DefinitionTag>(notification.NextStepDefine.Tag);
-
+        
         switch (workflow.ModuleCode)
         switch (workflow.ModuleCode)
         {
         {
             case WorkflowModuleConsts.OrderHandle:
             case WorkflowModuleConsts.OrderHandle:
@@ -159,7 +159,7 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
                     screen.Status = EScreenStatus.Approval;
                     screen.Status = EScreenStatus.Approval;
                     await _orderScreenRepository.UpdateAsync(screen, cancellationToken);
                     await _orderScreenRepository.UpdateAsync(screen, cancellationToken);
                 }
                 }
-
+                
                 if (nextTag is not null && nextTag.Type == TagDefaults.TagType.Org)
                 if (nextTag is not null && nextTag.Type == TagDefaults.TagType.Org)
                 {
                 {
                     switch (nextTag.Value)
                     switch (nextTag.Value)

+ 8 - 0
src/Hotline.Repository.SqlSugar/CallCenter/TrCallRecordRepository.cs

@@ -22,6 +22,9 @@ namespace Hotline.Repository.SqlSugar.CallCenter
 
 
         public async Task<List<TrCallHourDto>?> GetCallHourList(DateTime beginDate,DateTime? endDate,int noConnectByeTimes,int effectiveTimes)
         public async Task<List<TrCallHourDto>?> GetCallHourList(DateTime beginDate,DateTime? endDate,int noConnectByeTimes,int effectiveTimes)
         {
         {
+
+
+
             //List<DateTime> dts = new List<DateTime>() { beginDate.Date.AddDays(1) };
             //List<DateTime> dts = new List<DateTime>() { beginDate.Date.AddDays(1) };
             //for (int i = 0; i < 24; i++)
             //for (int i = 0; i < 24; i++)
             //{
             //{
@@ -85,6 +88,11 @@ namespace Hotline.Repository.SqlSugar.CallCenter
                 dts.Add(dts.Last().AddHours(-1));
                 dts.Add(dts.Last().AddHours(-1));
             }
             }
 
 
+            var templist = await Db.Reportable(dts).ToQueryable<DateTime>()
+                .LeftJoin<TrCallRecord>((it, o) => o.CreatedTime >= it.ColumnName && o.CreatedTime <= it.ColumnName.AddHours(1))
+                .ToListAsync();
+
+
             var list = Db.Reportable(dts).ToQueryable<DateTime>()
             var list = Db.Reportable(dts).ToQueryable<DateTime>()
                 .LeftJoin<TrCallRecord>((it, o) => o.CreatedTime >= it.ColumnName && o.CreatedTime <= it.ColumnName.AddHours(1))
                 .LeftJoin<TrCallRecord>((it, o) => o.CreatedTime >= it.ColumnName && o.CreatedTime <= it.ColumnName.AddHours(1))
                 .GroupBy(it => it.ColumnName)
                 .GroupBy(it => it.ColumnName)

+ 7 - 1
src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs

@@ -14,6 +14,7 @@ using Hotline.Share.Enums.Order;
 using Hotline.Tools;
 using Hotline.Tools;
 using MapsterMapper;
 using MapsterMapper;
 using SqlSugar;
 using SqlSugar;
+using System.Reflection;
 using XF.Domain.Constants;
 using XF.Domain.Constants;
 using XF.Domain.Dependency;
 using XF.Domain.Dependency;
 using XF.Domain.Repository;
 using XF.Domain.Repository;
@@ -86,6 +87,11 @@ namespace Hotline.Repository.SqlSugar.Orders
 			await Db.Updateable<Order>().SetColumns(x=>x.FileJson == order.FileJson).Where(x=>x.Id == order.Id).ExecuteCommandAsync(cancellationToken);
 			await Db.Updateable<Order>().SetColumns(x=>x.FileJson == order.FileJson).Where(x=>x.Id == order.Id).ExecuteCommandAsync(cancellationToken);
 		}
 		}
 
 
+        private static object GetPropertyValue(object obj, string property)
+        {
+            PropertyInfo propertyInfo = obj.GetType().GetProperty(property);
+            return propertyInfo.GetValue(obj, null);
+        }
 
 
         public async Task<object> HotPortJoinOrgStatistics(DateTime StartTime, DateTime EndTime)
         public async Task<object> HotPortJoinOrgStatistics(DateTime StartTime, DateTime EndTime)
         {
         {
@@ -111,7 +117,7 @@ namespace Hotline.Repository.SqlSugar.Orders
                     }).ToPivotListAsync(x=>x.Key,x=>new { x.OrgCode,x.OrgName,x.HotSorpName },x=> x.Sum(x=>x.Count));
                     }).ToPivotListAsync(x=>x.Key,x=>new { x.OrgCode,x.OrgName,x.HotSorpName },x=> x.Sum(x=>x.Count));
                 listReturn.AddRange(table);
                 listReturn.AddRange(table);
             }
             }
-
+            
             return new { HotSpot = hotSpotList, Data = listReturn };
             return new { HotSpot = hotSpotList, Data = listReturn };
 
 
 
 

+ 4 - 4
src/Hotline.Share/Dtos/Order/OrderDto.cs

@@ -24,12 +24,12 @@ namespace Hotline.Share.Dtos.Order
         /// <summary>
         /// <summary>
         /// 过期状态
         /// 过期状态
         /// </summary>
         /// </summary>
-        public EExpiredStatus ExpiredStatus => CalculateExpiredState();
+        public EExpiredStatus? ExpiredStatus => CalculateExpiredState();
 
 
         /// <summary>
         /// <summary>
         /// 过期状态
         /// 过期状态
         /// </summary>
         /// </summary>
-        public string ExpiredStatusText => ExpiredStatus.GetDescription();
+        public string ExpiredStatusText => ExpiredStatus?.GetDescription() ?? string.Empty;
 
 
         /// <summary>
         /// <summary>
         /// 处理方式(直办、交办)
         /// 处理方式(直办、交办)
@@ -426,7 +426,7 @@ namespace Hotline.Share.Dtos.Order
 
 
         }
         }
 
 
-        public EExpiredStatus CalculateExpiredState()
+        public EExpiredStatus? CalculateExpiredState()
         {
         {
             //ExpiredStatus
             //ExpiredStatus
             if (ExpiredTime.HasValue)
             if (ExpiredTime.HasValue)
@@ -444,7 +444,7 @@ namespace Hotline.Share.Dtos.Order
                     return EExpiredStatus.Expired;
                     return EExpiredStatus.Expired;
                 }
                 }
             }
             }
-            return EExpiredStatus.Expired;
+            return null;
         }
         }
 
 
 
 

+ 2 - 2
src/Hotline/FlowEngine/Notifications/WorkflowNotify.cs

@@ -10,8 +10,8 @@ public record WorkflowNotify(Workflow Workflow, BasicWorkflowDto Dto) : INotific
 
 
 public record StartWorkflowNotify(Workflow Workflow, BasicWorkflowDto Dto, FlowAssignInfo FlowAssignInfo) : WorkflowNotify(Workflow, Dto);
 public record StartWorkflowNotify(Workflow Workflow, BasicWorkflowDto Dto, FlowAssignInfo FlowAssignInfo) : WorkflowNotify(Workflow, Dto);
 
 
-public record NextStepNotify(Workflow Workflow, BasicWorkflowDto Dto, WorkflowTrace Trace, StepDefine NextStepDefine,
-    string HandlerOrgCode) : WorkflowNotify(Workflow, Dto);
+public record NextStepNotify(Workflow Workflow, BasicWorkflowDto Dto, FlowAssignInfo FlowAssignInfo, WorkflowTrace Trace, 
+    StepDefine NextStepDefine, string HandlerOrgCode) : WorkflowNotify(Workflow, Dto);
 
 
 public record AcceptWorkflowNotify(Workflow Workflow) : INotification;
 public record AcceptWorkflowNotify(Workflow Workflow) : INotification;
 
 

+ 9 - 9
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -35,7 +35,7 @@ namespace Hotline.FlowEngine.Workflows
         private readonly IFileRepository _fileRepository;
         private readonly IFileRepository _fileRepository;
         private readonly IRepository<User> _userRepository;
         private readonly IRepository<User> _userRepository;
 
 
-		public WorkflowDomainService(
+        public WorkflowDomainService(
             IWorkflowRepository workflowRepository,
             IWorkflowRepository workflowRepository,
             IRepository<WorkflowStep> workflowStepRepository,
             IRepository<WorkflowStep> workflowStepRepository,
             IRepository<WorkflowTrace> workflowTraceRepository,
             IRepository<WorkflowTrace> workflowTraceRepository,
@@ -45,7 +45,7 @@ namespace Hotline.FlowEngine.Workflows
             IMapper mapper,
             IMapper mapper,
             IMediator mediator,
             IMediator mediator,
             ILogger<WorkflowDomainService> logger,
             ILogger<WorkflowDomainService> logger,
-			IFileRepository fileRepository)
+            IFileRepository fileRepository)
         {
         {
             _workflowRepository = workflowRepository;
             _workflowRepository = workflowRepository;
             _workflowStepRepository = workflowStepRepository;
             _workflowStepRepository = workflowStepRepository;
@@ -57,7 +57,7 @@ namespace Hotline.FlowEngine.Workflows
             _mediator = mediator;
             _mediator = mediator;
             _logger = logger;
             _logger = logger;
             _fileRepository = fileRepository;
             _fileRepository = fileRepository;
-		}
+        }
 
 
         public async Task<Workflow> CreateWorkflowAsync(WorkflowModule wfModule, string title, string userId,
         public async Task<Workflow> CreateWorkflowAsync(WorkflowModule wfModule, string title, string userId,
             string userCode,
             string userCode,
@@ -275,13 +275,13 @@ namespace Hotline.FlowEngine.Workflows
         public async Task NextAsync(Workflow workflow, WorkflowStep currentStep, NextWorkflowDto dto,
         public async Task NextAsync(Workflow workflow, WorkflowStep currentStep, NextWorkflowDto dto,
             StepDefine nextStepDefine, FlowAssignInfo flowAssignInfo, CancellationToken cancellationToken)
             StepDefine nextStepDefine, FlowAssignInfo flowAssignInfo, CancellationToken cancellationToken)
         {
         {
-            ValidatePermission(workflow,_sessionContext.RequiredOrgId,_sessionContext.RequiredUserId);
+            ValidatePermission(workflow, _sessionContext.RequiredOrgId, _sessionContext.RequiredUserId);
             CheckWhetherRunnable(workflow.Status);
             CheckWhetherRunnable(workflow.Status);
 
 
             #region 办理当前节点
             #region 办理当前节点
 
 
             if (dto.Files.Any())
             if (dto.Files.Any())
-                currentStep.FileJson = await _fileRepository.AddFileAsync(dto.Files, workflow.ExternalId, 
+                currentStep.FileJson = await _fileRepository.AddFileAsync(dto.Files, workflow.ExternalId,
                     currentStep.Id, cancellationToken);
                     currentStep.Id, cancellationToken);
 
 
             var counterSignType = GetCounterSignType(currentStep.BusinessType);
             var counterSignType = GetCounterSignType(currentStep.BusinessType);
@@ -451,7 +451,7 @@ namespace Hotline.FlowEngine.Workflows
             #endregion
             #endregion
 
 
             await _mediator.Publish(
             await _mediator.Publish(
-                new NextStepNotify(workflow, dto, trace, nextStepDefine, _sessionContext.RequiredOrgId),
+                new NextStepNotify(workflow, dto, flowAssignInfo, trace, nextStepDefine, _sessionContext.RequiredOrgId),
                 cancellationToken);
                 cancellationToken);
         }
         }
 
 
@@ -495,9 +495,9 @@ namespace Hotline.FlowEngine.Workflows
 
 
             //更新当前办理节点信息
             //更新当前办理节点信息
             workflow.UpdateWorkflowCurrentStepInfo(false,
             workflow.UpdateWorkflowCurrentStepInfo(false,
-	            user.Id, user.Name,
-	            user.Organization.Id, user.Organization.Name,
-	            user.Organization.AreaCode, user.Organization.AreaName,
+                user.Id, user.Name,
+                user.Organization.Id, user.Organization.Name,
+                user.Organization.AreaCode, user.Organization.AreaName,
                 nextStep: newPrevStep);
                 nextStep: newPrevStep);
 
 
             //更新流程可办理对象
             //更新流程可办理对象