|
@@ -202,28 +202,49 @@ public class TestController : BaseController
|
|
|
}
|
|
|
[HttpGet("testo111")]
|
|
|
[AllowAnonymous]
|
|
|
- public async Task<object> 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)
|
|
|
- .Select(p => new
|
|
|
- {
|
|
|
- AreaCode = p.AreaCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
|
|
|
- Hour = p.CreationTime.Hour
|
|
|
-
|
|
|
- }).MergeTable()
|
|
|
- .LeftJoin<SystemArea>((p, a) => p.AreaCode == a.Id)
|
|
|
- .GroupBy((p, a) => a.AreaName)
|
|
|
- .GroupBy((p, a) => p.Hour)
|
|
|
- .Select((p, a) => new
|
|
|
- {
|
|
|
- AreaCode = a.AreaName,
|
|
|
- Hour = p.Hour,
|
|
|
- count = SqlFunc.AggregateCount(p.AreaCode)
|
|
|
- }).ToPivotTableAsync(p => p.AreaCode, p => p.Hour, p => p.Sum(x => x.count));
|
|
|
-
|
|
|
- return list;
|
|
|
+ .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")]
|
|
@@ -751,7 +772,7 @@ public class TestController : BaseController
|
|
|
trace.HandlerOrgAreaCode = org.AreaCode;
|
|
|
if (string.IsNullOrEmpty(trace.HandlerOrgAreaName))
|
|
|
trace.HandlerOrgAreaName = org.AreaName;
|
|
|
-
|
|
|
+
|
|
|
updateSteps.Add(trace);
|
|
|
}
|
|
|
|