|
@@ -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")]
|