Bläddra i källkod

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

田爽 10 månader sedan
förälder
incheckning
7b1b4b3cbf

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

@@ -2460,7 +2460,7 @@ public class OrderController : BaseController
             dto.CountersignId = result.CountersignId;
             dto.CanHandle = result.CanHandle;
             dto.CanPrevious = result.CanPrevious;
-            dto.CanInsteadHandle = canInsteadHandle;
+            dto.CanInsteadHandle = !dto.CanHandle && canInsteadHandle;
 
 			await _mediator.Publish(new GetOrderDetailNotify(result.Workflow,
                 _sessionContext.RequiredUserId, _sessionContext.UserName,

+ 45 - 6
src/Hotline.Api/Controllers/TestController.cs

@@ -202,10 +202,49 @@ public class TestController : BaseController
     }
     [HttpGet("testo111")]
     [AllowAnonymous]
-    public async Task Test111(DateTime StartTime, DateTime EndTime)
+    public async Task Test111(DateTime StartTime, DateTime? EndTime)
     {
 
-     
+        var list = await _orderRepository.Queryable()
+           .Where(p => p.CreationTime >= StartTime && p.CreationTime <= EndTime && p.Status >= EOrderStatus.Filed)
+           .Where(p => p.CreationTimeHandleDuration == null || p.CenterToOrgHandleDuration == null)
+           .ToListAsync();
+
+        if (list.Any())
+        {
+            foreach (var item in list)
+            {
+                var creationTimeHandleDurationWorkday = item.ActualHandleTime.HasValue
+                  ? _timeLimitDomainService.CalcWorkTime(item.CreationTime, item.ActualHandleTime.Value,
+                  item.ProcessType is EProcessType.Zhiban)
+                  : 0;
+                var centerToOrgHandleDurationWorkday = item.ActualHandleTime.HasValue && item.CenterToOrgTime.HasValue
+                    ? _timeLimitDomainService.CalcWorkTime(item.CenterToOrgTime.Value, item.ActualHandleTime.Value,
+                    item.ProcessType is EProcessType.Zhiban)
+                    : 0;
+
+                item.CreationTimeHandleDurationWorkday = creationTimeHandleDurationWorkday;
+                item.CenterToOrgHandleDurationWorkday = centerToOrgHandleDurationWorkday;
+
+                if (item.ActualHandleTime.HasValue)
+                {
+                    var count = Math.Round((item.ActualHandleTime - item.CreationTime).Value.TotalSeconds);
+                    item.CreationTimeHandleDuration = count <= 0 ? 1 : count;
+                }
+                else
+                    item.CreationTimeHandleDuration = 0;
+
+                if (item.ActualHandleTime.HasValue && item.CenterToOrgTime.HasValue)
+                {
+                    var count = Math.Round((item.ActualHandleTime - item.CenterToOrgTime).Value.TotalSeconds);
+                    item.CenterToOrgHandleDuration = count <= 0 ? 1 : count;
+                }
+                else
+                    item.CenterToOrgHandleDuration = 0;
+
+                await _orderRepository.UpdateAsync(item, HttpContext.RequestAborted);
+            }
+        }
     }
 
     [HttpGet("testo")]
@@ -542,10 +581,10 @@ public class TestController : BaseController
 
         var orderIds = orders.Select(d => d.Id).ToList();
         var steps = await _workflowStepRepository.Queryable()
-            .Where(d => orderIds.Contains(d.ExternalId) && 
+            .Where(d => orderIds.Contains(d.ExternalId) &&
                         d.BusinessType == EBusinessType.Send &&
                         d.Status == EWorkflowStepStatus.Handled)
-            .OrderBy(d=>d.CreationTime)
+            .OrderBy(d => d.CreationTime)
             .ToListAsync(HttpContext.RequestAborted);
 
         var updateOrders = new List<Order>();
@@ -554,7 +593,7 @@ public class TestController : BaseController
             var step = steps.Where(d => d.ExternalId == order.Id)
                 .OrderBy(d => d.CreationTime)
                 .FirstOrDefault();
-            if(step is null) continue;
+            if (step is null) continue;
 
             order.CenterToOrgTime = step.HandleTime;
             order.CenterToOrgHandlerId = step.HandlerId;
@@ -581,7 +620,7 @@ public class TestController : BaseController
 
             updateOrders.Add(order);
         }
-        
+
         await _orderRepository.UpdateRangeAsync(updateOrders, HttpContext.RequestAborted);
     }
 

+ 16 - 6
src/Hotline/Orders/Order.cs

@@ -689,7 +689,7 @@ namespace Hotline.Orders
         [SugarColumn(ColumnDataType = "varchar(8000)")]
         public string? FileOpinion { get; set; }
 
-        
+
 
         #endregion
 
@@ -1063,8 +1063,14 @@ namespace Hotline.Orders
         /// </summary>
         public void SetCreationTimeHandleDurationWorkday()
         {
-            if (!ActualHandleTime.HasValue) return;
-            FileDuration = Math.Round((ActualHandleTime - CreationTime).Value.TotalSeconds);
+            if (!ActualHandleTime.HasValue)
+                CreationTimeHandleDuration = 0;
+            else
+            {
+                var count = Math.Round((ActualHandleTime - CreationTime).Value.TotalSeconds);
+                CreationTimeHandleDuration = count <= 0 ? 1 : count;
+            }
+
         }
 
         /// <summary>
@@ -1072,9 +1078,13 @@ namespace Hotline.Orders
         /// </summary>
         public void SetCenterToOrgHandleDurationWorkday()
         {
-            if (!ActualHandleTime.HasValue) return;
-            if (!CenterToOrgTime.HasValue) return;
-            FileDuration = Math.Round((ActualHandleTime - CenterToOrgTime).Value.TotalSeconds);
+            if (ActualHandleTime.HasValue && CenterToOrgTime.HasValue)
+            {
+                var count = Math.Round((ActualHandleTime - CenterToOrgTime).Value.TotalSeconds);
+                CenterToOrgHandleDuration = count <= 0 ? 1 : count;
+            }
+            else
+                CenterToOrgHandleDuration = 0;
         }
 
         /// <summary>