xf 8 сар өмнө
parent
commit
7da231fd90

+ 4 - 429
src/Hotline.Api/Controllers/TestController.cs

@@ -670,205 +670,10 @@ ICalcExpireTime expireTime)
         return systemAdministrator;
     }
 
-    [AllowAnonymous]
-    [HttpPost("t3")]
-    public async Task TestExportExcel()
+    [HttpGet("t4")]
+    public async Task<string> Test4()
     {
-        var orders = await _orderRepository.Queryable()
-            //.Includes(d => d.Workflow, x => x.Steps.Where(d => d.BusinessType == EBusinessType.Send))
-            //.Where(d=>d.Workflow.Steps.Any(d=>d.BusinessType == EBusinessType.Send))
-            .Where(d => d.Status != EOrderStatus.WaitForAccept && d.CenterToOrgTime == null)
-            .ToListAsync(HttpContext.RequestAborted);
-
-        var orderIds = orders.Select(d => d.Id).ToList();
-        var steps = await _workflowStepRepository.Queryable()
-            .Where(d => orderIds.Contains(d.ExternalId) &&
-                        d.BusinessType == EBusinessType.Send &&
-                        d.Status == EWorkflowStepStatus.Handled)
-            .OrderBy(d => d.CreationTime)
-            .ToListAsync(HttpContext.RequestAborted);
-
-        _logger.LogWarning($"取到steps: {steps.Count} 条");
-        var updateOrders = new List<Order>();
-        foreach (var order in orders)
-        {
-            var step = steps.Where(d => d.ExternalId == order.Id)
-                .OrderBy(d => d.CreationTime)
-                .FirstOrDefault();
-            if (step is null) continue;
-
-            order.CenterToOrgTime = step.HandleTime;
-            order.CenterToOrgHandlerId = step.HandlerId;
-            order.CenterToOrgHandlerName = step.HandlerName;
-            order.CenterToOrgOpinion = step.Opinion;
-
-            var handleDuration = order.CenterToOrgTime.HasValue && order.ActualHandleTime.HasValue
-                ? 
-                // _timeLimitDomainService.CalcWorkTime(
-                await _expireTime.CalcWorkTime(
-                    order.CenterToOrgTime.Value,
-                    order.ActualHandleTime.Value, order.ProcessType is EProcessType.Zhiban)
-                : 0;
-            var fileDuration = order.CenterToOrgTime.HasValue && order.FiledTime.HasValue
-                ? await _expireTime.CalcWorkTime(order.CenterToOrgTime.Value, order.FiledTime.Value, order.ProcessType is EProcessType.Zhiban)
-                : 0;
-            //var allDuration = order.StartTime.HasValue
-            //    ? _timeLimitDomainService.CalcWorkTime(order.StartTime.Value, order.FiledTime.Value,
-            //        order.ProcessType is EProcessType.Zhiban)
-            //    : 0;
-            order.SetHandleDuration();
-            order.SetFileDuration();
-
-            order.HandleDurationWorkday = handleDuration;
-            order.FileDurationWorkday = fileDuration;
-
-            updateOrders.Add(order);
-        }
-
-        _logger.LogWarning($"更新工单:{updateOrders.Count} 条");
-        await _orderRepository.UpdateRangeAsync(updateOrders, HttpContext.RequestAborted);
-    }
-
-    [AllowAnonymous]
-    [HttpPost("t4")]
-    public async Task TestExportExcel1()
-    {
-        var numbers = new List<string>
-        {
-            "20240623000180",
-            "20240622000097",
-            "20240621000055",
-            "20240622000185",
-            "20240623000025",
-            "20240621000099",
-            "20240621000270",
-            "20240622000060",
-            "20240621000144",
-        };
-
-        var orders = await _orderRepository.Queryable()
-            .Includes(d => d.OrderExtension)
-            .Where(d => numbers.Contains(d.No))
-            .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)
-            .Where(d => workflowIds.Contains(d.Id))
-            .ToListAsync(HttpContext.RequestAborted);
-
-        //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 = order.FiledTime.Value;//DateTime.Now;
-            var handleDuration = order.StartTime.HasValue
-                ? await _expireTime.CalcWorkTime(order.StartTime.Value, now, order.ProcessType is EProcessType.Zhiban)
-                : 0;
-            var fileDuration = order.CenterToOrgTime.HasValue
-                ? await _expireTime.CalcWorkTime(order.CenterToOrgTime.Value, now, order.ProcessType is EProcessType.Zhiban)
-                : 0;
-            var allDuration = order.StartTime.HasValue
-                ? await _expireTime.CalcWorkTime(order.StartTime.Value, now, order.ProcessType is EProcessType.Zhiban)
-                : 0;
-            var creationTimeHandleDurationWorkday = order.ActualHandleTime.HasValue
-                   ? await _expireTime.CalcWorkTime(order.CreationTime, now, order.ProcessType is EProcessType.Zhiban)
-                   : 0;
-            var centerToOrgHandleDurationWorkday = order.ActualHandleTime.HasValue && order.CenterToOrgTime.HasValue
-                ? await _expireTime.CalcWorkTime(order.CenterToOrgTime.Value, now, order.ProcessType is EProcessType.Zhiban)
-                : 0;
-
-            //order.File(now, handleDuration, fileDuration, allDuration, creationTimeHandleDurationWorkday, centerToOrgHandleDurationWorkday);
-
-            order.HandleDurationWorkday = handleDuration;
-            order.FileDurationWorkday = fileDuration;
-            order.AllDurationWorkday = allDuration;
-            order.CreationTimeHandleDurationWorkday = creationTimeHandleDurationWorkday;
-            order.CenterToOrgHandleDurationWorkday = centerToOrgHandleDurationWorkday;
-
-            //计算实际办结时长
-            order.SetHandleDuration();
-            order.SetFileDuration();
-            order.SetAllDuration();
-            order.SetCreationTimeHandleDurationWorkday();
-            order.SetCenterToOrgHandleDurationWorkday();
-
-            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 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;
-            }
-
-            ////是否已解决
-            //order.IsResolved = true;//notification.Dto.External == null ? false : notification.Dto.External.IsResolved;
-
-            //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);
-        }
-
-        //_logger.LogWarning($"更新orders:{updateOrders.Count}");
-        //await _orderRepository.UpdateRangeAsync(updateOrders, HttpContext.RequestAborted);
+        return DateTime.Now.ToString("O");
     }
 
     [AllowAnonymous]
