You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

727 lines
19 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DS.WMS.Core.Op.Dtos
{
/// <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 List<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 MSKAPIBookingCargoReeferSettings reeferSettings { 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; }
}
}