|
@@ -4,6 +4,7 @@ using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
using Hotline.DataSharing.Province.Notifications;
|
|
|
+using Hotline.File;
|
|
|
using Hotline.Orders;
|
|
|
using Hotline.Settings;
|
|
|
using MediatR;
|
|
@@ -17,16 +18,20 @@ namespace Hotline.Application.Handlers.Order
|
|
|
private readonly IOrderRepository _orderRepository;
|
|
|
private readonly IRepository<OrderSupervise> _orderSuperviseRepository;
|
|
|
private readonly ISystemOrganizeRepository _organizeRepository;
|
|
|
+ private readonly IFileRepository _fileRepository;
|
|
|
|
|
|
- public ProvinceOrderSuperviseNotifyHandler(
|
|
|
+ public ProvinceOrderSuperviseNotifyHandler(
|
|
|
IOrderRepository orderRepository,
|
|
|
IRepository<OrderSupervise> orderSuperviseRepository,
|
|
|
- ISystemOrganizeRepository organizeRepository)
|
|
|
+ ISystemOrganizeRepository organizeRepository,
|
|
|
+ IFileRepository fileRepository)
|
|
|
{
|
|
|
_orderRepository = orderRepository;
|
|
|
_orderSuperviseRepository = orderSuperviseRepository;
|
|
|
_organizeRepository = organizeRepository;
|
|
|
- }
|
|
|
+ _fileRepository = fileRepository;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
/// <summary>Handles a notification</summary>
|
|
|
/// <param name="notification">The notification</param>
|
|
@@ -34,21 +39,33 @@ namespace Hotline.Application.Handlers.Order
|
|
|
public async Task Handle(ProvinceOrderSuperviseNotify notification, CancellationToken cancellationToken)
|
|
|
{
|
|
|
var dto = notification.ProvinceOrderSuperviseDto;
|
|
|
- var order = await _orderRepository.Queryable().Where(x => x.ProvinceNo == dto.CaseSerial).FirstAsync();
|
|
|
- var org = await _organizeRepository.Queryable().Where(x => x.Name == dto.SuperviseRsvDept).FirstAsync();
|
|
|
- var model = new OrderSupervise
|
|
|
+ var files = notification.Files;
|
|
|
+ var order = await _orderRepository.Queryable().Where(x => x.ProvinceNo == dto.CaseSerial).FirstAsync(cancellationToken);
|
|
|
+ var org = await _organizeRepository.Queryable().Where(x => x.Name == dto.SuperviseRsvDept).FirstAsync(cancellationToken);
|
|
|
+ var orderSupervise = await _orderSuperviseRepository.GetAsync(x => x.SuperviseSerial == dto.SuperviseSerial);
|
|
|
+ if (orderSupervise is null)
|
|
|
{
|
|
|
- OrderId = order.Id,
|
|
|
- ReplyLimitTime = dto.SuperviseReturnDate,
|
|
|
- OrgId = org.Id,
|
|
|
- OrgName = org.Name,
|
|
|
- LaunchOrgName = dto.SuperviseSendDept,
|
|
|
- State = 0,
|
|
|
- ApplyContent = dto.SuperviseContent,
|
|
|
- CrUser = dto.SupervisePerson,
|
|
|
- SuperviseSerial = dto.SuperviseSerial
|
|
|
- };
|
|
|
- await _orderSuperviseRepository.AddAsync(model, cancellationToken);
|
|
|
+ var model = new OrderSupervise
|
|
|
+ {
|
|
|
+ OrderId = order.Id,
|
|
|
+ ReplyLimitTime = dto.SuperviseReturnDate,
|
|
|
+ OrgId = org.Id,
|
|
|
+ OrgName = org.Name,
|
|
|
+ LaunchOrgName = dto.SuperviseSendDept,
|
|
|
+ State = 0,
|
|
|
+ ApplyContent = dto.SuperviseContent,
|
|
|
+ CrUser = dto.SupervisePerson,
|
|
|
+ SuperviseSerial = dto.SuperviseSerial
|
|
|
+ };
|
|
|
+ model.InitId();
|
|
|
+ if(files != null && files.Any()) model.FileJson = await _fileRepository.AddFileAsync(files, model.Id, cancellationToken);
|
|
|
+ await _orderSuperviseRepository.AddAsync(model, cancellationToken);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ if (files != null && files.Any()) orderSupervise.FileJson = await _fileRepository.AddFileAsync(files, orderSupervise.Id, cancellationToken);
|
|
|
+ await _orderSuperviseRepository.UpdateAsync(orderSupervise, cancellationToken);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|