@@ -896,235 +701,5 @@ ICalcExpireTime expireTime)
         var publicKey = keyList[1];
         return $"{publicKey} \r\n {privateKey}";
     }
-
-    /// <summary>
-    /// 处理错误工单数据
-    /// </summary>
-    /// <returns></returns>
-    [HttpGet("handle-order-data")]
-    [AllowAnonymous]
-    public async Task HandleData()
-    {
-        //var steps = await _workflowStepRepository.Queryable()
-        //    .LeftJoin<Order>((ws, d) => ws.ExternalId == d.Id)
-        //    .Where((ws, d) => d.Status == EOrderStatus.Handling && d.ProcessType == EProcessType.Zhiban && ws.Status == EWorkflowStepStatus.Handled && ws.StepType == EStepType.End)
-        //    .ToListAsync(HttpContext.RequestAborted);
-        var steps = await _workflowStepRepository.Queryable()
-            .LeftJoin<Order>((ws, d) => ws.ExternalId == d.Id)
-            .Where((ws, d) => d.Status == EOrderStatus.Handling && d.ProcessType == EProcessType.Zhiban && ws.Status == EWorkflowStepStatus.Handled && ws.StepType == EStepType.End)
-            .ToListAsync(HttpContext.RequestAborted);
-
-        _logger.LogInformation($"取到数据{steps.Count}条");
-        foreach (var step in steps)
-        {
-            var order = await _orderDomainService.GetOrderAsync(step.ExternalId,
-                        withExtension: true, cancellationToken: HttpContext.RequestAborted);
-            var now = step.HandleTime.Value;
-            var handleDuration = order.CenterToOrgTime.HasValue && order.ActualHandleTime.HasValue
-                ? await _expireTime.CalcWorkTime(order.CenterToOrgTime.Value, order.ActualHandleTime.Value, order.ProcessType is EProcessType.Zhiban)
-                : 0;
-            var fileDuration = order.CenterToOrgTime.HasValue
-                ? await _expireTime.CalcWorkTime(order.CenterToOrgTime.Value, now, order.ProcessType is EProcessType.Zhiban)
-                : 0;
-            var allDuration = order.StartTime.HasValue
-                ? await _expireTime.CalcWorkTime(order.StartTime.Value, now, order.ProcessType is EProcessType.Zhiban)
-                : 0;
-            var creationTimeHandleDurationWorkday = order.ActualHandleTime.HasValue
-                ? 
-                // _timeLimitDomainService.CalcWorkTimeEx(order.CreationTime, now,
-                await _expireTime.CalcWorkTimeEx(order.CreationTime, now,
-                order.ProcessType is EProcessType.Zhiban)
-                : 0;
-            var centerToOrgHandleDurationWorkday = order.ActualHandleTime.HasValue && order.CenterToOrgTime.HasValue
-                ? 
-                // _timeLimitDomainService.CalcWorkTimeEx(
-                await _expireTime.CalcWorkTimeEx(
-                    order.CenterToOrgTime.Value, now,
-                order.ProcessType is EProcessType.Zhiban)
-                : 0;
-            order.File(now, handleDuration, fileDuration, allDuration, creationTimeHandleDurationWorkday, centerToOrgHandleDurationWorkday);
-            order.FileUserId = step.HandlerId;// notification.Trace.HandlerId;
-            order.FileUserName = step.HandlerName;// notification.Trace.HandlerName;
-            order.FileUserOrgId = step.HandlerOrgId;// notification.Trace.HandlerOrgId;
-            order.FileUserOrgName = step.HandlerOrgName;// notification.Trace.HandlerOrgName;
-            order.FileOrgIsCenter = step.HandlerOrgIsCenter; //notification.Trace.HandlerOrgIsCenter;
-            order.FileOpinion = step.Opinion;//.Dto.Opinion;
-            order.FileUserRole = EFileUserType.Seat;
-            order.IsResolved = false;
-
-
-            order.ActualHandleStepCode = step.Code;
-            order.ActualHandleStepName = step.Name;
-            order.ActualHandleStepId = step.Id;
-            order.ActualHandleStepCreateTime = step.CreationTime;
-            order.ActualHandleStepAcceptTime = step.AcceptTime;
-            order.ActualHandleTime = step.HandleTime;
-            order.ActualHandlerId = step.HandlerId;
-            order.ActualHandlerName = step.HandlerName;
-            order.ActualHandleOrgCode = step.HandlerOrgId;
-            order.ActualHandleOrgName = step.HandlerOrgName;
-            order.ActualHandleOrgAreaCode = step.HandlerOrgAreaCode;
-            order.ActualHandleOrgAreaName = step.HandlerOrgAreaName;
-
-
-            order.CurrentStepId = order.ActualHandleStepId;
-            order.CurrentStepCode = order.ActualHandleStepCode;
-            order.CurrentStepName = order.ActualHandleStepName;
-            order.CurrentStepCreateTime = order.ActualHandleStepCreateTime;
-            order.CurrentStepAcceptTime = order.ActualHandleStepAcceptTime;
-            order.CurrentHandleTime = order.ActualHandleTime;
-            order.CurrentHandlerId = order.ActualHandlerId;
-            order.CurrentHandlerName = order.ActualHandlerName;
-            order.CurrentHandleOrgName = order.ActualHandleOrgName;
-            order.CurrentHandleOrgId = order.ActualHandleOrgCode;
-            order.CurrentHandleOrgAreaCode = order.ActualHandleOrgAreaCode;
-            order.CurrentHandleOrgAreaName = order.ActualHandleOrgAreaName;
-
-            await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
-            //var workflowTrace = await _workflowTraceRepository.Queryable().Where(x => x.WorkflowId == step.WorkflowId && x.Code == "end").OrderByDescending(x=>x.HandleTime).FirstAsync();
-            //var orderFlowDto = new OrderFlowDto
-            //{
-            //    Order = _mapper.Map<OrderDto>(order)
-            //};
-            //if (workflowTrace!=null)
-            //{
-            //    orderFlowDto.WorkflowTrace = _mapper.Map<WorkflowTraceDto>(workflowTrace);
-            //}
-            //if (order.SourceChannelCode == AppDefaults.SourceChannel.DianHua &&
-            //            !string.IsNullOrEmpty(order.CallId))
-            //{
-
-            //    var call = await _callApplication.GetCallAsync(order.CallId, HttpContext.RequestAborted);
-            //    if (call is not null)
-            //        orderFlowDto.TrCallRecordDto = _mapper.Map<TrCallDto>(call);
-            //}
-            //await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFiled, orderFlowDto, cancellationToken: HttpContext.RequestAborted);
-        }
-    }
-
-    /// <summary>
-    /// 处理工单流程错误数据   话务部直接归档件  没有归档节点
-    /// </summary>
-    /// <param name="StartTime"></param>
-    /// <param name="EndTime"></param>
-    /// <returns></returns>
-    [HttpGet("oders_workflow_step")]
-    [AllowAnonymous]
-    public async Task AddJudicialManagementOrders()
-    {
-
-        var steps = await _workflowStepRepository.Queryable()
-            .LeftJoin<Order>((ws, d) => ws.ExternalId == d.Id)
-            .Where((ws, d) => d.Status == EOrderStatus.Handling && ws.NextStepCode == "end" && ws.Status == EWorkflowStepStatus.Handled && ws.StepType == EStepType.Start)
-            .ToListAsync(HttpContext.RequestAborted);
-
-        _logger.LogInformation($"取到数据 {steps.Count} 条");
-        foreach (var item in steps)
-        {
-            ///组装数据
-            //Workflow workflow
-            Workflow workflow = await _workflowDomainService.GetWorkflowAsync(item.WorkflowId, withDefine: true, withSteps: true,
-                cancellationToken: HttpContext.RequestAborted);
-            //WorkflowStep startStep
-            var startStep = workflow.Steps.FirstOrDefault(x => x.StepType == EStepType.Start);
-            if (startStep is null) continue;
-            //BasicWorkflowDto dto
-            BasicWorkflowDto dto = new BasicWorkflowDto
-            {
-                NextStepCode = "end",
-                NextStepName = "结束",
-                BackToCountersignEnd = false,
-                FlowDirection = null,
-                HandlerType = 0,
-                StepType = 0,
-                NextHandlers = new List<FlowStepHandler>(),
-                IsSms = false,
-                NextMainHandler = "",
-                IsStartCountersign = false,
-                External = new External
-                {
-                    TimeLimit = null,
-                    TimeLimitUnit = null,
-                    IsPoliceReturn = false,
-                    IsResolved = false,
-                },
-                BusinessType = EBusinessType.File,
-                ReviewResult = 0,
-                Remark = null,
-                Opinion = startStep.Opinion,
-                Files = new List<Share.Dtos.File.FileDto>()
-            };
-            //ISessionContext current
-            ISessionContext current = new ProvinceSessionContext
-            {
-                //UserId = startStep.HandlerId,
-                //UserName = startStep.HandlerName,
-                OrgId = startStep.HandlerOrgId,
-                OrgName = startStep.HandlerOrgName,
-                OrgAreaCode = startStep.HandlerOrgAreaCode,
-                OrgAreaName = startStep.HandlerOrgAreaName,
-                OrgLevel = 1
-            };
-
-            //StepDefine firstStepDefine
-            StepDefine firstStepDefine = workflow.WorkflowDefinition.FindStepDefine(startStep.NextStepCode);
-            //FlowAssignInfo flowAssignInfo
-            ////如果发起会签需检查是否支持发起会签
-            //var startStepDefine = workflow.WorkflowDefinition.FindStartStepDefine();
-
-            //下一节点是否为动态节点
-            var isNextDynamic = false;
-
-            FlowAssignInfo flowAssignInfo =
-                await _workflowApplication.GetNextStepFlowAssignInfoAsync(workflow, startStep, dto, firstStepDefine, isNextDynamic, HttpContext.RequestAborted);
-            //DateTime? expiredTime
-            DateTime? expiredTime = startStep.StepExpiredTime;
-
-            ///
-            await _mediator.Publish(
-                new StartWorkflowNotify(workflow, dto, flowAssignInfo, startStep.WorkflowTrace), HttpContext.RequestAborted);
-
-            //firstStep是否为end,t: 实际办理节点为startStep, 并且handlerId赋值 f: 实际办理节点为firstStep, handlerId未赋值
-            workflow.UpdateActualStepWhenHandle(startStep,
-                current.RequiredUserId, current.UserName,
-                current.RequiredOrgId, current.OrgName,
-                current.OrgAreaCode, current.OrgAreaName,
-                current.OrgLevel);
-
-            workflow.UpdateCurrentStepWhenHandle(startStep,
-                current.OrgAreaCode, current.OrgAreaName, current.OrgLevel);
-
-            var endTrace = await _workflowDomainService.EndAsync(workflow, dto, firstStepDefine,
-                startStep, current, expiredTime, HttpContext.RequestAborted);
-
-
-        }
-
-        _logger.LogInformation($"处理完成");
-    }
-
-    [HttpGet("order_participle")]
-    [AllowAnonymous]
-    public async Task OrderParticiple()
-    {
-        var tels = new List<Tel>();
-        for (int i = 5001; i <= 5010; i++)
-        {
-            tels.Add(new Tel
-            {
-                No = i.ToString()
-            });
-        }
-
-        for (int i = 8001; i <= 9069; i++)
-        {
-            tels.Add(new Tel
-            {
-                No = i.ToString()
-            });
-        }
-        
-        await _telRepository.AddRangeAsync(tels, HttpContext.RequestAborted);
-        
-    }
+    
 }