Browse Source

order 增加字段:FileDuration FileDurationWorkday

xf 1 year ago
parent
commit
c09e6e4d71

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

@@ -119,9 +119,11 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
                 order.CheckIfFiled();
                 _mapper.Map(workflow, order);
                 var now = DateTime.Now;
-                var duration = _timeLimitDomainService.CalcWorkTime(order.StartTime.Value,
+                var handleDuration = _timeLimitDomainService.CalcWorkTime(order.StartTime.Value,
                     now, order.ProcessType is EProcessType.Zhiban);
-                order.File(now, duration);
+                var fileDuration = _timeLimitDomainService.CalcWorkTime(order.CenterToOrgTime.Value,
+                    now, order.ProcessType is EProcessType.Zhiban);
+                order.File(now, handleDuration, fileDuration);
                 await _orderRepository.UpdateAsync(order, cancellationToken);
 
                 await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFiled, new OrderFlowDto

+ 4 - 2
src/Hotline.Application/Orders/OrderApplication.cs

@@ -118,9 +118,11 @@ public class OrderApplication : IOrderApplication, IScopeDependency
 
         //归档工单
         var now = DateTime.Now;
-        var duration = _timeLimitDomainService.CalcWorkTime(order.StartTime.Value,
+        var handleDuration = _timeLimitDomainService.CalcWorkTime(order.StartTime.Value,
             now, order.ProcessType is EProcessType.Zhiban);
-        order.File(now, duration);
+        var fileDuration = _timeLimitDomainService.CalcWorkTime(order.CenterToOrgTime.Value,
+            now, order.ProcessType is EProcessType.Zhiban);
+        order.File(now, handleDuration, fileDuration);
         await _orderRepository.UpdateAsync(order, cancellationToken);
     }
 

+ 20 - 2
src/Hotline/Orders/Order.cs

@@ -314,6 +314,16 @@ namespace Hotline.Orders
         /// </summary>
         public double HandleDurationWorkday { get; set; }
 
+        /// <summary>
+        /// 归档时长(分钟)
+        /// </summary>
+        public double FileDuration { get; set; }
+
+        /// <summary>
+        /// 归档工作时长(分钟)
+        /// </summary>
+        public double FileDurationWorkday { get; set; }
+
         /// <summary>
         /// 全流程时长(分钟)
         /// 归档时间-创建时间
@@ -696,16 +706,17 @@ namespace Hotline.Orders
         /// <summary>
         /// 归档
         /// </summary>
-        public void File(DateTime filedTime, double handleDurationWorkday)
+        public void File(DateTime filedTime, double handleDurationWorkday, double fileDurationWorkday)
         {
             if (Status is EOrderStatus.Filed) return;
             Status = EOrderStatus.Filed;
             FiledTime = filedTime;
             HandleDurationWorkday = handleDurationWorkday;
+            FileDurationWorkday = fileDurationWorkday;
 
             //计算实际办结时长
             SetHandleDuration();
-
+            SetFileDuration();
             SetAllDuration();
         }
 
@@ -771,6 +782,13 @@ namespace Hotline.Orders
             AllDuration = Math.Round((FiledTime - StartTime).Value.TotalMinutes);
         }
 
+        public void SetFileDuration()
+        {
+            if (!FiledTime.HasValue) return;
+            if (!CenterToOrgTime.HasValue) return;
+            FileDuration = Math.Round((FiledTime - CenterToOrgTime).Value.TotalMinutes);
+        }
+
         /// <summary>
         /// 是否已签收
         /// </summary>