jianghaiqing 11 months ago
commit 44894c802b

@ -0,0 +1,255 @@
using System;
using System.Collections.Generic;
using SqlSugar;
using Myshipping.Core.Entity;
/*
* @author : whm
* @date : 2024-1-5
* @desc :
*/
namespace Myshipping.Application
{
/// <summary>
/// 舱位分配表
/// </summary>
[SugarTable("booking_slot_allocation", TableDescription = "舱位分配表")]
public class BookingSlotAllocation : DBEntityTenant
{
/// <summary>
/// 舱位主键
/// </summary>
[SugarColumn(ColumnName = "BOOKING_SLOT_ID")]
public long BOOKING_SLOT_ID{ get; set; }
/// <summary>
/// 订舱主键,关联订舱主表ID
/// </summary>
[SugarColumn(ColumnName = "BOOKING_ID")]
public long BOOKING_ID{ get; set; }
/// <summary>
/// 舱位提单号
/// </summary>
[SugarColumn(ColumnName = "SLOT_BOOKING_NO")]
public string SLOT_BOOKING_NO{ get; set; }
/// <summary>
/// 分配提单号
/// </summary>
[SugarColumn(ColumnName = "ALLO_BILL_NO")]
public string ALLO_BILL_NO{ get; set; }
/// <summary>
/// 最终提单号,分票后船公司重新分配提单号
/// </summary>
[SugarColumn(ColumnName = "FINAL_BILL_NO")]
public string FINAL_BILL_NO{ get; set; }
/// <summary>
/// 合约号
/// </summary>
[SugarColumn(ColumnName = "CONTRACT_NO")]
public string CONTRACT_NO{ get; set; }
/// <summary>
/// 订舱抬头
/// </summary>
[SugarColumn(ColumnName = "BOOKING_PARTY")]
public string BOOKING_PARTY{ get; set; }
/// <summary>
/// 船名
/// </summary>
[SugarColumn(ColumnName = "VESSEL")]
public string VESSEL{ get; set; }
/// <summary>
/// 航次号
/// </summary>
[SugarColumn(ColumnName = "VOYNO")]
public string VOYNO{ get; set; }
/// <summary>
/// 预计开船日期
/// </summary>
[SugarColumn(ColumnName = "ETD")]
public DateTime ETD{ get; set; }
/// <summary>
/// 预计到港日期
/// </summary>
[SugarColumn(ColumnName = "ETA")]
public DateTime ETA{ get; set; }
/// <summary>
/// 收货地代码
/// </summary>
[SugarColumn(ColumnName = "PLACERECEIPTID")]
public string PLACERECEIPTID{ get; set; }
/// <summary>
/// 收货地
/// </summary>
[SugarColumn(ColumnName = "PLACERECEIPT")]
public string PLACERECEIPT{ get; set; }
/// <summary>
/// 交货地代码
/// </summary>
[SugarColumn(ColumnName = "PLACEDELIVERYID")]
public string PLACEDELIVERYID{ get; set; }
/// <summary>
/// 交货地
/// </summary>
[SugarColumn(ColumnName = "PLACEDELIVERY")]
public string PLACEDELIVERY{ get; set; }
/// <summary>
/// 装货港代码
/// </summary>
[SugarColumn(ColumnName = "PORTLOADID")]
public string PORTLOADID{ get; set; }
/// <summary>
/// 装货港
/// </summary>
[SugarColumn(ColumnName = "PORTLOAD")]
public string PORTLOAD{ get; set; }
/// <summary>
/// 卸货港代码
/// </summary>
[SugarColumn(ColumnName = "PORTDISCHARGEID")]
public string PORTDISCHARGEID{ get; set; }
/// <summary>
/// 卸货港
/// </summary>
[SugarColumn(ColumnName = "PORTDISCHARGE")]
public string PORTDISCHARGE{ get; set; }
/// <summary>
/// 中转港1
/// </summary>
[SugarColumn(ColumnName = "TRANSFER_PORT_1")]
public string TRANSFER_PORT_1{ get; set; }
/// <summary>
/// 中转港2
/// </summary>
[SugarColumn(ColumnName = "TRANSFER_PORT_2")]
public string TRANSFER_PORT_2{ get; set; }
/// <summary>
/// 船公司代号
/// </summary>
[SugarColumn(ColumnName = "CARRIERID")]
public string CARRIERID{ get; set; }
/// <summary>
/// 船公司
/// </summary>
[SugarColumn(ColumnName = "CARRIER")]
public string CARRIER{ get; set; }
/// <summary>
/// 航线代码(船公司)
/// </summary>
[SugarColumn(ColumnName = "LANECODE")]
public string LANECODE{ get; set; }
/// <summary>
/// 航线名称(船公司)
/// </summary>
[SugarColumn(ColumnName = "LANENAME")]
public string LANENAME{ get; set; }
/// <summary>
/// 承运方式 DIRECT_SHIP-直达TRANSFER_SHIP-中转
/// </summary>
[SugarColumn(ColumnName = "CARRIAGE_TYPE")]
public string CARRIAGE_TYPE{ get; set; }
/// <summary>
/// 承运方式名称 CONTRACT_ORDER-合约订舱SPOT_ORDER-SPOT订舱
/// </summary>
[SugarColumn(ColumnName = "CARRIAGE_TYPE_NAME")]
public string CARRIAGE_TYPE_NAME{ get; set; }
/// <summary>
/// 订舱方式 CONTRACT_ORDER-合约订舱SPOT_ORDER-SPOT订舱
/// </summary>
[SugarColumn(ColumnName = "BOOKING_SLOT_TYPE")]
public string BOOKING_SLOT_TYPE{ get; set; }
/// <summary>
/// 订舱方式名称 CONTRACT_ORDER-合约订舱SPOT_ORDER-SPOT订舱
/// </summary>
[SugarColumn(ColumnName = "BOOKING_SLOT_TYPE_NAME")]
public string BOOKING_SLOT_TYPE_NAME{ get; set; }
/// <summary>
/// 签单方式 ORIGINAL-正本TELEX-电放SEAWAY BILL-海运单;
/// </summary>
[SugarColumn(ColumnName = "ISSUETYPE")]
public string ISSUETYPE{ get; set; }
/// <summary>
/// 箱型箱量
/// </summary>
[SugarColumn(ColumnName = "CTN_STAT")]
public string CTN_STAT{ get; set; }
/// <summary>
/// 所在周数
/// </summary>
[SugarColumn(ColumnName = "WEEK_AT")]
public string WEEK_AT{ get; set; }
/// <summary>
/// 箱使天数
/// </summary>
[SugarColumn(ColumnName = "DETENSION_FREE_DAYS")]
public int DETENSION_FREE_DAYS{ get; set; }
/// <summary>
/// 样单截止日期
/// </summary>
[SugarColumn(ColumnName = "SI_CUT_DATE")]
public DateTime SI_CUT_DATE{ get; set; }
/// <summary>
/// 截港时间
/// </summary>
[SugarColumn(ColumnName = "CY_CUT_DATE")]
public DateTime CY_CUT_DATE{ get; set; }
/// <summary>
/// VGM截止日期
/// </summary>
[SugarColumn(ColumnName = "VGM_SUBMISSION_CUT_DATE")]
public DateTime VGM_SUBMISSION_CUT_DATE{ get; set; }
/// <summary>
/// MDGF提交截止时间
/// </summary>
[SugarColumn(ColumnName = "MDGF_CUT_DATE")]
public DateTime MDGF_CUT_DATE{ get; set; }
/// <summary>
/// 舱单截止时间
/// </summary>
[SugarColumn(ColumnName = "MANIFEST_CUT_DATE")]
public DateTime MANIFEST_CUT_DATE{ get; set; }
/// <summary>
/// 租户名称
/// </summary>
[SugarColumn(ColumnName = "TenantName")]
public string TenantName{ get; set; }
}
}

