修改马士基API订舱

master
jianghaiqing 9 months ago
parent 5a1392ee45
commit cc7b360d48

@ -0,0 +1,723 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
/// <summary>
///
/// </summary>
public class MSKAPIBookingDto
{
/// <summary>
/// 请求接口账户KEY
/// </summary>
public string userKey { get; set; }
/// <summary>
/// 请求接口账户密钥
/// </summary>
public string userSecret { get; set; }
/// <summary>
/// 运行环境(TEST, PRODUCTION)
/// </summary>
public string operatingEnvironment { get; set; }
/// <summary>
/// 马士基APPKey
/// </summary>
public string mskAppKey { get; set; }
/// <summary>
/// 马士基APP密钥
/// </summary>
public string mskAppSecret { get; set; }
/// <summary>
/// 订舱数据集
/// </summary>
public MSKAPIBookingBodyDto bookingBody { get; set; }
}
/// <summary>
///
/// </summary>
public class MSKAPIBookingBodyDto
{
/// <summary>
/// 订舱基本数据
/// </summary>
public MSKAPIBookingReferenceDto references { get; set; }
/// <summary>
/// 订舱人信息
/// </summary>
public MSKAPIBookingMandatoryParties mandatoryParties { get; set; }
/// <summary>
/// 港口信息
/// </summary>
public MSKAPIBookingTransport transport { get; set; }
/// <summary>
/// 货物信息
/// </summary>
public MSKAPIBookingCargo cargo { get; set; }
/// <summary>
/// 设备及运输信息
/// </summary>
public List<MSKAPIBookingEquipmentAndHaulage> equipmentAndHaulage { get; set; }
}
/// <summary>
/// 订舱基本数据
/// </summary>
public class MSKAPIBookingReferenceDto
{
/// <summary>
/// 合同唯一id
/// </summary>
public string priceReference { get; set; }
/// <summary>
/// 产品类型(MaerskSpot, SealandSpot, MaerskContract)
/// </summary>
public string productCode { get; set; }
/// <summary>
/// 请求类别, 目前只能传 BOOKAPI
/// </summary>
public string sender { get; set; }
/// <summary>
/// 对应的产品类型
/// </summary>
public string deliveryAgreementType { get; set; }
/// <summary>
/// Flag that indicates if the Spot Rate Product Offer is rollable. This flag is applicable to Spot bookings only
/// </summary>
public Nullable<bool> isRollable { get; set; }
/// <summary>
/// 是否接受接受即期条款和条件
/// </summary>
public Nullable<bool> isSpotTermsAndConditionsAccepted { get; set; }
/// <summary>
/// 预定地点名称
/// </summary>
public string bookingOfficeName { get; set; }
/// <summary>
/// 预定地点代码
/// </summary>
public string bookingOfficeUNLocationCode { get; set; }
}
/// <summary>
/// 订舱人信息
/// </summary>
public class MSKAPIBookingMandatoryParties
{
/// <summary>
/// 订舱公司名称
/// </summary>
public string bookedByCompanyName { get; set; }
/// <summary>
/// 订舱公司地址信息
/// </summary>
public MSKAPIBookingMandatoryPartyAddress bookedByCompanyAddress { get; set; }
/// <summary>
/// 订舱预定参考
/// </summary>
public string bookedByPartyReference { get; set; }
/// <summary>
/// 承运人id,用于识别预定方
/// </summary>
public string bookedByMaerskPartyCode { get; set; }
/// <summary>
/// 预定方联系信息
/// </summary>
public MSKAPIBookingMandatoryPartyContact bookedByPartyContact { get; set; }
/// <summary>
/// 价格所有者公司名称
/// </summary>
public string priceOwnerCompanyName { get; set; }
/// <summary>
/// 价格所有者公司地址信息
/// </summary>
public MSKAPIBookingMandatoryPartyAddress priceOwnerCompanyAddress { get; set; }
/// <summary>
/// 价格可选参考
/// </summary>
public string priceOwnerPartyReference { get; set; }
/// <summary>
/// 价格所有者id
/// </summary>
public string priceOwnerMaerskPartyCode { get; set; }
/// <summary>
/// 价格所有者联系人
/// </summary>
public MSKAPIBookingMandatoryPartyContact priceOwnerPartyContact { get; set; }
/// <summary>
///
/// </summary>
public Nullable<bool> isPriceOwnerFromServiceContractAccepted { get; set; }
}
/// <summary>
/// 地址信息
/// </summary>
public class MSKAPIBookingMandatoryPartyAddress
{
/// <summary>
/// 街道号及名称
/// </summary>
public string streetAddress { get; set; }
/// <summary>
/// 城市名
/// </summary>
public string cityName { get; set; }
/// <summary>
/// 邮政编码
/// </summary>
public string postalCode { get; set; }
/// <summary>
/// 马士基内部定义的地址id
/// </summary>
public string maerskDepotOrTerminalGeoId { get; set; }
/// <summary>
/// ISO国家代码
/// </summary>
public string ISOcountryCode { get; set; }
/// <summary>
/// 出口SD服务的客户设施代码
/// </summary>
public string customerFacilityCode { get; set; }
}
/// <summary>
/// 联系人信息
/// </summary>
public class MSKAPIBookingMandatoryPartyContact
{
/// <summary>
/// 联系人姓名
/// </summary>
public string name { get; set; }
/// <summary>
/// 邮箱
/// </summary>
public string email { get; set; }
/// <summary>
/// 电话号码
/// </summary>
public string phoneNumber { get; set; }
}
/// <summary>
/// 港口信息
/// </summary>
public class MSKAPIBookingTransport
{
/// <summary>
/// 承运人代码MAEU, SEAU, SEJJ, MCPU, MAEI
/// </summary>
public string carrierCode { get; set; }
/// <summary>
/// 最早起运日期, 不可小于当前日期
/// </summary>
public string earliestDepartureDate { get; set; }
/// <summary>
/// 出口服务类型(CY, SD, CFS)
/// </summary>
public string exportServiceMode { get; set; }
/// <summary>
/// 进口服务类型
/// </summary>
public string importServiceMode { get; set; }
/// <summary>
/// 路线信息
/// </summary>
public MSKAPIBookingRouteDetails routeDetails { get; set; }
}
/// <summary>
///
/// </summary>
public class MSKAPIBookingRouteDetails
{
/// <summary>
/// 收货地信息
/// </summary>
public MSKAPIBookingRouteDetailsBase placeOfReceipt { get; set; }
/// <summary>
/// 交货地
/// </summary>
public MSKAPIBookingRouteDetailsBase placeOfDelivery { get; set; }
/// <summary>
/// 首选装货港
/// </summary>
public MSKAPIBookingRouteDetailsBase preferredLoadPort { get; set; }
/// <summary>
/// 首选卸货港
/// </summary>
public MSKAPIBookingRouteDetailsBase preferredDischargePort { get; set; }
public MSKAPIBookingRoute selectedRoute { get; set; }
}
/// <summary>
///
/// </summary>
public class MSKAPIBookingRouteDetailsBase
{
/// <summary>
/// UN地点代码, 目前采用这种策略
/// </summary>
public string UNLocationCode { get; set; }
/// <summary>
/// 站点名称
/// </summary>
public string siteName { get; set; }
/// <summary>
/// 城市名称
/// </summary>
public string cityName { get; set; }
/// <summary>
/// 区域名
/// </summary>
public string regionName { get; set; }
/// <summary>
/// ISO国家代码
/// </summary>
public string ISOcountryCode { get; set; }
/// <summary>
/// 马士基城市id
/// </summary>
public string maerskCityGeoId { get; set; }
/// <summary>
/// 马士基站点id
/// </summary>
public string maerskSiteGeoId { get; set; }
}
/// <summary>
///
/// </summary>
public class MSKAPIBookingRoute
{
/// <summary>
/// 根据特定的出发地和目的地为航线计划分配ID
/// </summary>
public string routeScheduleId { get; set; }
/// <summary>
/// 日历周序号
/// </summary>
public Nullable<int> weekNumber { get; set; }
/// <summary>
/// 路线id
/// </summary>
public string routeId { get; set; }
/// <summary>
/// 路线代码
/// </summary>
public string routeCode { get; set; }
/// <summary>
/// 贸易航线名称
/// </summary>
public string tradeLaneName { get; set; }
/// <summary>
/// ap Moller-Maersk A/S为专门为指定客户帐户创建的指定帐户海洋产品(NAP)分配的唯一ID
/// </summary>
public string namedAccountProductReference { get; set; }
/// <summary>
///
/// </summary>
public MSKAPIBookingCardinalDirection cardinalDirection { get; set; }
/// <summary>
///
/// </summary>
public MSKAPIBookingSchedules bookingSchedules { get; set; }
/// <summary>
/// 航行时间,分钟为单位
/// </summary>
public string transitTime { get; set; }
}
/// <summary>
///
/// </summary>
public class MSKAPIBookingCardinalDirection
{
/// <summary>
/// 方向代码(N, S, W, E)
/// </summary>
public string directionCode { get; set; }
/// <summary>
/// 方向名(NORTH, SOUTH, WEST, EAST)
/// </summary>
public string directionName { get; set; }
}
/// <summary>
///
/// </summary>
public class MSKAPIBookingSchedules
{
/// <summary>
/// 路线唯一id
/// </summary>
public string routeLinkId { get; set; }
/// <summary>
/// 出发时间, ISO时间格式
/// </summary>
public string originDepartureDateTimeLocal { get; set; }
/// <summary>
/// 到达时间, ISO时间格式
/// </summary>
public string destinationArrivalDateTimeLocal { get; set; }
/// <summary>
///
/// </summary>
public MSKAPIBookingTransportMode transportMode { get; set; }
/// <summary>
/// The time in minutes between the current route link and the next route link.
/// </summary>
public Nullable<int> layoverTime { get; set; }
/// <summary>
/// Describes the type of route link(P, E, M, I, D, T )
/// </summary>
public string routingType { get; set; }
/// <summary>
/// 运营商分配的业务代码
/// </summary>
public string serviceCode { get; set; }
/// <summary>
/// 产品序列id
/// </summary>
public string routingSequence { get; set; }
/// <summary>
/// 出发地
/// </summary>
public MSKAPIBookingRouteDetailsBase startLocation { get; set; }
/// <summary>
/// 目的地
/// </summary>
public MSKAPIBookingRouteDetailsBase endLocation { get; set; }
/// <summary>
/// 承运人代码
/// </summary>
public string inlandCarrierCode { get; set; }
/// <summary>
/// 可选的定期航空公司名称
/// </summary>
public string carrierName { get; set; }
/// <summary>
/// 运输方式代码(BAR, BCO, DST, FEF, FEO, MVS, RCO, RR, SSH, TRK, VSF, VSL, VSM)
/// </summary>
public string transportModeCode { get; set; }
/// <summary>
/// 航行时间,分钟
/// </summary>
public Nullable<int> transitTime { get; set; }
/// <summary>
/// 航行时间单位
/// </summary>
public string transitTimeUnits { get; set; }
}
/// <summary>
/// 交通工具(船舶)信息
/// </summary>
public class MSKAPIBookingTransportMode
{
/// <summary>
/// 船舶信息
/// </summary>
public MSKAPIBookingTransportModeVessel vessel { get; set; }
/// <summary>
/// 出口航次代码
/// </summary>
public string exportVoyageNumber { get; set; }
/// <summary>
/// 进口航次代码
/// </summary>
public string importVoyageNumber { get; set; }
}
/// <summary>
///
/// </summary>
public class MSKAPIBookingTransportModeVessel
{
/// <summary>
/// 运营商分配的唯一的3个字符的代码
/// </summary>
public string maerskVesselCode { get; set; }
/// <summary>
/// 船名
/// </summary>
public string name { get; set; }
/// <summary>
/// 船舶所属的国家代号
/// </summary>
public string flagCode { get; set; }
/// <summary>
/// 船舶所属的国家名称
/// </summary>
public string flagName { get; set; }
/// <summary>
/// 船舶IMO号
/// </summary>
public string vesselIMONumber { get; set; }
/// <summary>
/// 船舶的唯一字母数字标识
/// </summary>
public string callSign { get; set; }
/// <summary>
/// 船舶建造的年份
/// </summary>
public string buildYear { get; set; }
}
/// <summary>
///
/// </summary>
public class MSKAPIBookingCargo
{
/// <summary>
/// 货物代码
/// </summary>
public string commodityCode { get; set; }
/// <summary>
/// 货物代码类型, 目前只能传 MaerskCode
/// </summary>
public string commodityCodeType { get; set; }
/// <summary>
/// 货物类型, 箱型, 为REEFER 时, 需要上传reeferSettings参数中的温度,通风,湿度等(DRY, REEFER)
/// </summary>
public string cargoType { get; set; }
/// <summary>
/// 重量
/// </summary>
public Nullable<int> totalCargoWeight { get; set; }
/// <summary>
/// 重量单位(KGS, LBS)
/// </summary>
public string totalWeightMeasurementUnit { get; set; }
/// <summary>
/// 货物总体积
/// </summary>
public Nullable<decimal> totalCargoVolume { get; set; }
/// <summary>
/// 总体积单位(MTQ, FTQ)
/// </summary>
public string totalVolumeMeasurementUnit { get; set; }
}
/// <summary>
/// 货物信息
/// </summary>
public class MSKAPIBookingCargoReeferSettings
{
/// <summary>
/// 冷藏集装箱类型(STANDARD, MAGNUM, SUPER_FREEZER, STAR_CARE, STAR_FRESH)
/// </summary>
public string reeferContainerConfiguration { get; set; }
/// <summary>
/// 温度
/// </summary>
public Nullable<decimal> temperatureDetails { get; set; }
/// <summary>
/// 温度类型(F, C)
/// </summary>
public string temperatureMeasureUnit { get; set; }
/// <summary>
/// 温度探头的数量
/// </summary>
public Nullable<int> noOfProbes { get; set; }
/// <summary>
/// 通风
/// </summary>
public Nullable<int> ventilation { get; set; }
/// <summary>
/// 湿度
/// </summary>
public Nullable<int> humidity { get; set; }
/// <summary>
/// 是否需要冷处理
/// </summary>
public Nullable<bool> isColdTreatmentRequired { get; set; }
/// <summary>
/// 是否需要发电机组
/// </summary>
public Nullable<bool> isGensetOriginRequired { get; set; }
/// <summary>
/// 氧气百分比,此字段仅适用于StarCare或StarFresh冷藏箱类型
/// </summary>
public Nullable<decimal> o2Percentage { get; set; }
/// <summary>
/// 二氧化碳百分比,此字段仅适用于StarCare或StarFresh冷藏箱类型
/// </summary>
public Nullable<decimal> co2Percentage { get; set; }
}
/// <summary>
///
/// </summary>
public class MSKAPIBookingEquipmentAndHaulage
{
/// <summary>
/// 设备详细信息
/// </summary>
public MSKAPIBookingEquipmentAndHaulageItem equipmentDetails { get; set; }
/// <summary>
/// 装箱细节信息
/// </summary>
public List<MSKAPIBookingStuffingdetails> stuffingDetails { get; set; }
}
/// <summary>
/// 设备详细信息
/// </summary>
public class MSKAPIBookingEquipmentAndHaulageItem
{
/// <summary>
/// ISO箱型代码
/// (20T3, 22G1, 22H0, 22P1, 22R1, 22T3, 22U1, 22U3, 22V2, 25G1, 2928, 2CG1, 2EG1, 42G1,
/// 42P0, 42P1, 42R1, 42T3, 42U1, 45G1, 45P3, 45R1, 45R9, 45U1, 4928, 49P0, 4CG1, 4EG1,
/// L5G1, L5R1, LEG1)
/// </summary>
public string ISOEquipmentCode { get; set; }
/// <summary>
/// 箱量
/// </summary>
public Nullable<int> equipmentQuantity { get; set; }
/// <summary>
/// 集装箱标识号
/// </summary>
public string shipperEquipmentReference { get; set; }
/// <summary>
/// 是否是托运人所有
/// </summary>
public Nullable<bool> isShipperOwned { get; set; }
/// <summary>
/// 是否返场
/// </summary>
public Nullable<bool> isImportReturned { get; set; }
}
/// <summary>
///
/// </summary>
public class MSKAPIBookingStuffingdetails
{
/// <summary>
/// 箱计量单位(WEIGHT, VOLUME)
/// </summary>
public string stuffingMeasurementType { get; set; }
/// <summary>
/// 重量或者体积
/// </summary>
public Nullable<int> stuffingValue { get; set; }
/// <summary>
/// 重量或者体积的计量单位(KGS, LBS, MTQ, FTQ)
/// </summary>
public string stuffingMeasurementUnit { get; set; }
}
}

