|
@@ -3927,7 +3927,7 @@ public class OrderController : BaseController
|
|
|
throw UserFriendlyException.SameMessage("保存失败,投诉类型受理内容字数需要至少25个字!");
|
|
|
|
|
|
if (dto.Title.Contains("咨询") || dto.Title.Contains("建议") || dto.Title.Contains("求助") || dto.Title.Contains("举报")
|
|
|
- || dto.Content.Contains("咨询") || dto.Content.Contains("建议") || dto.Content.Contains("求助") || dto.Title.Contains("举报"))
|
|
|
+ || dto.Content.Contains("咨询") || dto.Content.Contains("建议") || dto.Content.Contains("求助") || dto.Content.Contains("举报"))
|
|
|
throw UserFriendlyException.SameMessage("保存失败!投诉类型标题和受理内容不能出现'咨询、建议、求助、举报'");
|
|
|
}
|
|
|
|
|
@@ -4157,7 +4157,7 @@ public class OrderController : BaseController
|
|
|
throw UserFriendlyException.SameMessage("保存失败,投诉类型受理内容字数需要至少25个字!");
|
|
|
|
|
|
if (dto.Title.Contains("咨询") || dto.Title.Contains("建议") || dto.Title.Contains("求助") || dto.Title.Contains("举报")
|
|
|
- || dto.Content.Contains("咨询") || dto.Content.Contains("建议") || dto.Content.Contains("求助") || dto.Title.Contains("举报"))
|
|
|
+ || dto.Content.Contains("咨询") || dto.Content.Contains("建议") || dto.Content.Contains("求助") || dto.Content.Contains("举报"))
|
|
|
throw UserFriendlyException.SameMessage("保存失败!投诉类型标题和受理内容不能出现'咨询、建议、求助、举报'");
|
|
|
}
|
|
|
|
|
@@ -6050,31 +6050,12 @@ public class OrderController : BaseController
|
|
|
if (specialAny) throw UserFriendlyException.SameMessage("工单已存在待审批特提信息!");
|
|
|
var order = await _orderRepository.Queryable().Includes(d => d.Workflow).FirstAsync(d => d.Id == dto.OrderId);
|
|
|
await _orderApplication.SpecialVerify(dto, order, HttpContext.RequestAborted);
|
|
|
- if (string.IsNullOrEmpty(dto.Cause))
|
|
|
- {
|
|
|
- dto.Cause = dto.Reason;
|
|
|
- }
|
|
|
-
|
|
|
- // var workflow = await _workflowDomainService.GetWorkflowAsync(order.WorkflowId, withSteps: true,
|
|
|
- // cancellationToken: HttpContext.RequestAborted);
|
|
|
- // var currentStep = workflow.Steps.FirstOrDefault(x => x.Status != EWorkflowStepStatus.Handled);
|
|
|
- // if (currentStep is null)
|
|
|
- // currentStep = workflow.Steps.OrderByDescending(x => x.CreationTime).FirstOrDefault(x => x.StepType == EStepType.End);
|
|
|
|
|
|
- if (string.IsNullOrEmpty(dto.Cause))
|
|
|
- {
|
|
|
- dto.Cause = dto.Reason;
|
|
|
- }
|
|
|
-
|
|
|
- var model = _mapper.Map<OrderSpecial>(dto);
|
|
|
- // model.OrgId = currentStep is null ? _sessionContext.RequiredOrgId : currentStep.HandlerOrgId;
|
|
|
- // model.OrgName = currentStep is null ? _sessionContext.OrgName : currentStep.HandlerOrgName;
|
|
|
- model.OrgId = _sessionContext.RequiredOrgId;
|
|
|
- model.OrgName = _sessionContext.OrgName;
|
|
|
- //var step = await _workflowDomainService.FindLastStepAsync(model.WorkflowId, HttpContext.RequestAborted);
|
|
|
- // model.StepName = step.Name;
|
|
|
- // model.StepCode = step.Code;
|
|
|
- model.Status = order.Status;
|
|
|
+ dto.Cause ??= dto.Reason;
|
|
|
+ var orderSpecial = _mapper.Map<OrderSpecial>(dto);
|
|
|
+ orderSpecial.OrgId = _sessionContext.RequiredOrgId;
|
|
|
+ orderSpecial.OrgName = _sessionContext.OrgName;
|
|
|
+ orderSpecial.Status = order.Status;
|
|
|
|
|
|
var audit = true;
|
|
|
var specialAduit = _systemSettingCacheManager.GetSetting(SettingConstants.SpecialAduit);
|
|
@@ -6095,28 +6076,14 @@ public class OrderController : BaseController
|
|
|
audit = false;
|
|
|
}
|
|
|
|
|
|
- if (!audit) model.State = 1;
|
|
|
+ if (!audit) orderSpecial.State = 1;
|
|
|
|
|
|
- model.InitId();
|
|
|
+ orderSpecial.InitId();
|
|
|
if (dto.Files.Any())
|
|
|
- model.FileJson = await _fileRepository.AddFileAsync(dto.Files, model.Id, "", HttpContext.RequestAborted);
|
|
|
- //await _orderSpecialRepository.AddAsync(model, HttpContext.RequestAborted);
|
|
|
- if (model.State == 1)
|
|
|
- {
|
|
|
- //var handler = dto.NextHandlers.FirstOrDefault();
|
|
|
- // if (_appOptions.Value.IsZiGong && dto.BusinessType == EBusinessType.Send)
|
|
|
- // {
|
|
|
- // // 平均派单
|
|
|
- // var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
- // if (averageSendOrder)
|
|
|
- // {
|
|
|
- // handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
- // dto.NextHandlers = new List<FlowStepHandler> { handler };
|
|
|
- // await _orderSpecialRepository.Updateable().SetColumns(x => new OrderSpecial { NextHandlers = dto.NextHandlers })
|
|
|
- // .Where(x => x.Id == model.Id).ExecuteCommandAsync();
|
|
|
- // }
|
|
|
- // }
|
|
|
+ orderSpecial.FileJson = await _fileRepository.AddFileAsync(dto.Files, orderSpecial.Id, "", HttpContext.RequestAborted);
|
|
|
|
|
|
+ if (orderSpecial.State == 1)
|
|
|
+ {
|
|
|
var recall = new RecallDto
|
|
|
{
|
|
|
WorkflowId = dto.WorkflowId!,
|
|
@@ -6128,10 +6095,6 @@ public class OrderController : BaseController
|
|
|
HandlerType = dto.HandlerType,
|
|
|
BusinessType = dto.BusinessType
|
|
|
};
|
|
|
- // 计算期满时间
|
|
|
- //if (dto.AlterTime)
|
|
|
- //{
|
|
|
- // var expiredTime = _timeLimitDomainService.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
|
|
|
ExpiredTimeWithConfig? expiredTime = new ExpiredTimeWithConfig();
|
|
|
|
|
@@ -6161,41 +6124,19 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- var processType = dto.FlowDirection is EFlowDirection.OrgToCenter or EFlowDirection.CenterToCenter or EFlowDirection.FiledToCenter
|
|
|
+ order.ProcessType = dto.FlowDirection is EFlowDirection.OrgToCenter or EFlowDirection.CenterToCenter or EFlowDirection.FiledToCenter
|
|
|
? EProcessType.Zhiban
|
|
|
: EProcessType.Jiaoban;
|
|
|
- if (expiredTime.ExpiredTime < order.ExpiredTime)
|
|
|
+ if (expiredTime.ExpiredTime > order.ExpiredTime)
|
|
|
{
|
|
|
- expiredTime.ExpiredTime = order.ExpiredTime.Value;
|
|
|
- expiredTime.NearlyExpiredTime = order.NearlyExpiredTime.Value;
|
|
|
- expiredTime.NearlyExpiredTimeOne = order.NearlyExpiredTimeOne.Value;
|
|
|
- }
|
|
|
-
|
|
|
- // await _orderRepository.Updateable().SetColumns(o => new Orders.Order()
|
|
|
- // {
|
|
|
- // ExpiredTime = expiredTime.ExpiredTime,
|
|
|
- // NearlyExpiredTime = expiredTime.NearlyExpiredTime,
|
|
|
- // NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne,
|
|
|
- // ProcessType = processType,
|
|
|
- // Status = EOrderStatus.Special
|
|
|
- // })
|
|
|
- // .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
- order.ExpiredTime = expiredTime.ExpiredTime;
|
|
|
- order.NearlyExpiredTime = expiredTime.NearlyExpiredTime;
|
|
|
- order.NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne;
|
|
|
- order.ProcessType = processType;
|
|
|
- order.Status = EOrderStatus.Special;
|
|
|
+ order.ExpiredTime = expiredTime.ExpiredTime;
|
|
|
+ order.NearlyExpiredTime = expiredTime.NearlyExpiredTime;
|
|
|
+ order.NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne;
|
|
|
|
|
|
- var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
- await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
|
|
|
- cancellationToken: HttpContext.RequestAborted);
|
|
|
- // if (dto.BusinessType == EBusinessType.Send && recall.NextHandlers.Any())
|
|
|
- // {
|
|
|
- // var flowStepHandler = recall.NextHandlers.FirstOrDefault();
|
|
|
- // await _orderRepository.Updateable().SetColumns(o => new Orders.Order()
|
|
|
- // { CenterToOrgHandlerId = flowStepHandler.UserId, CenterToOrgHandlerName = flowStepHandler.Username })
|
|
|
- // .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
- // }
|
|
|
+ var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
+ await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
|
|
|
+ cancellationToken: HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
|
|
|
var (workflow, targetStepDefine, currentStep, targetStep, newStep, isOrgToCenter) = await _workflowDomainService.RecallAsync(recall,
|
|
|
dto.NextHandlers.FirstOrDefault(), EWorkflowTraceType.Recall,
|
|
@@ -6215,24 +6156,21 @@ public class OrderController : BaseController
|
|
|
|
|
|
if (string.IsNullOrEmpty(currentStep?.HandlerOrgId))
|
|
|
{
|
|
|
- model.OrgId = currentStep.HandlerOrgId;
|
|
|
- model.OrgName = currentStep.HandlerOrgName;
|
|
|
- model.StepName = currentStep.Name;
|
|
|
- model.StepCode = currentStep.Code;
|
|
|
+ orderSpecial.OrgId = currentStep.HandlerOrgId;
|
|
|
+ orderSpecial.OrgName = currentStep.HandlerOrgName;
|
|
|
+ orderSpecial.StepName = currentStep.Name;
|
|
|
+ orderSpecial.StepCode = currentStep.Code;
|
|
|
}
|
|
|
|
|
|
if (_appOptions.Value.IsZiGong && dto.BusinessType == EBusinessType.Send)
|
|
|
{
|
|
|
- model.NextHandlers = new List<StepAssignInfo> { newStep.GetWorkflowStepHandler() };
|
|
|
+ orderSpecial.NextHandlers = new List<StepAssignInfo> { newStep.GetWorkflowStepHandler() };
|
|
|
}
|
|
|
|
|
|
if (dto.BusinessType == EBusinessType.Send)
|
|
|
{
|
|
|
order.CenterToOrgHandlerId = newStep.HandlerId;
|
|
|
order.CenterToOrgHandlerName = newStep.HandlerName;
|
|
|
- // await _orderRepository.Updateable(order)
|
|
|
- // .UpdateColumns(d => new { d.CenterToOrgHandlerId, d.CenterToOrgHandlerName })
|
|
|
- // .ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
_mapper.Map(workflow, order);
|
|
@@ -6241,7 +6179,7 @@ public class OrderController : BaseController
|
|
|
? EOrderStatus.SpecialToUnAccept
|
|
|
: EOrderStatus.Special;
|
|
|
|
|
|
- if (order.Status >= EOrderStatus.Filed)
|
|
|
+ if (orderSpecial.Status >= EOrderStatus.Filed)
|
|
|
{
|
|
|
var publish = await _orderPublishRepository.GetAsync(x => x.OrderId == dto.OrderId);
|
|
|
if (publish != null)
|
|
@@ -6269,33 +6207,18 @@ public class OrderController : BaseController
|
|
|
await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
|
|
|
|
|
|
var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
|
|
|
- CityBaseConfiguration cityBase = JsonSerializer.Deserialize<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)))
|
|
|
+ var cityBase = JsonSerializer.Deserialize<CityBaseConfiguration>(setting);
|
|
|
+ if (order != null && (cityBase.CityProvince.OrgId.Equals(orderSpecial.OrgId) ||
|
|
|
+ cityBase.CityProvinceAssign.OrgId.Equals(orderSpecial.OrgId) || cityBase.CityEnterprise.OrgId.Equals(orderSpecial.OrgId) ||
|
|
|
+ cityBase.PublicSecurity.OrgId.Equals(orderSpecial.OrgId)))
|
|
|
{
|
|
|
- if (order.Status < EOrderStatus.Filed)
|
|
|
+ if (orderSpecial.Status < EOrderStatus.Filed)
|
|
|
{
|
|
|
- await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFlowRecalled,
|
|
|
- new PublishSpecialDto { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(model) },
|
|
|
+ await _capPublisher.PublishAsync(EventNames.HotlineOrderFlowRecalled,
|
|
|
+ new PublishSpecialDto { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(orderSpecial) },
|
|
|
cancellationToken: HttpContext.RequestAborted);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- //await _orderRepository.Updateable(order)
|
|
|
- // .UpdateColumns(d => new
|
|
|
- // {
|
|
|
- // d.CenterToOrgHandlerId,
|
|
|
- // d.CenterToOrgHandlerName,
|
|
|
- // d.ExpiredTime,
|
|
|
- // d.NearlyExpiredTime,
|
|
|
- // d.NearlyExpiredTimeOne,
|
|
|
- // d.ProcessType,
|
|
|
- // d.Status,
|
|
|
- // })
|
|
|
- // .ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -6303,7 +6226,7 @@ public class OrderController : BaseController
|
|
|
.Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
- await _orderSpecialRepository.AddAsync(model, HttpContext.RequestAborted);
|
|
|
+ await _orderSpecialRepository.AddAsync(orderSpecial, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|