|
@@ -619,6 +619,15 @@ public class OrderController : BaseController
|
|
|
|
|
|
#region 二次回访申请
|
|
|
|
|
|
+ [HttpGet("visitapply/visitagainlist")]
|
|
|
+ public async Task OrderVisitAgainList([FromQuery]OrderVisitAgainListDto dto)
|
|
|
+ {
|
|
|
+ // await _orderVisitRepository.Queryable()
|
|
|
+ // .Includes(x=>x.Order)
|
|
|
+ // .Where()
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 二次回访申请
|
|
|
/// </summary>
|
|
@@ -627,12 +636,11 @@ public class OrderController : BaseController
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
[Permission(EPermission.ApplyOrderVisit)]
|
|
|
[HttpPost("visitapply/add")]
|
|
|
- public async Task ApplyOrderVisit([FromBody] VisitStartFlowDto dto)
|
|
|
+ public async Task ApplyOrderVisit([FromBody]AddVisitApplyDto dto)
|
|
|
{
|
|
|
- var orderVisitApply = _mapper.Map<OrderVisitApply>(dto.Data);
|
|
|
+ var orderVisitApply = _mapper.Map<OrderVisitApply>(dto);
|
|
|
//验证是否可以申请二次回访
|
|
|
|
|
|
-
|
|
|
var isAny = await _orderVisitApplyRepository.AnyAsync(x => x.OrderId == orderVisitApply.OrderId && x.VisitApplyState != EVisitApplyState.NoPass, HttpContext.RequestAborted);
|
|
|
if (isAny)
|
|
|
throw UserFriendlyException.SameMessage("当前状态不能申请二次回访");
|
|
@@ -642,34 +650,89 @@ public class OrderController : BaseController
|
|
|
throw UserFriendlyException.SameMessage("会签件不能申请二次回访");
|
|
|
|
|
|
orderVisitApply.EmployeeId = _sessionContext.RequiredUserId;
|
|
|
- var id = await _orderVisitApplyRepository.AddAsync(orderVisitApply, HttpContext.RequestAborted);
|
|
|
-
|
|
|
- try
|
|
|
- {
|
|
|
- var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
|
|
|
- startDto.DefinitionModuleCode = WorkflowModuleConsts.VisitApply;
|
|
|
- startDto.Title = orderVisitApply.VisitReason;
|
|
|
- string workFlowId = await _workflowApplication.StartWorkflowAsync(startDto, id, cancellationToken: HttpContext.RequestAborted);
|
|
|
- orderVisitApply.WorkflowId = workFlowId;
|
|
|
- await _orderVisitApplyRepository.UpdateAsync(orderVisitApply, HttpContext.RequestAborted);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- await _orderDelayRepository.RemoveAsync(id, false, HttpContext.RequestAborted);
|
|
|
- throw new UserFriendlyException($"工单二次回访流程失败!, {ex.Message}", "工单二次回访流程失败");
|
|
|
- }
|
|
|
+ orderVisitApply.VisitApplyState = EVisitApplyState.Examining;
|
|
|
+ await _orderVisitApplyRepository.AddAsync(orderVisitApply, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 查询二次申请流程开启参数
|
|
|
+ /// 二次回访审核
|
|
|
/// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
- [HttpGet("visitapply/startflow")]
|
|
|
- public async Task<NextStepsDto> GetVisitFlowStartOptions()
|
|
|
+ [Permission(EPermission.ExaminOrderVisit)]
|
|
|
+ [HttpPost("visitapply/examin")]
|
|
|
+ public async Task ExaminOrderVisit([FromBody]ExaminOrderVisitDto dto)
|
|
|
{
|
|
|
- return await _workflowApplication.GetStartStepsAsync(WorkflowModuleConsts.VisitApply, HttpContext.RequestAborted);
|
|
|
+ //获取二次回访申请
|
|
|
+ var visitApplyModel = await _orderVisitApplyRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
|
|
|
+ if (visitApplyModel == null)
|
|
|
+ throw UserFriendlyException.SameMessage("无效申请");
|
|
|
+ if (visitApplyModel.VisitApplyState != EVisitApplyState.Examining)
|
|
|
+ throw UserFriendlyException.SameMessage("当前状态不能审核");
|
|
|
+
|
|
|
+ if (dto.IsPass)
|
|
|
+ visitApplyModel.VisitApplyState = EVisitApplyState.Pass;
|
|
|
+ else
|
|
|
+ visitApplyModel.VisitApplyState = EVisitApplyState.NoPass;
|
|
|
+ visitApplyModel.ExaminOpinion = dto.ExaminOpinion;
|
|
|
+ visitApplyModel.ExaminManId = _sessionContext.RequiredUserId;
|
|
|
+ visitApplyModel.ExaminTime = DateTime.Now;
|
|
|
+ await _orderVisitApplyRepository.UpdateAsync(visitApplyModel,HttpContext.RequestAborted);
|
|
|
+ //TODO 处理通过后的业务
|
|
|
+ if (dto.IsPass)
|
|
|
+ {
|
|
|
+ //处理申请单
|
|
|
+ visitApplyModel.VisitApplyState = EVisitApplyState.Pass;
|
|
|
+ await _orderVisitApplyRepository.UpdateAsync(visitApplyModel, HttpContext.RequestAborted);
|
|
|
+ //处理原回访数据
|
|
|
+ var visitModel = await _orderVisitRepository.GetAsync(visitApplyModel.OrderVisitId, HttpContext.RequestAborted);
|
|
|
+ if (visitModel != null)
|
|
|
+ {
|
|
|
+ visitModel.VisitState = EVisitState.None;
|
|
|
+ await _orderVisitRepository.UpdateAsync(visitModel, HttpContext.RequestAborted);
|
|
|
+ //处理新回访数据
|
|
|
+ //查询原回访数据子表
|
|
|
+ var visitModelNew = _mapper.Map<OrderVisit>(visitModel);
|
|
|
+ visitModelNew.InitId();
|
|
|
+ visitModelNew.CreationTime = DateTime.Now;
|
|
|
+ visitModelNew.CreatorId = string.Empty;
|
|
|
+ visitModelNew.CreatorName = string.Empty;
|
|
|
+ visitModelNew.CreatorOrgId = string.Empty;
|
|
|
+ visitModelNew.CreatorOrgName = string.Empty;
|
|
|
+ visitModelNew.CreatorOrgLevel = 0;
|
|
|
+ visitModelNew.AreaId = string.Empty;
|
|
|
+ visitModelNew.VisitState = EVisitState.WaitForVisit;
|
|
|
+
|
|
|
+ var id = await _orderVisitRepository.AddAsync(visitModelNew, HttpContext.RequestAborted);
|
|
|
+ var visitModelDetail = await _orderVisitedDetailRepository.Queryable().Where(x => x.VisitId == visitModel.Id).ToListAsync(HttpContext.RequestAborted);
|
|
|
+ var visitDetailListNew = new List<OrderVisitDetail>();
|
|
|
+ //TODO
|
|
|
+ foreach (var item in visitModelDetail)
|
|
|
+ {
|
|
|
+ var visitDetail = new OrderVisitDetail();
|
|
|
+ visitDetail.VisitId = id;
|
|
|
+ visitDetail.VisitOrgCode = item.VisitOrgCode;
|
|
|
+ visitDetail.VisitOrgName = item.VisitOrgName;
|
|
|
+ visitDetail.VisitTarget = item.VisitTarget;
|
|
|
+ visitDetailListNew.Add(visitDetail);
|
|
|
+ }
|
|
|
+ await _orderVisitedDetailRepository.AddRangeAsync(visitDetailListNew, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //处理申请单
|
|
|
+ visitApplyModel.VisitApplyState = EVisitApplyState.NoPass;
|
|
|
+ visitApplyModel.ExaminManId = _sessionContext.RequiredUserId;
|
|
|
+ visitApplyModel.ExaminOpinion = dto.ExaminOpinion;
|
|
|
+ visitApplyModel.ExaminTime = DateTime.Now;
|
|
|
+ await _orderVisitApplyRepository.UpdateAsync(visitApplyModel, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 二次回访申请列表
|
|
|
/// </summary>
|