diff --git a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs index b0e42c92..26cc2469 100644 --- a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs +++ b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs @@ -11522,7 +11522,9 @@ namespace Myshipping.Application })); } - return await GetServiceItemList(input.BookingId); + var list = await GetServiceItemList(input.BookingId) as List; + var result = list.Adapt>(); + return result; } /// /// 设置货物状态 @@ -11879,11 +11881,92 @@ namespace Myshipping.Application */ try { + if(string.IsNullOrWhiteSpace(model.collectionOriginCityName)) + throw Oops.Oh($"始发地不能为空"); + + if (string.IsNullOrWhiteSpace(model.deliveryDestinationCityName)) + throw Oops.Oh($"目的地不能为空"); + + if (string.IsNullOrWhiteSpace(model.vesselOperatorCarrierCode)) + throw Oops.Oh($"服务船公司不能为空"); + + if (string.IsNullOrWhiteSpace(model.startDate)) + throw Oops.Oh($"预计离港日期不能为空"); + + DateTime etd = DateTime.MinValue; + + if(!DateTime.TryParse(model.startDate,out etd)) + throw Oops.Oh($"预计离港日期格式错误"); + + string queryUrl = string.Empty; + + if (model.carrierId.Equals("MSK", StringComparison.OrdinalIgnoreCase)) + { + queryUrl = _cache.GetAllDictData().GetAwaiter().GetResult() + .FirstOrDefault(x => x.TypeCode == "url_set" && x.Code == CONST_MSK_API_Poing2P_SECD_URL)?.Value; + } + else + { + throw Oops.Oh($"当前船公司 {model.carrierId} 未配置相应的请求接口"); + } + + if (string.IsNullOrWhiteSpace(queryUrl)) + throw Oops.Oh("未配置查询船期请求接口地址,请联系管理员"); + + var webAccountConfig = _webAccountConfig + .GetAccountConfig("MSKApi", UserManager.UserId).GetAwaiter().GetResult(); + + if (webAccountConfig == null) + throw Oops.Oh("未配置个人账户,请先配置个人账户 类型-MSKApi"); + MSKAPISearchPoint2PointScheduleDto queryInfo = new MSKAPISearchPoint2PointScheduleDto + { + userKey = App.Configuration["MSKAPIDjyUserKey"], + userSecret = App.Configuration["MSKAPIDjyUserSecret"], + operatingEnvironment = App.Configuration["MSKAPIOPEnvironment"], + mskAppKey = webAccountConfig.Account, + collectionOriginCityName = model.collectionOriginCityName, + collectionOriginCountryCode = model.collectionOriginCountryCode, + deliveryDestinationCityName = model.deliveryDestinationCityName, + deliveryDestinationCountryCode = model.deliveryDestinationCountryCode, + cargoType = model.cargoType, + exportServiceMode = model.exportServiceMode, + importServiceMode = model.importServiceMode, + vesselOperatorCarrierCode = model.vesselOperatorCarrierCode, + startDate = etd.ToString("yyyy-MM-dd"), + startDateType = "D", + }; + + MSKAPISearchPoint2PointScheduleResultDto resultInfo = null; + + var rlt = await queryUrl.SetBody(queryInfo) + .PostAsStringAsync(); + + if (!string.IsNullOrWhiteSpace(rlt)) + { + try + { + resultInfo = JSON.Deserialize(rlt); + } + catch (Exception ex) + { + _logger.LogInformation($"请求MSK API查询船期异常,原因:{ex.Message}"); + + throw Oops.Bah($"请求MSK API查询船期异常,原因:{ex.Message}"); + } + } + + if (resultInfo != null && resultInfo.code == 200 + && resultInfo.data != null && resultInfo.data.Count > 0) + { + list = resultInfo.data.Adapt>(); + } } catch (Exception ex) { + _logger.LogError($"检索海运船期详情异常,req={JSON.Serialize(model)} 原因:{ex.Message}"); + throw Oops.Bah($"检索海运船期详情失败,{ex.Message}"); } return list; diff --git a/Myshipping.Application/Service/BookingOrder/Dto/BookingServiceItemDto.cs b/Myshipping.Application/Service/BookingOrder/Dto/BookingServiceItemDto.cs index 6b112291..82786dac 100644 --- a/Myshipping.Application/Service/BookingOrder/Dto/BookingServiceItemDto.cs +++ b/Myshipping.Application/Service/BookingOrder/Dto/BookingServiceItemDto.cs @@ -20,6 +20,12 @@ namespace Myshipping.Application.Service.BookingOrder.Dto /// 状态名称 /// public string Value { get; set; } + + /// + /// 未确认 + /// + public bool UnConfirm { get; set; } + } public class BookingServiceItemList 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/MSKAPI/MSKAPISearchPoint2PointScheduleDto.cs b/Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPISearchPoint2PointScheduleDto.cs index 649ef298..b7ef0854 100644 --- a/Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPISearchPoint2PointScheduleDto.cs +++ b/Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPISearchPoint2PointScheduleDto.cs @@ -109,7 +109,7 @@ namespace Myshipping.Application /// /// 箱体积 /// - public int stuffingVolume { get; set; } + public Nullable stuffingVolume { get; set; } /// /// 体积单位(MTQ, FTQ) diff --git a/Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPISearchPoint2PointScheduleResultDto.cs b/Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPISearchPoint2PointScheduleResultDto.cs index aebef052..05d5b8df 100644 --- a/Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPISearchPoint2PointScheduleResultDto.cs +++ b/Myshipping.Application/Service/BookingOrder/Dto/MSKAPI/MSKAPISearchPoint2PointScheduleResultDto.cs @@ -24,7 +24,7 @@ namespace Myshipping.Application /// /// 回执代码 /// - public MSKAPISearchPoint2PointScheduleResultDataDto data { get; set; } + public List data { get; set; } } public class MSKAPISearchPoint2PointScheduleResultDataDto diff --git a/Myshipping.Application/Service/BookingOrder/Dto/MSKBookingDto.cs b/Myshipping.Application/Service/BookingOrder/Dto/MSKBookingDto.cs index 1db87849..cb05a233 100644 --- a/Myshipping.Application/Service/BookingOrder/Dto/MSKBookingDto.cs +++ b/Myshipping.Application/Service/BookingOrder/Dto/MSKBookingDto.cs @@ -11,5 +11,203 @@ 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 List ctns { get; set; } + } + + public class MSKBookingCtnInfo + { + /// + /// 箱型 + /// + public string ctnCode { get; set; } + + /// + /// 箱量 + /// + public Nullable ctnNum { get; set; } + + /// + /// 箱内重量 + /// + public Nullable ctnSufferWeight { get; set; } } } diff --git a/Myshipping.Application/Service/BookingOrder/Dto/QueryShipSailingScheduleDto.cs b/Myshipping.Application/Service/BookingOrder/Dto/QueryShipSailingScheduleDto.cs index c8436203..c5ad3cb9 100644 --- a/Myshipping.Application/Service/BookingOrder/Dto/QueryShipSailingScheduleDto.cs +++ b/Myshipping.Application/Service/BookingOrder/Dto/QueryShipSailingScheduleDto.cs @@ -11,6 +11,11 @@ namespace Myshipping.Application /// public class QueryShipSailingScheduleDto { + /// + /// 船公司代码 + /// + public string carrierId { get; set; } + /// /// 起始地的GEO ID ///