diff --git a/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/BookingDeliveryRecordPageDto.cs b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/BookingDeliveryRecordPageDto.cs
new file mode 100644
index 00000000..ac6eb615
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/BookingDeliveryRecordPageDto.cs
@@ -0,0 +1,486 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Dtos
+{
+ ///
+ /// 预订舱台账
+ ///
+ public class BookingDeliveryRecordPageDto
+ {
+ ///
+ /// ID
+ ///
+ public long id { get; set; }
+
+ ///
+ /// 订舱ID
+ ///
+ public long bookingId { get; set; }
+
+ ///
+ /// 船公司代号
+ ///
+ public string carrierId { get; set; }
+
+ ///
+ /// 船公司
+ ///
+ public string carrier { get; set; }
+
+ ///
+ /// 合约号
+ ///
+ public string priceReference { get; set; }
+
+ ///
+ /// 产品类型
+ ///
+ public string productCode { get; set; }
+
+ ///
+ /// 请求类别
+ ///
+ public string sender { get; set; }
+
+ ///
+ /// 订舱公司名称(英文全称)
+ ///
+ public string bookedByCompanyName { get; set; }
+
+ ///
+ /// 订舱公司代码
+ ///
+ public string bookedByCompanyPartyCode { get; set; }
+
+ ///
+ /// 订舱公司联系人名称
+ ///
+ public string bookedByCompanyContact { get; set; }
+
+ ///
+ /// 订舱公司联系人邮箱
+ ///
+ public string bookedByCompanyEmail { get; set; }
+
+ ///
+ /// 当前订舱公司是否也是合约方 1-标识合约信息跟订舱公司一致,0-标识有单独的合约方
+ ///
+ public bool isbookingPartOwnPrice { get; set; }
+
+ ///
+ /// 价格所有者公司名称
+ ///
+ public string priceOwnerCompanyName { get; set; }
+
+ ///
+ /// 价格所有者代码
+ ///
+ public string priceOwnerCompanyPartyCode { get; set; }
+
+ ///
+ /// 价格所有者公司联系人名称
+ ///
+ public string priceOwnerCompanyContact { get; set; }
+
+ ///
+ /// 价格所有者公司联系人邮箱
+ ///
+ public string priceOwnerCompanyContactEmail { get; set; }
+
+ ///
+ /// 承运人代码
+ ///
+ public string carrierCode { get; set; }
+
+ ///
+ /// 最早起运日期
+ ///
+ public Nullable earliestDepartureDate { get; set; }
+
+ ///
+ /// 出口服务类型
+ ///
+ public string exportServiceMode { get; set; }
+
+ ///
+ /// 进口服务类型
+ ///
+ public string importServiceMode { get; set; }
+
+ ///
+ /// 收货地城市英文名称
+ ///
+ public string placeReceiptCity { get; set; }
+
+ ///
+ /// 收货地UN地点代码
+ ///
+ public string placeReceiptUnlocCode { get; set; }
+
+ ///
+ /// 收货地代码
+ ///
+ public string placeReceiptId { get; set; }
+
+ ///
+ /// 收货地
+ ///
+ public string placeReceipt { get; set; }
+
+ ///
+ /// 交货地城市英文名称
+ ///
+ public string placeDeliveryCity { get; set; }
+
+ ///
+ /// 交货地UN地点代码
+ ///
+ public string placeDeliveryUnlocCode { get; set; }
+
+ ///
+ /// 预计开船日期
+ ///
+ public Nullable etd { get; set; }
+
+ ///
+ /// 预计到港日期
+ ///
+ public Nullable atd { get; set; }
+
+ ///
+ /// 船名
+ ///
+ public string vessel { get; set; }
+
+ ///
+ /// 船名代码
+ ///
+ public string vesselCode { get; set; }
+
+ ///
+ /// 航次号
+ ///
+ public string voyno { get; set; }
+
+ ///
+ /// 运输方式
+ ///
+ public string transportMode { get; set; }
+
+ ///
+ /// 重量
+ ///
+ public Nullable totalCargoWeight { get; set; }
+
+ ///
+ /// 是否冷冻处理 1-是,0-否
+ ///
+ public bool isReefer { get; set; }
+
+ ///
+ /// 温度探头的数量
+ ///
+ public Nullable noOfProbes { get; set; }
+
+ ///
+ /// 设置温度
+ ///
+ public string tempSet { get; set; }
+
+ ///
+ /// 温度单位
+ ///
+ public string tempId { get; set; }
+
+ ///
+ /// 通风度
+ ///
+ public Nullable vent { get; set; }
+
+ ///
+ /// 湿度
+ ///
+ public Nullable humidity { get; set; }
+
+ ///
+ /// 货物标识
+ ///
+ public string cargoId { get; set; }
+
+ ///
+ /// 货物代码类型
+ ///
+ public string commodityCodeType { get; set; }
+
+ ///
+ /// 品名代码
+ ///
+ public string goodsCode { get; set; }
+
+ ///
+ /// 品名
+ ///
+ public string goodsName { get; set; }
+
+ ///
+ /// 货物类型
+ ///
+ public string cargoType { get; set; }
+
+ ///
+ /// 交货地代码
+ ///
+ public string placeDeliveryId { get; set; }
+
+ ///
+ /// 交货地
+ ///
+ public string placeDelivery { get; set; }
+
+ ///
+ /// 装货港代码
+ ///
+ public string portLoadId { get; set; }
+
+ ///
+ /// 装货港
+ ///
+ public string portLoad { get; set; }
+
+ ///
+ /// 卸货港代码
+ ///
+ public string portDischargeId { get; set; }
+
+ ///
+ /// 卸货港
+ ///
+ public string portDischarge { get; set; }
+
+ ///
+ /// 航线代码(船公司)
+ ///
+ public string laneCode { get; set; }
+
+ ///
+ /// 航线名称(船公司)
+ ///
+ public string laneName { get; set; }
+
+ ///
+ /// 承运方式 DIRECT_SHIP-直达;TRANSFER_SHIP-中转
+ ///
+ public string carriageType { get; set; }
+
+ ///
+ /// 承运方式名称 CONTRACT_ORDER-合约订舱;SPOT_ORDER-SPOT订舱
+ ///
+ public string carriageTypeName { get; set; }
+
+ ///
+ /// 订舱方式 CONTRACT_ORDER-合约订舱;SPOT_ORDER-SPOT订舱
+ ///
+ public string bookingSlotType { get; set; }
+
+ ///
+ /// 订舱方式名称 CONTRACT_ORDER-合约订舱;SPOT_ORDER-SPOT订舱
+ ///
+ public string bookingSlotTypeName { get; set; }
+
+ ///
+ /// 签单方式 ORIGINAL-正本;TELEX-电放;SEAWAY BILL-海运单;
+ ///
+ public string issueType { get; set; }
+
+ ///
+ /// 箱型箱量
+ ///
+ public string ctnStat { get; set; }
+
+
+ ///
+ /// 所在周数
+ ///
+ public string weekAt { get; set; }
+
+ ///
+ /// 危险品类别
+ ///
+ public string dClass { get; set; }
+
+ ///
+ /// 危险品编号
+ ///
+ public string duNo { get; set; }
+
+ ///
+ /// 危险品页号
+ ///
+ public string dPage { get; set; }
+
+ ///
+ /// 危险品标签
+ ///
+ public string dLabel { get; set; }
+
+ ///
+ /// 危险品联系人
+ ///
+ public string linkMan { get; set; }
+
+ ///
+ /// 预计运输天数
+ ///
+ public Nullable transportEstDay { get; set; }
+
+ ///
+ /// 订舱回执ID
+ ///
+ public string requestAcknowledgementId { get; set; }
+
+ ///
+ /// 订舱回执预定号
+ ///
+ public string bookingReference { get; set; }
+
+ ///
+ /// 状态 SUCC-成功,FAILURE-失败
+ ///
+ public string status { get; set; }
+
+ ///
+ /// 状态名称 SUCC-成功,FAILURE-失败
+ ///
+ public string statusName { get; set; }
+
+
+ ///
+ /// 发送备注
+ ///
+ public string notes { get; set; }
+
+ ///
+ /// 发送时间
+ ///
+ public Nullable sendTime { get; set; }
+
+ ///
+ /// 是否定时任务
+ ///
+ public bool isJob { get; set; }
+
+ ///
+ /// 定时时间
+ ///
+ public Nullable jobTime { get; set; }
+
+ ///
+ /// 合约号主键
+ ///
+ public Nullable priceReferenceId { get; set; }
+
+ ///
+ /// 合约号名称
+ ///
+ public string priceReferenceName { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ public DateTime CreatedTime { get; set; }
+
+ ///
+ /// 修改时间
+ ///
+ public Nullable UpdatedTime { get; set; }
+
+ ///
+ /// 创建人ID
+ ///
+ public long CreatedUserId { get; set; }
+
+ ///
+ /// 创建人名称
+ ///
+ public string CreatedUserName { get; set; }
+
+ ///
+ /// 修改人ID
+ ///
+ public long UpdatedUserId { get; set; }
+
+ ///
+ /// 修改人名称
+ ///
+ public string UpdatedUserName { get; set; }
+
+ ///
+ /// 我希望使用托运人自己的集装箱
+ ///
+ public bool isShipperOwned { get; set; }
+
+ ///
+ /// 我想使用进口退货集装箱或者其他三角集运选项
+ ///
+ public bool isImportReturned { get; set; }
+
+ ///
+ /// 是否已有BC
+ ///
+ public bool isRecvBC { get; set; }
+
+ ///
+ /// 最后BC接收时间
+ ///
+ public Nullable LstRecvBCDate { get; set; }
+
+ ///
+ /// 是否已有BookingCancellation
+ ///
+ public bool isRecvBKCancel { get; set; }
+
+ ///
+ /// 最后BookingCancellation接收时间
+ ///
+ public Nullable LstRecvBKCancelDate { get; set; }
+
+ ///
+ /// 预计航行天数
+ ///
+ public Nullable estSailingDays { get; set; }
+
+ //
+ /// 主键ID
+ ///
+ public Nullable PId { get; set; }
+
+ ///
+ /// 价格id, 可进一步通过API进行其他操作
+ ///
+ public string priceID { get; set; }
+
+ ///
+ /// 船期价格
+ ///
+ public Nullable ShipRateTotalAmount { get; set; }
+
+ ///
+ /// 船期币别
+ ///
+ public string ShipRateTotalCurrency { get; set; }
+
+ ///
+ /// 订舱通道类型 CON_API-合约API,SPOT_API-SPOT订舱,EDI-EDI订舱
+ ///
+ public string bookingChannelType { get; set; }
+
+ ///
+ /// 订舱通道类型 CON_API-合约API,SPOT_API-SPOT订舱,EDI-EDI订舱
+ ///
+ public string bookingChannelTypeName { get; set; }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKAPIBookingCopyDto.cs b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKAPIBookingCopyDto.cs
new file mode 100644
index 00000000..85b5346d
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKAPIBookingCopyDto.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Dtos
+{
+ ///
+ /// 马士基API批量复制
+ ///
+ public class MSKAPIBookingCopyDto
+ {
+ ///
+ /// 被复制马士基API订舱主键
+ ///
+ public long originalId { get; set; }
+
+ ///
+ /// 操作类型 only_copy-只单票复制;copy_edit-复制使用提交的编辑信息
+ ///
+ public string opType { get; set; }
+
+ ///
+ /// 编辑详情(弹出编辑框后修改的详情内容)
+ ///
+ public MSKBookingDto bookingDto { get; set; }
+
+ ///
+ /// 复制数量
+ ///
+ public int copyNum { get; set; } = 1;
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKAPISPOTScheduleRateResultShowDto.cs b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKAPISPOTScheduleRateResultShowDto.cs
new file mode 100644
index 00000000..b3f60506
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKAPISPOTScheduleRateResultShowDto.cs
@@ -0,0 +1,292 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Dtos
+{
+ ///
+ /// 查询船期SPOT
+ ///
+ public class MSKAPISPOTScheduleRateResultShowDto
+ {
+ ///
+ /// 主键ID
+ ///
+ public long PId { get; set; }
+
+ ///
+ /// 船期MD5
+ ///
+ public string MD5 { get; set; }
+
+ ///
+ /// 价格id, 可进一步通过API进行其他操作
+ ///
+ public string priceID { get; set; }
+
+ ///
+ /// 币别
+ ///
+ public string TotalCurrency { get; set; }
+
+ ///
+ /// 金额
+ ///
+ public decimal totalAmount { get; set; }
+
+ ///
+ /// 金额格式化
+ ///
+ public string totalAmountShow { get; set; }
+
+ ///
+ /// 是否中转
+ ///
+ public bool isTransfer { get; set; }
+
+ ///
+ /// ETD
+ ///
+ public Nullable ETD { get; set; }
+
+ ///
+ /// ETA
+ ///
+ public Nullable ETA { get; set; }
+
+ ///
+ /// 城市名(始发地)
+ ///
+ public string orignCityName { get; set; }
+
+ ///
+ /// 地点的GEO ID(始发地)
+ ///
+ public string orignCarrierSiteGeoID { get; set; }
+
+ ///
+ /// 地点的CITY GEO ID(始发地)
+ ///
+ public string orignCarrierCityGeoID { get; set; }
+
+ ///
+ /// 地点的名称(始发地)
+ ///
+ public string orignLocationName { get; set; }
+
+ ///
+ /// 省
+ ///
+ public string originRegionName { get; set; }
+
+ ///
+ /// 国家代码(始发地)
+ ///
+ public string orignCountryCode { get; set; }
+
+ ///
+ ///国家名称(始发地)
+ ///
+ public string originCountryName { get; set; }
+
+ ///
+ /// 位置类型(始发地)
+ ///
+ public string orignLocationType { get; set; }
+
+ ///
+ /// 五字码(始发地)
+ ///
+ public string orignUNLocationCode { get; set; }
+
+ ///
+ /// 区代码(始发地)
+ ///
+ public string orignUNRegionCode { get; set; }
+
+ ///
+ /// 城市名(目的地)
+ ///
+ public string deliveryCityName { get; set; }
+
+ ///
+ /// 地点的GEO ID(目的地)
+ ///
+ public string deliveryCarrierSiteGeoID { get; set; }
+
+ ///
+ /// 地点的CITY GEO ID(目的地)
+ ///
+ public string deliveryCarrierCityGeoID { get; set; }
+
+ ///
+ /// 地点的名称(目的地)
+ ///
+ public string deliveryLocationName { get; set; }
+
+ ///
+ /// 省
+ ///
+ public string deliveryRegionName { get; set; }
+
+ ///
+ /// 国家代码(目的地)
+ ///
+ public string deliveryCountryCode { get; set; }
+
+ ///
+ /// 国家名称(目的地)
+ ///
+ public string deliveryCountryName { get; set; }
+
+ ///
+ /// 位置类型(目的地)
+ ///
+ public string deliveryLocationType { get; set; }
+
+ ///
+ /// 五字码(目的地)
+ ///
+ public string deliveryUNLocationCode { get; set; }
+
+ ///
+ /// 区代码(目的地)
+ ///
+ public string deliveryUNRegionCode { get; set; }
+
+
+ ///
+ /// IMO
+ ///
+ public string vesselIMONumber { get; set; }
+
+ ///
+ /// 航次号
+ ///
+ public string carrierVesselCode { get; set; }
+
+ ///
+ /// 运输方式
+ ///
+ public string transportMode { get; set; }
+
+ ///
+ /// 船名
+ ///
+ public string vesselName { get; set; }
+
+ ///
+ /// 航次代码
+ ///
+ public string carrierDepartureVoyageNumber { get; set; }
+
+ ///
+ /// 承运人代码(MAEU, SEAU, SEJJ, MCPU, MAEI)
+ ///
+ public string vesselOperatorCarrierCode { get; set; }
+
+ ///
+ /// 行程天数
+ ///
+ public int days { get; set; }
+
+ ///
+ /// 航程明细
+ ///
+ public List Legs { get; set; }
+ }
+
+
+ public class MSKAPISPOTScheduleRateResultShowLegsDto
+ {
+ ///
+ /// 排序值
+ ///
+ public int SortNo { get; set; }
+
+ ///
+ /// 船名
+ ///
+ public string vesselName { get; set; }
+
+ ///
+ /// 航次
+ ///
+ public string VoyageNo { get; set; }
+
+ ///
+ /// ETD
+ ///
+ public Nullable ETD { get; set; }
+
+ ///
+ /// ATD
+ ///
+ public Nullable ETA { get; set; }
+
+ ///
+ /// 起始地
+ ///
+ public MSKAPISPOTScheduleRateResultShowLegsLocationDto From { get; set; }
+
+ ///
+ /// 目的地
+ ///
+ public MSKAPISPOTScheduleRateResultShowLegsLocationDto To { get; set; }
+
+ }
+
+ public class MSKAPISPOTScheduleRateResultShowLegsLocationDto
+ {
+ ///
+ /// 定位类型 From-起始地 To-目的地
+ ///
+ public string LocationType { get; set; }
+ ///
+ /// 码头定位ID
+ ///
+ public string SiteGeoId { get; set; }
+
+ ///
+ /// 城市定位ID
+ ///
+ public string CityGeoId { get; set; }
+
+ ///
+ ///
+ ///
+ public string rkstCode { get; set; }
+
+ ///
+ /// 城市定位ID
+ ///
+ public string UnLocCode { get; set; }
+
+ ///
+ /// 码头全称
+ ///
+ public string SiteName { get; set; }
+
+ ///
+ /// 城市名
+ ///
+ public string CityName { get; set; }
+
+ ///
+ /// 省
+ ///
+ public string RegionName { get; set; }
+
+ ///
+ /// 特别行政区或国家代码
+ ///
+ public string CountryCode { get; set; }
+
+ ///
+ /// 特别行政区或国家名称
+ ///
+ public string CountryName { get; set; }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKBookingDto.cs b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKBookingDto.cs
new file mode 100644
index 00000000..a3115920
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKBookingDto.cs
@@ -0,0 +1,442 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Dtos
+{
+ ///
+ /// 马士基订舱请求
+ ///
+ public class MSKBookingDto
+ {
+ ///
+ /// 记录ID
+ ///
+ public Nullable id { get; set; }
+
+ ///
+ /// 船公司代码
+ ///
+ public string carrierId { get; set; }
+
+ ///
+ /// 订舱ID
+ ///
+ public long bookingId { get; set; }
+
+ ///
+ /// 主键ID
+ ///
+ public long PId { get; set; }
+
+ ///
+ /// 船期MD5
+ ///
+ public string MD5 { get; set; }
+
+ ///
+ /// 合同唯一id
+ ///
+ [RegularExpression("[a-zA-Z0-9_/,-]{1,50}", ErrorMessage = "合同号格式错误 [a-zA-Z0-9_/,-]{1,50}")]
+ 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; }
+
+ ///
+ /// 价格所有者合约号
+ ///
+ public string priceOwnerReference { get; set; }
+
+ ///
+ /// 价格所有者合约号主键
+ ///
+ public string priceOwnerReferenceId { get; set; }
+
+ ///
+ /// 价格所有者合约号名称
+ ///
+ public string priceOwnerReferenceName { get; set; }
+
+ ///
+ /// 承运人代码(MAEU, SEAU, SEJJ, MCPU, MAEI)
+ ///
+ public string carrierCode { get; set; }
+
+ ///
+ /// 最早起运日期, 不可小于当前日期
+ ///
+ public Nullable 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; }
+
+ ///
+ /// 收货地国家代码
+ ///
+ public string placeOfReceiptCountryCode { get; set; }
+
+ ///
+ /// 交货地UN地点代码
+ ///
+ public string placeOfDeliveryUnLocCode { get; set; }
+
+ ///
+ /// 交货地城市英文名称
+ ///
+ public string placeOfDeliveryCityName { get; set; }
+
+ ///
+ /// 交货地国家代码
+ ///
+ public string placeOfDeliveryCountryCode { get; set; }
+
+ ///
+ /// 出发时间, ISO时间格式
+ ///
+ public Nullable originDepartureDateTimeLocal { get; set; }
+
+ ///
+ /// 到达时间, ISO时间格式
+ ///
+ public Nullable destinationArrivalDateTimeLocal { get; set; }
+
+ ///
+ /// 是否冷冻处理
+ ///
+ public bool isReefer { get; set; } = false;
+
+ ///
+ /// 温度探头的数量
+ ///
+ public Nullable noOfProbes { get; set; }
+
+ ///
+ /// 温度
+ ///
+ public Nullable temperature { get; set; }
+
+ ///
+ /// 通风
+ ///
+ [Range(0, 285)]
+ public Nullable ventilation { get; set; }
+
+ ///
+ /// 湿度
+ ///
+ public Nullable humidity { get; set; }
+
+ ///
+ /// 货物代码
+ ///
+ [RegularExpression("^[0-9]{6}$", ErrorMessage = "货物代码格式错误,应提交6位数字代码")]
+ public string commodityCode { get; set; }
+
+ ///
+ /// 货物名称
+ ///
+ public string commodityName { 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 carrierVesselCode { get; set; }
+
+ ///
+ /// 船名
+ ///
+ public string vesselName { get; set; }
+
+ ///
+ /// 航次号
+ ///
+ public string exportVoyageNumber { get; set; }
+
+ ///
+ /// 运输方式(BAR, BCO, DST, FEF, FEO, MVS, RCO, RR, SSH, TRK, VSF, VSL, VSM)
+ ///
+ public string transportMode { get; set; }
+
+ ///
+ /// 预计航行天数
+ ///
+ public Nullable EstSailingDays { get; set; }
+
+ ///
+ /// 合约号主键
+ ///
+ public Nullable priceReferenceId { get; set; }
+
+ ///
+ /// 合约号名称
+ ///
+ public string priceReferenceName { get; set; }
+
+ ///
+ /// 我希望使用托运人自己的集装箱
+ ///
+ public bool isShipperOwned { get; set; }
+
+ ///
+ /// 我想使用进口退货集装箱或者其他三角集运选项
+ ///
+ public bool isImportReturned { get; set; }
+
+ ///
+ /// 查询船期ID
+ ///
+ public string carrierProductId { get; set; }
+
+ ///
+ /// 是否不使用船期表订舱
+ ///
+ public bool isSendNoSchedule { get; set; } = false;
+
+ ///
+ /// 收货地国家名称
+ ///
+ public string placeOfReceiptCountryName { get; set; }
+
+ ///
+ /// 收货地行政名称
+ ///
+ public string placeOfReceiptRegionName { get; set; }
+
+ ///
+ /// 交货地国家名称
+ ///
+ public string placeOfDeliveryCountryName { get; set; }
+
+ ///
+ /// 交货地行政名称
+ ///
+ public string placeOfDeliveryRegionName { get; set; }
+
+ ///
+ /// 用户录入收货地UN地点代码
+ ///
+ public string userPlaceOfReceiptUnLocCode { get; set; }
+
+ ///
+ /// 用户录入收货地城市英文名称
+ ///
+ public string userPlaceOfReceiptCityName { get; set; }
+
+ ///
+ /// 用户录入收货地国家代码
+ ///
+ public string userPlaceOfReceiptCountryCode { get; set; }
+
+ //
+ /// 用户录入收货地国家名称
+ ///
+ public string userPlaceOfReceiptCountryName { get; set; }
+
+ ///
+ /// 用户录入收货地行政名称
+ ///
+ public string userPlaceOfReceiptRegionName { get; set; }
+
+ ///
+ /// 用户录入交货地国家名称
+ ///
+ public string userPlaceOfDeliveryCountryName { get; set; }
+
+ ///
+ /// 用户录入交货地行政名称
+ ///
+ public string userPlaceOfDeliveryRegionName { get; set; }
+
+ ///
+ /// 用户录入交货地UN地点代码
+ ///
+ public string userPlaceOfDeliveryUnLocCode { get; set; }
+
+ ///
+ /// 用户录入交货地城市英文名称
+ ///
+ public string userPlaceOfDeliveryCityName { get; set; }
+
+ ///
+ /// 用户录入交货地国家代码
+ ///
+ public string userPlaceOfDeliveryCountryCode { get; set; }
+
+ ///
+ /// 箱型箱量列表
+ ///
+ public List ctns { get; set; }
+
+ ///
+ /// 收货地定位ID
+ ///
+ public string carrierCollectionOriginGeoID { get; set; }
+
+ ///
+ /// 交货地定位ID
+ ///
+ public string carrierDeliveryDestinationGeoID { get; set; }
+
+ ///
+ /// 订舱通道类型 CON_API-合约API,SPOT_API-SPOT订舱,EDI-EDI订舱
+ ///
+ public string bookingChannelType { get; set; }
+
+ ///
+ /// 订舱通道类型 CON_API-合约API,SPOT_API-SPOT订舱,EDI-EDI订舱
+ ///
+ public string bookingChannelTypeName { get; set; }
+
+ ///
+ /// 选择的船期详情
+ ///
+ public SearchShipSailingScheduleResultDto selectedShipScheduleShow { get; set; }
+ }
+
+ public class MSKBookingCtnInfo
+ {
+ ///
+ /// 箱型
+ ///
+ public string ctnCode { get; set; }
+
+ ///
+ /// 箱型名称
+ ///
+ public string ctnName { get; set; }
+
+ ///
+ /// 箱量
+ ///
+ public Nullable ctnNum { get; set; }
+
+ ///
+ /// 箱内重量
+ ///
+ public Nullable ctnSufferWeight { get; set; }
+
+ ///
+ /// 集装箱主键
+ ///
+ public Nullable id { get; set; }
+
+ ///
+ /// 对应船公司箱型
+ ///
+ public string carrierCtnCode { get; set; }
+
+ ///
+ /// 箱计量单位
+ ///
+ public string stuffingMeasurementType { get; set; }
+
+ ///
+ /// 重量或者体积的计量单位
+ ///
+ public string stuffingMeasurementUnit { get; set; }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKBookingResultDto.cs b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKBookingResultDto.cs
new file mode 100644
index 00000000..9f337a85
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKBookingResultDto.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Dtos
+{
+ ///
+ /// 马士基订舱回执
+ ///
+ public class MSKBookingResultDto
+ {
+ ///
+ /// 是否成功 true=成功 false=失败
+ ///
+ public bool succ { get; set; } = false;
+
+ ///
+ /// 状态 0-成功
+ ///
+ public int status { get; set; } = 0;
+
+ ///
+ /// 返回消息
+ ///
+ public string msg { get; set; }
+
+ ///
+ /// 马士基API订舱主键
+ ///
+ public Nullable id { get; set; }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKSPOTBookingInitDto.cs b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKSPOTBookingInitDto.cs
new file mode 100644
index 00000000..e6ea5dfc
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/MSKSPOTBookingInitDto.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Dtos
+{
+ ///
+ /// MSK SPOT 订舱初始加载详情
+ ///
+ public class MSKSPOTBookingInitDto
+ {
+ ///
+ /// 订舱方备案编号(马士基)
+ ///
+ public string bookedByMaerskPartyCode { get; set; }
+
+ ///
+ /// 订舱方备案全称(马士基)
+ ///
+ public string bookedByCompanyName { get; set; }
+
+ ///
+ /// 订舱方联系人(马士基)
+ ///
+ public string bookedByCompanyContactName { get; set; }
+
+ ///
+ /// 订舱方联系邮箱(马士基)
+ ///
+ public string bookedByCompanyContactEmail { get; set; }
+
+ ///
+ /// 持约方备案代码(马士基)
+ ///
+ public string priceOwnerMaerskPartyCode { get; set; }
+
+ ///
+ /// 持约方备案全称(马士基)
+ ///
+ public string priceOwnerCompanyName { get; set; }
+
+ ///
+ /// 订舱方联系人(马士基)
+ ///
+ public string priceOwnerContactName { get; set; }
+
+ ///
+ /// 订舱方联系邮箱(马士基)
+ ///
+ public string priceOwnerContactEmail { get; set; }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/QueryCommoditiesDto.cs b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/QueryCommoditiesDto.cs
new file mode 100644
index 00000000..7a5067b5
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/QueryCommoditiesDto.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Dtos
+{
+ ///
+ /// 商品名称检索请求
+ ///
+ public class QueryCommoditiesDto
+ {
+ ///
+ /// 商品名称
+ ///
+ public string commodityName { get; set; }
+
+ ///
+ /// 船公司代码
+ ///
+ public string carrierId { get; set; }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/QueryLocationsDto.cs b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/QueryLocationsDto.cs
new file mode 100644
index 00000000..3dcc1bfb
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/QueryLocationsDto.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Dtos
+{
+ ///
+ /// 检索始发地、目的港口信息
+ ///
+ public class QueryLocationsDto
+ {
+ ///
+ /// 港口或城市名称
+ ///
+ public string cityName { get; set; }
+
+ ///
+ /// 船公司代码
+ ///
+ public string carrierId { get; set; }
+
+ ///
+ /// 服务船公司代码(MAEU, SEAU, SEJJ, MCPU, MAEI) carrierId=MSK时必填
+ ///
+ public string carrierCode { get; set; } = "MAEU";
+
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/QueryLocationsResultDto.cs b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/QueryLocationsResultDto.cs
new file mode 100644
index 00000000..8eecefa9
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/QueryLocationsResultDto.cs
@@ -0,0 +1,59 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Dtos
+{
+ ///
+ /// 查询港口回执信息
+ ///
+ public class QueryLocationsResultDto
+ {
+ ///
+ /// 港口的国家代码
+ ///
+ public string countryCode { get; set; }
+
+ ///
+ /// 国家名称
+ ///
+ public string countryName { get; set; }
+
+ ///
+ /// 城市名
+ ///
+ public string cityName { get; set; }
+
+ ///
+ /// 地点类型
+ ///
+ public string locationType { get; set; }
+
+ ///
+ /// 地点名名
+ ///
+ public string locationName { get; set; }
+
+ ///
+ /// 地点id
+ ///
+ public string carrierGeoID { get; set; }
+
+ ///
+ /// 港口五子码, 在订舱等业务时,港口信息一般填写这个
+ ///
+ public string UNLocationCode { get; set; }
+
+ ///
+ /// 区域代码
+ ///
+ public string UNRegionCode { get; set; }
+
+ ///
+ /// 区域名称
+ ///
+ public string UNRegionName { get; set; }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/QueryShipSailingScheduleDto.cs b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/QueryShipSailingScheduleDto.cs
new file mode 100644
index 00000000..0c48fea8
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/QueryShipSailingScheduleDto.cs
@@ -0,0 +1,154 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Dtos
+{
+ ///
+ /// 检索船期请求
+ ///
+ public class QueryShipSailingScheduleDto
+ {
+ ///
+ /// 船公司代码
+ ///
+ public string carrierId { get; set; }
+
+ ///
+ /// 起始地的GEO ID
+ ///
+ public string carrierCollectionOriginGeoID { get; set; }
+
+ ///
+ /// 目的地的GEO ID
+ ///
+ public string carrierDeliveryDestinationGeoID { get; set; }
+
+ ///
+ /// 起始地国家代码(英文)
+ ///
+ public string collectionOriginCountryCode { get; set; }
+
+ ///
+ /// 起始地城市名
+ ///
+ public string collectionOriginCityName { get; set; }
+
+ ///
+ /// 起始地国家名称(英文)
+ ///
+ public string collectionOriginCountryName { get; set; }
+
+ ///
+ /// 起始地五字码
+ ///
+ public string collectionOriginUNLocationCode { get; set; }
+
+ ///
+ /// 起始地区代码
+ ///
+ public string collectionOriginUNRegionCode { get; set; }
+
+ ///
+ /// 起始地区名称
+ ///
+ public string collectionOriginUNRegionName { get; set; }
+
+ ///
+ /// 目的地国家代码 二字码
+ ///
+ public string deliveryDestinationCountryCode { get; set; }
+
+ ///
+ /// 目的地城市名称
+ ///
+ public string deliveryDestinationCityName { get; set; }
+
+ ///
+ /// 目的地国家名称 二字码
+ ///
+ public string deliveryDestinationCountryName { get; set; }
+
+ ///
+ /// 目的都五字码
+ ///
+ public string deliveryDestinationUNLocationCode { get; set; }
+
+ ///
+ /// 目的地区代码
+ ///
+ public string deliveryDestinationUNRegionCode { get; set; }
+
+ ///
+ /// 目的地区名称
+ ///
+ public string deliveryDestinationUNRegionName { get; set; }
+
+ ///
+ /// 承运人代码(MAEU, SEAU, SEJJ, MCPU, MAEI)
+ ///
+ public string vesselOperatorCarrierCode { get; set; }
+
+ ///
+ /// 货物类型代码(DRY, REEFER)
+ ///
+ public string cargoType { get; set; }
+
+ ///
+ /// 箱型代码
+ ///
+ public string ISOEquipmentCode { get; set; }
+
+ ///
+ /// 箱重量
+ ///
+ public string stuffingWeight { get; set; }
+
+ ///
+ /// 重量单位(KGS, LBS)
+ ///
+ public string weightMeasurementUnit { get; set; }
+
+ ///
+ /// 箱体积
+ ///
+ public int stuffingVolume { get; set; }
+
+ ///
+ /// 体积单位(MTQ, FTQ)
+ ///
+ public string volumeMeasurementUnit { get; set; }
+
+ ///
+ /// 出口服务代码(CY, SD, CFS)
+ ///
+ public string exportServiceMode { get; set; }
+
+ ///
+ /// 进口服务代码(CY, SD, CFS)
+ ///
+ public string importServiceMode { get; set; }
+
+ ///
+ /// 开始时间
+ ///
+ public string startDate { get; set; }
+
+ ///
+ /// 开始时间类型(D, A)
+ ///
+ public string startDateType { get; set; }
+
+ ///
+ /// 请求产品信息的时间段(P1W, P2W, P3W, P4W, P5W, P6W, P7W, P8W)
+ ///
+ public string dateRange { get; set; }
+
+ ///
+ /// 船舶标志代号
+ ///
+ public string vesselFlagCode { get; set; }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/SearchCommodityResultDto.cs b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/SearchCommodityResultDto.cs
new file mode 100644
index 00000000..22fb7f47
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/SearchCommodityResultDto.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Dtos
+{
+ ///
+ /// 商品检索结果
+ ///
+ public class SearchCommodityResultDto
+ {
+ ///
+ /// 商品名称
+ ///
+ public string commodityName { get; set; }
+
+ ///
+ /// 商品代码
+ ///
+ public string commodityCode { get; set; }
+
+ ///
+ /// 货物品类
+ ///
+ public string[] cargoTypes { get; set; }
+
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/SearchShipSailingScheduleResultDto.cs b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/SearchShipSailingScheduleResultDto.cs
new file mode 100644
index 00000000..2de56d60
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Dtos/SpaceBooking/SearchShipSailingScheduleResultDto.cs
@@ -0,0 +1,84 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Dtos
+{
+ ///
+ /// 查询船期回执
+ ///
+ public class SearchShipSailingScheduleResultDto : MSKAPISPOTScheduleRateResultShowDto
+ {
+ ///
+ /// 产品id
+ ///
+ public string carrierProductId { get; set; }
+
+ ///
+ /// 产品序号
+ ///
+ public string carrierProductSequenceId { get; set; }
+
+ ///
+ /// 起运地rkst代码
+ ///
+ public string originRkstCode { get; set; }
+
+ ///
+ /// 起运地geoID
+ ///
+ public string originGeoId { get; set; }
+
+ ///
+ /// 起运地五子码
+ ///
+ public string originUnLocCode { get; set; }
+
+ ///
+ /// 起运地城市名
+ ///
+ public string originCityName { get; set; }
+
+ ///
+ /// 起运地区名
+ ///
+ public string originRegionName { get; set; }
+
+ ///
+ /// 起运地国家名
+ ///
+ public string originCountryName { get; set; }
+
+ ///
+ /// 目的地rkst代码
+ ///
+ public string destinationRkstCode { get; set; }
+
+ ///
+ /// 目的地geoID
+ ///
+ public string destinationGeoId { get; set; }
+
+ ///
+ /// 目的地五子码
+ ///
+ public string destinationUnLocCode { get; set; }
+
+ ///
+ /// 目的地城市名
+ ///
+ public string destinationCityName { get; set; }
+
+ ///
+ /// 目的地区名
+ ///
+ public string destinationRegionName { get; set; }
+
+ ///
+ /// 目的地国家名
+ ///
+ public string destinationCountryName { get; set; }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Interface/SpaceBooking/ISpaceBookingMSKAPIService.cs b/ds-wms-service/DS.WMS.Core/Op/Interface/SpaceBooking/ISpaceBookingMSKAPIService.cs
new file mode 100644
index 00000000..81043de8
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Interface/SpaceBooking/ISpaceBookingMSKAPIService.cs
@@ -0,0 +1,116 @@
+using DS.Module.Core;
+using DS.WMS.Core.Op.Dtos;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Interface
+{
+ ///
+ /// 马士基API订舱
+ ///
+ public interface ISpaceBookingMSKAPIService
+ {
+ ///
+ /// 检索海运船期详情
+ ///
+ /// 请求船期详情
+ /// 返回船期结果
+ Task>> SearchShipSailingSchedule(QueryShipSailingScheduleDto model);
+
+ ///
+ /// 发送马士基订舱请求
+ ///
+ /// 请求订舱详情
+ /// 返回检索结果
+ Task> SendMSKBooking(MSKBookingDto model);
+
+ ///
+ /// 检索商品名称
+ ///
+ /// 请求详情
+ /// 返回检索结果
+ Task>> SearchCommodities(QueryCommoditiesDto model);
+
+ ///
+ /// 检索始发地、目的港口信息
+ ///
+ /// 请求详情
+ /// 返回检索结果
+ Task>> SearchLocations(QueryLocationsDto model);
+
+ ///
+ /// 马士基API订舱台账
+ ///
+ /// 查询条件
+ /// 返回台账列表
+ Task>> GetPageAsync(PageRequest QuerySearch);
+
+ ///
+ /// 获取马士基API订舱详情
+ ///
+ /// 马士基API订舱ID
+ /// 返回详情
+ Task> GetInfo(long id);
+
+ ///
+ /// 保存
+ ///
+ /// 请求订舱详情
+ /// 返回ID
+ Task> Save(MSKBookingDto model);
+
+ ///
+ /// 删除
+ ///
+ /// 请求订舱ID
+ ///
+ Task Delete(long id);
+
+ ///
+ /// 批量发送API前调取校验预警
+ ///
+ /// 马士基API订舱ID组
+ /// 返回提示信息
+ Task> CheckWarningBatchSend(long[] ids);
+
+ ///
+ /// 批量发送
+ ///
+ /// 马士基API订舱ID组
+ /// 返回执行结果消息
+ Task> BatchSend(long[] ids);
+
+ ///
+ /// 批量复制前调取校验预警
+ ///
+ /// 马士基API批量复制指定数据
+ /// 返回提示信息
+ Task> CheckWarningBatchCopy(MSKAPIBookingCopyDto model);
+
+ ///
+ /// 批量复制
+ ///
+ /// 马士基API批量复制指定数据
+ /// 返回执行结果消息
+ Task> BatchCopy(MSKAPIBookingCopyDto model);
+
+ ///
+ /// 同步BC状态(BC,Cancellation)
+ ///
+ /// 提单号
+ /// 租户ID
+ /// 操作类型 BC-同步BC状态 Cancellation-同步取消状态
+ /// 返回回执
+ Task> SyncBCInfo(string mblno, long tenantId, string opTypeName = "BookingConfirmation");
+
+ ///
+ /// 获取初始化页面默认值
+ ///
+ /// 返回详情
+
+ Task> GetInitInfo();
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Interface/SpaceBooking/ISpaceBookingMSKSPOTAPIService.cs b/ds-wms-service/DS.WMS.Core/Op/Interface/SpaceBooking/ISpaceBookingMSKSPOTAPIService.cs
new file mode 100644
index 00000000..e277906c
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Op/Interface/SpaceBooking/ISpaceBookingMSKSPOTAPIService.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Op.Interface
+{
+ public interface ISpaceBookingMSKSPOTAPIService
+ {
+ }
+}