@ -0,0 +1,111 @@
using System;
using System.Collections.Generic;
using SqlSugar;
using Myshipping.Core.Entity;
/*
* @author : whm
* @date : 2024-1-5
* @desc :
*/
namespace Myshipping.Application
{
/// <summary>
/// 舱位分配集装箱表
/// </summary>
[SugarTable("booking_slot_allocation_ctn", TableDescription = "舱位分配集装箱表")]
public class BookingSlotAllocationCtn : DBEntityTenant
{
/// <summary>
/// 舱位分配主键
/// </summary>
[SugarColumn(ColumnName = "SLOT_ALLOC_ID")]
public long SLOT_ALLOC_ID{ get; set; }
/// <summary>
/// 箱型代码
/// </summary>
[SugarColumn(ColumnName = "CTNCODE")]
public string CTNCODE{ get; set; }
/// <summary>
/// 箱型名称
/// </summary>
[SugarColumn(ColumnName = "CTNALL")]
public string CTNALL{ get; set; }
/// <summary>
/// 箱量
/// </summary>
[SugarColumn(ColumnName = "CTNNUM")]
public int CTNNUM{ get; set; }
/// <summary>
/// 箱号
/// </summary>
[SugarColumn(ColumnName = "CNTRNO")]
public string CNTRNO{ get; set; }
/// <summary>
/// 箱封号
/// </summary>
[SugarColumn(ColumnName = "SEALNO")]
public string SEALNO{ get; set; }
/// <summary>
/// 件数
/// </summary>
[SugarColumn(ColumnName = "PKGS")]
public int PKGS{ get; set; }
/// <summary>
/// 包装
/// </summary>
[SugarColumn(ColumnName = "KINDPKGS")]
public string KINDPKGS{ get; set; }
/// <summary>
/// 毛重
/// </summary>
[SugarColumn(ColumnName = "KGS")]
public decimal KGS{ get; set; }
/// <summary>
/// 尺码
/// </summary>
[SugarColumn(ColumnName = "CBM")]
public decimal CBM{ get; set; }
/// <summary>
/// 皮重
/// </summary>
[SugarColumn(ColumnName = "TAREWEIGHT")]
public decimal TAREWEIGHT{ get; set; }
/// <summary>
/// 箱状态
/// </summary>
[SugarColumn(ColumnName = "CTNSTATUS")]
public string CTNSTATUS{ get; set; }
/// <summary>
/// 称重方式
/// </summary>
[SugarColumn(ColumnName = "WEIGHTYPE")]
public string WEIGHTYPE{ get; set; }
/// <summary>
/// 称重重量
/// </summary>
[SugarColumn(ColumnName = "WEIGHKGS")]
public decimal WEIGHKGS{ get; set; }
/// <summary>
/// 称重联系人
/// </summary>
[SugarColumn(ColumnName = "WEIGHATTN")]
public string WEIGHATTN{ get; set; }
}
}

