|
@@ -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
|
|
|
}
|