@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
public class MSKAPIBookingResultDto
{
/// <summary>
/// 回执代码
/// </summary>
public int code { get; set; }
/// <summary>
/// 回执消息
/// </summary>
public string msg { get; set; }
/// <summary>
/// 订舱回执详情
/// </summary>
public MSKAPIBookingResultDataDto data { get; set; }
}
/// <summary>
///
/// </summary>
public class MSKAPIBookingResultDataDto
{
/// <summary>
/// 唯一的uuid
/// </summary>
public string requestAcknowledgementId { get; set; }
/// <summary>
/// 订舱单号
/// </summary>
public string bookingReference { get; set; }
}
}

@ -11,5 +11,195 @@ namespace Myshipping.Application
/// </summary> /// </summary>
public class MSKBookingDto public class MSKBookingDto
{ {
/// <summary>
/// 船公司代码
/// </summary>
public string carrierId { get; set; }
/// <summary>
/// 合同唯一id
/// </summary>
public string priceReference { get; set; }
/// <summary>
/// 产品类型(MaerskSpot, SealandSpot, MaerskContract)
/// </summary>
public string productCode { get; set; }
/// <summary>
/// 请求类别, 目前只能传 BOOKAPI
/// </summary>
public string sender { get; set; }
/// <summary>
/// 订舱公司名称
/// </summary>
public string bookedByCompanyName { get; set; }
/// <summary>
/// 承运人id,用于识别预定方
/// </summary>
public string bookedByMaerskPartyCode { get; set; }
/// <summary>
/// 订舱公司名称联系人姓名
/// </summary>
public string bookedByCompanyContactName { get; set; }
/// <summary>
/// 订舱公司名称联系人邮箱
/// </summary>
public string bookedByCompanyContactEmail { get; set; }
/// <summary>
/// 订舱公司名称联系人电话号码
/// </summary>
public string bookedByCompanyContactPhone { get; set; }
/// <summary>
/// 当前订舱公司是否也是合约方 true-标识合约信息跟订舱公司一致false-标识有单独的合约方
/// </summary>
public bool isBookingPartOwnPrice { get; set; }
/// <summary>
/// 价格所有者公司名称
/// </summary>
public string priceOwnerCompanyName { get; set; }
/// <summary>
/// 价格所有者id
/// </summary>
public string priceOwnerMaerskPartyCode { get; set; }
/// <summary>
/// 价格所有者联系人姓名
/// </summary>
public string priceOwnerContactName { get; set; }
/// <summary>
/// 价格所有者联系人邮箱
/// </summary>
public string priceOwnerContactEmail { get; set; }
/// <summary>
/// 价格所有者联系人电话号码
/// </summary>
public string priceOwnerContactPhone { get; set; }
/// <summary>
/// 承运人代码MAEU, SEAU, SEJJ, MCPU, MAEI
/// </summary>
public string carrierCode { get; set; }
/// <summary>
/// 最早起运日期, 不可小于当前日期
/// </summary>
public string earliestDepartureDate { get; set; }
/// <summary>
/// 出口服务类型(CY, SD, CFS)
/// </summary>
public string exportServiceMode { get; set; }
/// <summary>
/// 进口服务类型
/// </summary>
public string importServiceMode { get; set; }
/// <summary>
/// 收货地UN地点代码
/// </summary>
public string placeOfReceiptUnLocCode { get; set; }
/// <summary>
/// 收货地城市英文名称
/// </summary>
public string placeOfReceiptCityName { get; set; }
/// <summary>
/// 交货地UN地点代码
/// </summary>
public string placeOfDeliveryUnLocCode { get; set; }
/// <summary>
/// 交货地城市英文名称
/// </summary>
public string placeOfDeliveryCityName { get; set; }
/// <summary>
/// 出发时间, ISO时间格式
/// </summary>
public DateTime originDepartureDateTimeLocal { get; set; }
/// <summary>
/// 到达时间, ISO时间格式
/// </summary>
public DateTime destinationArrivalDateTimeLocal { get; set; }
/// <summary>
/// 是否冷冻处理
/// </summary>
public bool isReefer { get; set; } = false;
/// <summary>
/// 温度探头的数量
/// </summary>
public Nullable<int> noOfProbes { get; set; }
/// <summary>
/// 温度
/// </summary>
public Nullable<decimal> temperature { get; set; }
/// <summary>
/// 通风
/// </summary>
public Nullable<int> ventilation { get; set; }
/// <summary>
/// 湿度
/// </summary>
public Nullable<int> humidity { get; set; }
/// <summary>
/// 货物代码
/// </summary>
public string commodityCode { get; set; }
/// <summary>
/// 货物类型, 箱型, 为REEFER 时, 需要上传reeferSettings参数中的温度,通风,湿度等(DRY, REEFER)
/// </summary>
public string cargoType { get; set; }
/// <summary>
/// 重量
/// </summary>
public Nullable<int> totalCargoWeight { get; set; }
/// <summary>
/// 货物总体积
/// </summary>
public Nullable<decimal> totalCargoVolume { get; set; }
/// <summary>
/// 货物代码类型, 目前只能传 MaerskCode
/// </summary>
public string commodityCodeType { get; set; }
/// <summary>
/// 箱型
/// </summary>
public string ctnCode { get; set; }
/// <summary>
/// 箱量
/// </summary>
public Nullable<int> ctnNum { get; set; }
/// <summary>
/// 箱内重量
/// </summary>
public Nullable<decimal> ctnSufferWeight { get; set; }
} }
} }

Loading…
Cancel
Save