修改SI回执任务更新

master
jianghaiqing 7 months ago
parent dddedce0d8
commit d9fbbd25b0

@ -8,6 +8,7 @@ using ICSharpCode.SharpZipLib.Zip;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Myshipping.Application.ConfigOption;
using Myshipping.Application.Entity;
using Myshipping.Application.Entity.TaskManagePlat;
using Myshipping.Application.Helper;
@ -18,6 +19,7 @@ using NPOI.OpenXmlFormats.Dml.Diagram;
using RabbitMQ.Client;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
@ -39,6 +41,8 @@ namespace Myshipping.Application
private readonly SqlSugarRepository<BookingOrder> _bookingOrderRepository;
private readonly SqlSugarRepository<BookingCtn> _bookingCtnRepository;
private readonly SqlSugarRepository<BusinessCompareDiffRecord> _businessCompareDiffRecordRepository;
private readonly SqlSugarRepository<TaskFileInfo> _taskFileRepository;
private readonly SqlSugarRepository<BookingFile> _bookingFileRepository;
private readonly ILogger<TaskManageSISubmittedService> _logger;
private readonly IBookingValueAddedService _bookingValueAddedService;
@ -55,6 +59,8 @@ namespace Myshipping.Application
SqlSugarRepository<BusinessCompareDiffRecord> businessCompareDiffRecordRepository,
SqlSugarRepository<BookingCtn> bookingCtnRepository,
SqlSugarRepository<TaskSISubmittedCtn> taskSISubmittedCtnRepository,
SqlSugarRepository<TaskFileInfo> taskFileRepository,
SqlSugarRepository<BookingFile> bookingFileRepository,
IBookingValueAddedService bookingValueAddedService, IDjyTenantParamService djyTenantParamService,
IBookingOrderService bookingOrderService)
{
@ -68,6 +74,9 @@ namespace Myshipping.Application
_bookingCtnRepository = bookingCtnRepository;
_taskSISubmittedCtnRepository = taskSISubmittedCtnRepository;
_bookingOrderService = bookingOrderService;
_taskFileRepository = taskFileRepository;
_bookingFileRepository = bookingFileRepository;
}
#region 获取截单回执详情
@ -496,6 +505,10 @@ namespace Myshipping.Application
ctn.CreatedTime = DateTime.Now;
ctn.CreatedUserId = UserManager.UserId;
ctn.CreatedUserName = UserManager.Name;
ctn.KINDPKGS = x.KINDPKGS;
if (string.IsNullOrWhiteSpace(x.KINDPKGS) && !string.IsNullOrWhiteSpace(siSubmitted.KINDPKGS))
ctn.KINDPKGS = siSubmitted.KINDPKGS;
if (x.WEIGHKGS.HasValue && x.KGS.HasValue)
ctn.TAREWEIGHT = x.WEIGHKGS.Value - x.KGS.Value;
@ -521,6 +534,10 @@ namespace Myshipping.Application
ctn.CreatedTime = DateTime.Now;
ctn.CreatedUserId = UserManager.UserId;
ctn.CreatedUserName = UserManager.Name;
ctn.KINDPKGS = x.KINDPKGS;
if (string.IsNullOrWhiteSpace(x.KINDPKGS) && !string.IsNullOrWhiteSpace(siSubmitted.KINDPKGS))
ctn.KINDPKGS = siSubmitted.KINDPKGS;
if (x.WEIGHKGS.HasValue && x.KGS.HasValue)
ctn.TAREWEIGHT = x.WEIGHKGS.Value - x.KGS.Value;
@ -546,6 +563,10 @@ namespace Myshipping.Application
ctn.CreatedTime = DateTime.Now;
ctn.CreatedUserId = UserManager.UserId;
ctn.CreatedUserName = UserManager.Name;
ctn.KINDPKGS = x.KINDPKGS;
if (string.IsNullOrWhiteSpace(x.KINDPKGS) && !string.IsNullOrWhiteSpace(siSubmitted.KINDPKGS))
ctn.KINDPKGS = siSubmitted.KINDPKGS;
if (x.WEIGHKGS.HasValue && x.KGS.HasValue)
ctn.TAREWEIGHT = x.WEIGHKGS.Value - x.KGS.Value;
@ -572,6 +593,8 @@ namespace Myshipping.Application
WEIGHKGS = x.WEIGHKGS,
CBM = x.CBM,
REMARK = "SI Add",
TAREWEIGHT = x.WEIGHKGS.HasValue && x.KGS.HasValue ? x.WEIGHKGS.Value - x.KGS.Value :0,
KINDPKGS = (string.IsNullOrWhiteSpace(x.KINDPKGS) && !string.IsNullOrWhiteSpace(siSubmitted.KINDPKGS))? siSubmitted.KINDPKGS: x.KINDPKGS,
});
}
@ -583,6 +606,29 @@ namespace Myshipping.Application
ctnList.ForEach(t => { if (t.REMARK.IndexOf("SI Add") < 0) ctnList.Remove(t); });
}
if(ctnList.Count > 0)
{
bkModel.ctnInputs = ctnList.Select(t => new BookingCtnDto
{
BILLID = t.BILLID,
CNTRNO = t.CNTRNO,
CTNALL = t.CTNALL,
CTNCODE = t.CTNCODE,
CTNNUM = t.CTNNUM.HasValue ? t.CTNNUM.Value : 0,
CBM = t.CBM.HasValue ? t.CBM.Value : 0,
KINDPKGS = t.KINDPKGS,
PKGS = t.PKGS.HasValue ? t.PKGS.Value : 0,
SEALNO = t.SEALNO,
KGS = t.KGS.HasValue ? t.KGS.Value : 0,
TAREWEIGHT = t.TAREWEIGHT.HasValue ? t.TAREWEIGHT.Value : 0,
WEIGHKGS = t.WEIGHKGS.HasValue ? t.WEIGHKGS.Value : 0,
WEIGHTYPE = t.WEIGHTYPE,
Id = t.Id,
}).ToList();
}
//更新订舱数据
var bkRlt = await _bookingOrderService.Save(bkModel);
@ -669,6 +715,34 @@ namespace Myshipping.Application
//处理附件
var opt = App.GetOptions<BookingAttachOptions>();
var dirAbs = opt.basePath;
if (string.IsNullOrEmpty(dirAbs))
{
dirAbs = App.WebHostEnvironment.WebRootPath;
}
string batchNo = IDGen.NextID().ToString();
var fileList = _taskFileRepository.AsQueryable().Filter(null,true).Where(a => a.TASK_PKID == taskPkId && a.TenantId == taskBase.TenantId.Value).ToList();
fileList.ForEach(file =>
{
if (file.FILE_CATEGORY == TaskFileCategoryEnum.SI_SUBMITTED.ToString())
{
var fileFullPath = Path.Combine(dirAbs, file.FILE_PATH);
if (File.Exists(fileFullPath))
{
//如果确认文件读取成功
var bookFilePath = FileAttachHelper.MoveFile(bkRlt.Id.ToString(), fileFullPath, batchNo
, false, null, true).GetAwaiter().GetResult();
//将格式单附件写入订舱的附件
SaveEDIFile(bkRlt.Id, bookFilePath, new System.IO.FileInfo(bookFilePath).Name, taskBase.TenantId.Value).GetAwaiter();
}
}
});
result.succ = true;
result.msg = "处理成功";
@ -751,6 +825,41 @@ namespace Myshipping.Application
}
#endregion
#region 异步写入附件表
/// <summary>
/// 异步写入附件表
/// </summary>
/// <param name="boookId">订舱ID</param>
/// <param name="FilePath">文件路径</param>
/// <param name="fileName">文件名</param>
/// <param name="tenantId">租户ID</param>
/// <param name="fileTypeCode">附件类型代码</param>
/// <param name="fileTypeName">附件类型名称</param>
/// <param name="moudle">附件模块代码</param>
/// <returns></returns>
[NonAction]
private async Task SaveEDIFile(long boookId, string FilePath, string fileName, long tenantId,
string fileTypeCode = "sifeed", string fileTypeName = "SI submitted", string moudle = "TaskSISubmitted")
{
/*
*/
//EDI文件
var bookFile = new BookingFile
{
Id = YitIdHelper.NextId(),
FileName = fileName,
FilePath = FilePath,
TypeCode = fileTypeCode,
TypeName = fileTypeName,
BookingId = boookId,
TenantId = tenantId,
Moudle = moudle
};
await _bookingFileRepository.InsertAsync(bookFile);
}
#endregion
/// <summary>
/// 获取SI反馈信息

@ -647,7 +647,7 @@ namespace Myshipping.Application
{
var ediCtnList = _cache.GetAllCodeCtn().GetAwaiter().GetResult();
info.Main.SIFeedBack.ContaList.ForEach(async ctn =>
info.Main.SIFeedBack.ContaList.ForEach(ctn =>
{
var contaInfo = ctn.Adapt<TaskSISubmittedCtn>();
@ -679,13 +679,11 @@ namespace Myshipping.Application
});
}
/*
var siService = _namedtaskSISubmittedServiceProvider
.GetService<ITransient>(nameof(TaskManageSISubmittedService));
await siService.ProcessSISubmitted(taskSISubmitted.TASK_ID);
*/
}
#endregion

Loading…
Cancel
Save