|
@@ -543,7 +543,7 @@ public class OrderController : BaseController
|
|
|
orderVisit.EmployeeId = string.Empty;
|
|
|
}
|
|
|
|
|
|
- if (order is { FileOrgIsCenter:true, CounterSignType: null } && !order.IsProvince)
|
|
|
+ if (order is { FileOrgIsCenter: true, CounterSignType: null } && !order.IsProvince)
|
|
|
{
|
|
|
orderVisit.VisitState = EVisitState.Visited;
|
|
|
orderVisit.VisitTime = DateTime.Now;
|
|
@@ -4684,85 +4684,30 @@ public class OrderController : BaseController
|
|
|
audit.InitId();
|
|
|
if (dto.Files.Any())
|
|
|
audit.FileJson = await _fileRepository.AddFileAsync(dto.Files, audit.Id, "", HttpContext.RequestAborted);
|
|
|
+ FlowStepHandler? handler = null;
|
|
|
if (_appOptions.Value.IsZiGong && prevStep.BusinessType == EBusinessType.Send)
|
|
|
{
|
|
|
// 平均派单
|
|
|
var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
if (averageSendOrder)
|
|
|
{
|
|
|
- var handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
- dto.Handler = handler;
|
|
|
+ handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
+ //dto.Handler = handler;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //自贡需求:
|
|
|
- // 1. 工单退回、特提、重办到话务部节点时,所有坐席都可以查看和办理
|
|
|
- // 2. 退回到派单组时需执行平均分配逻辑
|
|
|
- //宜宾需求:
|
|
|
- // 1、退回至话务部:所有坐席都可以查看和办理(除某些场景下本来就需指定办理对象,如:发布时退回……)
|
|
|
- // 2、退回至派单组:默认退给之前的派单员(除某些场景下本来就需指定办理对象,如:发布时退回……)
|
|
|
- // 3、话务员特提至话务部:根据特提申请时候选择来,指定的办理对象才能查看和办理
|
|
|
- // 4、派单员特提至派单组:根据特提申请时候选择来,指定的办理对象才能查看和办理
|
|
|
- // 5、班长特提至派单组,办理对象必选(已实现)
|
|
|
- // 6、班长特提至话务部,办理对象非必选,没选择则所有坐席都可以查看和办理
|
|
|
-
|
|
|
-
|
|
|
- //todo 基本策略:保持原节点
|
|
|
- //中心领导,部门领导等,原节点策略
|
|
|
- audit.SendBackData.ReverseFlowStepAssignInfo = new ReverseFlowStepAssignInfo();
|
|
|
-
|
|
|
- if (_appOptions.Value.IsZiGong)
|
|
|
- {
|
|
|
- if (prevStep.BusinessType == EBusinessType.Seat)
|
|
|
- {
|
|
|
- audit.SendBackData.ReverseFlowStepAssignInfo = new ReverseFlowStepAssignInfo
|
|
|
- {
|
|
|
- ReverseFlowStepCreationPolicy = EReverseFlowStepCreationPolicy.OriginStepRole
|
|
|
- };
|
|
|
- }
|
|
|
- else if (prevStep.BusinessType == EBusinessType.Send)
|
|
|
- {
|
|
|
- // 平均派单
|
|
|
- var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
- if (averageSendOrder)
|
|
|
- {
|
|
|
- var handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
- audit.SendBackData.ReverseFlowStepAssignInfo.AssignStepHandler = new AssignStepHandler
|
|
|
- {
|
|
|
- UserId = handler.UserId,
|
|
|
- Username = handler.Username,
|
|
|
- OrgId = handler.OrgId,
|
|
|
- OrgName = handler.OrgName,
|
|
|
- RoleId = handler.RoleId,
|
|
|
- RoleName = handler.RoleName
|
|
|
- };
|
|
|
- }
|
|
|
- }
|
|
|
- else if (prevStep.BusinessType == EBusinessType.Department)
|
|
|
+ dto.ReverseFlowStepAssignInfo =
|
|
|
+ _orderDomainService.GetOrderPreviousAssignInfo(prevStep.BusinessType, handler is null ? null : new AssignStepHandler
|
|
|
{
|
|
|
- audit.SendBackData.ReverseFlowStepAssignInfo = new ReverseFlowStepAssignInfo
|
|
|
- {
|
|
|
- ReverseFlowStepCreationPolicy = EReverseFlowStepCreationPolicy.OriginStepOrg
|
|
|
- };
|
|
|
- }
|
|
|
- }
|
|
|
- else if(_appOptions.Value.IsYiBin)
|
|
|
- {
|
|
|
- if (prevStep.BusinessType == EBusinessType.Seat)
|
|
|
- {
|
|
|
- audit.SendBackData.ReverseFlowStepAssignInfo = new ReverseFlowStepAssignInfo
|
|
|
- {
|
|
|
- ReverseFlowStepCreationPolicy = EReverseFlowStepCreationPolicy.OriginStepRole
|
|
|
- };
|
|
|
- }
|
|
|
- else if (prevStep.BusinessType == EBusinessType.Send)
|
|
|
- {
|
|
|
- audit.SendBackData.ReverseFlowStepAssignInfo = new ReverseFlowStepAssignInfo
|
|
|
- {
|
|
|
- ReverseFlowStepCreationPolicy = EReverseFlowStepCreationPolicy.OriginStepUser
|
|
|
- };
|
|
|
- }
|
|
|
- }
|
|
|
+ FlowAssignType = EFlowAssignType.User,
|
|
|
+ UserId = handler.UserId,
|
|
|
+ Username = handler.Username,
|
|
|
+ OrgId = handler.OrgId,
|
|
|
+ OrgName = handler.OrgName,
|
|
|
+ RoleId = handler.RoleId,
|
|
|
+ RoleName = handler.RoleName
|
|
|
+ });
|
|
|
+ audit.SendBackData.ReverseFlowStepAssignInfo = dto.ReverseFlowStepAssignInfo;
|
|
|
|
|
|
//todo 需整理各个地市退回业务的需求(指派类型及指派对象)
|
|
|
//if (workflow.FlowType == EFlowType.Handle) //该逻辑需放在退回操作前依据业务判断
|
|
@@ -4804,11 +4749,12 @@ public class OrderController : BaseController
|
|
|
audit.State = ESendBackAuditState.End;
|
|
|
audit.AuditUser = "默认通过";
|
|
|
audit.AuditTime = DateTime.Now;
|
|
|
- if (prevStep.BusinessType == EBusinessType.Send && dto.Handler != null)
|
|
|
+ if (prevStep.BusinessType == EBusinessType.Send && handler != null)
|
|
|
{
|
|
|
- await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { CenterToOrgHandlerId = dto.Handler.UserId, CenterToOrgHandlerName = dto.Handler.Username })
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { CenterToOrgHandlerId = handler.UserId, CenterToOrgHandlerName = handler.Username })
|
|
|
.Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
}
|
|
|
+
|
|
|
var flowDirection = await _workflowApplication.PreviousAsync(dto, HttpContext.RequestAborted);
|
|
|
var processType = flowDirection == EFlowDirection.OrgToCenter || flowDirection == EFlowDirection.CenterToCenter
|
|
|
? EProcessType.Zhiban
|
|
@@ -4825,9 +4771,9 @@ public class OrderController : BaseController
|
|
|
audit.State = ESendBackAuditState.End;
|
|
|
audit.AuditUser = "默认通过";
|
|
|
audit.AuditTime = DateTime.Now;
|
|
|
- if (prevStep.BusinessType == EBusinessType.Send && dto.Handler != null)
|
|
|
+ if (prevStep.BusinessType == EBusinessType.Send && handler != null)
|
|
|
{
|
|
|
- await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { CenterToOrgHandlerId = dto.Handler.UserId, CenterToOrgHandlerName = dto.Handler.Username })
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { CenterToOrgHandlerId = handler.UserId, CenterToOrgHandlerName = handler.Username })
|
|
|
.Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
}
|
|
|
var flowDirection = await _workflowApplication.PreviousAsync(dto, HttpContext.RequestAborted);
|
|
@@ -4876,16 +4822,33 @@ public class OrderController : BaseController
|
|
|
var (currentStep, prevStep, isOrgToCenter, isSecondToFirstOrgLevel) = await _workflowApplication.GetPreviousInformationAsync(
|
|
|
order.WorkflowId, sendBack.WorkflowUserId, sendBack.WorkflowOrgId, sendBack.WorkflowRoleIds.ToArray(),
|
|
|
HttpContext.RequestAborted);
|
|
|
+
|
|
|
if (prevStep.BusinessType == EBusinessType.Send)
|
|
|
{
|
|
|
+ FlowStepHandler? handler = null;
|
|
|
// 平均派单
|
|
|
var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
if (averageSendOrder)
|
|
|
{
|
|
|
- var handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
- sendBack.SendBackData.Handler = handler;
|
|
|
+ handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
+ //sendBack.SendBackData.Handler = handler;
|
|
|
+ sendBack.SendBackData.ReverseFlowStepAssignInfo =
|
|
|
+ _orderDomainService.GetOrderPreviousAssignInfo(prevStep.BusinessType, handler is null ? null : new AssignStepHandler
|
|
|
+ {
|
|
|
+ FlowAssignType = EFlowAssignType.User,
|
|
|
+ UserId = handler.UserId,
|
|
|
+ Username = handler.Username,
|
|
|
+ OrgId = handler.OrgId,
|
|
|
+ OrgName = handler.OrgName,
|
|
|
+ RoleId = handler.RoleId,
|
|
|
+ RoleName = handler.RoleName
|
|
|
+ });
|
|
|
}
|
|
|
- await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { CenterToOrgHandlerId = sendBack.SendBackData.Handler.UserId, CenterToOrgHandlerName = sendBack.SendBackData.Handler.Username })
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Orders.Order()
|
|
|
+ {
|
|
|
+ CenterToOrgHandlerId = handler.UserId,
|
|
|
+ CenterToOrgHandlerName = handler.Username
|
|
|
+ })
|
|
|
.Where(o => o.Id == sendBack.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
}
|
|
|
}
|
|
@@ -4950,14 +4913,29 @@ public class OrderController : BaseController
|
|
|
HttpContext.RequestAborted);
|
|
|
if (prevStep.BusinessType == EBusinessType.Send)
|
|
|
{
|
|
|
+ FlowStepHandler? handler = null;
|
|
|
// 平均派单
|
|
|
var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
if (averageSendOrder)
|
|
|
{
|
|
|
- var handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
- sendBack.SendBackData.Handler = handler;
|
|
|
+ handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
+ //sendBack.SendBackData.Handler = handler;
|
|
|
+ sendBack.SendBackData.ReverseFlowStepAssignInfo =
|
|
|
+ _orderDomainService.GetOrderPreviousAssignInfo(prevStep.BusinessType, handler is null ? null : new AssignStepHandler
|
|
|
+ {
|
|
|
+ FlowAssignType = EFlowAssignType.User,
|
|
|
+ UserId = handler.UserId,
|
|
|
+ Username = handler.Username,
|
|
|
+ OrgId = handler.OrgId,
|
|
|
+ OrgName = handler.OrgName,
|
|
|
+ RoleId = handler.RoleId,
|
|
|
+ RoleName = handler.RoleName
|
|
|
+ });
|
|
|
}
|
|
|
- await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { CenterToOrgHandlerId = sendBack.SendBackData.Handler.UserId, CenterToOrgHandlerName = sendBack.SendBackData.Handler.Username })
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Orders.Order()
|
|
|
+ {
|
|
|
+ CenterToOrgHandlerId = handler.UserId, CenterToOrgHandlerName = handler.Username
|
|
|
+ })
|
|
|
.Where(o => o.Id == sendBack.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
}
|
|
|
}
|