tangjiang 10 months ago
parent
commit
ee071b81bc
1 changed files with 93 additions and 92 deletions
  1. 93 92
      src/Hotline.Api/Controllers/OrderController.cs

+ 93 - 92
src/Hotline.Api/Controllers/OrderController.cs

@@ -1349,7 +1349,7 @@ public class OrderController : BaseController
             startDto.DefinitionModuleCode = WorkflowModuleConsts.OrderDelay;
             startDto.Opinion = model.DelayReason;
             startDto.Title = "申请延期流程";
-			string workFlowId = await _workflowApplication.StartWorkflowAsync(startDto, _sessionContext, model.Id,
+            string workFlowId = await _workflowApplication.StartWorkflowAsync(startDto, _sessionContext, model.Id,
                     cancellationToken: HttpContext.RequestAborted);
             //model.WorkflowId = workFlowId;
             //await _orderDelayRepository.UpdateAsync(model, HttpContext.RequestAborted);
@@ -1719,8 +1719,8 @@ public class OrderController : BaseController
             startDto.DefinitionModuleCode = WorkflowModuleConsts.OrderScreen;
             startDto.Opinion = dto.Data.Content;
             startDto.Title = "申请甄别流程";
-		   workflowId = await _workflowApplication.StartWorkflowAsync(startDto, _sessionContext, model.Id,
-                    cancellationToken: HttpContext.RequestAborted);
+            workflowId = await _workflowApplication.StartWorkflowAsync(startDto, _sessionContext, model.Id,
+                     cancellationToken: HttpContext.RequestAborted);
             //var screen = await _orderScreenRepository.GetAsync(model.Id, HttpContext.RequestAborted);
             //if (screen != null)
             //{
@@ -2423,18 +2423,18 @@ public class OrderController : BaseController
                 _sessionContext.RequiredOrgId, _sessionContext.OrgName,
                 _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName));
         }
-		var setting = _systemSettingCacheManager.GetSetting(SettingConstants.SeatsMonitor);
-		var settingStr = setting?.SettingValue;
-		var roles = _sessionContext.Roles;
-		foreach (var item in settingStr)
-		{
-			if (roles != null && roles.Contains(item)) dto.CanHandle = true;
-		}
-
-		//var dto = _mapper.Map<OrderDto>(order!);
-		//dto.CountersignId = countersignId;
-		//dto.CanHandle = order.CanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId);
-		dto.IsCanDelay = !order.OrderDelays.Any(x => x.DelayState == EDelayState.Examining);
+        var setting = _systemSettingCacheManager.GetSetting(SettingConstants.SeatsMonitor);
+        var settingStr = setting?.SettingValue;
+        var roles = _sessionContext.Roles;
+        foreach (var item in settingStr)
+        {
+            if (roles != null && roles.Contains(item)) dto.CanHandle = true;
+        }
+
+        //var dto = _mapper.Map<OrderDto>(order!);
+        //dto.CountersignId = countersignId;
+        //dto.CanHandle = order.CanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId);
+        dto.IsCanDelay = !order.OrderDelays.Any(x => x.DelayState == EDelayState.Examining);
         if (order.OrderDelays.Any(x => x.DelayState == EDelayState.Examining && x.ApplyOrgCode == _sessionContext.RequiredOrgId))
         {
             dto.CanHandle = false;
@@ -2778,25 +2778,25 @@ public class OrderController : BaseController
                 await Remove(id);
             throw new UserFriendlyException($"工单开启流程失败!, {e.Message}, {e.StackTrace}", "工单开启流程失败");
         }
-		//是否市州互转
-		if (dto.Data.Transpond.HasValue && dto.Data.Transpond.Value)
-		{
-			var order = await _orderRepository.GetAsync(id, HttpContext.RequestAborted);
-			var orderDto = _mapper.Map<OrderDto>(order);
-			await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderTranspondCity, orderDto);
-			//保存本地数据
-			TranspondCityRawData cityRawData = new TranspondCityRawData
-			{
-				OrderCode = order.No,
-				TransferOutTime = DateTime.Now,
-				CityName = order.TranspondCityName,
-				Direction = ETranspondDirection.Out
-			};
-
-			await _transpondCityRawDataRepository.AddAsync(cityRawData, HttpContext.RequestAborted);
-
-		}
-	}
+        //是否市州互转
+        if (dto.Data.Transpond.HasValue && dto.Data.Transpond.Value)
+        {
+            var order = await _orderRepository.GetAsync(id, HttpContext.RequestAborted);
+            var orderDto = _mapper.Map<OrderDto>(order);
+            await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderTranspondCity, orderDto);
+            //保存本地数据
+            TranspondCityRawData cityRawData = new TranspondCityRawData
+            {
+                OrderCode = order.No,
+                TransferOutTime = DateTime.Now,
+                CityName = order.TranspondCityName,
+                Direction = ETranspondDirection.Out
+            };
+
+            await _transpondCityRawDataRepository.AddAsync(cityRawData, HttpContext.RequestAborted);
+
+        }
+    }
 
     /// <summary>
     /// 查询工单办理流程开启参数
