|
|
|
@ -108,8 +108,8 @@ namespace Myshipping.Application.EDI
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//目的地,2024-5-9,衣国豪需求,由目的港改为目的地
|
|
|
|
|
var mapPort = mappingPort.FirstOrDefault(x => x.Module == "DjyCustBooking" && x.CarrierCode == "COSCO" && x.Code == custOrder.DESTINATIONCODE);
|
|
|
|
|
if (mapPort == null)
|
|
|
|
|
var mapDestination = mappingPort.FirstOrDefault(x => x.Module == "DjyCustBooking" && x.CarrierCode == "COSCO" && x.Code == custOrder.DESTINATIONCODE);
|
|
|
|
|
if (mapDestination == null)
|
|
|
|
|
{
|
|
|
|
|
return new KeyValuePair<bool, string>(false, $"未找到目的地映射信息:{custOrder.DESTINATIONCODE}");
|
|
|
|
|
}
|
|
|
|
@ -126,28 +126,37 @@ namespace Myshipping.Application.EDI
|
|
|
|
|
{
|
|
|
|
|
return new KeyValuePair<bool, string>(false, $"映射配置不正确:{mappService.MapCode}");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var mapServArr = mappService.MapCode.Split('-');
|
|
|
|
|
string[] arrService = null;
|
|
|
|
|
if (mappService == null)
|
|
|
|
|
{
|
|
|
|
|
arrService = custOrder.SERVICE.Split('-');
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
arrService = mappService.MapCode.Split('-');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//var startDay = template.StartDay.HasValue ? template.StartDay.Value : 1;
|
|
|
|
|
//var endWeek = template.EndWeek.HasValue ? template.EndWeek.Value : 2;
|
|
|
|
|
|
|
|
|
|
postModel.routes = new ZhongYuanSoApiRoute()
|
|
|
|
|
{
|
|
|
|
|
originCity = mapPortLoad.MapCode,
|
|
|
|
|
destinationCity = mapPort.MapCode,
|
|
|
|
|
polPortName = custOrder.PolPortName,
|
|
|
|
|
podPortName = custOrder.PodPortName,
|
|
|
|
|
vesselName = custOrder.VESSEL,
|
|
|
|
|
voyageNumber = custOrder.VOYNO,
|
|
|
|
|
serviceCode = custOrder.LANECODE,
|
|
|
|
|
//sailSchedulePriority = template.Priority.Split(',').ToList(),
|
|
|
|
|
outboundHaulage = mapServArr[0],
|
|
|
|
|
inboundHaulage = mapServArr[1],
|
|
|
|
|
searchConditionDate = custOrder.ETD.Value.AddDays(-2).ToString("yyyy-MM-dd"),
|
|
|
|
|
numberOfWeeks = 2,
|
|
|
|
|
etd = custOrder.ETD.Value.ToString("yyyy-MM-dd"),
|
|
|
|
|
};
|
|
|
|
|
// 路线数据
|
|
|
|
|
//postModel.routes = new ZhongYuanSoApiRoute()
|
|
|
|
|
//{
|
|
|
|
|
// originCity = mapPortLoad.MapCode,
|
|
|
|
|
// destinationCity = mapPort.MapCode,
|
|
|
|
|
// polPortName = custOrder.PolPortName,
|
|
|
|
|
// podPortName = custOrder.PodPortName,
|
|
|
|
|
// vesselName = custOrder.VESSEL,
|
|
|
|
|
// voyageNumber = custOrder.VOYNO,
|
|
|
|
|
// serviceCode = custOrder.LANECODE,
|
|
|
|
|
// //sailSchedulePriority = template.Priority.Split(',').ToList(),
|
|
|
|
|
// outboundHaulage = mapServArr[0],
|
|
|
|
|
// inboundHaulage = mapServArr[1],
|
|
|
|
|
// searchConditionDate = custOrder.ETD.Value.AddDays(-2).ToString("yyyy-MM-dd"),
|
|
|
|
|
// numberOfWeeks = 2,
|
|
|
|
|
// etd = custOrder.ETD.Value.ToString("yyyy-MM-dd"),
|
|
|
|
|
//};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 收发通及货代
|
|
|
|
|
//发货人
|
|
|
|
@ -313,6 +322,10 @@ namespace Myshipping.Application.EDI
|
|
|
|
|
|
|
|
|
|
var ctns = await repCtn.AsQueryable().Filter(null, true).Where(x => x.BILLID == custOrder.Id).ToListAsync();
|
|
|
|
|
postModel.boxInfos = new List<ZhongYuanSoApiBoxInfo>();
|
|
|
|
|
|
|
|
|
|
// 箱型转换:用于订舱参数“路线信息”里的箱型数据
|
|
|
|
|
var mapCtnCodeList = new List<string>();
|
|
|
|
|
|
|
|
|
|
foreach (var ctn in ctns)
|
|
|
|
|
{
|
|
|
|
|
if (!ctn.CTNNUM.HasValue || !ctn.KGS.HasValue)
|
|
|
|
@ -325,6 +338,7 @@ namespace Myshipping.Application.EDI
|
|
|
|
|
{
|
|
|
|
|
return new KeyValuePair<bool, string>(false, $"未找箱型映射信息:{ctn.CTNCODE}");
|
|
|
|
|
}
|
|
|
|
|
mapCtnCodeList.Add(mapCtn.MapName);
|
|
|
|
|
|
|
|
|
|
var apiBox = new ZhongYuanSoApiBoxInfo()
|
|
|
|
|
{
|
|
|
|
@ -337,7 +351,6 @@ namespace Myshipping.Application.EDI
|
|
|
|
|
postModel.boxInfos.Add(apiBox);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var mapFrt = mappingFrt.FirstOrDefault(x => x.Module == "DjyCustBooking" && x.CarrierCode == "COSCO" && x.Code == custOrder.FRTCODE);
|
|
|
|
|
if (mapFrt == null)
|
|
|
|
|
{
|
|
|
|
@ -383,9 +396,39 @@ namespace Myshipping.Application.EDI
|
|
|
|
|
remarksForEntireBooking = custOrder.SOREMARK
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Log.Information($"发送API数据给爬虫({sCfgSpiderUrl.Value}):{postModel.ToJsonString()}");
|
|
|
|
|
var rtn = await sCfgSpiderUrl.Value.SetBody(postModel)
|
|
|
|
|
.PostAsStringAsync();
|
|
|
|
|
// 船期数据
|
|
|
|
|
if (string.IsNullOrEmpty(custOrder.ExtendData))
|
|
|
|
|
{
|
|
|
|
|
return new KeyValuePair<bool, string>(false, $"船期数据信息不存在,请选择船期");
|
|
|
|
|
}
|
|
|
|
|
var extData = JObject.Parse(custOrder.ExtendData);
|
|
|
|
|
postModel.shipInfo = extData.GetJObjectValue("shipInfo");
|
|
|
|
|
|
|
|
|
|
// 路线数据(中远-新格式)
|
|
|
|
|
postModel.routes = new
|
|
|
|
|
{
|
|
|
|
|
numberOfWeeks = 2,
|
|
|
|
|
searchConditionDate = custOrder.ETD.Value.AddDays(-2).ToString("yyyy-MM-dd"),
|
|
|
|
|
originName = mapPortLoad.MapName,
|
|
|
|
|
destinationName = mapDestination.MapName,
|
|
|
|
|
outboundHaulage = arrService[0],
|
|
|
|
|
inboundHaulage = arrService[1],
|
|
|
|
|
|
|
|
|
|
contractNo = custOrder.CONTRACTNO,
|
|
|
|
|
cargoNature = custOrder.CARGOID switch
|
|
|
|
|
{
|
|
|
|
|
"S" => "General",
|
|
|
|
|
"R" => "Reefer",
|
|
|
|
|
"D" => "Dangerous",
|
|
|
|
|
_ => ""
|
|
|
|
|
},
|
|
|
|
|
containerTypeList = mapCtnCodeList
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var postModelJson = postModel.ToJsonString();
|
|
|
|
|
Log.Information($"发送API数据给爬虫({sCfgSpiderUrl.Value}):{postModelJson}");
|
|
|
|
|
var rtn = await sCfgSpiderUrl.Value.SetBody(postModel).PostAsStringAsync();
|
|
|
|
|
//var rtn = await "http://www.baidu323.com".SetBody(postModel).PostAsStringAsync();
|
|
|
|
|
|
|
|
|
|
Log.Information($"爬虫返回:{rtn}");
|
|
|
|
|
var jobjRtn = JObject.Parse(rtn);
|
|
|
|
@ -491,7 +534,8 @@ namespace Myshipping.Application.EDI
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 路线信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ZhongYuanSoApiRoute routes { get; set; }
|
|
|
|
|
public object routes { get; set; }
|
|
|
|
|
//public ZhongYuanSoApiRoute routes { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 发货人信息
|
|
|
|
@ -537,6 +581,11 @@ namespace Myshipping.Application.EDI
|
|
|
|
|
/// 特殊要求及备注
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ZhongYuanSoApiSpecial special { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 船期数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
public dynamic shipInfo { get; set; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|