@ -5,7 +5,7 @@ using Myshipping.Core.Entity;
/*
* @author : whm
* @date : 2024-1-2
* @date : 2024-1-9
* @desc : ,
*/
namespace Myshipping.Application
@ -68,13 +68,13 @@ namespace Myshipping.Application
/// 预计开船日期
/// </summary>
[SugarColumn(ColumnName = "ETD")]
public DateTime ETD{ get; set; }
public DateTime? ETD{ get; set; }
/// <summary>
/// 预计到港日期
/// </summary>
[SugarColumn(ColumnName = "ETA")]
public DateTime ETA{ get; set; }
public DateTime? ETA{ get; set; }
/// <summary>
/// 航线代码(船公司)
@ -113,23 +113,17 @@ namespace Myshipping.Application
public string REMAIN_CTN_STAT{ get; set; }
/// <summary>
/// 总
/// 总舱位
/// </summary>
[SugarColumn(ColumnName = "TOTAL_ORDERS")]
public int TOTAL_ORDERS{ get; set; }
/// <summary>
/// 使用
/// 使用舱位
/// </summary>
[SugarColumn(ColumnName = "USE_NUM")]
public int USE_NUM{ get; set; }
/// <summary>
/// 剩余票数
/// </summary>
[SugarColumn(ColumnName = "REMAIN_NUM")]
public int REMAIN_NUM{ get; set; }
/// <summary>
/// 总箱数
/// </summary>
@ -147,7 +141,7 @@ namespace Myshipping.Application
/// </summary>
[SugarColumn(ColumnName = "REMAIN_CTNS_NUM")]
public int REMAIN_CTNS_NUM{ get; set; }
/// <summary>
/// 租户名称
/// </summary>