@@ -3169,7 +3169,7 @@ public class OrderController : BaseController
                 ((step.FlowAssignType == EFlowAssignType.User && !string.IsNullOrEmpty(step.HandlerId) && step.HandlerId == _sessionContext.RequiredUserId) ||
                  (step.FlowAssignType == EFlowAssignType.Org && !string.IsNullOrEmpty(step.HandlerOrgId) && step.HandlerOrgId == _sessionContext.RequiredOrgId) ||
                  (step.FlowAssignType == EFlowAssignType.Role && !string.IsNullOrEmpty(step.RoleId) && _sessionContext.Roles.Contains(step.RoleId))) &&
-                 (((dto.IsHandled.HasValue && dto.IsHandled == false) && step.Status != EWorkflowStepStatus.Handled)||
+                 (((dto.IsHandled.HasValue && dto.IsHandled == false) && step.Status != EWorkflowStepStatus.Handled) ||
                 ((dto.IsHandled.HasValue && dto.IsHandled == true) && step.Status == EWorkflowStepStatus.Handled)))))
             .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
             .WhereIF(dto.IsHandled.HasValue, d => handleStatuses.Contains(d.Status))
@@ -3216,7 +3216,7 @@ public class OrderController : BaseController
             //  )))
             //.Where(d => d.Workflow.Steps.Any(s => s.Status < EWorkflowStepStatus.Handled && s.HandlerOrgId == OrgSeedData.CenterId))
             .LeftJoin<WorkflowStep>((d, step) => d.Id == step.ExternalId)
-            .Where((d, step) => (step.Id == null || (step.HandlerOrgId == OrgSeedData.CenterId && step.Status < EWorkflowStepStatus.Handled )))
+            .Where((d, step) => (step.Id == null || (step.HandlerOrgId == OrgSeedData.CenterId && step.Status < EWorkflowStepStatus.Handled)))
             .Where(d => d.Source < ESource.MLSQ || d.Source > ESource.WZSC)
             .Where(d => d.Status != EOrderStatus.BackToProvince && d.Status < EOrderStatus.Filed)
             .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No!.Contains(dto.No!))
@@ -3294,35 +3294,35 @@ public class OrderController : BaseController
                     : d is EOrderStatus.WaitForAccept or EOrderStatus.BackToUnAccept or EOrderStatus.SpecialToUnAccept)
             .ToArray();
 
