Browse Source

保存批量工单回访的标识

qinchaoyue 6 tháng trước cách đây
mục cha
commit
13717a23f5
1 tập tin đã thay đổi với 94 bổ sung91 xóa
  1. 94 91
      src/Hotline.Api/Controllers/OrderController.cs

+ 94 - 91
src/Hotline.Api/Controllers/OrderController.cs

@@ -139,7 +139,7 @@ public class OrderController : BaseController
     private readonly IRepository<OrderRevoke> _orderRevokeRepository;
     private readonly IOrderTerminateRepository _orderTerminateRepository;
 
-	public OrderController(
+    public OrderController(
         IOrderDomainService orderDomainService,
         IOrderRepository orderRepository,
         IWorkflowApplication workflowApplication,
@@ -267,7 +267,7 @@ public class OrderController : BaseController
         _callNativeRepository = callNativeRepository;
         _callNativeApplication = callNativeApplication;
         _baseDataApplication = baseDataApplication;
-		_orderTerminateRepository = orderTerminateRepository;
+        _orderTerminateRepository = orderTerminateRepository;
         _orderRevokeRepository = orderRevokeRepository;
     }
     #endregion 
@@ -288,18 +288,18 @@ public class OrderController : BaseController
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword!))
             .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No)
             .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Title == dto.Title)
-			.WhereIF(dto.PubState == EPubState.Pub, d => d.Status >= EOrderStatus.Published)
+            .WhereIF(dto.PubState == EPubState.Pub, d => d.Status >= EOrderStatus.Published)
             .WhereIF(dto.PubState == EPubState.NoPub, d => d.Status < EOrderStatus.Published)
             .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannelCode == dto.Channel)
-            .WhereIF(!string.IsNullOrEmpty(dto.OrderTag), d => d.OrderTagCode  == dto.OrderTag!) //工单标签
-			.WhereIF(!string.IsNullOrEmpty(dto.CenterToOrgHandlerName), d => d.CenterToOrgHandlerName == dto.CenterToOrgHandlerName! ) //派单人
-			.WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName == dto.NameOrNo! || d.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
-			.WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
+            .WhereIF(!string.IsNullOrEmpty(dto.OrderTag), d => d.OrderTagCode == dto.OrderTag!) //工单标签
+            .WhereIF(!string.IsNullOrEmpty(dto.CenterToOrgHandlerName), d => d.CenterToOrgHandlerName == dto.CenterToOrgHandlerName!) //派单人
+            .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName == dto.NameOrNo! || d.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
+            .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
             .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptTypeCode == dto.AcceptType)//受理类型
             .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
-			.WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.FromPhone == dto.FromPhone) //来电号码
-            //.WhereIF(!string.IsNullOrEmpty(dto.PubMan),
-            //    d => d.AcceptorName.Contains(dto.PubMan!) || d.AcceptorStaffNo.Contains(dto.PubMan!))
+            .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.FromPhone == dto.FromPhone) //来电号码
+                                                                                              //.WhereIF(!string.IsNullOrEmpty(dto.PubMan),
+                                                                                              //    d => d.AcceptorName.Contains(dto.PubMan!) || d.AcceptorStaffNo.Contains(dto.PubMan!))
             .WhereIF(dto.PubRange == EPublicState.Pub, d => d.OrderPublish.PublishState)
             .WhereIF(dto.PubRange == EPublicState.NoPub, d => !d.OrderPublish.PublishState)
             .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, d => d.Source == ESource.ProvinceStraight)
@@ -679,13 +679,13 @@ public class OrderController : BaseController
             .WhereIF(dto.CreationTimeEnd.HasValue, d => d.Order.CreationTime <= dto.CreationTimeEnd)
             .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.Order.FromPhone == dto.FromPhone) //来电号码
             .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.Order.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
-			.WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.Order.AcceptTypeCode == dto.AcceptType)//受理类型
+            .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.Order.AcceptTypeCode == dto.AcceptType)//受理类型
             .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.Order.HotspotSpliceName != null && d.Order.HotspotSpliceName.Contains(dto.Hotspot))
-			.WhereIF(!string.IsNullOrEmpty(dto.PublishName), d => d.CreatorName.Contains(dto.PublishName!))
+            .WhereIF(!string.IsNullOrEmpty(dto.PublishName), d => d.CreatorName.Contains(dto.PublishName!))
             .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.Order.AcceptorName == dto.NameOrNo! || d.Order.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
             .WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime)
             .WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime)
-			.WhereIF(dto.Resolve.HasValue, x => x.Resolve == dto.Resolve)
+            .WhereIF(dto.Resolve.HasValue, x => x.Resolve == dto.Resolve)
             .OrderByDescending(d => d.CreationTime)
             .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
 