@ -0,0 +1,129 @@
using Furion;
using Furion.EventBus;
using Furion.FriendlyException;
using Furion.RemoteRequest.Extensions;
using Mapster;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Myshipping.Application.ConfigOption;
using Myshipping.Application.Entity;
using Myshipping.Application.Service.BookingOrder.Dto;
using Myshipping.Core;
using Myshipping.Core.Entity;
using Myshipping.Core.Service;
using Newtonsoft.Json.Linq;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Yitter.IdGenerator;
namespace Myshipping.Application.Event
{
/// <summary>
/// 运踪
/// </summary>
public class BookingSlotStockSubscriber : IEventSubscriber
{
private readonly ILogger<BookingSlotStockSubscriber> _logger;
public BookingSlotStockSubscriber(
ILogger<BookingSlotStockSubscriber> logger)
{
_logger = logger;
}
//更新库存
[EventSubscribe("BookingSlotStock:Update")]
public async Task BookingSlotStock(EventHandlerExecutingContext context)
{
_logger.LogInformation($"收到更新库存订阅请求:{context.Source.Payload}");
var _repBase = App.GetService<SqlSugarRepository<BookingSlotBase>>();
var _repCtn = App.GetService<SqlSugarRepository<BookingSlotCtn>>();
var _repStock = App.GetService<SqlSugarRepository<BookingSlotStock>>();
var _repAlloc = App.GetService<SqlSugarRepository<BookingSlotAllocation>>();
var _repAllocCtn = App.GetService<SqlSugarRepository<BookingSlotAllocationCtn>>();
var paraObj = context.Source.Payload as BookingSlotStockUpdateModel;
var baseList = await _repBase.AsQueryable().Filter(null, true)
.Where(x => !x.IsDeleted
&& x.VESSEL == paraObj.VESSEL
&& x.VOYNO == paraObj.VOYNO
&& x.CONTRACT_NO == paraObj.CONTRACT_NO
&& x.BOOKING_SLOT_TYPE == paraObj.BOOKING_SLOT_TYPE
&& x.CARRIERID == paraObj.CARRIERID)
.OrderByDescending(x => x.UpdatedTime)
.ToListAsync();
var stockObj = await _repStock.AsQueryable()
.Filter(null, true)
.FirstAsync(x => !x.IsDeleted
&& x.VESSEL == paraObj.VESSEL
&& x.VOYNO == paraObj.VOYNO
&& x.CONTRACT_NO == paraObj.CONTRACT_NO
&& x.BOOKING_SLOT_TYPE == paraObj.BOOKING_SLOT_TYPE
&& x.CARRIERID == paraObj.CARRIERID);
if (stockObj == null)
{
stockObj = new BookingSlotStock();
stockObj.Id = YitIdHelper.NextId();
await _repStock.InsertAsync(stockObj);
}
var bkId = stockObj.Id;
baseList[0].Adapt(stockObj);
stockObj.Id = bkId;
stockObj.TOTAL_ORDERS = baseList.Count; //总舱位数
var lstBaseId = baseList.Select(x => x.Id).ToList();
stockObj.TOTAL_CTNS = _repCtn.Where(x => lstBaseId.Contains(x.SLOT_ID)).Count(); //总箱数
var lstAllocIdList = await _repAlloc.Where(x => lstBaseId.Contains(x.BOOKING_SLOT_ID)).Select(x => x.Id).ToListAsync();
stockObj.USE_NUM = lstAllocIdList.Count; //使用舱位数
stockObj.USE_CTNS_NUM = _repAllocCtn.Where(x => lstAllocIdList.Contains(x.SLOT_ALLOC_ID)).Count(); //使用箱数
await _repStock.UpdateAsync(stockObj);
}
}
/// <summary>
/// 刷新库存统计对象
/// </summary>
public class BookingSlotStockUpdateModel
{
/// <summary>
/// 船名
/// </summary>
public string VESSEL { get; set; }
/// <summary>
/// 航次号
/// </summary>
public string VOYNO { get; set; }
/// <summary>
/// 合约号
/// </summary>
public string CONTRACT_NO { get; set; }
/// <summary>
/// 订舱方式 CONTRACT_ORDER-合约订舱SPOT_ORDER-SPOT订舱
/// </summary>
public string BOOKING_SLOT_TYPE { get; set; }
/// <summary>
/// 船公司代号
/// </summary>
public string CARRIERID { get; set; }
}
}

