|
|
|
@ -27,7 +27,7 @@ namespace DS.WMS.Core.Op.Method
|
|
|
|
|
{
|
|
|
|
|
public class SeaExportCommonService : ISeaExportCommonService
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
private static readonly string EdiFilePath = "XHZ";
|
|
|
|
|
private readonly IServiceProvider _serviceProvider;
|
|
|
|
|
private readonly ISqlSugarClient db;
|
|
|
|
|
private readonly IUser user;
|
|
|
|
@ -127,6 +127,38 @@ namespace DS.WMS.Core.Op.Method
|
|
|
|
|
return ediCode;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取港口代码
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="Id"></param>
|
|
|
|
|
/// <param name="module"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public string GetPortEDICode(long Id, string module = "")
|
|
|
|
|
{
|
|
|
|
|
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
|
|
|
|
|
string ediCode = string.Empty;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var codeEdi = tenantDb.Queryable<MappingPort>().First(v => v.LinkId == Id && v.Module == module && v.Status == StatusEnum.Enable);
|
|
|
|
|
if (codeEdi != null)
|
|
|
|
|
{
|
|
|
|
|
ediCode = codeEdi.MapCode.Trim();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(ediCode))
|
|
|
|
|
{
|
|
|
|
|
var codeEntity = tenantDb.Queryable<CodePort>().First(v => v.Id == Id);
|
|
|
|
|
if (codeEntity != null && !string.IsNullOrEmpty(codeEntity.EdiCode))
|
|
|
|
|
{
|
|
|
|
|
ediCode = codeEntity.EdiCode.Trim();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ediCode = "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return ediCode;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取船公司EDI代码
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="Id"></param>
|
|
|
|
@ -600,13 +632,13 @@ namespace DS.WMS.Core.Op.Method
|
|
|
|
|
// if (gljEdiCarrierSetList.Select(x => x.Value).ToList().Contains(order.Carrier))
|
|
|
|
|
// {
|
|
|
|
|
// //租户参数-港联捷下货纸代号
|
|
|
|
|
// var paraXHZ = tenantDb.Queryable<CodeThirdParty>().Where(v => v.Status == StatusEnum.Enable && v.CustomerId == req.YardId && v.AccountType == "CODE_GLJ_XHZ").First();
|
|
|
|
|
// if (paraXHZ == null || string.IsNullOrEmpty(paraXHZ.ItemCode))
|
|
|
|
|
// var paraXHZ = db.Queryable<SysConfig>().Where(v => v.Status == StatusEnum.Enable && v.TenantId == long.Parse(user.TenantId) && v.Code == "CODE_GLJ_XHZ").First();
|
|
|
|
|
// if (paraXHZ == null || string.IsNullOrEmpty(paraXHZ.Value))
|
|
|
|
|
// {
|
|
|
|
|
// return DataResult<string>.Failed($"{order.TenantName} 港联捷场站 下货纸代号未找到或配置有误");
|
|
|
|
|
// return DataResult<string>.Failed($"港联捷场站 下货纸代号未找到或配置有误");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// var ediFileName = $"{paraXHZ.ItemCode}_{order.MBLNO}_{DateTime.Now.Ticks}.txt";
|
|
|
|
|
// var ediFileName = $"{paraXHZ.Value}_{order.MBLNO}_{DateTime.Now.Ticks}.txt";
|
|
|
|
|
// var ediFileRela = Path.Combine(relativePath, EdiFilePath, ediFileName);
|
|
|
|
|
// var ediFileAbs = Path.Combine(ediPathAbs, ediFileName);
|
|
|
|
|
// var ediSettints = GetAllEdiSet();
|
|
|
|
@ -625,21 +657,21 @@ namespace DS.WMS.Core.Op.Method
|
|
|
|
|
// sbData.AppendLine($"01:{order.Vessel}:{order.Voyno}"); //船名 航次
|
|
|
|
|
|
|
|
|
|
// // 12:提单号:中转港:目的港:货代代码:船公司:HPL参考号:特殊说明
|
|
|
|
|
// sbData.AppendLine($"12:{order.MBLNO}:{order.TRANSPORTID}:{GetMappingPortDischarge(order.PORTDISCHARGEID, "XHZ_GLJ")}:{paraXHZ.ItemCode}:{GetCarrierEDICode(order.CARRIERID, "XHZ_GLJ")}:{(order.CARRIERID == hlcCode ? order.CUSTNO : "")}:{ExchangeStr(order.YARDREMARK)}"); //主提单 中转港代码 目的港代码 货代代码 船公司 HPL参考号 备注
|
|
|
|
|
// sbData.AppendLine($"12:{order.MBLNO}:{order.Transport}:{GetDischargePortEDICode(order.DischargePortId, "XHZ_GLJ")}:{paraXHZ.Value}:{GetCarrierEDICode(order.CarrierId, "XHZ_GLJ")}:{(order.CARRIERID == hlcCode ? order.CustomerNo : "")}:{ExchangeStr(order.YARDREMARK)}"); //主提单 中转港代码 目的港代码 货代代码 船公司 HPL参考号 备注
|
|
|
|
|
// //2021-8-17,报文中不能体现英文字符①【:】②【,】,以空格代替
|
|
|
|
|
// /*
|
|
|
|
|
// * 表象:QDAC064651 客户毛重28600 EDI进来28
|
|
|
|
|
// 港联捷回复:是前面货名太长,后面内容截断了,每行不超过255字符就行
|
|
|
|
|
// 解决方案:每行不超过255,品名只取前100就行
|
|
|
|
|
// */
|
|
|
|
|
// var despStr = ExchangeStr(order.Description.Replace(":", " ").Replace(",", " ")).Replace("\r\n", " ").Replace("\n", " ");
|
|
|
|
|
// var despStr = XiahuozhiHelpler.ExchangeStr(order.Description.Replace(":", " ").Replace(",", " ")).Replace("\r\n", " ").Replace("\n", " ");
|
|
|
|
|
// if (despStr.Length > 100)
|
|
|
|
|
// {
|
|
|
|
|
// despStr = despStr.Substring(0, 100);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// //22:货名:件数:包装:重量:体积:危品标志:危品等级:危规号:副危品等级:副危规号:海污:温度:通风:湿度
|
|
|
|
|
// sbData.AppendLine($"22:{despStr}:{order.PKGS}:{order.KINDPKGS}:{order.KGS}:{order.CBM}:{(order.CARGOID == "D" ? "Y" : "N")}:{order.DCLASS}:{order.DUNNO}::::{order.TEMPSET}:{order.REEFERF}:{order.HUMIDITY}");//货名 件数 包装代码 总重量 总体积 危品标志 危品等级 危规号 副危品等级 副危规号 温度 通风度 湿度
|
|
|
|
|
// sbData.AppendLine($"22:{despStr}:{order.PKGS}:{order.KindPkgs}:{order.KGS}:{order.CBM}:{(order.CargoId == "D" ? "Y" : "N")}:{order.DangerClass}:{order.DangerNo}::::{order.TemperatureSet}:{order.ReeferQuantity}:{order.Humidity}");//货名 件数 包装代码 总重量 总体积 危品标志 危品等级 危规号 副危品等级 副危规号 温度 通风度 湿度
|
|
|
|
|
|
|
|
|
|
// var ctnCodes = (await GetAllCodeCtn()).Select(x => new { x.Code, x.Size }).ToList();
|
|
|
|
|
// var ctnEdiList = (await GetAllMappingCtn()).AsQueryable().Where(x => x.Module == "XHZ_GLJ").ToList();
|
|
|
|
@ -658,10 +690,10 @@ namespace DS.WMS.Core.Op.Method
|
|
|
|
|
// return DataResult<string>.Failed($"箱型({ctn.CtnAll})不匹配(EDI类型:XHZ_GLJ),无法发送下货纸,请联系管理员");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// sbData.AppendLine($"13:{(order.ISCONTAINERSOC.HasValue && order.ISCONTAINERSOC.Value ? "SOC" : GetCtnForCarrier(order.CARRIERID, "XHZ_GLJ", dictData))}:{ctnFind.Size}:{ctnEdi.MapCode}:{ctn.CTNNUM}:{ExchangeStr(ctn.REMARK)}:N");//箱经营人代码 尺寸 箱型 箱数 备注 加重箱
|
|
|
|
|
// sbData.AppendLine($"13:{(order.IsContainerSoc.HasValue && order.IsContainerSoc.Value ? "SOC" : GetCtnForCarrier(order.CarrierId, "XHZ_GLJ"))}:{ctnFind.Size}:{ctnEdi.MapCode}:{ctn.CtnNum}:{XiahuozhiHelpler.ExchangeStr(ctn.Note)}:N");//箱经营人代码 尺寸 箱型 箱数 备注 加重箱
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// Log.Information($"生成下货纸报文:{sbData.ToString()}");
|
|
|
|
|
// _logger.Info($"生成下货纸报文:{sbData.ToString()}");
|
|
|
|
|
// File.WriteAllText(ediFileAbs, sbData.ToString());
|
|
|
|
|
|
|
|
|
|
// //挂载附件
|
|
|
|
|