-		var (total2, items2) = await _orderRepository.Queryable()
-		.LeftJoin<WorkflowStep>((d, step) => d.Id == step.ExternalId)
-		.Where((d, step) =>
-			((string.IsNullOrEmpty(d.WorkflowId) && (string.IsNullOrEmpty(d.SignerId) || d.SignerId == _sessionContext.RequiredUserId)) ||
-			(!string.IsNullOrEmpty(d.WorkflowId) &&
-			((step.FlowAssignType == EFlowAssignType.User && !string.IsNullOrEmpty(step.HandlerId) && step.HandlerId == _sessionContext.RequiredUserId) ||
-			 (step.FlowAssignType == EFlowAssignType.Org && !string.IsNullOrEmpty(step.HandlerOrgId) && step.HandlerOrgId == _sessionContext.RequiredOrgId) ||
-			 (step.FlowAssignType == EFlowAssignType.Role && !string.IsNullOrEmpty(step.RoleId) && _sessionContext.Roles.Contains(step.RoleId))) &&
-			 (((dto.IsHandled.HasValue && dto.IsHandled == false) && step.Status != EWorkflowStepStatus.Handled) ||
-			((dto.IsHandled.HasValue && dto.IsHandled == true) && step.Status == EWorkflowStepStatus.Handled)))))
-		.WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
-		.WhereIF(dto.IsHandled.HasValue, d => handleStatuses.Contains(d.Status))
-		.WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword!))
-		.WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No)
-		.WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == true, d => d.CounterSignType.HasValue)
-		.WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == false, d => !d.CounterSignType.HasValue)
-		.WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == true, d => (d.ExpiredTime < DateTime.Now && d.Status < EOrderStatus.Filed) || (d.ExpiredTime < d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //超期 未办
-		.WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == false, d => d.NearlyExpiredTime < DateTime.Now && d.ExpiredTime > DateTime.Now)//即将超期 未办
-		.WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime)
-		.WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime)
-		.Where(d => d.Source < ESource.MLSQ || d.Source > ESource.WZSC)
-		.Where(d => d.Status != EOrderStatus.BackToProvince && d.Status < EOrderStatus.Filed)
-		.OrderBy(d => d.Status)
-		.OrderByIF(dto.IsHandled == true, d => d.StartTime, OrderByType.Desc)
-		.OrderByIF(dto.IsHandled == false, d => d.CreationTime, OrderByType.Desc)
-		.Select((d, step) => d)
-		.ToPagedListAsync(dto, HttpContext.RequestAborted);
-
-		var page2 = new PagedDto<OrderDto>(total2, _mapper.Map<IReadOnlyList<OrderDto>>(items2));
+        var (total2, items2) = await _orderRepository.Queryable()
+        .LeftJoin<WorkflowStep>((d, step) => d.Id == step.ExternalId)
+        .Where((d, step) =>
+            ((string.IsNullOrEmpty(d.WorkflowId) && (string.IsNullOrEmpty(d.SignerId) || d.SignerId == _sessionContext.RequiredUserId)) ||
+            (!string.IsNullOrEmpty(d.WorkflowId) &&
+            ((step.FlowAssignType == EFlowAssignType.User && !string.IsNullOrEmpty(step.HandlerId) && step.HandlerId == _sessionContext.RequiredUserId) ||
+             (step.FlowAssignType == EFlowAssignType.Org && !string.IsNullOrEmpty(step.HandlerOrgId) && step.HandlerOrgId == _sessionContext.RequiredOrgId) ||
+             (step.FlowAssignType == EFlowAssignType.Role && !string.IsNullOrEmpty(step.RoleId) && _sessionContext.Roles.Contains(step.RoleId))) &&
+             (((dto.IsHandled.HasValue && dto.IsHandled == false) && step.Status != EWorkflowStepStatus.Handled) ||
+            ((dto.IsHandled.HasValue && dto.IsHandled == true) && step.Status == EWorkflowStepStatus.Handled)))))
+        .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
+        .WhereIF(dto.IsHandled.HasValue, d => handleStatuses.Contains(d.Status))
+        .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword!))
+        .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No)
+        .WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == true, d => d.CounterSignType.HasValue)
+        .WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == false, d => !d.CounterSignType.HasValue)
+        .WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == true, d => (d.ExpiredTime < DateTime.Now && d.Status < EOrderStatus.Filed) || (d.ExpiredTime < d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //超期 未办
+        .WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == false, d => d.NearlyExpiredTime < DateTime.Now && d.ExpiredTime > DateTime.Now)//即将超期 未办
+        .WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime)
+        .WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime)
+        .Where(d => d.Source < ESource.MLSQ || d.Source > ESource.WZSC)
+        .Where(d => d.Status != EOrderStatus.BackToProvince && d.Status < EOrderStatus.Filed)
+        .OrderBy(d => d.Status)
+        .OrderByIF(dto.IsHandled == true, d => d.StartTime, OrderByType.Desc)
+        .OrderByIF(dto.IsHandled == false, d => d.CreationTime, OrderByType.Desc)
+        .Select((d, step) => d)
+        .ToPagedListAsync(dto, HttpContext.RequestAborted);
+
+        var page2 = new PagedDto<OrderDto>(total2, _mapper.Map<IReadOnlyList<OrderDto>>(items2));
 
         return new { Waited = page1, Sign = page2 };
     }
@@ -3761,8 +3761,8 @@ public class OrderController : BaseController
             //if (dto.AlterTime)
             //{
             var expiredTime = _timeLimitDomainService.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
