客户订舱:中远调整

master
zhangxiaofeng 1 week ago
parent cfbefd0498
commit 33c500888a

@ -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>

@ -330,10 +330,10 @@ namespace Myshipping.Application
//日志动态
SaveAuditLog(input.Id == 0 ? "已录入" : "已修改", entity.Id);
//EMC需要保存船期原始数据
if (input.CARRIERID == "EMC" && input.ShipData != null)
//EMC、COSCO需要保存船期原始数据
if (input.CARRIERID is "EMC" or "COSCO" && input.ShipData != null)
{
_logger.LogInformation($"保存船期数据EMC{input.ShipData}");
_logger.LogInformation($"保存船期数据{input.ShipData}");
JObject jobjExt = new JObject();
if (!string.IsNullOrEmpty(entity.ExtendData))
{
@ -985,7 +985,8 @@ namespace Myshipping.Application
{
apiUrl += "/";
}
apiUrl += "v1/cosco/ship/schedule";
//apiUrl += "v1/cosco/ship/schedule"; 旧的地址
apiUrl += "v1/cosco/new_booking/ship/query";
//起运港
var mapPortLoad = mappingPortLoad.FirstOrDefault(x => x.Module == "DjyCustBooking" && x.CarrierCode == "COSCO" && x.Code == custOrder.PORTLOADCODE);
@ -1001,6 +1002,20 @@ namespace Myshipping.Application
throw Oops.Bah($"未找到目的地映射信息:{custOrder.DESTINATIONCODE}");
}
//箱型转换
var disCtnCode = ctns.Select(x => x.CTNCODE).Distinct().ToList();
var mapCtnCodeList = new List<string>();
foreach (var ctnall in disCtnCode)
{
//var all = mappingCtn.Where(x => x.Module == "DjyCustBooking" && x.CarrierCode == "COSCO" ).ToList();
var mapCtn = mappingCtn.FirstOrDefault(x => x.Module == "DjyCustBooking" && x.CarrierCode == "COSCO" && x.Code == ctnall);
if (mapCtn == null)
{
throw Oops.Bah($"未找到箱型映射信息:{ctnall}");
}
mapCtnCodeList.Add(mapCtn.MapName);
}
//运输方式
var mapService = mappingService.FirstOrDefault(x => x.Module == "DjyCustBooking" && x.CarrierCode == "COSCO" && x.Code == custOrder.SERVICE);
string[] arrService = null;
@ -1019,15 +1034,28 @@ namespace Myshipping.Application
userSecret = sCfgUserSecret.Value,
webAccount = custOrder.BookingAccount,
webPassword = custOrder.BookingPassword,
numberOfWeeks = 2,
searchConditionDate = custOrder.ETD.Value.AddDays(-2).ToString("yyyy-MM-dd"),
originName = mapPortLoad.MapName,
destinationName = mapDestination.MapName,
cargoNature = "BOTH",
outboundHaulage = arrService[0],
inboundHaulage = arrService[1]
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],
// 2024-10-8调整
contractNo = custOrder.CONTRACTNO,
cargoNature = custOrder.CARGOID switch
{
"S" => "General",
"R" => "Reefer",
"D" => "Dangerous",
_ => ""
},
containerTypeList = mapCtnCodeList
}
};
_logger.LogInformation($"发送查询API数据给爬虫{apiUrl}{postModel.ToJsonString()}");
var rtnQuery = await apiUrl.SetBody(postModel)
.PostAsStringAsync();
@ -3110,9 +3138,9 @@ namespace Myshipping.Application
throw Oops.Bah("服务项目不能为空");
}
if (input.CARRIERID == "EMC" && string.IsNullOrEmpty(input.ShipInfoJson))
if (input.CARRIERID is "EMC" or "COSCO" && string.IsNullOrEmpty(input.ShipInfoJson))
{
throw Oops.Bah($"长荣订舱需提供船期数据");
throw Oops.Bah($"长荣或中远】订舱需提供船期数据");
}
#endregion
@ -3148,7 +3176,7 @@ namespace Myshipping.Application
jobjExt = JObject.Parse(custOrder.ExtendData);
}
if (custOrder.CARRIERID == "EMC")
if (custOrder.CARRIERID is "EMC" or "COSCO")
{
jobjExt["shipInfo"] = JObject.Parse(input.ShipInfoJson);
}

@ -823,7 +823,7 @@ namespace Myshipping.Application
public List<BookingServiceItemCustomerDto> ServiceItemList { get; set; }
/// <summary>
/// 船期数据EMC需要)
/// 船期数据EMC、COSCO需要)
/// </summary>
public dynamic ShipData { get; set; }
}

@ -30,8 +30,9 @@
{
"DbNumber": "common",
"DbType": "SqlServer",
"DbString": "Server=60.209.125.238,32009;Database=DevCommonDB;User=sa;Password=Djy@Sql2022.test;MultipleActiveResultSets=True;",
//"DbString": "Server=47.104.73.97,6762;Database=CommonDB;User=sa;Password=QDdjy#2020*;MultipleActiveResultSets=True;"
//"DbString": "Server=60.209.125.238,32009;Database=DevCommonDB;User=sa;Password=Djy@Sql2022.test;MultipleActiveResultSets=True;",
//"DbString": "Server=47.104.73.97,6762;Database=CommonDB;User=sa;Password=QDdjy#2020*;MultipleActiveResultSets=True;",
"DbString": "Server=47.104.73.97,6762;Database=CommonDBDJY;User=sa;Password=QDdjy#2020*;MultipleActiveResultSets=True;"
},
{
"DbNumber": "pingtai",

Loading…
Cancel
Save