@ -25,6 +25,8 @@ using Myshipping.Application.ConfigOption;
using Myshipping.Core.Service;
using Myshipping.Application.Service.BookingSlot.Dto;
using NPOI.SS.Formula.Functions;
using Furion.EventBus;
using Myshipping.Application.Event;
namespace Myshipping.Application
{
@ -40,17 +42,22 @@ namespace Myshipping.Application
private readonly ILogger<BookingSlotService> _logger;
private readonly ISysCacheService _cache;
private readonly IEventPublisher _publisher;
public BookingSlotService(SqlSugarRepository<BookingSlotBase> repBase,
SqlSugarRepository<BookingSlotCtn> repCtn,
SqlSugarRepository<BookingSlotStock> repStock,
ILogger<BookingSlotService> logger,
ISysCacheService cache)
ISysCacheService cache,
IEventPublisher publisher)
{
_repBase = repBase;
_repCtn = repCtn;
_repStock = repStock;
_logger = logger;
_cache = cache;
_publisher = publisher;
}
#region 舱位
@ -59,8 +66,8 @@ namespace Myshipping.Application
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet("/BookingSlot/page")]
public async Task<dynamic> Page([FromQuery] BookingSlotBasePageInput input)
[HttpPost("/BookingSlot/page")]
public async Task<dynamic> Page(BookingSlotBasePageInput input)
{
var entities = await _repBase.AsQueryable()
.WhereIF(!string.IsNullOrEmpty(input.SLOT_BOOKING_NO), u => u.SLOT_BOOKING_NO.Contains(input.SLOT_BOOKING_NO))
@ -123,6 +130,16 @@ namespace Myshipping.Application
}
}
//更新库存
await _publisher.PublishAsync(new ChannelEventSource("BookingSlotStock:Update", new BookingSlotStockUpdateModel
{
BOOKING_SLOT_TYPE = model.BOOKING_SLOT_TYPE,
CARRIERID = model.CARRIERID,
CONTRACT_NO = model.CONTRACT_NO,
VESSEL = model.VESSEL,
VOYNO = model.VOYNO
}));
return await Detail(model.Id);
}
@ -145,6 +162,16 @@ namespace Myshipping.Application
item.IsDeleted = true;
}
await _repCtn.UpdateAsync(ctns);
//更新库存
await _publisher.PublishAsync(new ChannelEventSource("BookingSlotStock:Update", new BookingSlotStockUpdateModel
{
BOOKING_SLOT_TYPE = entity.BOOKING_SLOT_TYPE,
CARRIERID = entity.CARRIERID,
CONTRACT_NO = entity.CONTRACT_NO,
VESSEL = entity.VESSEL,
VOYNO = entity.VOYNO
}));
}
/// <summary>
@ -165,17 +192,40 @@ namespace Myshipping.Application
#endregion
#region 库存
///// <summary>
///// 库存查询
///// </summary>
///// <param name="input"></param>
///// <returns></returns>
//[HttpGet("/BookingSlot/pageStock")]
//public async Task<dynamic> PageStock([FromQuery] BookingSlotBasePageInput input)
//{
// var query = await _repStock.AsQueryable()
// .ToListAsync();
//}
/// <summary>
/// 库存查询
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("/BookingSlot/pageStock")]
public async Task<dynamic> PageStock(BookingSlotStockPageInput input)
{
var entities = await _repStock.AsQueryable()
.WhereIF(!string.IsNullOrEmpty(input.VESSEL), u => u.VESSEL.Contains(input.VESSEL))
.WhereIF(!string.IsNullOrEmpty(input.VOYNO), u => u.VOYNO.Contains(input.VOYNO))
.WhereIF(!string.IsNullOrEmpty(input.CARRIER), u => u.CARRIER.Contains(input.CARRIER))
.WhereIF(!string.IsNullOrEmpty(input.CTN_STAT), u => u.CTN_STAT.Contains(input.CTN_STAT))
.WhereIF(input.ETD_START.HasValue, u => u.ETD >= input.ETD_START.Value)
.WhereIF(input.ETD_END.HasValue, u => u.ETD < input.ETD_END.Value.AddDays(1))
.WhereIF(input.ETA_START.HasValue, u => u.ETA >= input.ETA_START.Value)
.WhereIF(input.ETA_END.HasValue, u => u.ETA < input.ETA_END.Value.AddDays(1))
.ToPagedListAsync(input.PageNo, input.PageSize);
var result = entities.Adapt<SqlSugarPagedList<BookingSlotStockListOutput>>();
return result.XnPagedResult();
}
/// <summary>
/// 刷新库存统计
/// </summary>
/// <returns></returns>
[HttpPost("/BookingSlot/refreshStock")]
public async Task RefreshStock(BookingSlotStockUpdateModel input)
{
//更新库存
await _publisher.PublishAsync(new ChannelEventSource("BookingSlotStock:Update", input));
}
#endregion
}
}

