Bladeren bron

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

田爽 1 jaar geleden
bovenliggende
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)}");
         var workflow = notification.Workflow;
         var data = notification.Dto;
-
+        
         var currentTag = string.IsNullOrEmpty(notification.Trace.Tag)
             ? null
             : System.Text.Json.JsonSerializer.Deserialize<DefinitionTag>(notification.Trace.Tag);
         var nextTag = string.IsNullOrEmpty(notification.NextStepDefine.Tag)
             ? null
             : System.Text.Json.JsonSerializer.Deserialize<DefinitionTag>(notification.NextStepDefine.Tag);
-
+        
         switch (workflow.ModuleCode)
         {
             case WorkflowModuleConsts.OrderHandle:
@@ -159,7 +159,7 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
                     screen.Status = EScreenStatus.Approval;
                     await _orderScreenRepository.UpdateAsync(screen, cancellationToken);
                 }
-
+                
                 if (nextTag is not null && nextTag.Type == TagDefaults.TagType.Org)
                 {
                     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)
         {
+
+
+
             //List<DateTime> dts = new List<DateTime>() { beginDate.Date.AddDays(1) };
             //for (int i = 0; i < 24; i++)
             //{
@@ -85,6 +88,11 @@ namespace Hotline.Repository.SqlSugar.CallCenter
                 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>()
                 .LeftJoin<TrCallRecord>((it, o) => o.CreatedTime >= it.ColumnName && o.CreatedTime <= it.ColumnName.AddHours(1))
                 .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 MapsterMapper;
 using SqlSugar;
+using System.Reflection;
 using XF.Domain.Constants;
 using XF.Domain.Dependency;
 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);
 		}
 
+        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)
         {
@@ -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));
                 listReturn.AddRange(table);
             }
-
+            
             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>
-        public EExpiredStatus ExpiredStatus => CalculateExpiredState();
+        public EExpiredStatus? ExpiredStatus => CalculateExpiredState();
 
         /// <summary>
         /// 过期状态
         /// </summary>
-        public string ExpiredStatusText => ExpiredStatus.GetDescription();
+        public string ExpiredStatusText => ExpiredStatus?.GetDescription() ?? string.Empty;
 
         /// <summary>
         /// 处理方式(直办、交办)
@@ -426,7 +426,7 @@ namespace Hotline.Share.Dtos.Order
 
         }
 
-        public EExpiredStatus CalculateExpiredState()
+        public EExpiredStatus? CalculateExpiredState()
         {
             //ExpiredStatus
             if (ExpiredTime.HasValue)
@@ -444,7 +444,7 @@ namespace Hotline.Share.Dtos.Order
                     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 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;
 

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

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