@@ -836,7 +836,7 @@ public class OrderController : BaseController
             ChannelOptions = _sysDicDataCacheManager.GetSysDicDataCache(TimeLimitBaseDataConsts.SourceChannel),
             AcceptTypeOptions = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.AcceptType),
             OrderTags = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.OrderTag)
-		};
+        };
         return rsp;
     }
 
@@ -1066,7 +1066,6 @@ public class OrderController : BaseController
 
         foreach (var visit in dto.Visit)
         {
-
             try
             {
                 var details = await _orderVisitedDetailRepository
@@ -1112,6 +1111,10 @@ public class OrderController : BaseController
                 });
                 }
                 await _orderApplication.SaveOrderVisit(visitDto, HttpContext.RequestAborted);
+                await _orderVisitRepository.Updateable()
+                    .Where(m => m.Id == visit.VisitId)
+                    .SetColumns(m => m.IsBatchVisit == true)
+                    .ExecuteCommandAsync();
                 outDto.CompleteCount += 1;
             }
             catch (Exception e)
@@ -2397,8 +2400,8 @@ public class OrderController : BaseController
             }
             var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
             CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
-			//推省上
-			if (!string.IsNullOrEmpty(model.Id) && (cityBase.CityProvince.OrgId.Equals(model.OrgId) || cityBase.CityProvinceAssign.OrgId.Equals(model.OrgId)))
+            //推省上
+            if (!string.IsNullOrEmpty(model.Id) && (cityBase.CityProvince.OrgId.Equals(model.OrgId) || cityBase.CityProvinceAssign.OrgId.Equals(model.OrgId)))
             {
                 var orderDto = _mapper.Map<OrderDto>(order);
                 var supervise = await _orderSuperviseRepository.GetAsync(x => x.Id == model.Id);
@@ -2643,8 +2646,8 @@ public class OrderController : BaseController
             }
             var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
             CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
-			//推省上
-			if (!string.IsNullOrEmpty(model.Id) && (cityBase.CityProvince.OrgId.Equals(model.OrgId) || cityBase.CityProvinceAssign.OrgId.Equals(model.OrgId)))
+            //推省上
+            if (!string.IsNullOrEmpty(model.Id) && (cityBase.CityProvince.OrgId.Equals(model.OrgId) || cityBase.CityProvinceAssign.OrgId.Equals(model.OrgId)))
             {
                 var orderDto = _mapper.Map<OrderDto>(order);
                 var urge = await _orderUrgeRepository.GetAsync(x => x.Id == model.Id);
@@ -3411,7 +3414,7 @@ public class OrderController : BaseController
         ExpiredTimeWithConfig expiredTimeConfig;
         var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
         CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
-		if (dto.Workflow.NextHandlers.Any(d => d.Key == cityBase.CityProvince.OrgId || d.Key == cityBase.CityProvinceAssign.OrgId))
+        if (dto.Workflow.NextHandlers.Any(d => d.Key == cityBase.CityProvince.OrgId || d.Key == cityBase.CityProvinceAssign.OrgId))
         {
             var timeResult = await _expireTime.CalcEndTime(DateTime.Now, ETimeType.WorkDay, 45, 80, 50);
             expiredTimeConfig = new ExpiredTimeWithConfig
@@ -3800,7 +3803,7 @@ public class OrderController : BaseController
             .WhereIF(dto.StartTime.HasValue, d => d.StartTime >= dto.StartTime)
             .WhereIF(dto.EndTime.HasValue, d => d.StartTime <= dto.EndTime)
             .WhereIF(dto.IsUrgent.HasValue, d => d.IsUrgent == dto.IsUrgent!.Value)
-            .WhereIF(dto.Status.HasValue, d=>d.Status == dto.Status)
+            .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status)
             .OrderByDescending(d => new { d.IsUrgent, d.StartTime })
             .ToPagedListAsync(dto, HttpContext.RequestAborted);
 
@@ -3859,7 +3862,7 @@ public class OrderController : BaseController
             //.Where(d => string.IsNullOrEmpty(d.SignerId) || d.SignerId == _sessionContext.RequiredUserId)
             .WhereIF(dto.IsUrgent.HasValue, d => d.IsUrgent == dto.IsUrgent.Value)
             .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status)
-			.Where(x => x.Source < ESource.MLSQ || x.Source > ESource.WZSC)
+            .Where(x => x.Source < ESource.MLSQ || x.Source > ESource.WZSC)
             .Where(x => x.Status != EOrderStatus.BackToProvince && x.Status < EOrderStatus.Filed)
             .OrderBy(d => d.Status)
             .OrderByIF(dto.IsHandled == true, d => d.StartTime, OrderByType.Desc)
@@ -4676,9 +4679,9 @@ public class OrderController : BaseController
 
             var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
             CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