@ -130,6 +130,17 @@ namespace Myshipping.Application.Service.BookingSlot.Dto
/// </summary>
public string CONTRACT_NO { get; set; }
/// <summary>
/// 承运方式 DIRECT_SHIP-直达TRANSFER_SHIP-中转
/// </summary>
public string CARRIAGE_TYPE { get; set; }
/// <summary>
/// 承运方式名称 CONTRACT_ORDER-合约订舱SPOT_ORDER-SPOT订舱
/// </summary>
public string CARRIAGE_TYPE_NAME { get; set; }
/// <summary>
/// 订舱方式 CONTRACT_ORDER-合约订舱SPOT_ORDER-SPOT订舱
/// </summary>
@ -140,6 +151,11 @@ namespace Myshipping.Application.Service.BookingSlot.Dto
/// </summary>
public string BOOKING_SLOT_TYPE_NAME { get; set; }
/// <summary>
/// 签单方式 ORIGINAL-正本TELEX-电放SEAWAY BILL-海运单;
/// </summary>
public string ISSUETYPE { get; set; }
/// <summary>
/// 订舱抬头
/// </summary>
@ -211,6 +227,11 @@ namespace Myshipping.Application.Service.BookingSlot.Dto
/// </summary>
public string WEEK_AT { get; set; }
/// <summary>
/// 箱使天数
/// </summary>
public int DETENSION_FREE_DAYS { get; set; }
/// <summary>
/// 箱型箱量
/// </summary>

