You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
BookingHeChuan/Myshipping.Application/Service/BookingOrder/IBookingOrderService.cs

175 lines
6.4 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Myshipping.Core;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
using Myshipping.Application.Entity;
using Myshipping.Application.Service.BookingOrder.Dto;
using Microsoft.AspNetCore.Http;
using System.Collections.Generic;
using Myshipping.Application.Service.BookingSlot.Dto;
namespace Myshipping.Application
{
public interface IBookingOrderService
{
Task Delete(string Ids);
Task<BookingOrderOutput> Get(long Id);
Task<List<BookingLogDto>> GetLog(long Id);
Task<IActionResult> Download(long id);
Task<List<BookingRemark>> GetRemark(long Id);
Task AddRemark(BookingRemarkDto dto);
Task<string> AddFile(IFormFile file, [FromForm] BookingFileDto dto);
Task<List<BookingFile>> GetFile(long Id);
Task<List<BookingStatusLogDto>> GetBookingStatusLog(long Id);
/// <summary>
/// 发送订舱、截单EDI
/// </summary>
/// <param name="model">订舱、截单EDI请求</param>
/// <returns>返回回执</returns>
Task<dynamic> SendBookingOrClosingEDI(BookingOrClosingEDIOrderDto model);
Task BachUpdate(BatchUpdate dto);
Task<dynamic> InnerBookingOrClosingEDI(BookingOrClosingEDIOrderDto model);
/// <summary>
/// 推送东胜
/// </summary>
/// <param name="ids"></param>
/// <param name="syncTypeEnum"><see cref="BookingOrderSyncTypeEnum"/></param>
/// <param name="oddCode"></param>
/// <returns></returns>
Task<dynamic> SendBookingOrder(long[] ids, BookingOrderSyncTypeEnum? syncTypeEnum = null, string oddCode = "");
/// <summary>
/// 保存(新增或修改)放舱
/// </summary>
/// <param name="input">放舱详情</param>
/// <returns>返回放舱主键</returns>
Task<long> LetteryardSave(UpdateBookingLetteryardInput input);
/// <summary>
/// 放舱发送
/// </summary>
/// <param name="bookingId">订舱ID</param>
/// <param name="templateId">放舱选择模板</param>
/// <returns></returns>
Task SendLetterYard(long bookingId, long templateId);
/// <summary>
/// 设置货物状态完成
/// </summary>
/// <param name="code"></param>
/// <param name="bookingId"></param>
/// <returns></returns>
Task SetGoodsStatus(string code, long bookingId);
/// <summary>
/// 记录日志
/// </summary>
/// <param name="newOrder"></param>
/// <param name="oldOrder"></param>
/// <param name="fromFunc">日志操作来源</param>
/// <param name="updateFields">明确的被修改的字段</param>
/// <returns></returns>
Task SaveLog(BookingOrder newOrder, BookingOrder oldOrder, string fromFunc, List<string> updateFields = null);
Task AutoYardData(long bookId);
/// <summary>
/// 推送服务状态
/// </summary>
/// <param name="code">服务状态代码</param>
/// <param name="bookingId">订舱ID</param>
/// <param name="isAutoSyncDS">是否默认同步东胜 true-自动同步 false-不自动同步</param>
/// <returns></returns>
Task SetGoodsStatusPush(string code, long bookingId, bool isAutoSyncDS = false);
/// <summary>
/// 取消服务状态
/// </summary>
/// <param name="code">服务状态代码</param>
/// <param name="bookingId">订舱编号</param>
/// <param name="isAutoSyncDS">是否默认同步东胜 true-自动同步 false-不自动同步</param>
/// <returns></returns>
Task SetGoodsStatusCancel(string code, long bookingId, bool isAutoSyncDS = false);
/// <summary>
/// 设定保存订舱的货物状态并同步东胜
/// </summary>
/// <param name="bookingId"></param>
/// <param name="isAutoSyncDS">是否默认同步东胜 true-自动同步 false-不自动同步</param>
/// <param name="fromFunc">调用方模块名</param>
/// <returns></returns>
Task SetBookingGoodsStatus(long bookingId, bool isAutoSyncDS = false, string fromFunc = null);
/// <summary>
/// 检查是否VOLTA并返回初始数据
/// </summary>
/// <param name="model">请求参数</param>
/// <returns>返回回执</returns>
dynamic CheckAndInitVOLTAEdi(BookingOrClosingEDIOrderDto model);
/// <summary>
/// 发送VOLTA截单请求
/// </summary>
/// <param name="model">请求截单详情</param>
/// <returns>返回回执</returns>
Task<dynamic> SendVOLTAEdiSI(VOLTAEDIBaseModel model);
/// <summary>
/// 下载VOLTA截单请求报文
/// </summary>
/// <param name="model">请求截单详情</param>
/// <returns>返回回执</returns>
Task<IActionResult> DownloadVOLTAEdiSI(VOLTAEDIBaseModel model);
/// <summary>
/// 生成VOLTA报文内部方法
/// </summary>
/// <param name="model">请求截单详情</param>
/// <param name="isSend">是否直接发送VOLTA申报截单</param>
/// <returns>返回回执</returns>
Task<dynamic> InnerVOLTAEDI(VOLTAEDIBaseModel model, bool isSend = false);
/// <summary>
/// 订舱保存
/// </summary>
/// <param name="input">订舱请求详情</param>
/// <returns>返回回执</returns>
Task<BookingOrderOutput> Save(SaveBookingOrderInput input);
/// <summary>
/// 批量更新订舱的详情
/// </summary>
/// <param name="dto">请求参数</param>
/// <returns></returns>
Task BatchUpdateOrder(BatchUpdate dto);
/// <summary>
/// 获取舱位拆票或者合票后新单号结果
/// </summary>
/// <param name="model">舱位拆票或者合票请求</param>
/// <returns>返回舱位拆票或者合票结果</returns>
Task<BookingSlotMergeOrSplitResultDto> GetBookingSlotMergeOrSplitResult(BookingSlotMergeOrSplitRequestDto model);
/// <summary>
/// 检索订单信息(如果当前为拆、合票,内包含分票信息)
/// </summary>
/// <param name="mblNo">提单号</param>
/// <returns></returns>
Task<SeaExportOrderExtension> SearchOrderInfo(string mblNo);
}
}