tangjiang 4 ماه پیش
والد
کامیت
98d6c75856
1فایلهای تغییر یافته به همراه51 افزوده شده و 45 حذف شده
  1. 51 45
      src/Hotline.Api/Controllers/PushProvinceController.cs

+ 51 - 45
src/Hotline.Api/Controllers/PushProvinceController.cs

@@ -93,32 +93,35 @@ namespace Hotline.Api.Controllers
                  .Includes(x => x.OrderVisits.Where(q => q.VisitState == EVisitState.Visited).ToList(), d => d.OrderVisitDetails)
                  .Where(x => provinceNos.Contains(x.ProvinceNo) && x.Status == EOrderStatus.Visited).ToListAsync();
 
-            foreach (var item in list)
+            if (list != null && list.Any())
             {
-                try
+                foreach (var item in list)
                 {
-                    var visit = item.OrderVisits.FirstOrDefault();
-                    if (visit != null)
+                    try
                     {
-                        var visitRemark = visit.OrderVisitDetails.Where(q => q.VisitTarget == EVisitTarget.Org).FirstOrDefault()?.VisitContent;
-                        //推省上
-                        await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderVisited,
-                        new PublishVisitDto()
+                        var visit = item.OrderVisits.FirstOrDefault();
+                        if (visit != null)
                         {
-                            Order = _mapper.Map<OrderDto>(item),
-                            No = visit.No,
-                            VisitType = visit.VisitType,
-                            VisitName = visit.CreatorName,
-                            VisitTime = visit.VisitTime,
-                            VisitRemark = string.IsNullOrEmpty(visitRemark) == true ? "满意" : visitRemark,
-                            AreaCode = item.AreaCode!,
-                            SubjectResultSatifyCode = visit.NowEvaluate.Key,
-                            FirstSatisfactionCode = item.FirstVisitResultCode,
-                            ClientGuid = ""
-                        }, cancellationToken: HttpContext.RequestAborted);
+                            var visitRemark = visit.OrderVisitDetails.Where(q => q.VisitTarget == EVisitTarget.Org).FirstOrDefault()?.VisitContent;
+                            //推省上
+                            await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderVisited,
+                            new PublishVisitDto()
+                            {
+                                Order = _mapper.Map<OrderDto>(item),
+                                No = visit.No,
+                                VisitType = visit.VisitType,
+                                VisitName = visit.CreatorName,
+                                VisitTime = visit.VisitTime,
+                                VisitRemark = string.IsNullOrEmpty(visitRemark) == true ? "满意" : visitRemark,
+                                AreaCode = item.AreaCode!,
+                                SubjectResultSatifyCode = visit.NowEvaluate.Key,
+                                FirstSatisfactionCode = item.FirstVisitResultCode,
+                                ClientGuid = ""
+                            }, cancellationToken: HttpContext.RequestAborted);
+                        }
                     }
+                    catch { }
                 }
-                catch { }
             }
         }
 
@@ -142,38 +145,41 @@ namespace Hotline.Api.Controllers
                 .Where(d => provinceNos.Contains(d.ProvinceNo) && !string.IsNullOrEmpty(d.ProvinceNo) && d.Status >= EOrderStatus.Filed)
                 .ToListAsync(HttpContext.RequestAborted);
 
-            foreach (var order in unpublishOrders)
+            if (unpublishOrders != null && unpublishOrders.Any())
             {
-                var trace = await _workflowTraceRepository.Queryable()
-                    .FirstAsync(d => d.WorkflowId == order.WorkflowId && d.StepType == EStepType.End,
-                        HttpContext.RequestAborted);
-                var orderFlowDto = new OrderFlowDto
+                foreach (var order in unpublishOrders)
                 {
-                    Order = _mapper.Map<OrderDto>(order),
-                    WorkflowTrace = _mapper.Map<WorkflowTraceDto>(trace)
-                };
-                if (order.SourceChannelCode == AppDefaults.SourceChannel.DianHua &&
-                    !string.IsNullOrEmpty(order.CallId))
-                {
-                    if (_appOptions.Value.GetDefaultAppScopeConfiguration().CallCenterType == AppDefaults.CallCenterType.TianRun)
+                    var trace = await _workflowTraceRepository.Queryable()
+                        .FirstAsync(d => d.WorkflowId == order.WorkflowId && d.StepType == EStepType.End,
+                            HttpContext.RequestAborted);
+                    var orderFlowDto = new OrderFlowDto
+                    {
+                        Order = _mapper.Map<OrderDto>(order),
+                        WorkflowTrace = _mapper.Map<WorkflowTraceDto>(trace)
+                    };
+                    if (order.SourceChannelCode == AppDefaults.SourceChannel.DianHua &&
+                        !string.IsNullOrEmpty(order.CallId))
                     {
-                        var callRecord = await _callApplication.GetTianrunCallAsync(order.CallId, HttpContext.RequestAborted);
-                        if (callRecord != null)
+                        if (_appOptions.Value.GetDefaultAppScopeConfiguration().CallCenterType == AppDefaults.CallCenterType.TianRun)
                         {
-                            orderFlowDto.TrCallRecordDto = _mapper.Map<TrCallDto>(callRecord);
+                            var callRecord = await _callApplication.GetTianrunCallAsync(order.CallId, HttpContext.RequestAborted);
+                            if (callRecord != null)
+                            {
+                                orderFlowDto.TrCallRecordDto = _mapper.Map<TrCallDto>(callRecord);
+                            }
+                        }
+                        else if (_appOptions.Value.GetDefaultAppScopeConfiguration().CallCenterType == AppDefaults.CallCenterType.XingTang)
+                        {
+                            var call = await _callApplication.GetCallAsync(order.CallId, HttpContext.RequestAborted);
+                            if (call is not null)
+                                orderFlowDto.TrCallRecordDto = _mapper.Map<TrCallDto>(call);
                         }
                     }
-                    else if (_appOptions.Value.GetDefaultAppScopeConfiguration().CallCenterType == AppDefaults.CallCenterType.XingTang)
-                    {
-                        var call = await _callApplication.GetCallAsync(order.CallId, HttpContext.RequestAborted);
-                        if (call is not null)
-                            orderFlowDto.TrCallRecordDto = _mapper.Map<TrCallDto>(call);
-                    }
-                }
 
-                //这里需要判断是否是警情退回
-                orderFlowDto.IsNonPoliceReturn = false;
-                await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFiled, orderFlowDto, cancellationToken: HttpContext.RequestAborted);
+                    //这里需要判断是否是警情退回
+                    orderFlowDto.IsNonPoliceReturn = false;
+                    await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFiled, orderFlowDto, cancellationToken: HttpContext.RequestAborted);
+                }
             }
         }