|
@@ -40,6 +40,7 @@ using System.Diagnostics;
|
|
|
using System.Transactions;
|
|
|
using System.Collections.Generic;
|
|
|
using Hotline.CallCenter.Calls;
|
|
|
+using Hotline.DataSharing.Province.Services;
|
|
|
using Hotline.Share.Dtos.File;
|
|
|
|
|
|
namespace Hotline.Api.Controllers;
|
|
@@ -64,6 +65,7 @@ public class OrderController : BaseController
|
|
|
private readonly IRepository<OrderVisit> _orderVisitRepository;
|
|
|
private readonly IRepository<OrderVisitDetail> _orderVisitedDetailRepository;
|
|
|
private readonly ICapPublisher _capPublisher;
|
|
|
+ private readonly IProvinceService _provinceService;
|
|
|
private readonly IRepository<OrderDelay> _orderDelayRepository;
|
|
|
private readonly ITimeLimitDomainService _timeLimitDomainService;
|
|
|
private readonly ISystemSettingCacheManager _systemSettingCacheManager;
|
|
@@ -107,6 +109,7 @@ public class OrderController : BaseController
|
|
|
IRepository<OrderVisit> orderVisitRepository,
|
|
|
IRepository<OrderVisitDetail> orderVisitedDetailRepository,
|
|
|
ICapPublisher capPublisher,
|
|
|
+ IProvinceService provinceService,
|
|
|
IRepository<OrderDelay> orderDelayRepository,
|
|
|
ITimeLimitDomainService timeLimitDomainService,
|
|
|
ISystemSettingCacheManager systemSettingCacheManager,
|
|
@@ -150,6 +153,7 @@ public class OrderController : BaseController
|
|
|
_orderVisitRepository = orderVisitRepository;
|
|
|
_orderVisitedDetailRepository = orderVisitedDetailRepository;
|
|
|
_capPublisher = capPublisher;
|
|
|
+ _provinceService = provinceService;
|
|
|
_orderDelayRepository = orderDelayRepository;
|
|
|
_timeLimitDomainService = timeLimitDomainService;
|
|
|
_systemSettingCacheManager = systemSettingCacheManager;
|
|
@@ -250,8 +254,8 @@ public class OrderController : BaseController
|
|
|
if (order is { ProcessType: EProcessType.Zhiban, CounterSignType: null })
|
|
|
{
|
|
|
orderVisit.VisitState = EVisitState.Visited;
|
|
|
- }
|
|
|
- string visitId = await _orderVisitRepository.AddAsync(orderVisit);
|
|
|
+ }
|
|
|
+ string visitId = await _orderVisitRepository.AddAsync(orderVisit);
|
|
|
|
|
|
//新增回访信息
|
|
|
var visitedDetail = new List<OrderVisitDetail>();
|
|
@@ -259,31 +263,32 @@ public class OrderController : BaseController
|
|
|
var seatDetail = new OrderVisitDetail();
|
|
|
seatDetail.VisitId = visitId;
|
|
|
seatDetail.VisitTarget = EVisitTarget.Seat;
|
|
|
- foreach (var item in dto.IdNames)
|
|
|
- {
|
|
|
- var orgDetail = new OrderVisitDetail();
|
|
|
- orgDetail.VisitId = visitId;
|
|
|
- orgDetail.VisitOrgCode = item.Key;
|
|
|
- orgDetail.VisitOrgName = item.Value;
|
|
|
- orgDetail.VisitTarget = EVisitTarget.Org;
|
|
|
- if (order is { ProcessType: EProcessType.Zhiban, CounterSignType: null }) {
|
|
|
- var satisfy = new Kv() { Key = "4", Value = "满意" };
|
|
|
- orgDetail.OrgProcessingResults = satisfy;
|
|
|
- orgDetail.OrgHandledAttitude = satisfy;
|
|
|
- }
|
|
|
- visitedDetail.Add(orgDetail);
|
|
|
- }
|
|
|
- if (order is { ProcessType: EProcessType.Zhiban, CounterSignType: null })
|
|
|
- {
|
|
|
- seatDetail.VoiceEvaluate = EVoiceEvaluate.Satisfied;
|
|
|
- seatDetail.SeatEvaluate = ESeatEvaluate.Satisfied;
|
|
|
- order.Visited("4", "满意");
|
|
|
- order.Status = EOrderStatus.Visited;
|
|
|
- await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
|
|
|
- }
|
|
|
- visitedDetail.Add(seatDetail);
|
|
|
- await _orderVisitedDetailRepository.AddRangeAsync(visitedDetail, HttpContext.RequestAborted);
|
|
|
- await _mediator.Publish(new AddVisitNotify{ OrderVisitedDetails = visitedDetail }, HttpContext.RequestAborted);
|
|
|
+ foreach (var item in dto.IdNames)
|
|
|
+ {
|
|
|
+ var orgDetail = new OrderVisitDetail();
|
|
|
+ orgDetail.VisitId = visitId;
|
|
|
+ orgDetail.VisitOrgCode = item.Key;
|
|
|
+ orgDetail.VisitOrgName = item.Value;
|
|
|
+ orgDetail.VisitTarget = EVisitTarget.Org;
|
|
|
+ if (order is { ProcessType: EProcessType.Zhiban, CounterSignType: null })
|
|
|
+ {
|
|
|
+ var satisfy = new Kv() { Key = "4", Value = "满意" };
|
|
|
+ orgDetail.OrgProcessingResults = satisfy;
|
|
|
+ orgDetail.OrgHandledAttitude = satisfy;
|
|
|
+ }
|
|
|
+ visitedDetail.Add(orgDetail);
|
|
|
+ }
|
|
|
+ if (order is { ProcessType: EProcessType.Zhiban, CounterSignType: null })
|
|
|
+ {
|
|
|
+ seatDetail.VoiceEvaluate = EVoiceEvaluate.Satisfied;
|
|
|
+ seatDetail.SeatEvaluate = ESeatEvaluate.Satisfied;
|
|
|
+ order.Visited("4", "满意");
|
|
|
+ order.Status = EOrderStatus.Visited;
|
|
|
+ await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ visitedDetail.Add(seatDetail);
|
|
|
+ await _orderVisitedDetailRepository.AddRangeAsync(visitedDetail, HttpContext.RequestAborted);
|
|
|
+ await _mediator.Publish(new AddVisitNotify { OrderVisitedDetails = visitedDetail }, HttpContext.RequestAborted);
|
|
|
|
|
|
//TODO 中国政府网
|
|
|
if (order.SourceChannelCode == "ZGZFW")
|
|
@@ -443,7 +448,7 @@ public class OrderController : BaseController
|
|
|
.Includes(x => x.OrderVisitDetails)
|
|
|
.WhereIF(dto.VisitState == EVisitStateQuery.NoVisit,
|
|
|
x => (x.VisitState == Share.Enums.Order.EVisitState.WaitForVisit ||
|
|
|
- x.VisitState == Share.Enums.Order.EVisitState.NoSatisfiedWaitForVisit) && x.Order.IsProvince == false )
|
|
|
+ x.VisitState == Share.Enums.Order.EVisitState.NoSatisfiedWaitForVisit) && x.Order.IsProvince == false)
|
|
|
.WhereIF(dto.VisitState == EVisitStateQuery.Visited,
|
|
|
x => x.VisitState == Share.Enums.Order.EVisitState.Visited)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
@@ -549,10 +554,10 @@ public class OrderController : BaseController
|
|
|
//update order
|
|
|
if (dto.IsPutThrough)
|
|
|
{
|
|
|
- visit.VisitState = Share.Enums.Order.EVisitState.Visited;
|
|
|
- visit.VisitTime = DateTime.Now;
|
|
|
- visit.VisitType = EVisitType.ArtificialVisit;
|
|
|
- if (first != null)
|
|
|
+ visit.VisitState = Share.Enums.Order.EVisitState.Visited;
|
|
|
+ visit.VisitTime = DateTime.Now;
|
|
|
+ visit.VisitType = EVisitType.ArtificialVisit;
|
|
|
+ if (first != null)
|
|
|
{
|
|
|
visit.Order.Visited(first.OrgProcessingResults.Key, first.OrgProcessingResults.Value);
|
|
|
}
|
|
@@ -575,20 +580,33 @@ public class OrderController : BaseController
|
|
|
if (first != null)
|
|
|
{
|
|
|
//推省上
|
|
|
- _capPublisher.Publish(EventNames.HotlineOrderVisited,
|
|
|
- new PublishVisitDto()
|
|
|
- {
|
|
|
- Order = orderDto,
|
|
|
- No = visit.No,
|
|
|
- VisitType = visit.VisitType,
|
|
|
- VisitName = visit.CreatorName,
|
|
|
- VisitTime = visit.VisitTime,
|
|
|
- VisitRemark = first.VisitContent,
|
|
|
- AreaCode = visit.Order.AreaCode!,
|
|
|
- SubjectResultSatifyCode = first.OrgProcessingResults.Key,
|
|
|
- FirstSatisfactionCode = visit.Order.FirstVisitResultCode!,
|
|
|
- ClientGuid = ""
|
|
|
- });
|
|
|
+ //_capPublisher.Publish(EventNames.HotlineOrderVisited,
|
|
|
+ // new PublishVisitDto()
|
|
|
+ // {
|
|
|
+ // Order = orderDto,
|
|
|
+ // No = visit.No,
|
|
|
+ // VisitType = visit.VisitType,
|
|
|
+ // VisitName = visit.CreatorName,
|
|
|
+ // VisitTime = visit.VisitTime,
|
|
|
+ // VisitRemark = first.VisitContent,
|
|
|
+ // AreaCode = visit.Order.AreaCode!,
|
|
|
+ // SubjectResultSatifyCode = first.OrgProcessingResults.Key,
|
|
|
+ // FirstSatisfactionCode = visit.Order.FirstVisitResultCode!,
|
|
|
+ // ClientGuid = ""
|
|
|
+ // });
|
|
|
+ await _provinceService.SubmitVisitInfo(new PublishVisitDto()
|
|
|
+ {
|
|
|
+ Order = orderDto,
|
|
|
+ No = visit.No,
|
|
|
+ VisitType = visit.VisitType,
|
|
|
+ VisitName = visit.CreatorName,
|
|
|
+ VisitTime = visit.VisitTime,
|
|
|
+ VisitRemark = first.VisitContent,
|
|
|
+ AreaCode = visit.Order.AreaCode!,
|
|
|
+ SubjectResultSatifyCode = first.OrgProcessingResults.Key,
|
|
|
+ FirstSatisfactionCode = visit.Order.FirstVisitResultCode!,
|
|
|
+ ClientGuid = ""
|
|
|
+ }, HttpContext.RequestAborted);
|
|
|
}
|
|
|
if (first != null)
|
|
|
{
|
|
@@ -1146,7 +1164,7 @@ public class OrderController : BaseController
|
|
|
[HttpGet("screen")]
|
|
|
public async Task<PagedDto<OrderScreenListDto>> ScreenList([FromQuery] ScreenListDto dto)
|
|
|
{
|
|
|
- var query = _orderScreenRepository.Queryable()
|
|
|
+ var query = _orderScreenRepository.Queryable()
|
|
|
.Includes(x => x.Order)
|
|
|
.Includes(x => x.VisitDetail)
|
|
|
.Includes(x => x.Visit, d => d.Order)
|
|
@@ -1155,11 +1173,11 @@ public class OrderController : BaseController
|
|
|
d => d.Visit.Order.Title.Contains(dto.Keyword!) || d.Visit.Order.No.Contains(dto.Keyword!));
|
|
|
if (dto.Status is EScreenStatus.Apply)
|
|
|
{
|
|
|
- query.Where(x =>(x.Status == EScreenStatus.Apply || x.Status == EScreenStatus.Approval)
|
|
|
- && SqlFunc.JsonListObjectAny(x.Workflow.HandlerUsers,"Key", _sessionContext.RequiredUserId));
|
|
|
- }
|
|
|
- var (total, items) = await query
|
|
|
- .WhereIF(dto.Status.HasValue && dto.Status == EScreenStatus.MyHandle,
|
|
|
+ query.Where(x => (x.Status == EScreenStatus.Apply || x.Status == EScreenStatus.Approval)
|
|
|
+ && SqlFunc.JsonListObjectAny(x.Workflow.HandlerUsers, "Key", _sessionContext.RequiredUserId));
|
|
|
+ }
|
|
|
+ var (total, items) = await query
|
|
|
+ .WhereIF(dto.Status.HasValue && dto.Status == EScreenStatus.MyHandle,
|
|
|
x => x.Status != EScreenStatus.Apply && x.CreatorId == _sessionContext.UserId)
|
|
|
.WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
|
|
|
.WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
|
|
@@ -1352,12 +1370,18 @@ public class OrderController : BaseController
|
|
|
if (supervise != null)
|
|
|
{
|
|
|
var superviseDto = _mapper.Map<SuperviseOrderDto>(supervise);
|
|
|
- _capPublisher.Publish(EventNames.HotlineOrderSuperviseCourse, new PublishSuperviseDto()
|
|
|
+ //_capPublisher.Publish(EventNames.HotlineOrderSuperviseCourse, new PublishSuperviseDto()
|
|
|
+ //{
|
|
|
+ // Order = orderDto,
|
|
|
+ // Supervise = superviseDto,
|
|
|
+ // ClientGuid = ""
|
|
|
+ //});
|
|
|
+ await _provinceService.SendSuperviseProcessInfo(new PublishSuperviseDto()
|
|
|
{
|
|
|
Order = orderDto,
|
|
|
Supervise = superviseDto,
|
|
|
ClientGuid = ""
|
|
|
- });
|
|
|
+ }, HttpContext.RequestAborted);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1390,12 +1414,18 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
var superviseDto = _mapper.Map<SuperviseOrderDto>(supervise);
|
|
|
- _capPublisher.Publish(EventNames.HotlineOrderSuperviseCourse, new PublishSuperviseDto()
|
|
|
+ //_capPublisher.Publish(EventNames.HotlineOrderSuperviseCourse, new PublishSuperviseDto()
|
|
|
+ //{
|
|
|
+ // Order = orderDto,
|
|
|
+ // Supervise = superviseDto,
|
|
|
+ // ClientGuid = ""
|
|
|
+ //});
|
|
|
+ await _provinceService.SendSuperviseProcessInfo(new PublishSuperviseDto()
|
|
|
{
|
|
|
Order = orderDto,
|
|
|
Supervise = superviseDto,
|
|
|
ClientGuid = ""
|
|
|
- });
|
|
|
+ }, HttpContext.RequestAborted);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1421,12 +1451,18 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
var superviseDto = _mapper.Map<SuperviseOrderDto>(supervise);
|
|
|
- _capPublisher.Publish(EventNames.HotlineOrderSuperviseCourse, new PublishSuperviseDto()
|
|
|
+ //_capPublisher.Publish(EventNames.HotlineOrderSuperviseCourse, new PublishSuperviseDto()
|
|
|
+ //{
|
|
|
+ // Order = orderDto,
|
|
|
+ // Supervise = superviseDto,
|
|
|
+ // ClientGuid = ""
|
|
|
+ //});
|
|
|
+ await _provinceService.SendSuperviseProcessInfo(new PublishSuperviseDto()
|
|
|
{
|
|
|
Order = orderDto,
|
|
|
Supervise = superviseDto,
|
|
|
ClientGuid = ""
|
|
|
- });
|
|
|
+ }, HttpContext.RequestAborted);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1443,7 +1479,7 @@ public class OrderController : BaseController
|
|
|
.Includes(x => x.Order)
|
|
|
.FirstAsync(x => x.Id == id);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region 工单催办
|
|
@@ -1510,12 +1546,12 @@ public class OrderController : BaseController
|
|
|
if (urge != null)
|
|
|
{
|
|
|
var urgeDto = _mapper.Map<UrgeOrderDto>(urge);
|
|
|
- _capPublisher.Publish(EventNames.HotlineOrderSuperviseCourse, new PublishUrgeDto()
|
|
|
- {
|
|
|
- Order = orderDto,
|
|
|
- Urge = urgeDto,
|
|
|
- ClientGuid = ""
|
|
|
- });
|
|
|
+ //_capPublisher.Publish(EventNames.HotlineOrderSuperviseCourse, new PublishUrgeDto()
|
|
|
+ //{
|
|
|
+ // Order = orderDto,
|
|
|
+ // Urge = urgeDto,
|
|
|
+ // ClientGuid = ""
|
|
|
+ //});
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1577,7 +1613,7 @@ public class OrderController : BaseController
|
|
|
.Includes(x => x.Order)
|
|
|
.FirstAsync(x => x.Id == id);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region 工单办理
|
|
@@ -1685,7 +1721,7 @@ public class OrderController : BaseController
|
|
|
_sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
_sessionContext.OrgAreaCode, _sessionContext.OrgAreaName));
|
|
|
}
|
|
|
- var dto = _mapper.Map<OrderDto>(order!);
|
|
|
+ var dto = _mapper.Map<OrderDto>(order!);
|
|
|
|
|
|
var files = await _fileRepository.Queryable().Where(x => x.Key == dto.Id && x.Classify == "受理上传" && string.IsNullOrEmpty(x.FlowKey)).ToListAsync();
|
|
|
dto.Files = _mapper.Map<List<FileDto>>(files);
|
|
@@ -1700,7 +1736,7 @@ public class OrderController : BaseController
|
|
|
.Where(x => x.OrderId == id).Distinct().ToListAsync();
|
|
|
var repeatables = _mapper.Map<List<RepeatableEventDetailOpDto>>(repeatablesMap);
|
|
|
dto.RepeatableEventDetails = repeatables;
|
|
|
- return dto;
|
|
|
+ return dto;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -2081,8 +2117,11 @@ public class OrderController : BaseController
|
|
|
var order = await _orderRepository.GetAsync(sendBack.OrderId);
|
|
|
var sendBackDto = _mapper.Map<OrderSendBackDto>(sendBack);
|
|
|
var OrderDto = _mapper.Map<OrderDto>(order);
|
|
|
- _capPublisher.Publish(EventNames.HotlineOrderSendBackApplyed,
|
|
|
- new PublishOrderSendBackDto() { Order = OrderDto, SendBack = sendBackDto, ClientGuid = "" });
|
|
|
+ //_capPublisher.Publish(EventNames.HotlineOrderSendBackApplyed,
|
|
|
+ // new PublishOrderSendBackDto() { Order = OrderDto, SendBack = sendBackDto, ClientGuid = "" });
|
|
|
+ await _provinceService.GetCaseBackApply(
|
|
|
+ new PublishOrderSendBackDto { Order = OrderDto, SendBack = sendBackDto, ClientGuid = "" },
|
|
|
+ HttpContext.RequestAborted);
|
|
|
}
|
|
|
}
|
|
|
|