修改ESL的EDI生成

optimize
jianghaiqing 2 years ago
parent 60db2eeb28
commit ab74b16e30

@ -195,6 +195,9 @@ namespace Myshipping.Application.EDI.ESL
/// <returns></returns>
public static string formatEdiStr(string fileType, string str)
{
if (str == null)
str = string.Empty;
if (fileType == "txt")
{
return str.Replace("?", "??").Replace(":", "?:").Replace("+", "?+").Replace("'", "?'");
@ -282,7 +285,7 @@ namespace Myshipping.Application.EDI.ESL
#endregion
#region 检查
public static string IsCreateESLEDI(MsESLEdiModel InttrEdi)
public static string IsCreateESLEDI(EDIBaseModel InttrEdi)
{
var error = "";
@ -317,8 +320,9 @@ namespace Myshipping.Application.EDI.ESL
if (string.IsNullOrEmpty(headData.BLFRT))
{ error = error + "<br />提单号:" + headData.MBLNO + " 付费方式不能为空"; }
if (string.IsNullOrEmpty(headData.ESLLINECODE))
{ error = error + "<br />提单号:" + headData.MBLNO + " ESL航线代码不能为空"; }
//2023-01-04 JHQ 跟韩训涛确认ESL这里不处理航线代码去掉不为空校验并在生成EDI报文时对ESL航线代码赋空串
//if (string.IsNullOrEmpty(headData.ESLLINECODE))
//{ error = error + "<br />提单号:" + headData.MBLNO + " ESL航线代码不能为空"; }
if (InttrEdi.filetype == "E")
{
@ -610,10 +614,12 @@ namespace Myshipping.Application.EDI.ESL
#endregion
#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 };
var filetype = "IFTMIN";
if (InttrEdi.filetype != "E") filetype = "IFTMBF";
@ -628,8 +634,17 @@ namespace Myshipping.Application.EDI.ESL
var icount = 0;
var bsno = "";
var isfirst = true;
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 (InttrEdi.filetype == "E")
@ -697,6 +712,8 @@ namespace Myshipping.Application.EDI.ESL
icount++;
var ISSUETYPE = "";
/* 2022-01-04
if (bill.ISSUETYPE == "正本")
{
ISSUETYPE = "ORI";
@ -706,7 +723,19 @@ namespace Myshipping.Application.EDI.ESL
ISSUETYPE = "TER";
}
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 + "'");

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

@ -4,6 +4,7 @@ using Furion.DynamicApiController;
using Furion.FriendlyException;
using Furion.JsonSerialization;
using Furion.RemoteRequest;
using Furion.RemoteRequest.Extensions;
using Mapster;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
@ -731,7 +732,18 @@ namespace Myshipping.Application
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