|
@@ -9,7 +9,7 @@ using Hotline.Application.Quality;
|
|
|
using Hotline.Application.Snapshot.Contracts;
|
|
|
using Hotline.Application.Systems;
|
|
|
using Hotline.Article;
|
|
|
-using Hotline.Authentications;
|
|
|
+using Hotline.Authentications;
|
|
|
using Hotline.Caching.Interfaces;
|
|
|
using Hotline.CallCenter.Calls;
|
|
|
using Hotline.Configurations;
|
|
@@ -2358,146 +2358,41 @@ public class OrderController : BaseController
|
|
|
/// <summary>
|
|
|
/// 批量审批延期
|
|
|
/// </summary>
|
|
|
- //[HttpPost("delay/batch_audit")]
|
|
|
- //[LogFilter("批量审批延期")]
|
|
|
- ////[LogFilterAlpha("延期审核")]
|
|
|
- //public async Task<string> BatchAuditDelay([FromBody] BatchDelayNextFlowDto dto)
|
|
|
- //{
|
|
|
- // var result = new StringBuilder();
|
|
|
- // var fail = 0;
|
|
|
- // var success = 0;
|
|
|
- // var workflow = dto.NextWorkflow;
|
|
|
- // foreach (var item in dto.DelayId)
|
|
|
- // {
|
|
|
- // try
|
|
|
- // {
|
|
|
- // //if (workflow.NextHandlers.Any() && workflow.NextHandlers.Count() == 1)
|
|
|
- // //{
|
|
|
- // // var handler = workflow.NextHandlers.FirstOrDefault();
|
|
|
- // // if (string.IsNullOrEmpty(handler.UserId))
|
|
|
- // // {
|
|
|
- // // workflow.NextHandlers = new List<StepAssignInfo>();
|
|
|
- // // }
|
|
|
- // //}
|
|
|
-
|
|
|
- // var delay = await _orderDelayRepository.Queryable().Includes(x => x.Order).Where(x => x.Id == item)
|
|
|
- // .FirstAsync(HttpContext.RequestAborted);
|
|
|
- // workflow.WorkflowId = delay.WorkflowId;
|
|
|
- // var workflowEntuty = await _workflowDomainService.GetWorkflowAsync(workflow.WorkflowId, withDefine: true, withSteps: true,
|
|
|
- // cancellationToken: HttpContext.RequestAborted);
|
|
|
- // var currentStep = workflowEntuty.Steps.FirstOrDefault(d =>
|
|
|
- // d.Status == EWorkflowStepStatus.WaitForAccept || d.Status == EWorkflowStepStatus.WaitForHandle);
|
|
|
-
|
|
|
- // NextStepsWithOpinionDto<NextStepOption> next = null;
|
|
|
-
|
|
|
- // try
|
|
|
- // {
|
|
|
- // next = await _workflowApplication.GetNextStepsAsync(delay.WorkflowId, HttpContext.RequestAborted);
|
|
|
- // }
|
|
|
- // catch (UserFriendlyException e)
|
|
|
- // {
|
|
|
- // if (e.Message.Contains("未找到对应节点"))
|
|
|
- // {
|
|
|
- // result.Append("无权审核:" + delay.No);
|
|
|
- // fail++;
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // throw;
|
|
|
- // }
|
|
|
- // }
|
|
|
-
|
|
|
- // if (next == null) continue;
|
|
|
-
|
|
|
- // if (!delay.Order.IsProvince)
|
|
|
- // {
|
|
|
- // if (next.Steps.Any(x => x.Value == "省审批"))
|
|
|
- // {
|
|
|
- // next.Steps.Remove(next.Steps.First(x => x.Value == "省审批"));
|
|
|
- // }
|
|
|
- // }
|
|
|
-
|
|
|
- // if (!_sessionContext.OrgIsCenter && currentStep.Name != "中心初审")
|
|
|
- // {
|
|
|
- // if (next.Steps.Any(x => x.Value == "中心终审"))
|
|
|
- // {
|
|
|
- // next.Steps.Remove(next.Steps.First(x => x.Value == "中心终审"));
|
|
|
- // }
|
|
|
- // }
|
|
|
-
|
|
|
- // workflow.StepId = next.StepId;
|
|
|
- // workflow.ReviewResult = dto.IsPass ? EReviewResult.Approval : EReviewResult.Failed;
|
|
|
-
|
|
|
- // if (workflow.ReviewResult == EReviewResult.Approval)
|
|
|
- // {
|
|
|
- // var isBatch = next.Steps.Where(x => x.Value == workflow.NextStepName).Any();
|
|
|
- // if (isBatch)
|
|
|
- // {
|
|
|
- // var step = next.Steps.Where(x => x.Value == workflow.NextStepName).FirstOrDefault();
|
|
|
- // workflow.NextStepCode = step.Key;
|
|
|
- // workflow.NextStepName = step.Value;
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // result.Append("无权审核:" + delay.No);
|
|
|
- // fail++;
|
|
|
- // continue;
|
|
|
- // }
|
|
|
-
|
|
|
- // await _workflowDomainService.NextAsync(workflow, cancellationToken: HttpContext.RequestAborted);
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // var reject = workflow.Adapt<RejectDto>();
|
|
|
- // await _workflowApplication.RejectAsync(reject, HttpContext.RequestAborted);
|
|
|
- // }
|
|
|
-
|
|
|
- // success++;
|
|
|
- // }
|
|
|
- // catch (UserFriendlyException e)
|
|
|
- // {
|
|
|
- // result.Append(e.Message);
|
|
|
- // fail++;
|
|
|
- // }
|
|
|
- // }
|
|
|
-
|
|
|
- // return $"总共: {dto.DelayId.Length}, 成功: {success}, 失败: {fail}, 失败原因: {result.ToString()}";
|
|
|
- //}
|
|
|
-
|
|
|
[HttpPost("delay/batch_audit")]
|
|
|
[LogFilter("批量审批延期")]
|
|
|
+ //[LogFilterAlpha("延期审核")]
|
|
|
public async Task<string> BatchAuditDelay([FromBody] BatchDelayNextFlowDto dto)
|
|
|
{
|
|
|
var result = new StringBuilder();
|
|
|
var fail = 0;
|
|
|
var success = 0;
|
|
|
- var workflowDto = dto.NextWorkflow;
|
|
|
- var delays = await _orderDelayRepository.Queryable()
|
|
|
- .Includes(x => x.Order)
|
|
|
- .Includes(x => x.Workflow, d => d.WorkflowDefinition)
|
|
|
- .Includes(x => x.Workflow, d => d.Steps)
|
|
|
- .Includes(x => x.Workflow, d => d.Traces)
|
|
|
- .Includes(x => x.Workflow, d => d.Countersigns)
|
|
|
- .Where(x => dto.DelayId.Contains(x.Id))
|
|
|
- .ToListAsync(HttpContext.RequestAborted);
|
|
|
-
|
|
|
- if (!delays.Any())
|
|
|
- return string.Empty;
|
|
|
-
|
|
|
- var currentStep = delays.First().Workflow.Steps.FirstOrDefault(d =>
|
|
|
- d.Status == EWorkflowStepStatus.WaitForAccept || d.Status == EWorkflowStepStatus.WaitForHandle);
|
|
|
-
|
|
|
- var updateDelays = new List<OrderDelay>();
|
|
|
- var updateOrders = new List<Order>();
|
|
|
- foreach (var delay in delays)
|
|
|
+ var workflow = dto.NextWorkflow;
|
|
|
+ foreach (var item in dto.DelayId)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
+ //if (workflow.NextHandlers.Any() && workflow.NextHandlers.Count() == 1)
|
|
|
+ //{
|
|
|
+ // var handler = workflow.NextHandlers.FirstOrDefault();
|
|
|
+ // if (string.IsNullOrEmpty(handler.UserId))
|
|
|
+ // {
|
|
|
+ // workflow.NextHandlers = new List<StepAssignInfo>();
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+
|
|
|
+ var delay = await _orderDelayRepository.Queryable().Includes(x => x.Order).Where(x => x.Id == item)
|
|
|
+ .FirstAsync(HttpContext.RequestAborted);
|
|
|
+ workflow.WorkflowId = delay.WorkflowId;
|
|
|
+ var workflowEntuty = await _workflowDomainService.GetWorkflowAsync(workflow.WorkflowId, withDefine: true, withSteps: true,
|
|
|
+ cancellationToken: HttpContext.RequestAborted);
|
|
|
+ var currentStep = workflowEntuty.Steps.FirstOrDefault(d =>
|
|
|
+ d.Status == EWorkflowStepStatus.WaitForAccept || d.Status == EWorkflowStepStatus.WaitForHandle);
|
|
|
+
|
|
|
NextStepsWithOpinionDto<NextStepOption> next = null;
|
|
|
|
|
|
try
|
|
|
{
|
|
|
- next = await _workflowApplication.GetNextStepsAsync(delay.Workflow, HttpContext.RequestAborted);
|
|
|
+ next = await _workflowApplication.GetNextStepsAsync(delay.WorkflowId, HttpContext.RequestAborted);
|
|
|
}
|
|
|
catch (UserFriendlyException e)
|
|
|
{
|
|
@@ -2530,70 +2425,33 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- workflowDto.StepId = next.StepId;
|
|
|
- workflowDto.ReviewResult = dto.IsPass ? EReviewResult.Approval : EReviewResult.Failed;
|
|
|
+ workflow.StepId = next.StepId;
|
|
|
+ workflow.ReviewResult = dto.IsPass ? EReviewResult.Approval : EReviewResult.Failed;
|
|
|
|
|
|
- if (dto.IsPass)
|
|
|
+ if (workflow.ReviewResult == EReviewResult.Approval)
|
|
|
{
|
|
|
- var step = next.Steps.FirstOrDefault(x => x.Value == workflowDto.NextStepName);
|
|
|
- if (step is null)
|
|
|
+ var isBatch = next.Steps.Where(x => x.Value == workflow.NextStepName).Any();
|
|
|
+ if (isBatch)
|
|
|
+ {
|
|
|
+ var step = next.Steps.Where(x => x.Value == workflow.NextStepName).FirstOrDefault();
|
|
|
+ workflow.NextStepCode = step.Key;
|
|
|
+ workflow.NextStepName = step.Value;
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
result.Append("无权审核:" + delay.No);
|
|
|
fail++;
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- workflowDto.NextStepCode = step.Key;
|
|
|
- workflowDto.NextStepName = step.Value;
|
|
|
-
|
|
|
- //处理工单延期
|
|
|
- var order = delay.Order;
|
|
|
- var expiredTimeBase = DateTime.Now;
|
|
|
- if (_appOptions.Value.IsZiGong)
|
|
|
- {
|
|
|
- expiredTimeBase = order.ExpiredTime.Value;
|
|
|
- }
|
|
|
-
|
|
|
- var startTime = DateTime.Now;
|
|
|
- if (order.CenterToOrgTime.HasValue)
|
|
|
- {
|
|
|
- startTime = order.CenterToOrgTime!.Value;
|
|
|
- }
|
|
|
-
|
|
|
- var expiredTimeConfig =
|
|
|
- await _expireTime.CalcEndTime(expiredTimeBase, startTime, new TimeConfig(delay.DelayNum, delay.DelayUnit),
|
|
|
- order.AcceptTypeCode);
|
|
|
- order.ExpiredTime = expiredTimeConfig.ExpiredTime;
|
|
|
- order.NearlyExpiredTime = expiredTimeConfig.NearlyExpiredTime;
|
|
|
- order.NearlyExpiredTimeOne = expiredTimeConfig.NearlyExpiredTimeOne;
|
|
|
- //TODO发送短信即将超期
|
|
|
- if (delay.IsProDelay)
|
|
|
- {
|
|
|
- order.ExpiredTimeProvince = expiredTimeConfig.ExpiredTime;
|
|
|
- }
|
|
|
-
|
|
|
- updateOrders.Add(order);
|
|
|
-
|
|
|
- await _workflowDomainService.NextAsync(delay.Workflow, workflowDto,
|
|
|
- expiredTime: order.ExpiredTime,
|
|
|
- cancellationToken: HttpContext.RequestAborted);
|
|
|
-
|
|
|
- await _workflowDomainService.UpdateUnhandleExpiredTimeAsync(order.WorkflowId, order.ExpiredTime, HttpContext.RequestAborted);
|
|
|
-
|
|
|
- var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
- await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
|
|
|
- cancellationToken: HttpContext.RequestAborted);
|
|
|
+ await _workflowDomainService.NextAsync(workflow, cancellationToken: HttpContext.RequestAborted);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- var reject = workflowDto.Adapt<RejectDto>();
|
|
|
+ var reject = workflow.Adapt<RejectDto>();
|
|
|
await _workflowApplication.RejectAsync(reject, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- delay.DelayState = dto.IsPass ? EDelayState.Pass : EDelayState.NoPass;
|
|
|
- updateDelays.Add(delay);
|
|
|
-
|
|
|
success++;
|
|
|
}
|
|
|
catch (UserFriendlyException e)
|
|
@@ -2603,23 +2461,165 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ return $"总共: {dto.DelayId.Length}, 成功: {success}, 失败: {fail}, 失败原因: {result.ToString()}";
|
|
|
+ }
|
|
|
|
|
|
- await _orderDelayRepository.Updateable(updateDelays)
|
|
|
- .UpdateColumns(d => d.DelayState)
|
|
|
- .ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
+ //[HttpPost("delay/batch_audit")]
|
|
|
+ //[LogFilter("批量审批延期")]
|
|
|
+ //public async Task<string> BatchAuditDelay([FromBody] BatchDelayNextFlowDto dto)
|
|
|
+ //{
|
|
|
+ // var result = new StringBuilder();
|
|
|
+ // var fail = 0;
|
|
|
+ // var success = 0;
|
|
|
+ // var workflowDto = dto.NextWorkflow;
|
|
|
+ // var delays = await _orderDelayRepository.Queryable()
|
|
|
+ // .Includes(x => x.Order)
|
|
|
+ // .Includes(x => x.Workflow, d => d.WorkflowDefinition)
|
|
|
+ // .Includes(x => x.Workflow, d => d.Steps)
|
|
|
+ // .Includes(x => x.Workflow, d => d.Traces)
|
|
|
+ // .Includes(x => x.Workflow, d => d.Countersigns)
|
|
|
+ // .Where(x => dto.DelayId.Contains(x.Id))
|
|
|
+ // .ToListAsync(HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ // if (!delays.Any())
|
|
|
+ // return string.Empty;
|
|
|
+
|
|
|
+ // var currentStep = delays.First().Workflow.Steps.FirstOrDefault(d =>
|
|
|
+ // d.Status == EWorkflowStepStatus.WaitForAccept || d.Status == EWorkflowStepStatus.WaitForHandle);
|
|
|
+
|
|
|
+ // var updateDelays = new List<OrderDelay>();
|
|
|
+ // var updateOrders = new List<Order>();
|
|
|
+ // foreach (var delay in delays)
|
|
|
+ // {
|
|
|
+ // try
|
|
|
+ // {
|
|
|
+ // NextStepsWithOpinionDto<NextStepOption> next = null;
|
|
|
|
|
|
- await _orderRepository.Updateable(updateOrders)
|
|
|
- .UpdateColumns(d => new
|
|
|
- {
|
|
|
- d.ExpiredTime,
|
|
|
- d.NearlyExpiredTime,
|
|
|
- d.NearlyExpiredTimeOne,
|
|
|
- d.ExpiredTimeProvince
|
|
|
- })
|
|
|
- .ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
+ // try
|
|
|
+ // {
|
|
|
+ // next = await _workflowApplication.GetNextStepsAsync(delay.Workflow, HttpContext.RequestAborted);
|
|
|
+ // }
|
|
|
+ // catch (UserFriendlyException e)
|
|
|
+ // {
|
|
|
+ // if (e.Message.Contains("未找到对应节点"))
|
|
|
+ // {
|
|
|
+ // result.Append("无权审核:" + delay.No);
|
|
|
+ // fail++;
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // throw;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
|
|
|
- return $"总共: {dto.DelayId.Length}, 成功: {success}, 失败: {fail}, 失败原因: {result}";
|
|
|
- }
|
|
|
+ // if (next == null) continue;
|
|
|
+
|
|
|
+ // if (!delay.Order.IsProvince)
|
|
|
+ // {
|
|
|
+ // if (next.Steps.Any(x => x.Value == "省审批"))
|
|
|
+ // {
|
|
|
+ // next.Steps.Remove(next.Steps.First(x => x.Value == "省审批"));
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ // if (!_sessionContext.OrgIsCenter && currentStep.Name != "中心初审")
|
|
|
+ // {
|
|
|
+ // if (next.Steps.Any(x => x.Value == "中心终审"))
|
|
|
+ // {
|
|
|
+ // next.Steps.Remove(next.Steps.First(x => x.Value == "中心终审"));
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ // workflowDto.StepId = next.StepId;
|
|
|
+ // workflowDto.ReviewResult = dto.IsPass ? EReviewResult.Approval : EReviewResult.Failed;
|
|
|
+
|
|
|
+ // if (dto.IsPass)
|
|
|
+ // {
|
|
|
+ // var step = next.Steps.FirstOrDefault(x => x.Value == workflowDto.NextStepName);
|
|
|
+ // if (step is null)
|
|
|
+ // {
|
|
|
+ // result.Append("无权审核:" + delay.No);
|
|
|
+ // fail++;
|
|
|
+ // continue;
|
|
|
+ // }
|
|
|
+
|
|
|
+ // workflowDto.NextStepCode = step.Key;
|
|
|
+ // workflowDto.NextStepName = step.Value;
|
|
|
+
|
|
|
+ // //处理工单延期
|
|
|
+ // var order = delay.Order;
|
|
|
+ // var expiredTimeBase = DateTime.Now;
|
|
|
+ // if (_appOptions.Value.IsZiGong)
|
|
|
+ // {
|
|
|
+ // expiredTimeBase = order.ExpiredTime.Value;
|
|
|
+ // }
|
|
|
+
|
|
|
+ // var startTime = DateTime.Now;
|
|
|
+ // if (order.CenterToOrgTime.HasValue)
|
|
|
+ // {
|
|
|
+ // startTime = order.CenterToOrgTime!.Value;
|
|
|
+ // }
|
|
|
+
|
|
|
+ // var expiredTimeConfig =
|
|
|
+ // await _expireTime.CalcEndTime(expiredTimeBase, startTime, new TimeConfig(delay.DelayNum, delay.DelayUnit),
|
|
|
+ // order.AcceptTypeCode);
|
|
|
+ // order.ExpiredTime = expiredTimeConfig.ExpiredTime;
|
|
|
+ // order.NearlyExpiredTime = expiredTimeConfig.NearlyExpiredTime;
|
|
|
+ // order.NearlyExpiredTimeOne = expiredTimeConfig.NearlyExpiredTimeOne;
|
|
|
+ // //TODO发送短信即将超期
|
|
|
+ // if (delay.IsProDelay)
|
|
|
+ // {
|
|
|
+ // order.ExpiredTimeProvince = expiredTimeConfig.ExpiredTime;
|
|
|
+ // }
|
|
|
+
|
|
|
+ // updateOrders.Add(order);
|
|
|
+
|
|
|
+ // await _workflowDomainService.NextAsync(delay.Workflow, workflowDto,
|
|
|
+ // expiredTime: order.ExpiredTime,
|
|
|
+ // cancellationToken: HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ // await _workflowDomainService.UpdateUnhandleExpiredTimeAsync(order.WorkflowId, order.ExpiredTime, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ // var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
+ // await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
|
|
|
+ // cancellationToken: HttpContext.RequestAborted);
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // var reject = workflowDto.Adapt<RejectDto>();
|
|
|
+ // await _workflowApplication.RejectAsync(reject, HttpContext.RequestAborted);
|
|
|
+ // }
|
|
|
+
|
|
|
+
|
|
|
+ // delay.DelayState = dto.IsPass ? EDelayState.Pass : EDelayState.NoPass;
|
|
|
+ // updateDelays.Add(delay);
|
|
|
+
|
|
|
+ // success++;
|
|
|
+ // }
|
|
|
+ // catch (UserFriendlyException e)
|
|
|
+ // {
|
|
|
+ // result.Append(e.Message);
|
|
|
+ // fail++;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+
|
|
|
+ // await _orderDelayRepository.Updateable(updateDelays)
|
|
|
+ // .UpdateColumns(d => d.DelayState)
|
|
|
+ // .ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ // await _orderRepository.Updateable(updateOrders)
|
|
|
+ // .UpdateColumns(d => new
|
|
|
+ // {
|
|
|
+ // d.ExpiredTime,
|
|
|
+ // d.NearlyExpiredTime,
|
|
|
+ // d.NearlyExpiredTimeOne,
|
|
|
+ // d.ExpiredTimeProvince
|
|
|
+ // })
|
|
|
+ // .ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ // return $"总共: {dto.DelayId.Length}, 成功: {success}, 失败: {fail}, 失败原因: {result}";
|
|
|
+ //}
|
|
|
|
|
|
|
|
|
|
|
@@ -3507,11 +3507,34 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
var (total, items) = await _orderSuperviseRepository.Queryable()
|
|
|
.Includes(x => x.Order)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
- d => d.Order.Title.Contains(dto.Keyword!) || d.Order.No.Contains(dto.Keyword!))
|
|
|
- .WhereIF(dto.SuperviseState > -1, x => x.State == dto.SuperviseState)
|
|
|
- .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
|
|
|
- .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.Order.Title.Contains(dto.Keyword!) || x.Order.No.Contains(dto.Keyword!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.Order.No.Contains(dto.No)) //工单编号
|
|
|
+ .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, x => x.Order.IsProvince == true) //是否省工单
|
|
|
+ .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, x => x.Order.IsProvince == false)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Order.Title.Contains(dto.Title)) //工单标题
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Channel), x => x.Order.SourceChannelCode == dto.Channel) //来源渠道
|
|
|
+ .WhereIF(dto.Status.HasValue, x => x.Order.Status == dto.Status) //工单状态
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptTypeCode), x => x.Order.AcceptTypeCode == dto.AcceptTypeCode) //受理类型
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), x => x.Order.HotspotSpliceName != null && x.Order.HotspotSpliceName.Contains(dto.Hotspot)) //热点
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptorName), x => x.Order.AcceptorName == dto.AcceptorName!) //受理人
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CurrentHandleOrgName), x => x.Order.CurrentHandleOrgName.Contains(dto.CurrentHandleOrgName)) //接办部门
|
|
|
+ .WhereIF(dto.ExpiredTimeStart.HasValue, x => x.Order.ExpiredTime >= dto.ExpiredTimeStart) //期满时间Start
|
|
|
+ .WhereIF(dto.ExpiredTimeEnd.HasValue, x => x.Order.ExpiredTime <= dto.ExpiredTimeEnd) //期满时间End
|
|
|
+ .WhereIF(dto.SuperviseTimeStart.HasValue, x => x.CreationTime >= dto.SuperviseTimeStart) //督办时间Start
|
|
|
+ .WhereIF(dto.SuperviseTimeEnd.HasValue, x => x.CreationTime <= dto.SuperviseTimeEnd) //督办时间End
|
|
|
+ .WhereIF(dto.ReplyLimitTimeStart.HasValue, x => x.ReplyLimitTime >= dto.ReplyLimitTimeStart) //督办回复时限Start
|
|
|
+ .WhereIF(dto.ReplyLimitTimeEnd.HasValue, x => x.ReplyLimitTime <= dto.ReplyLimitTimeEnd) //督办回复时限End
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CrUser), x => x.CrUser.Contains(dto.CrUser)) //督办人
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.LaunchOrgName), x => x.LaunchOrgName.Contains(dto.LaunchOrgName)) //督办部门
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ApplyContent), x => x.ApplyContent.Contains(dto.ApplyContent)) //督办意见
|
|
|
+ .WhereIF(dto.SuperviseState > -1, x => x.State == dto.SuperviseState) //督办状态
|
|
|
+ .WhereIF(dto.CreationTimeStart.HasValue, x => x.Order.CreationTime >= dto.CreationTimeStart) //受理时间Start
|
|
|
+ .WhereIF(dto.CreationTimeEnd.HasValue, x => x.Order.CreationTime <= dto.CreationTimeEnd) //受理时间End
|
|
|
+ .WhereIF(dto.ReplyTimeStart.HasValue, x => x.ReplyTime >= dto.ReplyTimeStart) //督办回复时间Start
|
|
|
+ .WhereIF(dto.ReplyTimeEnd.HasValue, x => x.ReplyTime <= dto.ReplyTimeEnd) //督办回复时间End
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ReplyContent), x => x.ReplyContent.Contains(dto.ReplyContent)) //督办回复内容
|
|
|
+ .WhereIF(dto.SignTimeStart.HasValue, x => x.SignTime >= dto.SignTimeStart) //督办签收时间Start
|
|
|
+ .WhereIF(dto.SignTimeEnd.HasValue, x => x.SignTime <= dto.SignTimeEnd) //督办签收时间End
|
|
|
.Where(x => x.OrgId == _sessionContext.OrgId)
|
|
|
.OrderByDescending(x => x.CreationTime)
|
|
|
.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
@@ -3879,22 +3902,38 @@ public class OrderController : BaseController
|
|
|
//如果角色不为空,则说明催办的是角色,则根据部门和角色一起查
|
|
|
var (total, items) = await _orderUrgeRepository.Queryable()
|
|
|
.Includes(x => x.Order)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
- d => d.Order.Title.Contains(dto.Keyword!) || d.Order.No.Contains(dto.Keyword!))
|
|
|
- .WhereIF(dto.UrgeState > -1, d => d.State == dto.UrgeState)
|
|
|
- .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
|
|
|
- .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), d => d.Order.OrgLevelOneName.Contains(dto.OrgLevelOneName)) //一级部门
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName),
|
|
|
- d => d.Order.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.CurrentStepCode), d => d.Order.CurrentStepCode == dto.CurrentStepCode) //当前办理节点
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.Order.Title.Contains(dto.Keyword!) || x.Order.No.Contains(dto.Keyword!))
|
|
|
+ .WhereIF(dto.UrgeState > -1, x => x.State == dto.UrgeState)
|
|
|
.WhereIF(_sessionContext.OrgIsCenter == false, d =>
|
|
|
(SqlFunc.IsNullOrEmpty(d.RoleId) == true && d.OrgId.StartsWith(_sessionContext.RequiredOrgId)) ||
|
|
|
(SqlFunc.IsNullOrEmpty(d.RoleId) == false && d.OrgId.StartsWith(_sessionContext.RequiredOrgId) &&
|
|
|
_sessionContext.Roles.Contains(d.RoleId))
|
|
|
)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), x => x.Order.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), x => x.Order.OrgLevelOneName.Contains(dto.OrgLevelOneName)) //一级部门
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CurrentStepCode), x => x.Order.CurrentStepCode == dto.CurrentStepCode) //当前办理节点
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.Order.No.Contains(dto.No)) //工单编号
|
|
|
+ .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, x => x.Order.IsProvince == true) //是否省工单
|
|
|
+ .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, x => x.Order.IsProvince == false)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Channel), x => x.Order.SourceChannelCode == dto.Channel) //来源渠道
|
|
|
+ .WhereIF(dto.ExpiredTimeStart.HasValue, x => x.Order.ExpiredTime >= dto.ExpiredTimeStart) //期满时间Start
|
|
|
+ .WhereIF(dto.ExpiredTimeEnd.HasValue, x => x.Order.ExpiredTime <= dto.ExpiredTimeEnd) //期满时间End
|
|
|
+ .WhereIF(dto.CreationTimeStart.HasValue, x => x.Order.CreationTime >= dto.CreationTimeStart) //受理时间Start
|
|
|
+ .WhereIF(dto.CreationTimeEnd.HasValue, x => x.Order.CreationTime <= dto.CreationTimeEnd) //受理时间End
|
|
|
+ .WhereIF(dto.Status.HasValue, x => x.Order.Status == dto.Status) //工单状态
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Order.Title.Contains(dto.Title)) //工单标题
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CurrentHandleOrgName), x => x.Order.CurrentHandleOrgName.Contains(dto.CurrentHandleOrgName)) //接办部门
|
|
|
+ .WhereIF(dto.CurrentHandleTimeStart.HasValue, x => x.Order.CurrentHandleTime >= dto.CurrentHandleTimeStart)//接办时间Start
|
|
|
+ .WhereIF(dto.CurrentHandleTimeEnd.HasValue, x => x.Order.CurrentHandleTime <= dto.CurrentHandleTimeEnd) //接办时间End
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), x => x.Order.HotspotSpliceName != null && x.Order.HotspotSpliceName.Contains(dto.Hotspot)) //热点
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptTypeCode), x => x.Order.AcceptTypeCode == dto.AcceptTypeCode) //受理类型
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CrUser), x => x.CrUser.Contains(dto.CrUser)) //催办人
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CreatorOrgName), x => x.CreatorOrgName.Contains(dto.CreatorOrgName)) //催办部门
|
|
|
+ .WhereIF(dto.CrTimeStart.HasValue, x => x.CreationTime >= dto.CrTimeStart) //催办时间Start
|
|
|
+ .WhereIF(dto.CrTimeEnd.HasValue, x => x.CreationTime <= dto.CrTimeEnd) //催办时间End
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgName), x => x.OrgName.Contains(dto.OrgName)) //催办部门
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ApplyContent), x => x.ApplyContent.Contains(dto.ApplyContent)) //催办内容
|
|
|
|
|
|
- // .WhereIF(_sessionContext.RequiredOrgId!="001", x => x.OrgId == _sessionContext.OrgId)
|
|
|
.OrderByDescending(x => x.CreationTime)
|
|
|
.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
|
|
@@ -3911,12 +3950,31 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
var (total, items) = await _orderUrgeRepository.Queryable()
|
|
|
.Includes(x => x.Order)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
- d => d.Order.Title.Contains(dto.Keyword!) || d.Order.No.Contains(dto.Keyword!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.Order.Title.Contains(dto.Keyword!) || x.Order.No.Contains(dto.Keyword!))
|
|
|
.WhereIF(dto.UrgeState > -1, x => x.State == dto.UrgeState)
|
|
|
- .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
|
|
|
- .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
|
|
|
.WhereIF(_sessionContext.OrgIsCenter == false, x => x.OrgId.StartsWith(_sessionContext.OrgId))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.Order.No.Contains(dto.No)) //工单编号
|
|
|
+ .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, x => x.Order.IsProvince == true) //是否省工单
|
|
|
+ .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, x => x.Order.IsProvince == false)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Channel), x => x.Order.SourceChannelCode == dto.Channel) //来源渠道
|
|
|
+ .WhereIF(dto.ExpiredTimeStart.HasValue, x => x.Order.ExpiredTime >= dto.ExpiredTimeStart) //期满时间Start
|
|
|
+ .WhereIF(dto.ExpiredTimeEnd.HasValue, x => x.Order.ExpiredTime <= dto.ExpiredTimeEnd) //期满时间End
|
|
|
+ .WhereIF(dto.CreationTimeStart.HasValue, x => x.Order.CreationTime >= dto.CreationTimeStart) //受理时间Start
|
|
|
+ .WhereIF(dto.CreationTimeEnd.HasValue, x => x.Order.CreationTime <= dto.CreationTimeEnd) //受理时间End
|
|
|
+ .WhereIF(dto.Status.HasValue, x => x.Order.Status == dto.Status) //工单状态
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Order.Title.Contains(dto.Title)) //工单标题
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CurrentHandleOrgName), x => x.Order.CurrentHandleOrgName.Contains(dto.CurrentHandleOrgName)) //接办部门
|
|
|
+ .WhereIF(dto.CurrentHandleTimeStart.HasValue, x => x.Order.CurrentHandleTime >= dto.CurrentHandleTimeStart)//接办时间Start
|
|
|
+ .WhereIF(dto.CurrentHandleTimeEnd.HasValue, x => x.Order.CurrentHandleTime <= dto.CurrentHandleTimeEnd) //接办时间End
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), x => x.Order.HotspotSpliceName != null && x.Order.HotspotSpliceName.Contains(dto.Hotspot)) //热点
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptTypeCode), x => x.Order.AcceptTypeCode == dto.AcceptTypeCode) //受理类型
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CrUser), x => x.CrUser.Contains(dto.CrUser)) //催办人
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CreatorOrgName), x => x.CreatorOrgName.Contains(dto.CreatorOrgName)) //催办部门
|
|
|
+ .WhereIF(dto.CrTimeStart.HasValue, x => x.CreationTime >= dto.CrTimeStart) //催办时间Start
|
|
|
+ .WhereIF(dto.CrTimeEnd.HasValue, x => x.CreationTime <= dto.CrTimeEnd) //催办时间End
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgName), x => x.OrgName.Contains(dto.OrgName)) //催办部门
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CurrentStepCode), x => x.Order.CurrentStepCode == dto.CurrentStepCode) //当前办理节点
|
|
|
+ .WhereIF(dto.CrState.HasValue, x => x.State == dto.CrState)
|
|
|
.OrderByDescending(x => x.CreationTime)
|
|
|
.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
|
|
@@ -4249,6 +4307,44 @@ public class OrderController : BaseController
|
|
|
return orderUrgeDto;
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 列表页面基础数据
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("basedata")]
|
|
|
+ public async Task<object> BaseDataRange()
|
|
|
+ {
|
|
|
+ // 催办查询 催办状态
|
|
|
+ List<Kv> kvCrState = new()
|
|
|
+ {
|
|
|
+ new Kv { Key = "0", Value = "待办未读" },
|
|
|
+ new Kv { Key = "1", Value = "已回复" },
|
|
|
+ new Kv { Key = "3", Value = "签收已读" }
|
|
|
+ };
|
|
|
+
|
|
|
+ //延期申请单位
|
|
|
+ List<Kv> ETimeType = new()
|
|
|
+ {
|
|
|
+ new Kv { Key = "1", Value = "小时" },
|
|
|
+ new Kv { Key = "2", Value = "工作日" },
|
|
|
+ new Kv { Key = "3", Value = "自然日" }
|
|
|
+ };
|
|
|
+
|
|
|
+ var wfModule = await _workflowApplication.GetWorkflowModuleAsync(WorkflowModuleConsts.OrderHandle, HttpContext.RequestAborted);
|
|
|
+ var definition = wfModule.Definition;
|
|
|
+ var rsp = new
|
|
|
+ {
|
|
|
+ ChannelOptions = _sysDicDataCacheManager.GetSysDicDataCache(TimeLimitBaseDataConsts.SourceChannel),
|
|
|
+ AcceptTypeOptions = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.AcceptType),
|
|
|
+ OrderStatusOptions = EnumExts.GetDescriptions<EOrderStatus>(),
|
|
|
+ CurrentStepOptions = definition?.Steps.Select(x => new Kv(x.Code, x.Name)),
|
|
|
+ CrState = kvCrState,
|
|
|
+ DelayUnitOptions = ETimeType
|
|
|
+ };
|
|
|
+ return rsp;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region 工单办理
|
|
@@ -5620,9 +5716,9 @@ public class OrderController : BaseController
|
|
|
var prevSendOrder = sendOrderTrace is not null;
|
|
|
if (_appOptions.Value.IsZiGong && prevSendOrder)
|
|
|
{
|
|
|
- prevSendOrder = await _orderDomainService.SchedulingAtWork(sendOrderTrace.HandlerId);
|
|
|
- }
|
|
|
- if (prevSendOrder)
|
|
|
+ prevSendOrder = await _orderDomainService.SchedulingAtWork(sendOrderTrace.HandlerId);
|
|
|
+ }
|
|
|
+ if (prevSendOrder)
|
|
|
{
|
|
|
//todo
|
|
|
nextDto.NextHandlers = new List<StepAssignInfo>
|
|
@@ -6120,22 +6216,22 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 提前触发平均派单
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpPost("advanced_trigger_average_order")]
|
|
|
- [AllowAnonymous]
|
|
|
- public async Task AdvancedTriggerAverageOrder()
|
|
|
- {
|
|
|
- await _orderDomainService.AdvancedTriggerAverageOrder(HttpContext.RequestAborted);
|
|
|
- }
|
|
|
+ /// <summary>
|
|
|
+ /// 提前触发平均派单
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("advanced_trigger_average_order")]
|
|
|
+ [AllowAnonymous]
|
|
|
+ public async Task AdvancedTriggerAverageOrder()
|
|
|
+ {
|
|
|
+ await _orderDomainService.AdvancedTriggerAverageOrder(HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 批量归档(暂时只支持派单组节点操作)
|
|
|
- /// </summary>
|
|
|
- /// <returns>成功总量</returns>
|
|
|
- [HttpPost("batch-file")]
|
|
|
+ /// <summary>
|
|
|
+ /// 批量归档(暂时只支持派单组节点操作)
|
|
|
+ /// </summary>
|
|
|
+ /// <returns>成功总量</returns>
|
|
|
+ [HttpPost("batch-file")]
|
|
|
public async Task<string> BatchFile([FromBody] OrderBatchFileDto dto)
|
|
|
{
|
|
|
var orders = await _orderRepository.Queryable()
|
|
@@ -6793,20 +6889,20 @@ public class OrderController : BaseController
|
|
|
var order = await _orderRepository.Queryable().Includes(d => d.Workflow).FirstAsync(d => d.Id == sendBack.OrderId);
|
|
|
//if (_appOptions.Value.IsZiGong)
|
|
|
//{
|
|
|
- //var (currentStep, prevStep, steps, isOrgToCenter, isSecondToFirstOrgLevel) = await _workflowApplication.GetPreviousInformationAsync(
|
|
|
- // order.WorkflowId, sendBack.WorkflowUserId, sendBack.WorkflowOrgId, sendBack.WorkflowRoleIds.ToArray(), sendBack.AssignStepId,
|
|
|
- // HttpContext.RequestAborted);
|
|
|
+ //var (currentStep, prevStep, steps, isOrgToCenter, isSecondToFirstOrgLevel) = await _workflowApplication.GetPreviousInformationAsync(
|
|
|
+ // order.WorkflowId, sendBack.WorkflowUserId, sendBack.WorkflowOrgId, sendBack.WorkflowRoleIds.ToArray(), sendBack.AssignStepId,
|
|
|
+ // HttpContext.RequestAborted);
|
|
|
|
|
|
- //if (prevStep.BusinessType == EBusinessType.Send)
|
|
|
- //{
|
|
|
- // // 平均派单
|
|
|
- // var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
- // if (averageSendOrder)
|
|
|
- // {
|
|
|
- // var handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
- // sendBack.SendBackData.Handler = handler;
|
|
|
- // }
|
|
|
- //}
|
|
|
+ //if (prevStep.BusinessType == EBusinessType.Send)
|
|
|
+ //{
|
|
|
+ // // 平均派单
|
|
|
+ // var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
+ // if (averageSendOrder)
|
|
|
+ // {
|
|
|
+ // var handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
+ // sendBack.SendBackData.Handler = handler;
|
|
|
+ // }
|
|
|
+ //}
|
|
|
//}
|
|
|
|
|
|
sendBack.SendBackData.ExpiredTime = order.ExpiredTime;
|
|
@@ -7249,7 +7345,7 @@ public class OrderController : BaseController
|
|
|
BusinessType = dto.BusinessType
|
|
|
};
|
|
|
|
|
|
- if (dto.FlowDirection is not EFlowDirection.OrgToOrg)
|
|
|
+ if (dto.FlowDirection is not EFlowDirection.OrgToOrg and not EFlowDirection.Other)
|
|
|
{
|
|
|
//重新计算期满时间
|
|
|
ExpiredTimeWithConfig expiredTime;
|
|
@@ -8985,11 +9081,28 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
var (total, items) = await _orderFinalityRepository.Queryable()
|
|
|
.Includes(x => x.Order)
|
|
|
- .WhereIF(dto.IsProvince.HasValue, x => x.Order.IsProvince == dto.IsProvince)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
- x => x.Order.No.Contains(dto.Keyword!) || x.Order.Title.Contains(dto.Keyword!))
|
|
|
- //.WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Order.Title.Contains(dto.Title!))
|
|
|
- //.WhereIF(!string.IsNullOrEmpty(dto.No), x => x.Order.No.Contains(dto.No!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.Order.No.Contains(dto.Keyword!) || x.Order.Title.Contains(dto.Keyword!))
|
|
|
+ .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, x => x.Order.IsProvince == true) //是否省工单
|
|
|
+ .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, x => x.Order.IsProvince == false)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.Order.No.Contains(dto.No)) //工单编号
|
|
|
+ .WhereIF(dto.Status.HasValue, x => x.Order.Status == dto.Status) //工单状态
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Channel), x => x.Order.SourceChannelCode == dto.Channel) //来源渠道
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CurrentStepCode), x => x.Order.CurrentStepCode.Contains(dto.CurrentStepCode)) //当前节点
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Order.Title.Contains(dto.Title)) //工单标题
|
|
|
+ .WhereIF(dto.CreationTimeStart.HasValue, x => x.Order.CreationTime >= dto.CreationTimeStart) //受理时间Start
|
|
|
+ .WhereIF(dto.CreationTimeEnd.HasValue, x => x.Order.CreationTime <= dto.CreationTimeEnd) //受理时间End
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CreatorName), x => x.CreatorName.Contains(dto.CreatorName)) //设置人
|
|
|
+ .WhereIF(dto.SetCreationTimeStart.HasValue, x => x.CreationTime >= dto.SetCreationTimeStart) //设置时间Start
|
|
|
+ .WhereIF(dto.SetCreationTimeEnd.HasValue, x => x.CreationTime <= dto.SetCreationTimeEnd) //设置时间End
|
|
|
+ .WhereIF(dto.ExpiredTimeStart.HasValue, x => x.Order.ExpiredTime >= dto.ExpiredTimeStart) //期满时间Start
|
|
|
+ .WhereIF(dto.ExpiredTimeEnd.HasValue, x => x.Order.ExpiredTime <= dto.ExpiredTimeEnd) //期满时间End
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptTypeCode), x => x.Order.AcceptTypeCode == dto.AcceptTypeCode) //受理类型
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), x => x.Order.HotspotSpliceName != null && x.Order.HotspotSpliceName.Contains(dto.Hotspot)) //热点
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CurrentHandleOrgName), x => x.Order.CurrentHandleOrgName.Contains(dto.CurrentHandleOrgName)) //接办部门
|
|
|
+ .WhereIF(dto.CurrentHandleTimeStart.HasValue, x => x.Order.CurrentHandleTime >= dto.CurrentHandleTimeStart)//接办时间Start
|
|
|
+ .WhereIF(dto.CurrentHandleTimeEnd.HasValue, x => x.Order.CurrentHandleTime <= dto.CurrentHandleTimeEnd) //接办时间End
|
|
|
+ .WhereIF(dto.FiledTimeStart.HasValue, x => x.Order.FiledTime >= dto.FiledTimeStart) //办结时间Start
|
|
|
+ .WhereIF(dto.FiledTimeEnd.HasValue, x => x.Order.FiledTime <= dto.FiledTimeEnd) //办结时间End
|
|
|
.OrderByDescending(x => x.CreationTime)
|
|
|
.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
return new PagedDto<OrderFinalityDto>(total, _mapper.Map<IReadOnlyList<OrderFinalityDto>>(items));
|