-            var processType = dto.FlowDirection is EFlowDirection.OrgToCenter or EFlowDirection.CenterToCenter or EFlowDirection.FiledToCenter 
-                ? EProcessType.Zhiban 
+            var processType = dto.FlowDirection is EFlowDirection.OrgToCenter or EFlowDirection.CenterToCenter or EFlowDirection.FiledToCenter
+                ? EProcessType.Zhiban
                 : EProcessType.Jiaoban;
             //var expiredTime = _timeLimitDomainService.CalcEndTime(DateTime.Now,
             //	ETimeType.WorkDay,
@@ -5019,7 +5019,7 @@ public class OrderController : BaseController
         order.Sign(_sessionContext.RequiredUserId, _sessionContext.UserName);
         order.AutoAccept(_sessionContext.RequiredUserId, _sessionContext.UserName, _sessionContext.StaffNo);
 
-		if (!string.IsNullOrEmpty(order.WorkflowId))
+        if (!string.IsNullOrEmpty(order.WorkflowId))
         {
             var workflow = await _workflowDomainService.SignToSomebodyAsync(
                 order.WorkflowId,
@@ -5614,7 +5614,7 @@ public class OrderController : BaseController
 
                 orderData.SourceChannel = "其他";
                 orderData.SourceChannelCode = "QT";
-                await _orderRepository.UpdateAsync(orderData, HttpContext.RequestAborted);
+                // await _orderRepository.UpdateAsync(orderData, HttpContext.RequestAborted);
 
                 //向省上推送数据
                 if (dto.IsPush)
@@ -5667,8 +5667,8 @@ public class OrderController : BaseController
         {
             step = new WorkflowStep();
             setting = _systemSettingCacheManager.GetSetting(SettingConstants.RoleZuoXi);
-		}
-		var roles = setting?.SettingValue.ToList();
+        }
+        var roles = setting?.SettingValue.ToList();
         var users = await _userRepository.Queryable()
             .Includes(d => d.Organization)
             .Includes(d => d.Roles)
@@ -5678,7 +5678,7 @@ public class OrderController : BaseController
         {
             StepId = step.Id,
             OrderId = orderId,
-			Handlers = users.Select(d => new OrderMigrationHandler
+            Handlers = users.Select(d => new OrderMigrationHandler
             {
                 UserId = d.Id,
                 Username = d.Name,
@@ -5690,28 +5690,29 @@ public class OrderController : BaseController
     }
 
 
-	/// <summary>
-	/// 工单平移
-	/// </summary>
-	[HttpPost("change-handler")]
+    /// <summary>
+    /// 工单平移
+    /// </summary>
+    [HttpPost("change-handler")]
     public async Task ChangeHandler([FromBody] ChangeHandlerDto dto)
     {
         if (string.IsNullOrEmpty(dto.StepId))
         {
-	        await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { SignerId = dto.Handler.UserId, SignerName = dto.Handler.Username })
-		        .Where(o => o.Id == dto.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
-		}
-        else {
-			var step = await _workflowStepRepository.Queryable()
-				.Includes(d => d.WorkflowTrace)
-				.FirstAsync(d => d.Id == dto.StepId, HttpContext.RequestAborted);
-			if (step is null)
-				throw new UserFriendlyException("无效节点编号");
-			await _workflowDomainService.ChangeHandlerBatchAsync(new List<(string userId, string username, string orgId, string orgName, ICollection<WorkflowStep> steps)>
-			{
-				new(dto.Handler.UserId,dto.Handler.Username,dto.Handler.OrgId,dto.Handler.OrgName, new List<WorkflowStep>{step})
-			}, HttpContext.RequestAborted);
-		}
-    }
-	#endregion
+            await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { SignerId = dto.Handler.UserId, SignerName = dto.Handler.Username })
+                .Where(o => o.Id == dto.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
+        }
+        else
+        {
+            var step = await _workflowStepRepository.Queryable()
+                .Includes(d => d.WorkflowTrace)
+                .FirstAsync(d => d.Id == dto.StepId, HttpContext.RequestAborted);
+            if (step is null)
+                throw new UserFriendlyException("无效节点编号");
+            await _workflowDomainService.ChangeHandlerBatchAsync(new List<(string userId, string username, string orgId, string orgName, ICollection<WorkflowStep> steps)>
+            {
+                new(dto.Handler.UserId,dto.Handler.Username,dto.Handler.OrgId,dto.Handler.OrgName, new List<WorkflowStep>{step})
+            }, HttpContext.RequestAborted);
+        }
+    }
+    #endregion
 }