using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Myshipping.Application.Entity; using Myshipping.Application.Event; using Myshipping.Application.Service.BookingSlot.Dto; using System.Collections.Generic; using System.Threading.Tasks; namespace Myshipping.Application { public interface IBookingSlotService { /// /// 舱位接收保存、取消接口 /// /// 请求详情 /// BC附件 /// BC变更附件 /// Task ApiReceive(string jsonData, IFormFile file = null, IFormFile modifyFile = null); Task Detail(long id); Task> GetAvailableSlots(BookingSlotBaseDto input); /// /// 查询可用的舱位及箱子列表 /// /// 筛选条件1:舱位信息、箱型 /// 筛选条件2:舱位主键列表 /// 可用的舱位列表(含可用的箱子列表) Task> GetAvailableSlots(BookingSlotBaseDto slotInput = null, List slotIdListInput = null); /// /// 检查指定订舱记录,是否可以引入舱位列表 /// /// 待引入的舱位列表 /// 待关联的订舱记录 /// (指定订舱记录是否已经引入过舱位数据,现有舱位及箱子是否满足需求,提示信息) Task<(bool isExists, bool isEnough, string message)> CheckImportSlots(List slots, long bookingOrderId); /// /// 为指定订舱记录引入舱位信息 /// /// 待引入的舱位列表 /// 待关联的订舱记录 /// 是否进行剩余量检查 /// (是否成功,提示消息) Task<(bool isSuccess, string message)> ImportSlots(List slots, long bookingOrderId, bool isCheck); Task PageStock(BookingSlotStockPageInput input); Task RefreshStock(BookingSlotStockUpdateModel input); Task Save(BookingSlotBaseSaveInput input); /// /// 获取附件 /// /// 舱位主键 /// 返回附件列表 Task> GetFile(long id); /// /// 分页查询订舱舱位 /// /// /// Task Page(BookingSlotBasePageInput input); /// /// 舱位接收保存、取消接口 /// /// /// /// /// Task InnerApiReceive(BookingSlotBaseApiDto dto, DynameFileInfo file = null, DynameFileInfo modifyFile = null); /// /// 获取舱位变更比对结果 /// /// 舱位主键 /// 批次号 /// 返回舱位变更比对结果 Task> GetSlotCompareResult(long id, string batchNo); /// /// 导入舱位 /// /// 导入舱位文件 /// 返回回执 Task ImportSlotFromFile(IFormFile file); } }