From cc7b360d48925d776884b081b6f0a59a6efaffd1 Mon Sep 17 00:00:00 2001 From: jianghaiqing Date: Mon, 4 Mar 2024 11:31:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A9=AC=E5=A3=AB=E5=9F=BAAP?= =?UTF-8?q?I=E8=AE=A2=E8=88=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/MSKAPI/MSKAPIBookingDto.cs | 723 ++++++++++++++++++ .../Dto/MSKAPI/MSKAPIBookingResultDto.cs | 42 + .../Service/BookingOrder/Dto/MSKBookingDto.cs | 190 +++++ 3 files changed, 955 insertions(+) create mode 100644 Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPIBookingDto.cs create mode 100644 Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPIBookingResultDto.cs diff --git a/Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPIBookingDto.cs b/Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPIBookingDto.cs new file mode 100644 index 00000000..8e361c5f --- /dev/null +++ b/Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPIBookingDto.cs @@ -0,0 +1,723 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Myshipping.Application +{ + /// + /// + /// + public class MSKAPIBookingDto + { + /// + /// 请求接口账户KEY + /// + public string userKey { get; set; } + + /// + /// 请求接口账户密钥 + /// + public string userSecret { get; set; } + + /// + /// 运行环境(TEST, PRODUCTION) + /// + public string operatingEnvironment { get; set; } + + /// + /// 马士基APPKey + /// + public string mskAppKey { get; set; } + + /// + /// 马士基APP密钥 + /// + public string mskAppSecret { get; set; } + + /// + /// 订舱数据集 + /// + public MSKAPIBookingBodyDto bookingBody { get; set; } + } + + /// + /// + /// + public class MSKAPIBookingBodyDto + { + /// + /// 订舱基本数据 + /// + public MSKAPIBookingReferenceDto references { get; set; } + + /// + /// 订舱人信息 + /// + public MSKAPIBookingMandatoryParties mandatoryParties { get; set; } + + /// + /// 港口信息 + /// + public MSKAPIBookingTransport transport { get; set; } + + /// + /// 货物信息 + /// + public MSKAPIBookingCargo cargo { get; set; } + + /// + /// 设备及运输信息 + /// + public List equipmentAndHaulage { get; set; } + } + + /// + /// 订舱基本数据 + /// + public class MSKAPIBookingReferenceDto + { + /// + /// 合同唯一id + /// + public string priceReference { get; set; } + + /// + /// 产品类型(MaerskSpot, SealandSpot, MaerskContract) + /// + public string productCode { get; set; } + + /// + /// 请求类别, 目前只能传 BOOKAPI + /// + public string sender { get; set; } + + /// + /// 对应的产品类型 + /// + public string deliveryAgreementType { get; set; } + + /// + /// Flag that indicates if the Spot Rate Product Offer is rollable. This flag is applicable to Spot bookings only + /// + public Nullable isRollable { get; set; } + + /// + /// 是否接受接受即期条款和条件 + /// + public Nullable isSpotTermsAndConditionsAccepted { get; set; } + + /// + /// 预定地点名称 + /// + public string bookingOfficeName { get; set; } + + /// + /// 预定地点代码 + /// + public string bookingOfficeUNLocationCode { get; set; } + } + + /// + /// 订舱人信息 + /// + public class MSKAPIBookingMandatoryParties + { + /// + /// 订舱公司名称 + /// + public string bookedByCompanyName { get; set; } + + /// + /// 订舱公司地址信息 + /// + public MSKAPIBookingMandatoryPartyAddress bookedByCompanyAddress { get; set; } + + /// + /// 订舱预定参考 + /// + public string bookedByPartyReference { get; set; } + + /// + /// 承运人id,用于识别预定方 + /// + public string bookedByMaerskPartyCode { get; set; } + + /// + /// 预定方联系信息 + /// + public MSKAPIBookingMandatoryPartyContact bookedByPartyContact { get; set; } + + /// + /// 价格所有者公司名称 + /// + public string priceOwnerCompanyName { get; set; } + + /// + /// 价格所有者公司地址信息 + /// + public MSKAPIBookingMandatoryPartyAddress priceOwnerCompanyAddress { get; set; } + + /// + /// 价格可选参考 + /// + public string priceOwnerPartyReference { get; set; } + + /// + /// 价格所有者id + /// + public string priceOwnerMaerskPartyCode { get; set; } + + /// + /// 价格所有者联系人 + /// + public MSKAPIBookingMandatoryPartyContact priceOwnerPartyContact { get; set; } + + /// + /// + /// + public Nullable isPriceOwnerFromServiceContractAccepted { get; set; } + } + + /// + /// 地址信息 + /// + public class MSKAPIBookingMandatoryPartyAddress + { + /// + /// 街道号及名称 + /// + public string streetAddress { get; set; } + + /// + /// 城市名 + /// + public string cityName { get; set; } + + /// + /// 邮政编码 + /// + public string postalCode { get; set; } + + /// + /// 马士基内部定义的地址id + /// + public string maerskDepotOrTerminalGeoId { get; set; } + + /// + /// ISO国家代码 + /// + public string ISOcountryCode { get; set; } + + /// + /// 出口SD服务的客户设施代码 + /// + public string customerFacilityCode { get; set; } + + } + + /// + /// 联系人信息 + /// + public class MSKAPIBookingMandatoryPartyContact + { + /// + /// 联系人姓名 + /// + public string name { get; set; } + + /// + /// 邮箱 + /// + public string email { get; set; } + + /// + /// 电话号码 + /// + public string phoneNumber { get; set; } + } + + /// + /// 港口信息 + /// + public class MSKAPIBookingTransport + { + /// + /// 承运人代码(MAEU, SEAU, SEJJ, MCPU, MAEI) + /// + public string carrierCode { get; set; } + + /// + /// 最早起运日期, 不可小于当前日期 + /// + public string earliestDepartureDate { get; set; } + + /// + /// 出口服务类型(CY, SD, CFS) + /// + public string exportServiceMode { get; set; } + + /// + /// 进口服务类型 + /// + public string importServiceMode { get; set; } + + /// + /// 路线信息 + /// + public MSKAPIBookingRouteDetails routeDetails { get; set; } + } + + /// + /// + /// + public class MSKAPIBookingRouteDetails + { + /// + /// 收货地信息 + /// + public MSKAPIBookingRouteDetailsBase placeOfReceipt { get; set; } + + /// + /// 交货地 + /// + public MSKAPIBookingRouteDetailsBase placeOfDelivery { get; set; } + + /// + /// 首选装货港 + /// + public MSKAPIBookingRouteDetailsBase preferredLoadPort { get; set; } + + /// + /// 首选卸货港 + /// + public MSKAPIBookingRouteDetailsBase preferredDischargePort { get; set; } + + + public MSKAPIBookingRoute selectedRoute { get; set; } + } + + /// + /// + /// + public class MSKAPIBookingRouteDetailsBase + { + /// + /// UN地点代码, 目前采用这种策略 + /// + public string UNLocationCode { get; set; } + + /// + /// 站点名称 + /// + public string siteName { get; set; } + + /// + /// 城市名称 + /// + public string cityName { get; set; } + + /// + /// 区域名 + /// + public string regionName { get; set; } + + /// + /// ISO国家代码 + /// + public string ISOcountryCode { get; set; } + + /// + /// 马士基城市id + /// + public string maerskCityGeoId { get; set; } + + /// + /// 马士基站点id + /// + public string maerskSiteGeoId { get; set; } + } + + /// + /// + /// + public class MSKAPIBookingRoute + { + /// + /// 根据特定的出发地和目的地为航线计划分配ID + /// + public string routeScheduleId { get; set; } + + /// + /// 日历周序号 + /// + public Nullable weekNumber { get; set; } + + /// + /// 路线id + /// + public string routeId { get; set; } + + /// + /// 路线代码 + /// + public string routeCode { get; set; } + + /// + /// 贸易航线名称 + /// + public string tradeLaneName { get; set; } + + /// + /// ap Moller-Maersk A/S为专门为指定客户帐户创建的指定帐户海洋产品(NAP)分配的唯一ID + /// + public string namedAccountProductReference { get; set; } + + /// + /// + /// + public MSKAPIBookingCardinalDirection cardinalDirection { get; set; } + + /// + /// + /// + public MSKAPIBookingSchedules bookingSchedules { get; set; } + + /// + /// 航行时间,分钟为单位 + /// + public string transitTime { get; set; } + } + + /// + /// + /// + public class MSKAPIBookingCardinalDirection + { + /// + /// 方向代码(N, S, W, E) + /// + public string directionCode { get; set; } + + /// + /// 方向名(NORTH, SOUTH, WEST, EAST) + /// + public string directionName { get; set; } + } + + /// + /// + /// + public class MSKAPIBookingSchedules + { + /// + /// 路线唯一id + /// + public string routeLinkId { get; set; } + + /// + /// 出发时间, ISO时间格式 + /// + public string originDepartureDateTimeLocal { get; set; } + + /// + /// 到达时间, ISO时间格式 + /// + public string destinationArrivalDateTimeLocal { get; set; } + + /// + /// + /// + public MSKAPIBookingTransportMode transportMode { get; set; } + + /// + /// The time in minutes between the current route link and the next route link. + /// + public Nullable layoverTime { get; set; } + + /// + /// Describes the type of route link(P, E, M, I, D, T ) + /// + public string routingType { get; set; } + + /// + /// 运营商分配的业务代码 + /// + public string serviceCode { get; set; } + + /// + /// 产品序列id + /// + public string routingSequence { get; set; } + + /// + /// 出发地 + /// + public MSKAPIBookingRouteDetailsBase startLocation { get; set; } + + /// + /// 目的地 + /// + public MSKAPIBookingRouteDetailsBase endLocation { get; set; } + + /// + /// 承运人代码 + /// + public string inlandCarrierCode { get; set; } + + /// + /// 可选的定期航空公司名称 + /// + public string carrierName { get; set; } + + /// + /// 运输方式代码(BAR, BCO, DST, FEF, FEO, MVS, RCO, RR, SSH, TRK, VSF, VSL, VSM) + /// + public string transportModeCode { get; set; } + + /// + /// 航行时间,分钟 + /// + public Nullable transitTime { get; set; } + + /// + /// 航行时间单位 + /// + public string transitTimeUnits { get; set; } + + } + + /// + /// 交通工具(船舶)信息 + /// + public class MSKAPIBookingTransportMode + { + /// + /// 船舶信息 + /// + public MSKAPIBookingTransportModeVessel vessel { get; set; } + + /// + /// 出口航次代码 + /// + public string exportVoyageNumber { get; set; } + + /// + /// 进口航次代码 + /// + public string importVoyageNumber { get; set; } + } + + /// + /// + /// + public class MSKAPIBookingTransportModeVessel + { + /// + /// 运营商分配的唯一的3个字符的代码 + /// + public string maerskVesselCode { get; set; } + + /// + /// 船名 + /// + public string name { get; set; } + + /// + /// 船舶所属的国家代号 + /// + public string flagCode { get; set; } + + /// + /// 船舶所属的国家名称 + /// + public string flagName { get; set; } + + /// + /// 船舶IMO号 + /// + public string vesselIMONumber { get; set; } + + /// + /// 船舶的唯一字母数字标识 + /// + public string callSign { get; set; } + + /// + /// 船舶建造的年份 + /// + public string buildYear { get; set; } + + } + + /// + /// + /// + public class MSKAPIBookingCargo + { + /// + /// 货物代码 + /// + public string commodityCode { get; set; } + + /// + /// 货物代码类型, 目前只能传 MaerskCode + /// + public string commodityCodeType { get; set; } + + /// + /// 货物类型, 箱型, 为REEFER 时, 需要上传reeferSettings参数中的温度,通风,湿度等(DRY, REEFER) + /// + public string cargoType { get; set; } + + /// + /// 重量 + /// + public Nullable totalCargoWeight { get; set; } + + /// + /// 重量单位(KGS, LBS) + /// + public string totalWeightMeasurementUnit { get; set; } + + /// + /// 货物总体积 + /// + public Nullable totalCargoVolume { get; set; } + + /// + /// 总体积单位(MTQ, FTQ) + /// + public string totalVolumeMeasurementUnit { get; set; } + + + } + + /// + /// 货物信息 + /// + public class MSKAPIBookingCargoReeferSettings + { + /// + /// 冷藏集装箱类型(STANDARD, MAGNUM, SUPER_FREEZER, STAR_CARE, STAR_FRESH) + /// + public string reeferContainerConfiguration { get; set; } + + /// + /// 温度 + /// + public Nullable temperatureDetails { get; set; } + + /// + /// 温度类型(F, C) + /// + public string temperatureMeasureUnit { get; set; } + + /// + /// 温度探头的数量 + /// + public Nullable noOfProbes { get; set; } + + /// + /// 通风 + /// + public Nullable ventilation { get; set; } + + /// + /// 湿度 + /// + public Nullable humidity { get; set; } + + /// + /// 是否需要冷处理 + /// + public Nullable isColdTreatmentRequired { get; set; } + + /// + /// 是否需要发电机组 + /// + public Nullable isGensetOriginRequired { get; set; } + + /// + /// 氧气百分比,此字段仅适用于StarCare或StarFresh冷藏箱类型 + /// + public Nullable o2Percentage { get; set; } + + /// + /// 二氧化碳百分比,此字段仅适用于StarCare或StarFresh冷藏箱类型 + /// + public Nullable co2Percentage { get; set; } + } + + /// + /// + /// + public class MSKAPIBookingEquipmentAndHaulage + { + /// + /// 设备详细信息 + /// + public MSKAPIBookingEquipmentAndHaulageItem equipmentDetails { get; set; } + + /// + /// 装箱细节信息 + /// + public List stuffingDetails { get; set; } + } + + /// + /// 设备详细信息 + /// + public class MSKAPIBookingEquipmentAndHaulageItem + { + /// + /// 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) + /// + public string ISOEquipmentCode { get; set; } + + /// + /// 箱量 + /// + public Nullable equipmentQuantity { get; set; } + + /// + /// 集装箱标识号 + /// + public string shipperEquipmentReference { get; set; } + + /// + /// 是否是托运人所有 + /// + public Nullable isShipperOwned { get; set; } + + /// + /// 是否返场 + /// + public Nullable isImportReturned { get; set; } + } + + /// + /// + /// + public class MSKAPIBookingStuffingdetails + { + /// + /// 箱计量单位(WEIGHT, VOLUME) + /// + public string stuffingMeasurementType { get; set; } + + /// + /// 重量或者体积 + /// + public Nullable stuffingValue { get; set; } + + /// + /// 重量或者体积的计量单位(KGS, LBS, MTQ, FTQ) + /// + public string stuffingMeasurementUnit { get; set; } + } +} diff --git a/Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPIBookingResultDto.cs b/Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPIBookingResultDto.cs new file mode 100644 index 00000000..e5e42f1f --- /dev/null +++ b/Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPIBookingResultDto.cs @@ -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 + { + /// + /// 回执代码 + /// + public int code { get; set; } + + /// + /// 回执消息 + /// + public string msg { get; set; } + + /// + /// 订舱回执详情 + /// + public MSKAPIBookingResultDataDto data { get; set; } + } + + /// + /// + /// + public class MSKAPIBookingResultDataDto + { + /// + /// 唯一的uuid + /// + public string requestAcknowledgementId { get; set; } + + /// + /// 订舱单号 + /// + public string bookingReference { get; set; } + } +} diff --git a/Myshipping.Application/Service/BookingOrder/Dto/MSKBookingDto.cs b/Myshipping.Application/Service/BookingOrder/Dto/MSKBookingDto.cs index 1db87849..4630e2a6 100644 --- a/Myshipping.Application/Service/BookingOrder/Dto/MSKBookingDto.cs +++ b/Myshipping.Application/Service/BookingOrder/Dto/MSKBookingDto.cs @@ -11,5 +11,195 @@ namespace Myshipping.Application /// public class MSKBookingDto { + /// + /// 船公司代码 + /// + public string carrierId { get; set; } + + /// + /// 合同唯一id + /// + public string priceReference { get; set; } + + /// + /// 产品类型(MaerskSpot, SealandSpot, MaerskContract) + /// + public string productCode { get; set; } + + /// + /// 请求类别, 目前只能传 BOOKAPI + /// + public string sender { get; set; } + + /// + /// 订舱公司名称 + /// + public string bookedByCompanyName { get; set; } + + /// + /// 承运人id,用于识别预定方 + /// + public string bookedByMaerskPartyCode { get; set; } + + /// + /// 订舱公司名称联系人姓名 + /// + public string bookedByCompanyContactName { get; set; } + + /// + /// 订舱公司名称联系人邮箱 + /// + public string bookedByCompanyContactEmail { get; set; } + + /// + /// 订舱公司名称联系人电话号码 + /// + public string bookedByCompanyContactPhone { get; set; } + + /// + /// 当前订舱公司是否也是合约方 true-标识合约信息跟订舱公司一致,false-标识有单独的合约方 + /// + public bool isBookingPartOwnPrice { get; set; } + + /// + /// 价格所有者公司名称 + /// + public string priceOwnerCompanyName { get; set; } + + /// + /// 价格所有者id + /// + public string priceOwnerMaerskPartyCode { get; set; } + + /// + /// 价格所有者联系人姓名 + /// + public string priceOwnerContactName { get; set; } + + /// + /// 价格所有者联系人邮箱 + /// + public string priceOwnerContactEmail { get; set; } + + /// + /// 价格所有者联系人电话号码 + /// + public string priceOwnerContactPhone { get; set; } + + /// + /// 承运人代码(MAEU, SEAU, SEJJ, MCPU, MAEI) + /// + public string carrierCode { get; set; } + + /// + /// 最早起运日期, 不可小于当前日期 + /// + public string earliestDepartureDate { get; set; } + + /// + /// 出口服务类型(CY, SD, CFS) + /// + public string exportServiceMode { get; set; } + + /// + /// 进口服务类型 + /// + public string importServiceMode { get; set; } + + /// + /// 收货地UN地点代码 + /// + public string placeOfReceiptUnLocCode { get; set; } + + /// + /// 收货地城市英文名称 + /// + public string placeOfReceiptCityName { get; set; } + + /// + /// 交货地UN地点代码 + /// + public string placeOfDeliveryUnLocCode { get; set; } + + /// + /// 交货地城市英文名称 + /// + public string placeOfDeliveryCityName { get; set; } + + /// + /// 出发时间, ISO时间格式 + /// + public DateTime originDepartureDateTimeLocal { get; set; } + + /// + /// 到达时间, ISO时间格式 + /// + public DateTime destinationArrivalDateTimeLocal { get; set; } + + /// + /// 是否冷冻处理 + /// + public bool isReefer { get; set; } = false; + + /// + /// 温度探头的数量 + /// + public Nullable noOfProbes { get; set; } + + /// + /// 温度 + /// + public Nullable temperature { get; set; } + + /// + /// 通风 + /// + public Nullable ventilation { get; set; } + + /// + /// 湿度 + /// + public Nullable humidity { get; set; } + + /// + /// 货物代码 + /// + public string commodityCode { get; set; } + + /// + /// 货物类型, 箱型, 为REEFER 时, 需要上传reeferSettings参数中的温度,通风,湿度等(DRY, REEFER) + /// + public string cargoType { get; set; } + + /// + /// 重量 + /// + public Nullable totalCargoWeight { get; set; } + + + /// + /// 货物总体积 + /// + public Nullable totalCargoVolume { get; set; } + + /// + /// 货物代码类型, 目前只能传 MaerskCode + /// + public string commodityCodeType { get; set; } + + /// + /// 箱型 + /// + public string ctnCode { get; set; } + + /// + /// 箱量 + /// + public Nullable ctnNum { get; set; } + + /// + /// 箱内重量 + /// + public Nullable ctnSufferWeight { get; set; } } }