|
@@ -45,8 +45,8 @@ public class OrderController : BaseController
|
|
|
private readonly ISessionContext _sessionContext;
|
|
|
private readonly IMapper _mapper;
|
|
|
private readonly IMediator _mediator;
|
|
|
- private readonly IOrderPublishedRepository _orderPublishedRepository;
|
|
|
- private readonly IOrderVisitedRepository _orderVisitedRepository;
|
|
|
+ private readonly IOrderPublishRepository _orderPublishRepository;
|
|
|
+ private readonly IOrderVisitRepository _orderVisitRepository;
|
|
|
private readonly IOrderVisitedDetailRepository _orderVisitedDetailRepository;
|
|
|
private readonly ICapPublisher _capPublisher;
|
|
|
private readonly IOrderDelayRepository _orderDelayRepository;
|
|
@@ -67,8 +67,8 @@ public class OrderController : BaseController
|
|
|
ISessionContext sessionContext,
|
|
|
IMapper mapper,
|
|
|
IMediator mediator,
|
|
|
- IOrderPublishedRepository orderPublishedRepository,
|
|
|
- IOrderVisitedRepository orderVisitedRepository,
|
|
|
+ IOrderPublishRepository orderPublishRepository,
|
|
|
+ IOrderVisitRepository orderVisitRepository,
|
|
|
IOrderVisitedDetailRepository orderVisitedDetailRepository,
|
|
|
ICapPublisher capPublisher,
|
|
|
IOrderDelayRepository orderDelayRepository,
|
|
@@ -88,8 +88,8 @@ public class OrderController : BaseController
|
|
|
_sessionContext = sessionContext;
|
|
|
_mapper = mapper;
|
|
|
_mediator = mediator;
|
|
|
- _orderPublishedRepository = orderPublishedRepository;
|
|
|
- _orderVisitedRepository = orderVisitedRepository;
|
|
|
+ _orderPublishRepository = orderPublishRepository;
|
|
|
+ _orderVisitRepository = orderVisitRepository;
|
|
|
_orderVisitedDetailRepository = orderVisitedDetailRepository;
|
|
|
_capPublisher = capPublisher;
|
|
|
_orderDelayRepository = orderDelayRepository;
|
|
@@ -110,21 +110,21 @@ public class OrderController : BaseController
|
|
|
public async Task<PagedDto<PublishDto>> PublishOrderList([FromQuery] QueryOrderPublishDto dto)
|
|
|
{
|
|
|
var (total, items) = await _orderRepository.Queryable()
|
|
|
- .Includes(d => d.OrderPublished)
|
|
|
+ .Includes(d => d.OrderPublish)
|
|
|
.Includes(d => d.Acceptor)
|
|
|
.Where(x => x.Status == EOrderStatus.Filed)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!))
|
|
|
.WhereIF(dto.PubState == EPubState.Pub, d => d.Status >= EOrderStatus.Published)
|
|
|
.WhereIF(dto.PubState == EPubState.NoPub, d => d.Status < EOrderStatus.Published)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.PubMan), d => d.Acceptor.Name.Contains(dto.PubMan!) || d.Acceptor.StaffNo.Contains(dto.PubMan!))
|
|
|
- .WhereIF(dto.PubRange == EPublicState.Pub, d => d.OrderPublished.PublishState)
|
|
|
- .WhereIF(dto.PubRange == EPublicState.NoPub, d => !d.OrderPublished.PublishState)
|
|
|
+ .WhereIF(dto.PubRange == EPublicState.Pub, d => d.OrderPublish.PublishState)
|
|
|
+ .WhereIF(dto.PubRange == EPublicState.NoPub, d => !d.OrderPublish.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)
|
|
|
+ .WhereIF(dto.FiledTimeStart.HasValue, d => d.OrderPublish.CreationTime >= dto.CreationTimeStart)
|
|
|
+ .WhereIF(dto.FiledTimeEnd.HasValue, d => d.OrderPublish.CreationTime <= dto.CreationTimeEnd)
|
|
|
.OrderBy(d => d.CreationTime)
|
|
|
.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
|
|
@@ -147,6 +147,7 @@ public class OrderController : BaseController
|
|
|
|
|
|
//新增发布工单
|
|
|
OrderPublish orderPublish = new OrderPublish();
|
|
|
+ orderPublish.OrderId = order.Id;
|
|
|
orderPublish.No = order.No;
|
|
|
orderPublish.PublishState = dto.PublishState;
|
|
|
orderPublish.ArrangeTitle = dto.ArrangeTitle;
|
|
@@ -155,7 +156,7 @@ public class OrderController : BaseController
|
|
|
orderPublish.ProPublishState = dto.ProPublishState;
|
|
|
orderPublish.FeedBackPhone = dto.FeedBackPhone;
|
|
|
orderPublish.NoPubReason = dto.NoPubReason;
|
|
|
- string id = await _orderPublishedRepository.AddAsync(orderPublish);
|
|
|
+ string id = await _orderPublishRepository.AddAsync(orderPublish);
|
|
|
//新增回访信息
|
|
|
var visitedDetail = new List<OrderVisitDetail>();
|
|
|
|
|
@@ -226,7 +227,7 @@ public class OrderController : BaseController
|
|
|
[HttpGet("visit")]
|
|
|
public async Task<PagedDto<OrderVisit>> QueryOrderVisitList([FromQuery] QueryOrderVisitDto dto)
|
|
|
{
|
|
|
- var (total, items) = await _orderVisitedRepository.Queryable()
|
|
|
+ var (total, items) = await _orderVisitRepository.Queryable()
|
|
|
.Includes(x => x.Order)
|
|
|
.Includes(x => x.Employee)
|
|
|
.WhereIF(dto.VisitState == EVisitStateQuery.NoVisit, x => x.VisitState == Share.Enums.Order.EVisitState.WaitForVisit || x.VisitState == Share.Enums.Order.EVisitState.NoSatisfiedWaitForVisit)
|
|
@@ -245,7 +246,7 @@ public class OrderController : BaseController
|
|
|
[HttpGet("visit/{id}")]
|
|
|
public async Task<object> VisitInfo(string id)
|
|
|
{
|
|
|
- var orderVisit = await _orderVisitedRepository.Queryable()
|
|
|
+ var orderVisit = await _orderVisitRepository.Queryable()
|
|
|
.Includes(x => x.Order)
|
|
|
.Includes(x => x.Employee)
|
|
|
.FirstAsync(x => x.Id == id, HttpContext.RequestAborted);
|
|
@@ -255,8 +256,8 @@ public class OrderController : BaseController
|
|
|
throw UserFriendlyException.SameMessage("未知工单回访");
|
|
|
}
|
|
|
|
|
|
- int visitCount = await _orderVisitedRepository.CountAsync(x => x.OrderId == orderVisit.OrderId && x.VisitState == Share.Enums.Order.EVisitState.Visited, HttpContext.RequestAborted);
|
|
|
- int againCount = await _orderVisitedRepository.CountAsync(x => x.OrderId == orderVisit.OrderId && x.AgainState == EAgainState.DoAgain, HttpContext.RequestAborted);
|
|
|
+ int visitCount = await _orderVisitRepository.CountAsync(x => x.OrderId == orderVisit.OrderId && x.VisitState == Share.Enums.Order.EVisitState.Visited, HttpContext.RequestAborted);
|
|
|
+ int againCount = await _orderVisitRepository.CountAsync(x => x.OrderId == orderVisit.OrderId && x.AgainState == EAgainState.DoAgain, HttpContext.RequestAborted);
|
|
|
var visitSatisfaction = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.VisitSatisfaction);
|
|
|
var dissatisfiedReason = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.DissatisfiedReason);
|
|
|
var visitManner = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.VisitManner);
|
|
@@ -293,8 +294,8 @@ public class OrderController : BaseController
|
|
|
[HttpPost("visit")]
|
|
|
public async Task Visit([FromBody] VisitDto dto)
|
|
|
{
|
|
|
- //var visit = await _orderVisitedRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
|
|
|
- var visit = await _orderVisitedRepository.Queryable()
|
|
|
+ //var visit = await _orderVisitRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
|
|
|
+ var visit = await _orderVisitRepository.Queryable()
|
|
|
.Includes(d => d.Order)
|
|
|
.FirstAsync(d => d.Id == dto.Id, HttpContext.RequestAborted);
|
|
|
if (visit is null)
|
|
@@ -310,7 +311,7 @@ public class OrderController : BaseController
|
|
|
visit.AgainState = dto.IsAgain ? EAgainState.NeedAgain : EAgainState.NoAgain;
|
|
|
visit.EmployeeId = _sessionContext.UserId;
|
|
|
visit.NowEvaluate = first.OrgProcessingResults;
|
|
|
- //await _orderVisitedRepository.UpdateAsync(visit,HttpContext.RequestAborted);
|
|
|
+ //await _orderVisitRepository.UpdateAsync(visit,HttpContext.RequestAborted);
|
|
|
|
|
|
//update order
|
|
|
visit.Order.Visited(first.OrgProcessingResults.Id, first.OrgProcessingResults.Name);
|
|
@@ -320,7 +321,7 @@ public class OrderController : BaseController
|
|
|
//await _orderVisitedDetailRepository.UpdateRangeAsync(visitDetails, HttpContext.RequestAborted);
|
|
|
visit.VisitDetails = _mapper.Map<List<OrderVisitDetail>>(dto.VisitDetails);
|
|
|
|
|
|
- _orderVisitedRepository.UpdateNav(visit);
|
|
|
+ _orderVisitRepository.UpdateNav(visit);
|
|
|
|
|
|
var orderDto = _mapper.Map<OrderDto>(visit.Order);
|
|
|
|
|
@@ -565,6 +566,22 @@ public class OrderController : BaseController
|
|
|
return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 查询重复工单
|
|
|
+ /// </summary>
|
|
|
+ [HttpGet("duplicate")]
|
|
|
+ public async Task<PagedDto<OrderDto>> Query([FromQuery] QueryOrderDuplicateDto dto)
|
|
|
+ {
|
|
|
+ if (!dto.OrderIds.Any())
|
|
|
+ return new PagedDto<OrderDto>(0, new List<OrderDto>());
|
|
|
+
|
|
|
+ var (total, items) = await _orderRepository.Queryable()
|
|
|
+ .Where(d => dto.OrderIds.Contains(d.Id))
|
|
|
+ .OrderByDescending(d => d.CreationTime)
|
|
|
+ .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
+ return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 查询工单详情
|
|
|
/// </summary>
|