@ -0,0 +1,174 @@
using Myshipping.Core;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application.Service.BookingSlot.Dto
{
/// <summary>
/// 查询条件
/// </summary>
public class BookingSlotStockPageInput : PageInputBase
{
/// <summary>
/// 船名
/// </summary>
public string VESSEL { get; set; }
/// <summary>
/// 航次号
/// </summary>
public string VOYNO { get; set; }
/// <summary>
/// 预计开船日期起始
/// </summary>
public DateTime? ETD_START { get; set; }
/// <summary>
/// 预计开船日期截至
/// </summary>
public DateTime? ETD_END { get; set; }
/// <summary>
/// 预计到港日期起始
/// </summary>
public DateTime? ETA_START { get; set; }
/// <summary>
/// 预计到港日期截至
/// </summary>
public DateTime? ETA_END { get; set; }
/// <summary>
/// 船公司
/// </summary>
public string CARRIER { get; set; }
/// <summary>
/// 箱型箱量
/// </summary>
public string CTN_STAT { get; set; }
}
/// <summary>
/// dto基类
/// </summary>
public class BookingSlotStockDto
{
/// <summary>
/// 船名
/// </summary>
public string VESSEL { get; set; }
/// <summary>
/// 航次号
/// </summary>
public string VOYNO { get; set; }
/// <summary>
/// 合约号
/// </summary>
public string CONTRACT_NO { get; set; }
/// <summary>
/// 订舱方式 CONTRACT_ORDER-合约订舱SPOT_ORDER-SPOT订舱
/// </summary>
public string BOOKING_SLOT_TYPE { get; set; }
/// <summary>
/// 订舱方式名称 CONTRACT_ORDER-合约订舱SPOT_ORDER-SPOT订舱
/// </summary>
public string BOOKING_SLOT_TYPE_NAME { get; set; }
/// <summary>
/// 订舱抬头
/// </summary>
public string BOOKING_PARTY { get; set; }
/// <summary>
/// 船公司代号
/// </summary>
public string CARRIERID { get; set; }
/// <summary>
/// 船公司
/// </summary>
public string CARRIER { get; set; }
/// <summary>
/// 预计开船日期
/// </summary>
public DateTime? ETD { get; set; }
/// <summary>
/// 预计到港日期
/// </summary>
public DateTime? ETA { get; set; }
/// <summary>
/// 航线代码(船公司)
/// </summary>
public string LANECODE { get; set; }
/// <summary>
/// 航线名称(船公司)
/// </summary>
public string LANENAME { get; set; }
/// <summary>
/// 所在周数
/// </summary>
public string WEEK_AT { get; set; }
/// <summary>
/// 箱型箱量
/// </summary>
public string CTN_STAT { get; set; }
/// <summary>
/// 使用箱型箱量
/// </summary>
public string USE_CTN_STAT { get; set; }
/// <summary>
/// 剩余箱型箱量
/// </summary>
public string REMAIN_CTN_STAT { get; set; }
/// <summary>
/// 总舱位数
/// </summary>
public int TOTAL_ORDERS { get; set; }
/// <summary>
/// 使用舱位数
/// </summary>
public int USE_NUM { get; set; }
/// <summary>
/// 总箱数
/// </summary>
public int TOTAL_CTNS { get; set; }
/// <summary>
/// 使用箱数
/// </summary>
public int USE_CTNS_NUM { get; set; }
/// <summary>
/// 剩余箱数
/// </summary>
public int REMAIN_CTNS_NUM { get; set; }
}
public class BookingSlotStockListOutput : BookingSlotStockDto
{
}
}

@ -121,6 +121,8 @@ public class Startup : AppStartup
builder.AddSubscriber<CompanyUserSyncSubscriber>();
//运踪
builder.AddSubscriber<BillTraceSubscriber>();
//更新库存
builder.AddSubscriber<BookingSlotStockSubscriber>();
});
}

Loading…
Cancel
Save