Procházet zdrojové kódy

Merge branch 'master_order_send_20250227' of Fengwo/hotline into master

tianshuang před 2 měsíci
rodič
revize
7102143e8b
1 změnil soubory, kde provedl 38 přidání a 43 odebrání
  1. 38 43
      src/Hotline/Orders/OrderDomainService.cs

+ 38 - 43
src/Hotline/Orders/OrderDomainService.cs

@@ -576,51 +576,46 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
     /// <returns></returns>
     public async Task LogAverageOrder(string userId, Scheduling scheduling, CancellationToken cancellationToken)
     {
-        //1.获取默认派单员所属的工单
-        //2.获取今天上班的人员
-        //3.给当前这个用户平均派单
-
-        var steps = await _workflowDomainService.GetStepsBelongsToAsync(AppDefaults.SendPoolId,
-            cancellationToken);
-        var roleId = _systemSettingCacheManager.GetSetting(SettingConstants.RolePaiDan)?.SettingValue[0];
-
-        var user = await _userRepository.Queryable()
-            .Includes(d => d.Organization)
-            .FirstAsync(d => d.Id == userId, cancellationToken);
-        var time = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
-        var schedulings = await _schedulingRepository.Queryable().Includes(x => x.SchedulingUser)
-            .Where(x => x.SchedulingTime == time).CountAsync(cancellationToken);
-        if (schedulings > 0)
-        {
-            var sendNum = steps.Count / schedulings;
-            scheduling.SendOrderNum += sendNum;
-            if (!scheduling.LoginSendOrderNum.HasValue)
-            {
-	            scheduling.LoginSendOrderNum = scheduling.LoginSendOrderNum.HasValue && scheduling.LoginSendOrderNum > sendNum ? scheduling.LoginSendOrderNum : sendNum;
-				await _schedulingRepository.Updateable()
-					.SetColumns(s => new Scheduling() { LoginSendOrderNum = scheduling.LoginSendOrderNum })
-					.Where(s => s.SchedulingTime == scheduling.SchedulingTime).ExecuteCommandAsync(cancellationToken);
+		//1.获取默认派单员所属的工单
+		//2.获取今天上班的人员
+		//3.给当前这个用户平均派单
+
+		var steps = await _workflowDomainService.GetStepsBelongsToAsync(AppDefaults.SendPoolId,
+		   cancellationToken);
+		var roleId = _systemSettingCacheManager.GetSetting(SettingConstants.RolePaiDan)?.SettingValue[0];
+
+		var user = await _userRepository.Queryable()
+			.Includes(d => d.Organization)
+			.FirstAsync(d => d.Id == userId, cancellationToken);
+		var time = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
+		var schedulings = await _schedulingRepository.Queryable().Includes(x => x.SchedulingUser)
+			.Where(x => x.SchedulingTime == time).CountAsync(cancellationToken);
+		if (schedulings > 0)
+		{
+			var sendNum = steps.Count / schedulings;
+			if (!scheduling.LoginSendOrderNum.HasValue)
+			{
+				scheduling.LoginSendOrderNum = scheduling.LoginSendOrderNum.HasValue && scheduling.LoginSendOrderNum > sendNum ? scheduling.LoginSendOrderNum : sendNum;
 			}
-            sendNum = scheduling.LoginSendOrderNum.Value;
-			await _schedulingRepository.Updateable()
-                .SetColumns(s => new Scheduling() { SendOrderNum = scheduling.SendOrderNum, AtWork = scheduling.AtWork })
-                .Where(s => s.Id == scheduling.Id).ExecuteCommandAsync(cancellationToken);
-		
+			sendNum = scheduling.LoginSendOrderNum.Value;
 			if (sendNum <= 0) return;
-            var sendSteps = steps.Take(sendNum).ToList();
-            await _orderRepository.Updateable().SetColumns(o => new Order()
-            {
-                CenterToOrgHandlerId = user.OrgId,
-                CenterToOrgHandlerName = user.Name
-            }).Where(o => sendSteps.Any(s => s.ExternalId == o.Id)).ExecuteCommandAsync(cancellationToken);
-
-            await _workflowDomainService.ChangeHandlerBatchAsync(new List<(string userId, string username, string orgId, string orgName, string? roleId, string? roleName, ICollection<WorkflowStep> steps)>
-            {
-                new(user.Id, user.Name, user.OrgId, user.Organization.Name,roleId,"派单员", sendSteps)
-            }, cancellationToken);
-        }
-
-    }
+			var sendSteps = steps.Take(sendNum).ToList();
+			await _schedulingRepository.Updateable()
+				.SetColumns(s => new Scheduling() { AtWork = scheduling.AtWork, LoginSendOrderNum = scheduling.LoginSendOrderNum })
+				.Where(s => s.Id == scheduling.Id).ExecuteCommandAsync(cancellationToken);
+			await _orderRepository.Updateable().SetColumns(o => new Order()
+			{
+				CenterToOrgHandlerId = user.OrgId,
+				CenterToOrgHandlerName = user.Name
+			}).Where(o => sendSteps.Any(s => s.ExternalId == o.Id)).ExecuteCommandAsync(cancellationToken);
+
+			await _workflowDomainService.ChangeHandlerBatchAsync(new List<(string userId, string username, string orgId, string orgName, string? roleId, string? roleName, ICollection<WorkflowStep> steps)>
+			{
+				new(user.Id, user.Name, user.OrgId, user.Organization.Name,roleId,"派单员", sendSteps)
+			}, cancellationToken);
+		}
+
+	}
 
     /// <summary>
     /// 触发平均派单