|
@@ -632,7 +632,7 @@ public class OrderController : BaseController
|
|
|
public async Task<PagedDto<OrderCanVisitAgainDto>> OrderVisitAgainList([FromQuery] OrderVisitAgainListDto dto)
|
|
|
{
|
|
|
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))
|
|
|
.Where(x => x.OrderVisit.VisitState == EVisitState.Visited &&
|
|
|
(x.OrderVisit.VisitType == EVisitType.SmsVisit ||
|
|
@@ -782,8 +782,8 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
var (total, items) = await _orderVisitApplyRepository.Queryable()
|
|
|
.Includes(d => d.Order)
|
|
|
- .Includes(d=>d.OrderVisit,d=>d.OrderVisitDetails.Where(x=>x.VisitTarget == EVisitTarget.Org).ToList())
|
|
|
- .Includes(d=>d.OrderVisit,d=>d.Employee)
|
|
|
+ .Includes(d => d.OrderVisit, d => d.OrderVisitDetails.Where(x => x.VisitTarget == EVisitTarget.Org).ToList())
|
|
|
+ .Includes(d => d.OrderVisit, d => d.Employee)
|
|
|
.Includes(d => d.Employee)
|
|
|
.WhereIF(dto.VisitApplyState != null, x => x.VisitApplyState == dto.VisitApplyState)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.OrderNo.Contains(dto.Keyword))
|
|
@@ -802,7 +802,7 @@ public class OrderController : BaseController
|
|
|
[HttpGet("visitapply/{id}")]
|
|
|
public async Task<VisitApplyDto> VisitApplyEntity(string id)
|
|
|
{
|
|
|
- var model = await _orderVisitApplyRepository.GetExtAsync(x => x.Id == id,x=>x.Includes(d=>d.Order)) ;
|
|
|
+ var model = await _orderVisitApplyRepository.GetExtAsync(x => x.Id == id, x => x.Includes(d => d.Order));
|
|
|
|
|
|
return _mapper.Map<VisitApplyDto>(model);
|
|
|
}
|
|
@@ -1388,7 +1388,7 @@ public class OrderController : BaseController
|
|
|
.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)
|
|
|
- .Where(x=>x.OrgId == _sessionContext.OrgId)
|
|
|
+ .Where(x => x.OrgId == _sessionContext.OrgId)
|
|
|
.OrderByDescending(x => x.CreationTime)
|
|
|
.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
|
|
@@ -1575,7 +1575,7 @@ public class OrderController : BaseController
|
|
|
.WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
|
|
|
.WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
|
|
|
.Where(x => x.OrgId == _sessionContext.OrgId)
|
|
|
- .OrderByDescending(x => x.CreationTime)
|
|
|
+ .OrderByDescending(x => x.CreationTime)
|
|
|
.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
|
|
|
return new PagedDto<UrgeOrderDto>(total, _mapper.Map<IReadOnlyList<UrgeOrderDto>>(items));
|
|
@@ -1846,7 +1846,7 @@ public class OrderController : BaseController
|
|
|
var order = _mapper.Map<Order>(dto);
|
|
|
order.SignerId = _sessionContext.UserId;
|
|
|
order.SignerName = _sessionContext.UserName;
|
|
|
- var orderId = await _orderDomainService.AddAsync(order, HttpContext.RequestAborted);
|
|
|
+ var orderId = await _orderDomainService.AddAsync(order, HttpContext.RequestAborted);
|
|
|
//if (dto.Tags.Any()) await _repositoryts.AddVectorAsync(orderId, DateTime.Now, dto.Tags, HttpContext.RequestAborted);
|
|
|
if (dto.Files.Any()) await _fileRepository.AddFileAsync(dto.Files, orderId, HttpContext.RequestAborted);
|
|
|
if (dto.RepeatableEventDetails?.Any() ?? false)
|
|
@@ -1879,7 +1879,8 @@ public class OrderController : BaseController
|
|
|
|
|
|
if (order.Source is ESource.ProvinceStraight)
|
|
|
{
|
|
|
- var orderExtension = await _orderDomainService.GetOrderExtensionsAsync(dto.ProvinceNo, HttpContext.RequestAborted);
|
|
|
+ var orderExtension =
|
|
|
+ await _orderDomainService.GetOrderExtensionsAsync(dto.ProvinceNo, HttpContext.RequestAborted);
|
|
|
if (orderExtension is not null)
|
|
|
{
|
|
|
orderExtension.Id = orderId;
|
|
@@ -1962,7 +1963,7 @@ public class OrderController : BaseController
|
|
|
.FirstAsync(d => d.Id == dto.Id);
|
|
|
if (order == null)
|
|
|
throw UserFriendlyException.SameMessage("无效工单编号");
|
|
|
- if (order.Status != EOrderStatus.WaitForAccept || !string.IsNullOrEmpty(order.WorkflowId))
|
|
|
+ if (order.Status > EOrderStatus.BackToUnAccept)
|
|
|
throw UserFriendlyException.SameMessage("工单已发起流程");
|
|
|
|
|
|
if (order.Content != dto.Content)
|
|
@@ -2159,29 +2160,53 @@ public class OrderController : BaseController
|
|
|
? new[] { EWorkflowStepStatus.Handled }
|
|
|
: new[] { EWorkflowStepStatus.WaitForAccept, EWorkflowStepStatus.WaitForHandle };
|
|
|
|
|
|
- RefAsync<int> total = 0;
|
|
|
- var dtos = await _workflowStepRepository.Queryable()
|
|
|
- .InnerJoin<Workflow>((s, w) => s.WorkflowId == w.Id)
|
|
|
- .LeftJoin<Order>((s, w, o) => w.ExternalId == o.Id)
|
|
|
- .Where((s, w, o) => SqlFunc.JsonListObjectAny(s.Handlers, "Key", _sessionContext.RequiredUserId) ||
|
|
|
- SqlFunc.JsonListObjectAny(s.Handlers, "Key", _sessionContext.RequiredOrgId))
|
|
|
- .WhereIF(dto.IsProvince.HasValue, (s, w, o) => o.IsProvince == dto.IsProvince)
|
|
|
- .WhereIF(dto.IsHandled.HasValue, (s, w, o) => handleStatuses.Contains(s.Status))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
- (s, w, o) => o.No.Contains(dto.Keyword) || o.Title.Contains(dto.Keyword))
|
|
|
- .OrderByDescending((s) => s.StepExpiredTime)
|
|
|
- .Select((s, w, o) => new OrderDto
|
|
|
- {
|
|
|
- Id = o.Id,
|
|
|
- ExpiredTime = o.ExpiredTime,
|
|
|
- //StepExpiredTime = s.StepExpiredTime,
|
|
|
- Status = o.Status
|
|
|
- }, true)
|
|
|
- .ToPageListAsync(dto.PageIndex, dto.PageSize, total, HttpContext.RequestAborted);
|
|
|
+ //RefAsync<int> total = 0;
|
|
|
+ //var dtos = await _workflowStepRepository.Queryable()
|
|
|
+ // .InnerJoin<Workflow>((s, w) => s.WorkflowId == w.Id)
|
|
|
+ // .LeftJoin<Order>((s, w, o) => w.ExternalId == o.Id)
|
|
|
+ // .Where((s, w, o) => SqlFunc.JsonListObjectAny(s.Handlers, "Key", _sessionContext.RequiredUserId) ||
|
|
|
+ // SqlFunc.JsonListObjectAny(s.Handlers, "Key", _sessionContext.RequiredOrgId))
|
|
|
+ // .WhereIF(dto.IsProvince.HasValue, (s, w, o) => o.IsProvince == dto.IsProvince)
|
|
|
+ // .WhereIF(dto.IsHandled.HasValue, (s, w, o) => handleStatuses.Contains(s.Status))
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
+ // (s, w, o) => o.No.Contains(dto.Keyword) || o.Title.Contains(dto.Keyword))
|
|
|
+ // .OrderByDescending((s) => s.StepExpiredTime)
|
|
|
+ // .Select((s, w, o) => new OrderDto
|
|
|
+ // {
|
|
|
+ // Id = o.Id,
|
|
|
+ // ExpiredTime = o.ExpiredTime,
|
|
|
+ // //StepExpiredTime = s.StepExpiredTime,
|
|
|
+ // Status = o.Status
|
|
|
+ // }, true)
|
|
|
+ // .ToPageListAsync(dto.PageIndex, dto.PageSize, total, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ var (total, items) = await _orderRepository.Queryable(workflowFilter: false)
|
|
|
+ .Includes(d => d.Workflow, x => x.Steps)
|
|
|
+ .Where(d => SqlFunc.JsonListObjectAny(d.Workflow.HandlerUsers, "Key", _sessionContext.RequiredUserId) ||
|
|
|
+ SqlFunc.JsonListObjectAny(d.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId))
|
|
|
+ .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
|
|
|
+ .WhereIF(dto.IsHandled.HasValue, d => d.Workflow.Steps.Any(x => handleStatuses.Contains(x.Status)))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.No.Contains(dto.Keyword) || d.Title.Contains(dto.Keyword))
|
|
|
+ .OrderByDescending(d => d.ExpiredTime)
|
|
|
+ .ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
+
|
|
|
|
|
|
- return new PagedDto<OrderDto>(total, dtos);
|
|
|
+ return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
}
|
|
|
|
|
|
+ //public async Task<PagedDto<OrderDto>> QueryWaitedHandled([FromQuery] QueryOrderWaitedDto dto)
|
|
|
+ //{
|
|
|
+ // var (total, items) = await _orderRepository.Queryable(workflowFilter: true)
|
|
|
+ // .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
+ // d => d.No.Contains(dto.Keyword) || d.Title.Contains(dto.Keyword))
|
|
|
+
|
|
|
+ // .OrderByDescending(d => d.CreationTime)
|
|
|
+ // .ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ // return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
+ //}
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 查询坐席待办
|
|
|
/// </summary>
|
|
@@ -2353,18 +2378,25 @@ public class OrderController : BaseController
|
|
|
await _orderSpecialRepository.AddAsync(model, HttpContext.RequestAborted);
|
|
|
if (model.State == 1)
|
|
|
{
|
|
|
- var recall = new RecallDto { WorkflowId = dto.WorkflowId!, NextStepCode = dto.NextStepCode, NextStepName = dto.NextStepName, NextHandlers = dto.NextHandlers, Opinion = dto.Cause };
|
|
|
+ var recall = new RecallDto
|
|
|
+ {
|
|
|
+ WorkflowId = dto.WorkflowId!,
|
|
|
+ NextStepCode = dto.NextStepCode,
|
|
|
+ NextStepName = dto.NextStepName,
|
|
|
+ NextHandlers = dto.NextHandlers,
|
|
|
+ Opinion = dto.Cause
|
|
|
+ };
|
|
|
if (dto.AlterTime) recall.External = new External { TimeLimit = dto.TimeLimit, TimeLimitUnit = dto.TimeLimitUnit };
|
|
|
- if (dto.Files.Any()) recall.Additions = dto.Files;
|
|
|
- await _workflowApplication.RecallAsync(recall, HttpContext.RequestAborted);
|
|
|
+ if (dto.Files.Any()) recall.Additions = dto.Files;
|
|
|
+ await _workflowApplication.RecallAsync(recall, HttpContext.RequestAborted);
|
|
|
// 如果是话务部 修改签收状态
|
|
|
- if ("start".Equals(dto.NextStepCode))
|
|
|
+ if ("start".Equals(dto.NextStepCode))
|
|
|
{
|
|
|
var order = await _orderRepository.GetAsync(dto.OrderId);
|
|
|
order.BackToUnsign();
|
|
|
await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -2383,11 +2415,18 @@ public class OrderController : BaseController
|
|
|
await _orderSpecialRepository.UpdateAsync(special, HttpContext.RequestAborted);
|
|
|
if (special.State == 1)
|
|
|
{
|
|
|
- var recall = new RecallDto{ WorkflowId = dto.WorkflowId!, NextStepCode = dto.NextStepCode, NextStepName = dto.NextStepName, NextHandlers = dto.NextHandlers, Opinion = dto.Opinion };
|
|
|
- if (dto.AlterTime) recall.External = new External { TimeLimit = dto.TimeLimit, TimeLimitUnit = dto.TimeLimitUnit };
|
|
|
+ var recall = new RecallDto
|
|
|
+ {
|
|
|
+ WorkflowId = dto.WorkflowId!,
|
|
|
+ NextStepCode = dto.NextStepCode,
|
|
|
+ NextStepName = dto.NextStepName,
|
|
|
+ NextHandlers = dto.NextHandlers,
|
|
|
+ Opinion = dto.Opinion
|
|
|
+ };
|
|
|
+ if (dto.AlterTime) recall.External = new External { TimeLimit = dto.TimeLimit, TimeLimitUnit = dto.TimeLimitUnit };
|
|
|
if (dto.Files.Any()) recall.Additions = dto.Files;
|
|
|
- await _workflowApplication.RecallAsync(recall, HttpContext.RequestAborted);
|
|
|
- }
|
|
|
+ await _workflowApplication.RecallAsync(recall, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -2409,13 +2448,13 @@ public class OrderController : BaseController
|
|
|
return new PagedDto<OrderSpecialDto>(total, _mapper.Map<IReadOnlyList<OrderSpecialDto>>(items));
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 工单列表
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [Permission(EPermission.ApplySpecialOrderList)]
|
|
|
- [HttpGet("special/apply_list")]
|
|
|
+ /// <summary>
|
|
|
+ /// 工单列表
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.ApplySpecialOrderList)]
|
|
|
+ [HttpGet("special/apply_list")]
|
|
|
public async Task<PagedDto<OrderDto>> SpecialList([FromQuery] QueryOrderDto dto)
|
|
|
{
|
|
|
var query = _orderRepository.Queryable()
|
|
@@ -2480,7 +2519,7 @@ public class OrderController : BaseController
|
|
|
SpecialTimeType = EnumExts.GetDescriptions<ETimeType>(),
|
|
|
SpecialReason = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.SpecialReason),
|
|
|
Step = await _workflowApplication.GetRecallStepsAsync(id, HttpContext.RequestAborted)
|
|
|
- };
|
|
|
+ };
|
|
|
return rsp;
|
|
|
}
|
|
|
|
|
@@ -2493,7 +2532,8 @@ public class OrderController : BaseController
|
|
|
public async Task<int> SpecialHandleTime([FromQuery] OrderSpecialHandleTime dto)
|
|
|
{
|
|
|
var order = await _orderRepository.GetAsync(dto.OrderId);
|
|
|
- if (dto.FlowDirection != null && dto.FlowDirection == EFlowDirection.OrgToCenter) return _timeLimitDomainService.GetOrderTimeLimitConfig(string.Empty);
|
|
|
+ if (dto.FlowDirection != null && dto.FlowDirection == EFlowDirection.OrgToCenter)
|
|
|
+ return _timeLimitDomainService.GetOrderTimeLimitConfig(string.Empty);
|
|
|
return _timeLimitDomainService.GetOrderTimeLimitConfig(order.AcceptTypeCode);
|
|
|
}
|
|
|
|