|
|
|
@ -78,7 +78,9 @@ namespace Myshipping.Application
|
|
|
|
|
private readonly SqlSugarRepository<TaskBillFeeDetailInfo> _taskBillFeeDetailInfoRepository;
|
|
|
|
|
private readonly SqlSugarRepository<TaskFileInfo> _taskFileInfoRepository;
|
|
|
|
|
private readonly SqlSugarRepository<TaskEmailInfo> _taskEmailInfoRepository;
|
|
|
|
|
private readonly SqlSugarRepository<TaskVGMFeedBackInfo> _taskVGMFeedBackInfoRepository;
|
|
|
|
|
private readonly SqlSugarRepository<TaskVGMInfo> _taskVGMInfoRepository;
|
|
|
|
|
private readonly SqlSugarRepository<TaskVGMCtnInfo> _taskVGMCtnInfoRepository;
|
|
|
|
|
private readonly SqlSugarRepository<BookingCtnVGM> _bookingCtnVGMRepository;
|
|
|
|
|
private readonly SqlSugarRepository<SysUser> _sysUserRepository;
|
|
|
|
|
private readonly SqlSugarRepository<TaskStatManageInfo> _taskStatManageInfoRepository;
|
|
|
|
|
private readonly SqlSugarRepository<TaskOriginalDownloadHisInfo> _taskOriginalDownloadHisInfoRepository;
|
|
|
|
@ -113,6 +115,7 @@ namespace Myshipping.Application
|
|
|
|
|
|
|
|
|
|
private readonly INamedServiceProvider<IBookingOrderService> _namedBookingOrderServiceProvider;
|
|
|
|
|
private readonly INamedServiceProvider<ITaskManageRollingNominationService> _namedRollingNominationServiceProvider;
|
|
|
|
|
private readonly IBookingValueAddedService _bookingValueAddedService;
|
|
|
|
|
|
|
|
|
|
const string CONST_WEB_ACCOUNT_TYPE = "CmaWeb";
|
|
|
|
|
const string CONST_BOOK_ORIGINAL_DOWN_URL_CODE = "bookOriginalDownUrl";
|
|
|
|
@ -131,7 +134,8 @@ namespace Myshipping.Application
|
|
|
|
|
SqlSugarRepository<TaskBillFeeDetailInfo> taskBillFeeDetailInfoRepository,
|
|
|
|
|
SqlSugarRepository<TaskFileInfo> taskFileInfoRepository,
|
|
|
|
|
SqlSugarRepository<TaskEmailInfo> taskEmailInfoRepository,
|
|
|
|
|
SqlSugarRepository<TaskVGMFeedBackInfo> taskVGMFeedBackInfoRepository,
|
|
|
|
|
SqlSugarRepository<TaskVGMInfo> taskVGMInfoRepository,
|
|
|
|
|
SqlSugarRepository<TaskVGMCtnInfo> taskVGMCtnInfoRepository,
|
|
|
|
|
SqlSugarRepository<SysUser> sysUserRepository,
|
|
|
|
|
SqlSugarRepository<TaskStatManageInfo> taskStatManageInfoRepository,
|
|
|
|
|
SqlSugarRepository<TaskOriginalDownloadHisInfo> taskOriginalDownloadHisInfoRepository,
|
|
|
|
@ -154,11 +158,13 @@ namespace Myshipping.Application
|
|
|
|
|
SqlSugarRepository<TaskRollingNominationInfo> taskRollingNominationInfoRepository,
|
|
|
|
|
SqlSugarRepository<TaskRollingNominationShipInfo> taskRollingNominationShipInfoRepository,
|
|
|
|
|
SqlSugarRepository<TaskRollingNominationDetailInfo> taskRollingNominationDetailInfoRepository,
|
|
|
|
|
SqlSugarRepository<BookingCtnVGM> bookingCtnVGMRepository,
|
|
|
|
|
INamedServiceProvider<IBookingOrderService> namedBookingOrderServiceProvider,
|
|
|
|
|
IDjyWebsiteAccountConfigService webAccountConfig,
|
|
|
|
|
ISysCacheService cache,
|
|
|
|
|
ISysDataUserMenu sysDataUserMenuService,
|
|
|
|
|
INamedServiceProvider<ITaskManageRollingNominationService> namedRollingNominationServiceProvider,
|
|
|
|
|
IBookingValueAddedService bookingValueAddedService,
|
|
|
|
|
ILogger<BookingOrderService> logger)
|
|
|
|
|
{
|
|
|
|
|
_taskBaseInfoRepository = taskBaseInfoRepository;
|
|
|
|
@ -167,7 +173,8 @@ namespace Myshipping.Application
|
|
|
|
|
_taskBillFeeDetailInfoRepository = taskBillFeeDetailInfoRepository;
|
|
|
|
|
_taskFileInfoRepository = taskFileInfoRepository;
|
|
|
|
|
_taskEmailInfoRepository = taskEmailInfoRepository;
|
|
|
|
|
_taskVGMFeedBackInfoRepository = taskVGMFeedBackInfoRepository;
|
|
|
|
|
_taskVGMInfoRepository = taskVGMInfoRepository;
|
|
|
|
|
_taskVGMCtnInfoRepository = taskVGMCtnInfoRepository;
|
|
|
|
|
_sysUserRepository = sysUserRepository;
|
|
|
|
|
_taskStatManageInfoRepository = taskStatManageInfoRepository;
|
|
|
|
|
_taskOriginalDownloadHisInfoRepository = taskOriginalDownloadHisInfoRepository;
|
|
|
|
@ -190,9 +197,11 @@ namespace Myshipping.Application
|
|
|
|
|
_taskRollingNominationInfoRepository = taskRollingNominationInfoRepository;
|
|
|
|
|
_taskRollingNominationShipInfoRepository = taskRollingNominationShipInfoRepository;
|
|
|
|
|
_taskRollingNominationDetailInfoRepository = taskRollingNominationDetailInfoRepository;
|
|
|
|
|
_bookingCtnVGMRepository = bookingCtnVGMRepository;
|
|
|
|
|
|
|
|
|
|
_namedBookingOrderServiceProvider = namedBookingOrderServiceProvider;
|
|
|
|
|
_namedRollingNominationServiceProvider = namedRollingNominationServiceProvider;
|
|
|
|
|
_bookingValueAddedService = bookingValueAddedService;
|
|
|
|
|
|
|
|
|
|
_sysDataUserMenuService = sysDataUserMenuService;
|
|
|
|
|
|
|
|
|
@ -642,29 +651,7 @@ namespace Myshipping.Application
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region VGM反馈入库
|
|
|
|
|
//VGM反馈入库
|
|
|
|
|
if (info.Main.VGMFeedBackList != null && info.Main.VGMFeedBackList.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
info.Main.VGMFeedBackList.ForEach(async vgm =>
|
|
|
|
|
{
|
|
|
|
|
var vgmInfo = vgm.Adapt<TaskVGMFeedBackInfo>();
|
|
|
|
|
|
|
|
|
|
vgmInfo.PK_ID = IDGen.NextID().ToString();
|
|
|
|
|
vgmInfo.TASK_PKID = taskInfo.PK_ID;
|
|
|
|
|
|
|
|
|
|
vgmInfo.CreatedTime = taskInfo.CreatedTime;
|
|
|
|
|
vgmInfo.UpdatedTime = taskInfo.CreatedTime;
|
|
|
|
|
|
|
|
|
|
vgmInfo.CreatedUserId = taskInfo.CreatedUserId;
|
|
|
|
|
vgmInfo.CreatedUserName = taskInfo.CreatedUserName;
|
|
|
|
|
vgmInfo.TenantId = taskInfo.TenantId;
|
|
|
|
|
vgmInfo.TenantName = taskInfo.TenantName;
|
|
|
|
|
|
|
|
|
|
await _taskVGMFeedBackInfoRepository.InsertAsync(vgmInfo);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 派车任务
|
|
|
|
|
if (info.Main.TaskType == TaskBaseTypeEnum.TRUCK_DISPATCH)
|
|
|
|
@ -763,6 +750,149 @@ namespace Myshipping.Application
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region VGM回执或VGM未提交提醒
|
|
|
|
|
if (info.Main.TaskType == TaskBaseTypeEnum.VGM_FEEDBACK
|
|
|
|
|
|| info.Main.TaskType == TaskBaseTypeEnum.VGM_MISSING)
|
|
|
|
|
{
|
|
|
|
|
List<TaskVGMInfo> vgmList = new List<TaskVGMInfo>();
|
|
|
|
|
|
|
|
|
|
info.Main.VGMFeedBack.ForEach(p =>
|
|
|
|
|
{
|
|
|
|
|
//异步写入
|
|
|
|
|
var vgmInfo = p.Adapt<TaskVGMInfo>();
|
|
|
|
|
|
|
|
|
|
vgmInfo.PK_ID = IDGen.NextID().ToString();
|
|
|
|
|
vgmInfo.TASK_ID = taskInfo.PK_ID;
|
|
|
|
|
|
|
|
|
|
vgmInfo.CreatedTime = taskInfo.CreatedTime;
|
|
|
|
|
vgmInfo.UpdatedTime = taskInfo.CreatedTime;
|
|
|
|
|
|
|
|
|
|
vgmInfo.CreatedUserId = taskInfo.CreatedUserId;
|
|
|
|
|
vgmInfo.CreatedUserName = taskInfo.CreatedUserName;
|
|
|
|
|
vgmInfo.TenantId = taskInfo.TenantId;
|
|
|
|
|
vgmInfo.TenantName = taskInfo.TenantName;
|
|
|
|
|
|
|
|
|
|
_taskVGMInfoRepository.InsertAsync(vgmInfo);
|
|
|
|
|
|
|
|
|
|
vgmList.Add(vgmInfo);
|
|
|
|
|
|
|
|
|
|
if (p.CtnList != null && p.CtnList.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
//异步写入集装箱
|
|
|
|
|
p.CtnList.ForEach(ctn =>
|
|
|
|
|
{
|
|
|
|
|
var vgmCtnInfo = ctn.Adapt<TaskVGMCtnInfo>();
|
|
|
|
|
|
|
|
|
|
vgmCtnInfo.PK_ID = IDGen.NextID().ToString();
|
|
|
|
|
vgmCtnInfo.P_ID = vgmInfo.PK_ID;
|
|
|
|
|
|
|
|
|
|
vgmCtnInfo.CreatedTime = taskInfo.CreatedTime;
|
|
|
|
|
vgmCtnInfo.UpdatedTime = taskInfo.CreatedTime;
|
|
|
|
|
|
|
|
|
|
vgmCtnInfo.CreatedUserId = taskInfo.CreatedUserId;
|
|
|
|
|
vgmCtnInfo.CreatedUserName = taskInfo.CreatedUserName;
|
|
|
|
|
vgmCtnInfo.TenantId = taskInfo.TenantId;
|
|
|
|
|
vgmCtnInfo.TenantName = taskInfo.TenantName;
|
|
|
|
|
|
|
|
|
|
_taskVGMCtnInfoRepository.InsertAsync(vgmCtnInfo);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var mblNoList = info.Main.VGMFeedBack.Select(p => p.MBlNo).Distinct().ToList();
|
|
|
|
|
/*
|
|
|
|
|
1、入库完检索对应的订舱信息。
|
|
|
|
|
2、推送订舱相关的状态。
|
|
|
|
|
*/
|
|
|
|
|
var bookingList = _bookingOrderRepository.AsQueryable().Filter(null, true)
|
|
|
|
|
.Where(x => mblNoList.Contains(x.MBLNO) && (x.ParentId.HasValue == false || x.ParentId.Value < 1)
|
|
|
|
|
&& x.IsDeleted == false && x.TenantId == taskInfo.TenantId).ToList();
|
|
|
|
|
|
|
|
|
|
if (bookingList.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
vgmList.ForEach(vgmInfo =>
|
|
|
|
|
{
|
|
|
|
|
var bookingInfo = bookingList.FirstOrDefault(a =>
|
|
|
|
|
a.MBLNO.Equals(vgmInfo.MBL_NO, StringComparison.OrdinalIgnoreCase));
|
|
|
|
|
|
|
|
|
|
//推送状态
|
|
|
|
|
var pushModel = new ModifyServiceProjectStatusDto
|
|
|
|
|
{
|
|
|
|
|
BookingId = bookingInfo.Id,
|
|
|
|
|
SourceType = TrackingSourceTypeEnum.AUTO,
|
|
|
|
|
StatusCodes = new List<ModifyServiceProjectStatusDetailDto> {
|
|
|
|
|
new ModifyServiceProjectStatusDetailDto { StatusCode = "VGMCG" } }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var saveStatusRlt = _bookingValueAddedService.SaveServiceStatus(pushModel).GetAwaiter().GetResult();
|
|
|
|
|
|
|
|
|
|
_logger.LogInformation("请求JSON={json} 异步推送服务状态完成,结果={rlt}", JSON.Serialize(pushModel), JSON.Serialize(saveStatusRlt));
|
|
|
|
|
|
|
|
|
|
var vgmEntity = _taskVGMInfoRepository.AsQueryable()
|
|
|
|
|
.First(x => x.PK_ID == vgmInfo.PK_ID);
|
|
|
|
|
|
|
|
|
|
vgmEntity.BOOKING_ID = bookingInfo.Id;
|
|
|
|
|
|
|
|
|
|
_taskVGMInfoRepository.AsUpdateable(vgmEntity)
|
|
|
|
|
.UpdateColumns(x => x.BOOKING_ID).ExecuteCommandAsync();
|
|
|
|
|
|
|
|
|
|
var ctnVGMList = _bookingCtnVGMRepository.AsQueryable().Filter(null, true)
|
|
|
|
|
.Where(x => x.BILLID == bookingInfo.Id && x.IsDeleted == false && x.TenantId == taskInfo.TenantId).ToList();
|
|
|
|
|
|
|
|
|
|
var bookCtnList = _bookingOrderContaRepository.AsQueryable().Filter(null, true)
|
|
|
|
|
.Where(x => x.BILLID == bookingInfo.Id && x.IsDeleted == false && x.TenantId == taskInfo.TenantId).ToList();
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
foreach (var ctn in info.Main.VGMFeedBack.CtnList)
|
|
|
|
|
{
|
|
|
|
|
var bookCtnVGM = ctnVGMList.FirstOrDefault(t => t.CNTRNO.Equals(ctn.CntrNo, StringComparison.OrdinalIgnoreCase));
|
|
|
|
|
var bookCtn = bookCtnList.FirstOrDefault(t => t.CNTRNO.Equals(ctn.CntrNo, StringComparison.OrdinalIgnoreCase));
|
|
|
|
|
|
|
|
|
|
if (bookCtnVGM != null)
|
|
|
|
|
{
|
|
|
|
|
//更新
|
|
|
|
|
bookCtnVGM.UpdatedTime = taskInfo.CreatedTime;
|
|
|
|
|
bookCtnVGM.UpdatedUserId = taskInfo.CreatedUserId;
|
|
|
|
|
bookCtnVGM.UpdatedUserName = taskInfo.CreatedUserName;
|
|
|
|
|
|
|
|
|
|
await _bookingCtnVGMRepository.AsUpdateable(bookCtnVGM).UpdateColumns(x => new
|
|
|
|
|
{
|
|
|
|
|
x.VGM_WEIGHT,
|
|
|
|
|
x.VGM_WEIGHT_UNIT,
|
|
|
|
|
x.VGM_METHOD,
|
|
|
|
|
x.IS_MATCH,
|
|
|
|
|
x.UpdatedTime,
|
|
|
|
|
x.UpdatedUserId,
|
|
|
|
|
x.UpdatedUserName
|
|
|
|
|
}).ExecuteCommandAsync();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//写入
|
|
|
|
|
var bookingCtnVGM = new BookingCtnVGM
|
|
|
|
|
{
|
|
|
|
|
CNTRNO = ctn.CntrNo,
|
|
|
|
|
VGM_WEIGHT = ctn.VGMWeight,
|
|
|
|
|
VGM_WEIGHT_UNIT = ctn.VGMWeightUnit,
|
|
|
|
|
VGM_METHOD = ctn.VGMWeightMethod,
|
|
|
|
|
IS_MATCH = bookCtn != null,
|
|
|
|
|
CreatedTime = taskInfo.CreatedTime,
|
|
|
|
|
UpdatedTime = taskInfo.CreatedTime,
|
|
|
|
|
CreatedUserId = taskInfo.CreatedUserId,
|
|
|
|
|
CreatedUserName = taskInfo.CreatedUserName,
|
|
|
|
|
TenantId = taskInfo.TenantId,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
await _bookingCtnVGMRepository.InsertAsync(bookingCtnVGM);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region Rolling Nomination(预甩货通知)
|
|
|
|
|
if (info.Main.TaskType == TaskBaseTypeEnum.ROLLING_NOMINATION || info.Main.TaskType == TaskBaseTypeEnum.TRANSFER_NOMINATION)
|
|
|
|
|
{
|
|
|
|
@ -4069,7 +4199,7 @@ namespace Myshipping.Application
|
|
|
|
|
|
|
|
|
|
if (taskInfo.TASK_TYPE != TaskBusiTypeEnum.VGM_COMPARE.ToString())
|
|
|
|
|
throw Oops.Oh($"当前任务类型不是{TaskBusiTypeEnum.VGM_COMPARE.GetDescription()}");
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
var vgmList = _taskVGMFeedBackInfoRepository.AsQueryable().Where(t => t.TASK_PKID == taskInfo.PK_ID)
|
|
|
|
|
.ToList();
|
|
|
|
|
|
|
|
|
@ -4189,7 +4319,7 @@ namespace Myshipping.Application
|
|
|
|
|
}).ToList();
|
|
|
|
|
|
|
|
|
|
model.vgmCompareList = list2;
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
@ -4238,6 +4368,7 @@ namespace Myshipping.Application
|
|
|
|
|
if (bookOrderList.Any(t => t.ctn.Id > 0))
|
|
|
|
|
orderCtnList = bookOrderList.Select(t => t.ctn).ToList();
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
var contaList = _taskVGMFeedBackInfoRepository.AsQueryable().Where(t => t.TASK_PKID == taskInfo.PK_ID).ToList();
|
|
|
|
|
|
|
|
|
|
var si2orderCtnList = contaList.GroupJoin(orderCtnList, l => l.CONTA_NO?.Trim(), r => r.CNTRNO?.Trim(), (l, r) => {
|
|
|
|
@ -4320,7 +4451,7 @@ namespace Myshipping.Application
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
result.succ = true;
|
|
|
|
|
result.msg = "更新订舱成功";
|
|
|
|
|
}
|
|
|
|
|