|
@@ -54,6 +54,7 @@ public class OrderController : BaseController
|
|
|
private readonly IOrderDelayRepository _orderDelayRepository;
|
|
|
private readonly ITimeLimitApplication _timeLimitApplication;
|
|
|
private readonly ISystemSettingCacheManager _systemSettingCacheManager;
|
|
|
+ private readonly IOrderRedoRecordRepository _orderRedoRecordRepository;
|
|
|
|
|
|
public OrderController(
|
|
|
IOrderDomainService orderDomainService,
|
|
@@ -74,7 +75,8 @@ public class OrderController : BaseController
|
|
|
ICapPublisher capPublisher,
|
|
|
IOrderDelayRepository orderDelayRepository,
|
|
|
ITimeLimitApplication timeLimitApplication,
|
|
|
- ISystemSettingCacheManager systemSettingCacheManager)
|
|
|
+ ISystemSettingCacheManager systemSettingCacheManager,
|
|
|
+ IOrderRedoRecordRepository orderRedoRecordRepository)
|
|
|
{
|
|
|
_orderDomainService = orderDomainService;
|
|
|
_orderRepository = orderRepository;
|
|
@@ -95,6 +97,7 @@ public class OrderController : BaseController
|
|
|
_orderDelayRepository = orderDelayRepository;
|
|
|
_timeLimitApplication = timeLimitApplication;
|
|
|
_systemSettingCacheManager = systemSettingCacheManager;
|
|
|
+ _orderRedoRecordRepository = orderRedoRecordRepository;
|
|
|
}
|
|
|
|
|
|
#region 工单发布
|
|
@@ -254,12 +257,13 @@ public class OrderController : BaseController
|
|
|
throw UserFriendlyException.SameMessage("未知工单回访");
|
|
|
}
|
|
|
|
|
|
- int count =await _orderVisitedRepository.CountAsync(x => x.OrderId == orderVisit.OrderId && x.VisitState == Share.Enums.Order.EVisitState.Visited,HttpContext.RequestAborted);
|
|
|
+ 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);
|
|
|
var visitSatisfaction = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.VisitSatisfaction);
|
|
|
var dissatisfiedReason = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.DissatisfiedReason);
|
|
|
var visitManner = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.VisitManner);
|
|
|
|
|
|
- return new { OrderVisitModel = orderVisit ,Count = count , VisitSatisfaction = visitSatisfaction, DissatisfiedReason= dissatisfiedReason, VisitManner= visitManner };
|
|
|
+ return new { OrderVisitModel = orderVisit ,VisitCount = visitCount, AgainCount = againCount , VisitSatisfaction = visitSatisfaction, DissatisfiedReason= dissatisfiedReason, VisitManner= visitManner };
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -297,10 +301,17 @@ public class OrderController : BaseController
|
|
|
|
|
|
var first = dto.VisitDetails.First(x => x.VisitTarget == EVisitTarget.Org);
|
|
|
|
|
|
+ bool CanAgain = false;
|
|
|
+ if((visit.VisitState == EVisitState.WaitForVisit || visit.VisitState == EVisitState.Visiting) && dto.IsAgain)
|
|
|
+ {
|
|
|
+ CanAgain = true;
|
|
|
+ }
|
|
|
+
|
|
|
//更新主表
|
|
|
visit.VisitState = Share.Enums.Order.EVisitState.Visited;
|
|
|
visit.VisitTime = DateTime.Now;
|
|
|
visit.IsPutThrough = dto.IsPutThrough;
|
|
|
+ visit.AgainState = dto.IsAgain? EAgainState.NeedAgain : EAgainState.NoAgain;
|
|
|
visit.EmployeeId = _sessionContext.UserId;
|
|
|
visit.NowEvaluate = first.OrgProcessingResults;
|
|
|
if (visit.FirstEvaluate is null)
|
|
@@ -313,12 +324,51 @@ public class OrderController : BaseController
|
|
|
var visitDetails = _mapper.Map <List<OrderVisitDetail>>(dto.VisitDetails);
|
|
|
|
|
|
await _orderVisitedDetailRepository.UpdateRangeAsync(visitDetails, HttpContext.RequestAborted);
|
|
|
+
|
|
|
//推省上
|
|
|
//_capPublisher.Publish(EventNames.HotlineOrderSubmitVisitInfo,new PublishVisitDto(){ OrderDto = null,NowVisit = null,FirstVisit=null })
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
+ #region 工单重办
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 重办查询
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.QueryOrderRedoRecord)]
|
|
|
+ [HttpGet("order-redorecord-list")]
|
|
|
+ public async Task<PagedDto<OrderRedoRecord>> QueryOrderRedoRecord([FromQuery]QueryOrderRedoRecordDto dto)
|
|
|
+ {
|
|
|
+ var (total,items) = await _orderRedoRecordRepository.Queryable()
|
|
|
+ .Includes(x => x.Order)
|
|
|
+ .Includes(x => x.Employee)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Order.Title.Contains(dto.Keyword!) || d.Order.No.Contains(dto.Keyword!))
|
|
|
+ .OrderByDescending(x => x.CreationTime)
|
|
|
+ .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ return new PagedDto<OrderRedoRecord>(total, items);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 重办详情
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.OrderRedoRecord)]
|
|
|
+ [HttpGet("order-redorecord-entity/{id}")]
|
|
|
+ public async Task<OrderRedoRecord> OrderRedoRecord(string id)
|
|
|
+ {
|
|
|
+ return await _orderRedoRecordRepository.Queryable()
|
|
|
+ .Includes(x => x.Order)
|
|
|
+ .Includes(x => x.Employee)
|
|
|
+ .FirstAsync(x => x.Id == id);
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
#region 工单延期
|
|
|
|
|
|
/// <summary>
|
|
@@ -422,7 +472,7 @@ public class OrderController : BaseController
|
|
|
|
|
|
#region 工单甄别
|
|
|
|
|
|
-
|
|
|
+ //public async Task CanScreen
|
|
|
|
|
|
|
|
|
|