|
@@ -26,6 +26,7 @@ using Hotline.OrderTranspond;
|
|
|
using Hotline.Push.FWMessage;
|
|
|
using Hotline.Push.Notifies;
|
|
|
using Hotline.Repository.SqlSugar.Extensions;
|
|
|
+using Hotline.Repository.SqlSugar.Orders;
|
|
|
using Hotline.Repository.SqlSugar.Ts;
|
|
|
using Hotline.SeedData;
|
|
|
using Hotline.Settings;
|
|
@@ -72,8 +73,10 @@ using MiniExcelLibs;
|
|
|
using SqlSugar;
|
|
|
using System.Text;
|
|
|
using System.Text.Json;
|
|
|
+using System.Threading;
|
|
|
using XF.Domain.Authentications;
|
|
|
using XF.Domain.Cache;
|
|
|
+using XF.Domain.Entities;
|
|
|
using XF.Domain.Exceptions;
|
|
|
using XF.Domain.Repository;
|
|
|
using XF.Utility.EnumExtensions;
|
|
@@ -2281,6 +2284,12 @@ public class OrderController : BaseController
|
|
|
|
|
|
if (model.BeforeDelay != null)
|
|
|
{
|
|
|
+ var expiredTimeBase = DateTime.Now;
|
|
|
+ if (_appOptions.Value.IsZiGong)
|
|
|
+ {
|
|
|
+ expiredTimeBase = order.ExpiredTime.Value;
|
|
|
+ }
|
|
|
+
|
|
|
//model.AfterDelay = _timeLimitDomainService
|
|
|
var startTime = DateTime.Now;
|
|
|
if (order.CenterToOrgTime.HasValue)
|
|
@@ -2289,7 +2298,7 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
|
|
|
model.AfterDelay = (await _expireTime
|
|
|
- .CalcEndTime(DateTime.Now, startTime, delaydto.DelayUnit, delaydto.DelayNum, order.AcceptTypeCode))?.EndTime; //todo
|
|
|
+ .CalcEndTime(expiredTimeBase, startTime, delaydto.DelayUnit, delaydto.DelayNum, order.AcceptTypeCode))?.EndTime; //todo
|
|
|
}
|
|
|
|
|
|
model.ApplyDelayTime = DateTime.Now;
|
|
@@ -2349,142 +2358,41 @@ public class OrderController : BaseController
|
|
|
/// <summary>
|
|
|
/// 批量审批延期
|
|
|
/// </summary>
|
|
|
-
|
|
|
- //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("延期审核")]
|
|
|
+ //[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);
|
|
|
-
|
|
|
- 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
|
|
|
{
|
|
|
- var currentStep = delay.Workflow.Steps.FirstOrDefault(d =>
|
|
|
+ //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)
|
|
|
{
|
|
@@ -2517,81 +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 order = delay.Order;
|
|
|
- var expiredTimeBase = DateTime.Now;
|
|
|
- if (_appOptions.Value.IsZiGong)
|
|
|
+ var isBatch = next.Steps.Where(x => x.Value == workflow.NextStepName).Any();
|
|
|
+ if (isBatch)
|
|
|
{
|
|
|
- expiredTimeBase = order.ExpiredTime.Value;
|
|
|
+ var step = next.Steps.Where(x => x.Value == workflow.NextStepName).FirstOrDefault();
|
|
|
+ workflow.NextStepCode = step.Key;
|
|
|
+ workflow.NextStepName = step.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);
|
|
|
-
|
|
|
- var step = next.Steps.FirstOrDefault(x => x.Value == workflowDto.NextStepName);
|
|
|
- if (step is null)
|
|
|
+ else
|
|
|
{
|
|
|
result.Append("无权审核:" + delay.No);
|
|
|
fail++;
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- workflowDto.NextStepCode = step.Key;
|
|
|
- workflowDto.NextStepName = step.Value;
|
|
|
-
|
|
|
- await _workflowDomainService.NextAsync(delay.Workflow, workflowDto,
|
|
|
- expiredTime: order.ExpiredTime,
|
|
|
- cancellationToken: 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);
|
|
|
-
|
|
|
- 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);
|
|
|
success++;
|
|
|
}
|
|
|
catch (UserFriendlyException e)
|
|
@@ -2601,9 +2461,168 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return $"总共: {dto.DelayId.Length}, 成功: {success}, 失败: {fail}, 失败原因: {result}";
|
|
|
+ return $"总共: {dto.DelayId.Length}, 成功: {success}, 失败: {fail}, 失败原因: {result.ToString()}";
|
|
|
}
|
|
|
|
|
|
+ //[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;
|
|
|
+
|
|
|
+ // try
|
|
|
+ // {
|
|
|
+ // next = await _workflowApplication.GetNextStepsAsync(delay.Workflow, 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 == "中心终审"));
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ // 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}";
|
|
|
+ //}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 延期查询流程办理下一步可选节点
|
|
|
/// </summary>
|
|
@@ -3423,6 +3442,15 @@ public class OrderController : BaseController
|
|
|
orderScreen.Status = EScreenStatus.SendBack;
|
|
|
orderScreen.SendBackApply = true;
|
|
|
await _orderScreenRepository.UpdateAsync(orderScreen, cancellationToken: HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ //自贡任务 220 修改甄别截止申请日期的计算方式
|
|
|
+ //甄别截止申请日期=回访时间+2个工作日 ,若退回到申请人节点,甄别截止申请日期=退回时间+2个工作日
|
|
|
+ var orderVisitDetail = await _orderVisitedDetailRepository.GetAsync(p => p.Id == orderScreen.VisitDetailId, cancellationToken: HttpContext.RequestAborted);
|
|
|
+ if (orderVisitDetail != null)
|
|
|
+ {
|
|
|
+ orderVisitDetail.ScreenByEndTime = (await _expireTime.CalcEndTime(DateTime.Now, DateTime.Now, ETimeType.WorkDay, 2, 0, 0)).EndTime;
|
|
|
+ await _orderVisitedDetailRepository.UpdateAsync(orderVisitDetail, cancellationToken: HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
else
|