-			if (order != null && (cityBase.CityProvince.OrgId.Equals(model.OrgId) ||
-			                      cityBase.CityProvinceAssign.OrgId.Equals(model.OrgId) || cityBase.CityEnterprise.OrgId.Equals(model.OrgId) ||
-			                      cityBase.PublicSecurity.OrgId.Equals(model.OrgId)))
+            if (order != null && (cityBase.CityProvince.OrgId.Equals(model.OrgId) ||
+                                  cityBase.CityProvinceAssign.OrgId.Equals(model.OrgId) || cityBase.CityEnterprise.OrgId.Equals(model.OrgId) ||
+                                  cityBase.PublicSecurity.OrgId.Equals(model.OrgId)))
             {
                 await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFlowRecalled,
                     new PublishSpecialDto { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(model) },
@@ -4931,9 +4934,9 @@ public class OrderController : BaseController
 
             var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
             CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
-			if (order != null && (cityBase.CityProvince.OrgId.Equals(special.OrgId) ||
-			                      cityBase.CityProvinceAssign.OrgId.Equals(special.OrgId) || cityBase.CityEnterprise.OrgId.Equals(special.OrgId) ||
-			                      cityBase.PublicSecurity.OrgId.Equals(special.OrgId)))
+            if (order != null && (cityBase.CityProvince.OrgId.Equals(special.OrgId) ||
+                                  cityBase.CityProvinceAssign.OrgId.Equals(special.OrgId) || cityBase.CityEnterprise.OrgId.Equals(special.OrgId) ||
+                                  cityBase.PublicSecurity.OrgId.Equals(special.OrgId)))
             {
                 await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFlowRecalled,
                     new PublishSpecialDto { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(special) },
@@ -5045,9 +5048,9 @@ public class OrderController : BaseController
                 }
                 var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
                 CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
-				if (order != null && (cityBase.CityProvince.OrgId.Equals(special.OrgId) ||
-				                      cityBase.CityProvinceAssign.OrgId.Equals(special.OrgId) || cityBase.CityEnterprise.OrgId.Equals(special.OrgId) ||
-				                      cityBase.PublicSecurity.OrgId.Equals(special.OrgId)))
+                if (order != null && (cityBase.CityProvince.OrgId.Equals(special.OrgId) ||
+                                      cityBase.CityProvinceAssign.OrgId.Equals(special.OrgId) || cityBase.CityEnterprise.OrgId.Equals(special.OrgId) ||
+                                      cityBase.PublicSecurity.OrgId.Equals(special.OrgId)))
                 {
                     await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFlowRecalled,
                         new PublishSpecialDto { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(special) },
@@ -5231,13 +5234,13 @@ public class OrderController : BaseController
         var order = await _orderRepository.Queryable().Where(d => d.WorkflowId == id).FirstAsync(HttpContext.RequestAborted);
         if (order == null) throw UserFriendlyException.SameMessage("无效工单信息!");
 
-		var baseTypeId = string.Empty;
-		if (step != null && step.Steps.Any() && _sessionContext.Roles.Contains("zuoxi") && specialSeats &&
+        var baseTypeId = string.Empty;
+        if (step != null && step.Steps.Any() && _sessionContext.Roles.Contains("zuoxi") && specialSeats &&
             !_sessionContext.Roles.Contains("paidanyuan"))
         {
             step.Steps = step.Steps.Where(x => x.Key.ToLower() == "start").ToList();
-            if (step.Steps.Any()) baseTypeId = step.Steps[0].Key; 
-		}
+            if (step.Steps.Any()) baseTypeId = step.Steps[0].Key;
+        }
 
         if (step != null && step.Steps.Any() && _sessionContext.Roles.Contains("paidanyuan") && specialSendOrder &&
             !_sessionContext.Roles.Contains("zuoxi"))
@@ -5252,8 +5255,8 @@ public class OrderController : BaseController
             SpecialReason = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.SpecialReason),
             InstaShotSpecialReason = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.InstaShotSpecialReason),
             Step = step,
-			IsTerminate = _orderTerminateRepository.Queryable().Where(d=>d.OrderId == order.Id && d.Status == ETerminateStatus.End).AnyAsync(),
-			BaseTypeId = baseTypeId
+            IsTerminate = _orderTerminateRepository.Queryable().Where(d => d.OrderId == order.Id && d.Status == ETerminateStatus.End).AnyAsync(),
+            BaseTypeId = baseTypeId
         };
         return rsp;
     }
@@ -5280,7 +5283,7 @@ public class OrderController : BaseController
             SpecialReason = isInstaShot ? _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.InstaShotSpecialReason) : _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.SpecialReason),
             ReTransactErrorType = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.ReTransactErrorType),
             IsTerminate = _orderTerminateRepository.Queryable().Where(d => d.OrderId == order.Id && d.Status == ETerminateStatus.End).AnyAsync(),
-			Step = step,
+            Step = step,
             Orgs = orgs,
         };
         return rsp;
