|
@@ -47,7 +47,7 @@ public class OrderController : BaseController
|
|
|
private readonly IMapper _mapper;
|
|
|
private readonly IMediator _mediator;
|
|
|
private readonly IOrderPublishedRepository _orderPublishedRepository;
|
|
|
-
|
|
|
+ private readonly IOrderVisitedRepository _orderVisitedRepository;
|
|
|
|
|
|
public OrderController(
|
|
|
IOrderDomainService orderDomainService,
|
|
@@ -62,7 +62,8 @@ public class OrderController : BaseController
|
|
|
ISessionContext sessionContext,
|
|
|
IMapper mapper,
|
|
|
IMediator mediator,
|
|
|
- IOrderPublishedRepository orderPublishedRepository)
|
|
|
+ IOrderPublishedRepository orderPublishedRepository,
|
|
|
+ IOrderVisitedRepository orderVisitedRepository)
|
|
|
{
|
|
|
_orderDomainService = orderDomainService;
|
|
|
_orderRepository = orderRepository;
|
|
@@ -77,8 +78,11 @@ public class OrderController : BaseController
|
|
|
_mapper = mapper;
|
|
|
_mediator = mediator;
|
|
|
_orderPublishedRepository = orderPublishedRepository;
|
|
|
+ _orderVisitedRepository = orderVisitedRepository;
|
|
|
}
|
|
|
|
|
|
+ #region 工单发布
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 查询(工单发布)
|
|
|
/// </summary>
|
|
@@ -91,19 +95,20 @@ public class OrderController : BaseController
|
|
|
var (total, items) = await _orderRepository.Queryable()
|
|
|
.Includes(d => d.OrderPublished)
|
|
|
.Includes(d => d.Employee)
|
|
|
- .Where(x=>x.Status == EOrderStatus.Filed)
|
|
|
+ .Where(x => x.Status == EOrderStatus.Filed)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.OrderTitle), d => d.Title.Contains(dto.OrderTitle!))
|
|
|
.WhereIF(dto.PubState == EPubState.Pub, d => d.Progress == EProgress.Published || d.Progress == EProgress.Visited)
|
|
|
.WhereIF(dto.PubState == EPubState.NoPub, d => d.Progress == EProgress.Managing)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.PubMan), d => d.Employee.Name.Contains(dto.PubMan!) || d.Employee.StaffNo.Contains(dto.PubMan!))
|
|
|
- .WhereIF(dto.PubRange != null, d => d.OrderPublished.PublishState == dto.PubRange)
|
|
|
+ .WhereIF(dto.PubRange == EPublicState.Pub, d => d.OrderPublished.PublishState)
|
|
|
+ .WhereIF(dto.PubRange == EPublicState.NoPub, d=>!d.OrderPublished.PublishState)
|
|
|
.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptType))
|
|
|
.WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId))
|
|
|
.WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
|
|
|
.WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
|
|
|
.WhereIF(dto.FiledTimeStart.HasValue, d => d.OrderPublished.CreationTime >= dto.CreationTimeStart)
|
|
|
.WhereIF(dto.FiledTimeEnd.HasValue, d => d.OrderPublished.CreationTime <= dto.CreationTimeEnd)
|
|
|
- .OrderByDescending(d => d.CreationTime)
|
|
|
+ .OrderBy(d => d.CreationTime)
|
|
|
.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
|
|
|
return new PagedDto<PublishDto>(total, _mapper.Map<IReadOnlyList<PublishDto>>(items));
|
|
@@ -183,12 +188,50 @@ public class OrderController : BaseController
|
|
|
throw UserFriendlyException.SameMessage("未知工单,无法发布");
|
|
|
|
|
|
var res = new PublishOrderPageBaseDto() { SourceChannel = order.SourceChannel, OrderTitle = order.Title, Content = order.Content, ActualOpinion = order.ActualOpinion };
|
|
|
- var (idName,idNames) = await _workflowDomainService.GetNoVisiteOrgsAsync(order.WorkflowId, HttpContext.RequestAborted);
|
|
|
+ var (idName, idNames) = await _workflowDomainService.GetNoVisiteOrgsAsync(order.WorkflowId, HttpContext.RequestAborted);
|
|
|
res.ActualHandleOrgName = idName;
|
|
|
res.idNames = idNames.ToList();
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #region 工单回访
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 回访列表
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.QueryOrderVisitList)]
|
|
|
+ [HttpGet("order-visit-list")]
|
|
|
+ public async Task<PagedDto<OrderVisited>> QueryOrderVisitList([FromQuery]QueryOrderVisitDto dto)
|
|
|
+ {
|
|
|
+ var (total,items) = await _orderVisitedRepository.Queryable()
|
|
|
+ .Includes(x=>x.Order)
|
|
|
+ .Includes(x=>x.Employee)
|
|
|
+ .WhereIF(dto.VisitState == EVisitState.NoVisit, x => x.VisitedState == EVisitedState.WaitForVisit || x.VisitedState == EVisitedState.NoSatisfiedWaitForVisit)
|
|
|
+ .WhereIF(dto.VisitState == EVisitState.Visited, x=> x.VisitedState == EVisitedState.Visited)
|
|
|
+ .OrderBy(x => x.CreationTime)
|
|
|
+ .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
+ return new PagedDto<OrderVisited>(total, _mapper.Map<IReadOnlyList<OrderVisited>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 回访详情
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.VisitInfo)]
|
|
|
+ [HttpGet("visit-entity/{id}")]
|
|
|
+ public async Task VisitInfo(string id)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 工单列表
|
|
|
/// </summary>
|