xf 10 달 전
부모
커밋
bba154b911
1개의 변경된 파일116개의 추가작업 그리고 123개의 파일을 삭제
  1. 116 123
      src/Hotline.Api/Controllers/TestController.cs

+ 116 - 123
src/Hotline.Api/Controllers/TestController.cs

@@ -610,160 +610,153 @@ public class TestController : BaseController
     [HttpPost("t4")]
     public async Task TestExportExcel1()
     {
-        var orders = await _orderRepository.Queryable()
-            .Includes(d => d.OrderExtension)
-            .InnerJoin<Workflow>((o, w) => o.WorkflowId == w.Id)
-            .Where((o, w) => o.Status < EOrderStatus.Filed && w.Status == EWorkflowStatus.Completed)
-            .ToListAsync(HttpContext.RequestAborted);
-        _logger.LogWarning($"order count: {orders.Count}");
-
-        var workflowIds = orders.Select(d => d.WorkflowId).ToList();
-        var workflows = await _workflowRepository.Queryable()
-            .Includes(d => d.Steps, x => x.WorkflowTrace)
-            //.Includes(d=>d.Traces)
-            .Where(d => workflowIds.Contains(d.Id))
-            .ToListAsync(HttpContext.RequestAborted);
-
-        var updateOrders = new List<Order>();
-        foreach (var order in orders)
-        {
-            var workflow = workflows.First(d => d.Id == order.WorkflowId);
-
-            _mapper.Map(workflow, order);
-            var now = DateTime.Now;
-            var handleDuration = order.StartTime.HasValue
-                ? _timeLimitDomainService.CalcWorkTime(order.StartTime.Value,
-                now, order.ProcessType is EProcessType.Zhiban)
-                : 0;
-            var fileDuration = order.CenterToOrgTime.HasValue
-                ? _timeLimitDomainService.CalcWorkTime(order.CenterToOrgTime.Value,
-                    now, order.ProcessType is EProcessType.Zhiban)
-                : 0;
-            var allDuration = order.StartTime.HasValue
-                ? _timeLimitDomainService.CalcWorkTime(order.StartTime.Value, now,
-                order.ProcessType is EProcessType.Zhiban)
-                : 0;
-            var creationTimeHandleDurationWorkday = order.ActualHandleTime.HasValue
-                   ? _timeLimitDomainService.CalcWorkTime(order.CreationTime, order.ActualHandleTime.Value,
-                   order.ProcessType is EProcessType.Zhiban)
-                   : 0;
-            var centerToOrgHandleDurationWorkday = order.ActualHandleTime.HasValue && order.CenterToOrgTime.HasValue
-                ? _timeLimitDomainService.CalcWorkTime(order.CenterToOrgTime.Value, order.ActualHandleTime.Value,
-                order.ProcessType is EProcessType.Zhiban)
-                : 0;
+        //var orders = await _orderRepository.Queryable()
+        //    .Includes(d => d.OrderExtension)
+        //    .InnerJoin<Workflow>((o, w) => o.WorkflowId == w.Id)
+        //    .Where((o, w) => o.Status < EOrderStatus.Filed && w.Status == EWorkflowStatus.Completed)
+        //    .ToListAsync(HttpContext.RequestAborted);
+        //_logger.LogWarning($"order count: {orders.Count}");
 
-            order.File(now, handleDuration, fileDuration, allDuration, creationTimeHandleDurationWorkday, centerToOrgHandleDurationWorkday);
+        //var workflowIds = orders.Select(d => d.WorkflowId).ToList();
+        //var workflows = await _workflowRepository.Queryable()
+        //    .Includes(d => d.Steps, x => x.WorkflowTrace)
+        //    //.Includes(d=>d.Traces)
+        //    .Where(d => workflowIds.Contains(d.Id))
+        //    .ToListAsync(HttpContext.RequestAborted);
 
-            var endStep = workflow.Steps.FirstOrDefault(d => d.StepType == EStepType.End);
-            //var endTrace = workflow.Steps.FirstOrDefault(d => d.WorkflowTrace.StepType == EStepType.End)?.WorkflowTrace;
-            if (endStep is null)
-            {
-                _logger.LogWarning($"endStep 为空, orderNo:{order.No}");
-                continue;
-            }
+        //var updateOrders = new List<Order>();
+        //foreach (var order in orders)
+        //{
+        //    var workflow = workflows.First(d => d.Id == order.WorkflowId);
+
+        //    _mapper.Map(workflow, order);
+        //    var now = DateTime.Now;
+        //    var handleDuration = order.StartTime.HasValue
+        //        ? _timeLimitDomainService.CalcWorkTime(order.StartTime.Value,
+        //        now, order.ProcessType is EProcessType.Zhiban)
+        //        : 0;
+        //    var fileDuration = order.CenterToOrgTime.HasValue
+        //        ? _timeLimitDomainService.CalcWorkTime(order.CenterToOrgTime.Value,
+        //            now, order.ProcessType is EProcessType.Zhiban)
+        //        : 0;
+        //    var allDuration = order.StartTime.HasValue
+        //        ? _timeLimitDomainService.CalcWorkTime(order.StartTime.Value, now,
+        //        order.ProcessType is EProcessType.Zhiban)
+        //        : 0;
+        //    var creationTimeHandleDurationWorkday = order.ActualHandleTime.HasValue
+        //           ? _timeLimitDomainService.CalcWorkTime(order.CreationTime, order.ActualHandleTime.Value,
+        //           order.ProcessType is EProcessType.Zhiban)
+        //           : 0;
+        //    var centerToOrgHandleDurationWorkday = order.ActualHandleTime.HasValue && order.CenterToOrgTime.HasValue
+        //        ? _timeLimitDomainService.CalcWorkTime(order.CenterToOrgTime.Value, order.ActualHandleTime.Value,
+        //        order.ProcessType is EProcessType.Zhiban)
+        //        : 0;
+
+        //    order.File(now, handleDuration, fileDuration, allDuration, creationTimeHandleDurationWorkday, centerToOrgHandleDurationWorkday);
+
+        //    var endStep = workflow.Steps.FirstOrDefault(d => d.StepType == EStepType.End);
+        //    //var endTrace = workflow.Steps.FirstOrDefault(d => d.WorkflowTrace.StepType == EStepType.End)?.WorkflowTrace;
+        //    if (endStep is null)
+        //    {
+        //        _logger.LogWarning($"endStep 为空, orderNo:{order.No}");
+        //        continue;
+        //    }
 
-            var step = workflow.Steps.FirstOrDefault(d => d.Id == endStep.PrevStepId);
-            //var trace = workflow.Steps.FirstOrDefault(d => d.WorkflowTrace.Id == endTrace.PrevStepId)?.WorkflowTrace;
-            if (step is null)
-            {
-                _logger.LogWarning($"step 为空, orderNo:{order.No}");
-                continue;
-            }
+        //    var step = workflow.Steps.FirstOrDefault(d => d.Id == endStep.PrevStepId);
+        //    //var trace = workflow.Steps.FirstOrDefault(d => d.WorkflowTrace.Id == endTrace.PrevStepId)?.WorkflowTrace;
+        //    if (step is null)
+        //    {
+        //        _logger.LogWarning($"step 为空, orderNo:{order.No}");
+        //        continue;
+        //    }
 
-            var trace = step.WorkflowTrace;
-            order.FileUserId = trace.HandlerId;
-            order.FileUserName = trace.HandlerName;
-            order.FileUserOrgId = trace.HandlerOrgId;
-            order.FileUserOrgName = trace.HandlerOrgName;
-            order.FileOpinion = trace.Opinion;
+        //    var trace = step.WorkflowTrace;
+        //    order.FileUserId = trace.HandlerId;
+        //    order.FileUserName = trace.HandlerName;
+        //    order.FileUserOrgId = trace.HandlerOrgId;
+        //    order.FileUserOrgName = trace.HandlerOrgName;
+        //    order.FileOpinion = trace.Opinion;
 
-            //记录冗余归档数据
-            if (workflow.Steps.Any(x => x.BusinessType == Share.Enums.FlowEngine.EBusinessType.Send))
-            {
-                order.FileUserRole = EFileUserType.Dispatch;
-            }
-            else
-            {
-                order.FileUserRole = EFileUserType.Seat;
-            }
-            if (order.ProcessType == EProcessType.Jiaoban)
-            {
-                order.FileUserRole = EFileUserType.Org;
-            }
+        //    //记录冗余归档数据
+        //    if (workflow.Steps.Any(x => x.BusinessType == Share.Enums.FlowEngine.EBusinessType.Send))
+        //    {
+        //        order.FileUserRole = EFileUserType.Dispatch;
+        //    }
+        //    else
+        //    {
+        //        order.FileUserRole = EFileUserType.Seat;
+        //    }
+        //    if (order.ProcessType == EProcessType.Jiaoban)
+        //    {
+        //        order.FileUserRole = EFileUserType.Org;
+        //    }
 
-            //是否已解决
-            order.IsResolved = true;//notification.Dto.External == null ? false : notification.Dto.External.IsResolved;
+        //    //是否已解决
+        //    order.IsResolved = true;//notification.Dto.External == null ? false : notification.Dto.External.IsResolved;
 
-            //await _orderRepository.UpdateAsync(order, cancellationToken);
-            updateOrders.Add(order);
+        //    //await _orderRepository.UpdateAsync(order, cancellationToken);
+        //    updateOrders.Add(order);
 
-            //var callRecord = await _trCallRecordRepository.GetAsync(p => p.CallAccept == order.CallId, cancellationToken); //由CallAccept改为OtherAccept
-            var orderFlowDto = new OrderFlowDto
-            {
-                Order = _mapper.Map<OrderDto>(order),
-                WorkflowTrace = _mapper.Map<WorkflowTraceDto>(trace)
-            };
-            var callRecord = await _trCallRecordRepository.GetAsync(p => p.OtherAccept == order.CallId, HttpContext.RequestAborted);
-            if (callRecord != null)
-            {
-                orderFlowDto.TrCallRecordDto = _mapper.Map<TrCallDto>(callRecord);
-            }
-            //这里需要判断是否是警情退回
-            orderFlowDto.IsNonPoliceReturn = false;//notification.Dto.External == null ? false : notification.Dto.External.IsPoliceReturn;
-            await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFiled, orderFlowDto, cancellationToken: HttpContext.RequestAborted);
-            //写入质检  针对受理之后直接结束的工单
-            await _qualityApplication.AddQualityAsync(EQualitySource.Accepted, order.Id, HttpContext.RequestAborted);
-
-            //司法行政监督管理-工单处理
-            await _enforcementApplication.AddEnforcementOrderAsync(order, HttpContext.RequestAborted);
-        }
+        //    //var callRecord = await _trCallRecordRepository.GetAsync(p => p.CallAccept == order.CallId, cancellationToken); //由CallAccept改为OtherAccept
+        //    var orderFlowDto = new OrderFlowDto
+        //    {
+        //        Order = _mapper.Map<OrderDto>(order),
+        //        WorkflowTrace = _mapper.Map<WorkflowTraceDto>(trace)
+        //    };
+        //    var callRecord = await _trCallRecordRepository.GetAsync(p => p.OtherAccept == order.CallId, HttpContext.RequestAborted);
+        //    if (callRecord != null)
+        //    {
+        //        orderFlowDto.TrCallRecordDto = _mapper.Map<TrCallDto>(callRecord);
+        //    }
+        //    //这里需要判断是否是警情退回
+        //    orderFlowDto.IsNonPoliceReturn = false;//notification.Dto.External == null ? false : notification.Dto.External.IsPoliceReturn;
+        //    await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFiled, orderFlowDto, cancellationToken: HttpContext.RequestAborted);
+        //    //写入质检  针对受理之后直接结束的工单
+        //    await _qualityApplication.AddQualityAsync(EQualitySource.Accepted, order.Id, HttpContext.RequestAborted);
+
+        //    //司法行政监督管理-工单处理
+        //    await _enforcementApplication.AddEnforcementOrderAsync(order, HttpContext.RequestAborted);
+        //}
 
