|
@@ -240,6 +240,7 @@ public class OrderController : BaseController
|
|
orderVisit.OrderId = order.Id;
|
|
orderVisit.OrderId = order.Id;
|
|
orderVisit.VisitState = EVisitState.WaitForVisit;
|
|
orderVisit.VisitState = EVisitState.WaitForVisit;
|
|
orderVisit.PublishTime = DateTime.Now;
|
|
orderVisit.PublishTime = DateTime.Now;
|
|
|
|
+ orderVisit.IsCanHandle = true;
|
|
string visitId = await _orderVisitRepository.AddAsync(orderVisit);
|
|
string visitId = await _orderVisitRepository.AddAsync(orderVisit);
|
|
|
|
|
|
//新增回访信息
|
|
//新增回访信息
|
|
@@ -629,18 +630,18 @@ public class OrderController : BaseController
|
|
[HttpGet("visitapply/visitagainlist")]
|
|
[HttpGet("visitapply/visitagainlist")]
|
|
public async Task<PagedDto<OrderCanVisitAgainDto>> OrderVisitAgainList([FromQuery]OrderVisitAgainListDto dto)
|
|
public async Task<PagedDto<OrderCanVisitAgainDto>> OrderVisitAgainList([FromQuery]OrderVisitAgainListDto dto)
|
|
{
|
|
{
|
|
- var (total, items) = await _orderVisitedDetailRepository.Queryable()
|
|
|
|
|
|
+ var (total, items) = await _orderVisitedDetailRepository.Queryable()
|
|
.Includes(x => x.OrderVisit, x => x.Order)
|
|
.Includes(x => x.OrderVisit, x => x.Order)
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.OrderVisit.Order.No.Contains(dto.Keyword))
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.OrderVisit.Order.No.Contains(dto.Keyword))
|
|
.Where(x => x.OrderVisit.VisitState == EVisitState.Visited && (x.OrderVisit.VisitType == EVisitType.SmsVisit || x.OrderVisit.VisitType == EVisitType.ChipVoiceVisit))
|
|
.Where(x => x.OrderVisit.VisitState == EVisitState.Visited && (x.OrderVisit.VisitType == EVisitType.SmsVisit || x.OrderVisit.VisitType == EVisitType.ChipVoiceVisit))
|
|
- .Where(x => SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" || SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" )
|
|
|
|
|
|
+ .Where(x => SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" || SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2")
|
|
|
|
+ .Where(x => x.OrderVisit.IsCanHandle)
|
|
.Where(x => x.VisitTarget == EVisitTarget.Org)
|
|
.Where(x => x.VisitTarget == EVisitTarget.Org)
|
|
.OrderByDescending(x => x.OrderVisit.VisitTime)
|
|
.OrderByDescending(x => x.OrderVisit.VisitTime)
|
|
.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
return new PagedDto<OrderCanVisitAgainDto>(total, _mapper.Map<IReadOnlyList<OrderCanVisitAgainDto>>(items));
|
|
return new PagedDto<OrderCanVisitAgainDto>(total, _mapper.Map<IReadOnlyList<OrderCanVisitAgainDto>>(items));
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 二次回访申请
|
|
/// 二次回访申请
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -662,6 +663,14 @@ public class OrderController : BaseController
|
|
if (orderModel?.CounterSignType != null)
|
|
if (orderModel?.CounterSignType != null)
|
|
throw UserFriendlyException.SameMessage("会签件不能申请二次回访");
|
|
throw UserFriendlyException.SameMessage("会签件不能申请二次回访");
|
|
|
|
|
|
|
|
+ var orderVisitModel = await _orderVisitRepository.GetAsync(x => x.Id == dto.OrderVisitId && x.IsCanHandle, HttpContext.RequestAborted);
|
|
|
|
+ if (orderVisitModel == null)
|
|
|
|
+ throw UserFriendlyException.SameMessage("当前状态不能进行二次回访");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ orderVisitModel.IsCanHandle = false;
|
|
|
|
+ await _orderVisitRepository.UpdateAsync(orderVisitModel, HttpContext.RequestAborted);
|
|
|
|
+
|
|
orderVisitApply.EmployeeId = _sessionContext.RequiredUserId;
|
|
orderVisitApply.EmployeeId = _sessionContext.RequiredUserId;
|
|
orderVisitApply.VisitApplyState = EVisitApplyState.Examining;
|
|
orderVisitApply.VisitApplyState = EVisitApplyState.Examining;
|
|
await _orderVisitApplyRepository.AddAsync(orderVisitApply, HttpContext.RequestAborted);
|
|
await _orderVisitApplyRepository.AddAsync(orderVisitApply, HttpContext.RequestAborted);
|
|
@@ -715,6 +724,7 @@ public class OrderController : BaseController
|
|
visitModelNew.CreatorOrgLevel = 0;
|
|
visitModelNew.CreatorOrgLevel = 0;
|
|
visitModelNew.AreaId = string.Empty;
|
|
visitModelNew.AreaId = string.Empty;
|
|
visitModelNew.VisitState = EVisitState.WaitForVisit;
|
|
visitModelNew.VisitState = EVisitState.WaitForVisit;
|
|
|
|
+ visitModelNew.IsCanHandle = false;
|
|
|
|
|
|
var id = await _orderVisitRepository.AddAsync(visitModelNew, HttpContext.RequestAborted);
|
|
var id = await _orderVisitRepository.AddAsync(visitModelNew, HttpContext.RequestAborted);
|
|
var visitModelDetail = await _orderVisitedDetailRepository.Queryable().Where(x => x.VisitId == visitModel.Id).ToListAsync(HttpContext.RequestAborted);
|
|
var visitModelDetail = await _orderVisitedDetailRepository.Queryable().Where(x => x.VisitId == visitModel.Id).ToListAsync(HttpContext.RequestAborted);
|
|
@@ -741,6 +751,12 @@ public class OrderController : BaseController
|
|
visitApplyModel.ExaminOpinion = dto.ExaminOpinion;
|
|
visitApplyModel.ExaminOpinion = dto.ExaminOpinion;
|
|
visitApplyModel.ExaminTime = DateTime.Now;
|
|
visitApplyModel.ExaminTime = DateTime.Now;
|
|
await _orderVisitApplyRepository.UpdateAsync(visitApplyModel, HttpContext.RequestAborted);
|
|
await _orderVisitApplyRepository.UpdateAsync(visitApplyModel, HttpContext.RequestAborted);
|
|
|
|
+ var visitModel = await _orderVisitRepository.GetAsync(visitApplyModel.OrderVisitId, HttpContext.RequestAborted);
|
|
|
|
+ if (visitModel!=null)
|
|
|
|
+ {
|
|
|
|
+ visitModel.IsCanHandle = true;
|
|
|
|
+ await _orderVisitRepository.UpdateAsync(visitModel, HttpContext.RequestAborted);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -919,7 +935,11 @@ public class OrderController : BaseController
|
|
[HttpPost("delay")]
|
|
[HttpPost("delay")]
|
|
public async Task ApplyDelay([FromBody] DelayStartFlowDto dto)
|
|
public async Task ApplyDelay([FromBody] DelayStartFlowDto dto)
|
|
{
|
|
{
|
|
- var delaydto = _mapper.Map<ApplyDelayDto>(dto.Data);
|
|
|
|
|
|
+ var delaydto = dto.Data;
|
|
|
|
+
|
|
|
|
+ if (string.IsNullOrEmpty(dto.Workflow.Opinion))
|
|
|
|
+ throw UserFriendlyException.SameMessage("办理意见不能为空!");
|
|
|
|
+
|
|
//验证工单是否可以申请
|
|
//验证工单是否可以申请
|
|
var order = await _orderRepository.GetAsync(delaydto.OrderId, HttpContext.RequestAborted);
|
|
var order = await _orderRepository.GetAsync(delaydto.OrderId, HttpContext.RequestAborted);
|
|
if (order is null)
|
|
if (order is null)
|
|
@@ -943,6 +963,9 @@ public class OrderController : BaseController
|
|
model.ApplyOrgCode = _sessionContext.OrgId;
|
|
model.ApplyOrgCode = _sessionContext.OrgId;
|
|
model.BeforeDelay = order.ExpiredTime;
|
|
model.BeforeDelay = order.ExpiredTime;
|
|
model.DelayState = EDelayState.Examining;
|
|
model.DelayState = EDelayState.Examining;
|
|
|
|
+ model.DelayReason = dto.Workflow.Opinion;
|
|
|
|
+ model.FileIds = dto.Workflow.Additions;
|
|
|
|
+
|
|
if (model.BeforeDelay != null)
|
|
if (model.BeforeDelay != null)
|
|
{
|
|
{
|
|
model.AfterDelay = _timeLimitDomainService.CalcEndTime(model.BeforeDelay.Value, delaydto.DelayUnit, delaydto.DelayNum, false)?.EndTime;//todo
|
|
model.AfterDelay = _timeLimitDomainService.CalcEndTime(model.BeforeDelay.Value, delaydto.DelayUnit, delaydto.DelayNum, false)?.EndTime;//todo
|