修改ESL的EDI生成

optimize
jianghaiqing 2 years ago
parent 60db2eeb28
commit ab74b16e30

@ -195,6 +195,9 @@ namespace Myshipping.Application.EDI.ESL
/// <returns></returns> /// <returns></returns>
public static string formatEdiStr(string fileType, string str) public static string formatEdiStr(string fileType, string str)
{ {
if (str == null)
str = string.Empty;
if (fileType == "txt") if (fileType == "txt")
{ {
return str.Replace("?", "??").Replace(":", "?:").Replace("+", "?+").Replace("'", "?'"); return str.Replace("?", "??").Replace(":", "?:").Replace("+", "?+").Replace("'", "?'");
@ -282,7 +285,7 @@ namespace Myshipping.Application.EDI.ESL
#endregion #endregion
#region 检查 #region 检查
public static string IsCreateESLEDI(MsESLEdiModel InttrEdi) public static string IsCreateESLEDI(EDIBaseModel InttrEdi)
{ {
var error = ""; var error = "";
@ -317,8 +320,9 @@ namespace Myshipping.Application.EDI.ESL
if (string.IsNullOrEmpty(headData.BLFRT)) if (string.IsNullOrEmpty(headData.BLFRT))
{ error = error + "<br />提单号:" + headData.MBLNO + " 付费方式不能为空"; } { error = error + "<br />提单号:" + headData.MBLNO + " 付费方式不能为空"; }
if (string.IsNullOrEmpty(headData.ESLLINECODE)) //2023-01-04 JHQ 跟韩训涛确认ESL这里不处理航线代码去掉不为空校验并在生成EDI报文时对ESL航线代码赋空串
{ error = error + "<br />提单号:" + headData.MBLNO + " ESL航线代码不能为空"; } //if (string.IsNullOrEmpty(headData.ESLLINECODE))
//{ error = error + "<br />提单号:" + headData.MBLNO + " ESL航线代码不能为空"; }
if (InttrEdi.filetype == "E") if (InttrEdi.filetype == "E")
{ {
@ -610,10 +614,12 @@ namespace Myshipping.Application.EDI.ESL
#endregion #endregion
#region 生成报文(订舱(InttrEdi.filetype=="B"),截单(InttrEdi.filetype=="E")) #region 生成报文(订舱(InttrEdi.filetype=="B"),截单(InttrEdi.filetype=="E"))
public static CommonWebApiResult CreateEdiESL(MsESLEdiModel InttrEdi) public static CommonWebApiResult CreateEdiESL(EDIBaseModel InttrEdi)
{ {
CommonWebApiResult result = new CommonWebApiResult { succ = false }; CommonWebApiResult result = new CommonWebApiResult { succ = false };
var filetype = "IFTMIN"; var filetype = "IFTMIN";
if (InttrEdi.filetype != "E") filetype = "IFTMBF"; if (InttrEdi.filetype != "E") filetype = "IFTMBF";
@ -628,8 +634,17 @@ namespace Myshipping.Application.EDI.ESL
var icount = 0; var icount = 0;
var bsno = ""; var bsno = "";
var isfirst = true; var isfirst = true;
foreach (var bill in InttrEdi.BSLIST) foreach (var bill in InttrEdi.BSLIST)
{ {
//2023-01-04 JHQ 跟韩训涛确认ESL这里不处理航线代码去掉不为空校验并在生成EDI报文时对ESL航线代码赋空串
if (bill.ESLLINECODE == null)
bill.ESLLINECODE = string.Empty;
//2022-01-04
if (InttrEdi.ForWarderName == null)
InttrEdi.ForWarderName = string.Empty;
if (isfirst) if (isfirst)
{ {
if (InttrEdi.filetype == "E") if (InttrEdi.filetype == "E")
@ -697,6 +712,8 @@ namespace Myshipping.Application.EDI.ESL
icount++; icount++;
var ISSUETYPE = ""; var ISSUETYPE = "";
/* 2022-01-04
if (bill.ISSUETYPE == "正本") if (bill.ISSUETYPE == "正本")
{ {
ISSUETYPE = "ORI"; ISSUETYPE = "ORI";
@ -706,7 +723,19 @@ namespace Myshipping.Application.EDI.ESL
ISSUETYPE = "TER"; ISSUETYPE = "TER";
} }
else ISSUETYPE = "EXP"; else ISSUETYPE = "EXP";
*/
if (bill.ISSUETYPE == "ORIGINAL")
{
//正本
ISSUETYPE = "ORI";
}
else if (bill.ISSUETYPE == "TELEX")
{
//电放
ISSUETYPE = "TER";
}
else ISSUETYPE = "EXP";
r.WriteLine("03:" + ISSUETYPE + ":" + bill.ISSUEPLACEID.Trim() + ":" + bill.ISSUEPLACE.Trim() + ":" + GetDateStr(bill.ISSUEDATE, "yyyyMMdd") + ":" + GetBillNum2(bill.NOBILL) + ":" + bill.PREPARDAT + ":" + bill.PAYABLEAT + "'"); r.WriteLine("03:" + ISSUETYPE + ":" + bill.ISSUEPLACEID.Trim() + ":" + bill.ISSUEPLACE.Trim() + ":" + GetDateStr(bill.ISSUEDATE, "yyyyMMdd") + ":" + GetBillNum2(bill.NOBILL) + ":" + bill.PREPARDAT + ":" + bill.PAYABLEAT + "'");

@ -57,6 +57,8 @@ using System.Linq.Expressions;
using Myshipping.Core.Extension; using Myshipping.Core.Extension;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using MathNet.Numerics.Distributions; using MathNet.Numerics.Distributions;
using Microsoft.IdentityModel.Tokens;
using Myshipping.Application.EDI.ESL;
namespace Myshipping.Application namespace Myshipping.Application
{ {
@ -3086,7 +3088,7 @@ namespace Myshipping.Application
else if (ediRouteEnum == EDIRouteEnum.ESL) else if (ediRouteEnum == EDIRouteEnum.ESL)
{ {
#region YT #region YT
string strCheck = TSLEdiHelper.IsCreateTSL(ediModel); string strCheck = ESLEdiHelper.IsCreateESLEDI(ediModel);
_logger.LogInformation($"调用SO(SI),校验:{strCheck},数据对象:{JsonConvert.SerializeObject(ediModel)}"); _logger.LogInformation($"调用SO(SI),校验:{strCheck},数据对象:{JsonConvert.SerializeObject(ediModel)}");
@ -3101,16 +3103,7 @@ namespace Myshipping.Application
} }
CommonWebApiResult currRlt = new CommonWebApiResult(); CommonWebApiResult currRlt = ESLEdiHelper.CreateEdiESL(ediModel);
if (model.sendType == "B")
{
currRlt = TSLEdiHelper.CreateEdiTSL(ediModel);
}
else if (model.sendType == "E")
{
currRlt = TSLEdiHelper.CreateEdiTSLSI(ediModel);
}
#endregion #endregion
result.succ = currRlt.succ; result.succ = currRlt.succ;

@ -4,6 +4,7 @@ using Furion.DynamicApiController;
using Furion.FriendlyException; using Furion.FriendlyException;
using Furion.JsonSerialization; using Furion.JsonSerialization;
using Furion.RemoteRequest; using Furion.RemoteRequest;
using Furion.RemoteRequest.Extensions;
using Mapster; using Mapster;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
@ -731,7 +732,18 @@ namespace Myshipping.Application
return result; return result;
} }
//private async Task<TaskManageOrderResultDto> Inner private async Task<TaskManageOrderResultDto> InnerRemoteDownOriginal(string url, Dictionary<string, string> dic)
{
var result = new TaskManageOrderResultDto();
//var t = await url.SetBody(new Dictionary<string, object> {
// { "Id", 1 },
// { "Name", "Furion"}
//}, "application/x-www-form-urlencoded");
return result;
}
} }
} }

Loading…
Cancel
Save