-        _logger.LogWarning($"更新orders:{updateOrders.Count}");
-        await _orderRepository.UpdateRangeAsync(updateOrders, HttpContext.RequestAborted);
+        //_logger.LogWarning($"更新orders:{updateOrders.Count}");
+        //await _orderRepository.UpdateRangeAsync(updateOrders, HttpContext.RequestAborted);
     }
 
     [AllowAnonymous]
     [HttpGet("t5")]
     public async Task Test5()
     {
-        var steps = await _workflowStepRepository.Queryable()
-            .Includes(d => d.WorkflowTrace)
+        var traces = await _workflowTraceRepository.Queryable()
             .Where(d => d.Status == EWorkflowStepStatus.Handled && d.HandlerOrgAreaCode == null)
             .ToListAsync(HttpContext.RequestAborted);
 
-        var orgIds = steps.Select(d => d.HandlerOrgId).ToList();
+        var orgIds = traces.Select(d => d.HandlerOrgId).ToList();
         var orgs = await _systemOrganizeRepository.Queryable()
             .Where(d => orgIds.Contains(d.Id))
             .ToListAsync(HttpContext.RequestAborted);
 
-        var updateSteps = new List<WorkflowStep>();
-        foreach (var step in steps)
+        var updateSteps = new List<WorkflowTrace>();
+        foreach (var trace in traces)
         {
-            var org = orgs.FirstOrDefault(d => d.Id == step.HandlerOrgId);
+            var org = orgs.FirstOrDefault(d => d.Id == trace.HandlerOrgId);
             if (org == null)
             {
-                _logger.LogWarning($"未找到部门,Id:{step.HandlerOrgId}");
+                _logger.LogWarning($"未找到部门,Id:{trace.HandlerOrgId}");
                 continue;
             }
 
-            if (!step.HandlerOrgIsCenter.HasValue)
-                step.HandlerOrgIsCenter = org.IsCenter;
-            if (string.IsNullOrEmpty(step.HandlerOrgAreaCode))
-                step.HandlerOrgAreaCode = org.AreaCode;
-            if (string.IsNullOrEmpty(step.HandlerOrgAreaName))
-                step.HandlerOrgAreaName = org.AreaName;
-
-            step.WorkflowTrace.HandlerOrgIsCenter = step.HandlerOrgIsCenter;
-            step.WorkflowTrace.HandlerOrgAreaCode = step.HandlerOrgAreaCode;
-            step.WorkflowTrace.HandlerOrgAreaName = step.HandlerOrgAreaName;
-
-            updateSteps.Add(step);
+            if (!trace.HandlerOrgIsCenter.HasValue)
+                trace.HandlerOrgIsCenter = org.IsCenter;
+            if (string.IsNullOrEmpty(trace.HandlerOrgAreaCode))
+                trace.HandlerOrgAreaCode = org.AreaCode;
+            if (string.IsNullOrEmpty(trace.HandlerOrgAreaName))
+                trace.HandlerOrgAreaName = org.AreaName;
+            
+            updateSteps.Add(trace);
         }
 
         _logger.LogWarning($"更新数据:{updateSteps.Count} 条");
-        await _workflowStepRepository.UpdateNav(updateSteps)
-            .Include(d => d.WorkflowTrace)
-            .ExecuteCommandAsync();
+        await _workflowTraceRepository.UpdateRangeAsync(updateSteps, HttpContext.RequestAborted);
     }
 
     [HttpGet("rsa")]