@@ -5787,8 +5790,8 @@ public class OrderController : BaseController
     public async Task<PagedDto<OrderObserveDto>> List([FromQuery] OrderObserveListDto dto)
     {
         var quer = _orderApplication.OrderObserveList(dto);
-		var (total, items) = await
-			quer.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
+        var (total, items) = await
+            quer.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
         return new PagedDto<OrderObserveDto>(total, _mapper.Map<IReadOnlyList<OrderObserveDto>>(items));
     }
 
@@ -5798,70 +5801,70 @@ public class OrderController : BaseController
     /// <param name="dto"></param>
     /// <returns></returns>
     [HttpPost("order_observe/list/export")]
-	public async Task<FileStreamResult> ListExport([FromBody] ExportExcelDto<OrderObserveListDto> dto)
+    public async Task<FileStreamResult> ListExport([FromBody] ExportExcelDto<OrderObserveListDto> dto)
     {
-	    var query = _orderApplication.OrderObserveList(dto.QueryDto);
-	    List<OrderObserve> data;
-	    if (dto.IsExportAll)
-	    {
-		    data = await query.ToListAsync(HttpContext.RequestAborted);
-	    }
-	    else
-	    {
-		    var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
-		    data = items;
-	    }
+        var query = _orderApplication.OrderObserveList(dto.QueryDto);
+        List<OrderObserve> data;
+        if (dto.IsExportAll)
+        {
+            data = await query.ToListAsync(HttpContext.RequestAborted);
+        }
+        else
+        {
+            var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
+            data = items;
+        }
 
-	    var dataDtos = _mapper.Map<ICollection<OrderObserveDto>>(data);
+        var dataDtos = _mapper.Map<ICollection<OrderObserveDto>>(data);
 
-	    dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
+        dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
 
-	    var dtos = dataDtos
-		    .Select(stu => _mapper.Map(stu, typeof(OrderObserveDto), dynamicClass))
-		    .Cast<object>()
-		    .ToList();
+        var dtos = dataDtos
+            .Select(stu => _mapper.Map(stu, typeof(OrderObserveDto), dynamicClass))
+            .Cast<object>()
+            .ToList();
 
-	    var stream = ExcelHelper.CreateStream(dtos);
+        var stream = ExcelHelper.CreateStream(dtos);
 
-	    return ExcelStreamResult(stream, "工单关注列表");
+        return ExcelStreamResult(stream, "工单关注列表");
     }
 
-	/// <summary>
-	/// 获取工单观察
-	/// </summary>
-	/// <param name="id"></param>
-	/// <returns></returns>
-	[HttpGet("order_observe/{id}")]
+    /// <summary>
+    /// 获取工单观察
+    /// </summary>
+    /// <param name="id"></param>
+    /// <returns></returns>
+    [HttpGet("order_observe/{id}")]
     public async Task<OrderObserve> OrderObserveEntity(string id)
     {
         return await _orderObserveRepository.Queryable()
             .FirstAsync(x => x.Id == id);
     }
 
-	/// <summary>
-	/// 列表页面基础数据
-	/// </summary>
-	/// <returns></returns>
-	[HttpGet("order_observe/base-data")]
-	public async Task<object> OrderObserveBaseData()
-	{
-		var rsp = new
-		{
-			AcceptTypeOptions = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.AcceptType)
-		};
-		return rsp;
-	}
-
-	#endregion
-
-	#region 工单终结
-
-	/// <summary>
-	/// 新增工单终结
-	/// </summary>
-	/// <param name="dtos"></param>
-	/// <returns></returns>
-	[Permission(EPermission.AddOrderFinality)]
+    /// <summary>
+    /// 列表页面基础数据
+    /// </summary>
+    /// <returns></returns>
+    [HttpGet("order_observe/base-data")]
+    public async Task<object> OrderObserveBaseData()
+    {
+        var rsp = new
+        {
+            AcceptTypeOptions = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.AcceptType)
+        };
+        return rsp;
+    }
+
+    #endregion
+
+    #region 工单终结
+
+    /// <summary>
+    /// 新增工单终结
+    /// </summary>
+    /// <param name="dtos"></param>
+    /// <returns></returns>
+    [Permission(EPermission.AddOrderFinality)]
     [HttpPost("order_finality")]
     [LogFilter("新增工单终结")]
     public async Task Add([FromBody] OrderFinalityAddDto dto)
@@ -6555,7 +6558,7 @@ public class OrderController : BaseController
         }
         var oldInfo = _mapper.Map<OrderDto>(modifyRecordsInfo);
         oldInfo.CenterOpinion = modifyRecordsInfo.CenterToOrgOpinion;
-        return new { OldInfo=oldInfo, NewInfo = newInfo };
+        return new { OldInfo = oldInfo, NewInfo = newInfo };
     }
 
     #endregion