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.

318 lines
12 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 Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Myshipping.Core;
using NPOI.POIFS.Crypt.Dsig;
using NPOI.SS.Formula.Functions;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
/// <summary>
///
/// </summary>
public interface ITaskManageService
{
/// <summary>
/// 创建任务
/// </summary>
/// <param name="info">任务详情</param>
/// <returns>返回回执</returns>
Task<TaskManageOrderResultDto> CreateTaskJob(TaskManageOrderMessageInfo info);
/// <summary>
/// 撤销任务
/// </summary>
/// <param name="info">任务详情</param>
/// <returns>返回回执</returns>
Task<TaskManageOrderResultDto> CancelTaskJob(TaskManageOrderMessageInfo info);
/// <summary>
/// 获取查询参数
/// </summary>
/// <param name="ParaType">参数类型 STATUS-任务状态;TASK_TYPE-任务类型;SOURCE-任务来源</param>
/// <returns>返回回执</returns>
Task<TaskManageOrderResultDto> GetParaInfo(string ParaType);
/// <summary>
/// 获取登陆人相关的任务统计信息
/// </summary>
/// <param name="isReCalc">是否强制计算</param>
/// <returns>返回回执</returns>
Task<TaskUserStatResultInfo> GetCurrentTotalStat(bool isReCalc = false);
/// <summary>
/// 任务台账查询
/// </summary>
/// <param name="QuerySearch">任务台账查询请求</param>
/// <returns>返回结果</returns>
Task<SqlSugarPagedList<dynamic>> GetPageAsync(QueryTaskManageDto QuerySearch);
/// <summary>
/// 下载正本提单
/// </summary>
/// <param name="PKIds">任务主键数组</param>
/// <returns>返回结果</returns>
Task<TaskManageOrderResultDto> DownloadOriginalTask(string[] PKIds);
/// <summary>
/// 完成任务(可批量)
/// </summary>
/// <param name="PKIds">任务主键数组</param>
/// <returns>返回结果</returns>
Task<TaskManageOrderResultDto> CompleteTask(string[] PKIds);
/// <summary>
/// 取消任务(可批量)
/// </summary>
/// <param name="PKIds">任务主键数组</param>
/// <returns>返回结果</returns>
Task<TaskManageOrderResultDto> CancelTask(string[] PKIds);
/// <summary>
/// 挂起任务(可批量)
/// </summary>
/// <param name="PKIds">任务主键数组</param>
/// <returns>返回结果</returns>
Task<TaskManageOrderResultDto> PendingTask(string[] PKIds);
/// <summary>
/// 提单纸页数计算
/// </summary>
/// <param name="PKIds">任务主键数组</param>
/// <returns>返回结果</returns>
Task<List<LaraPaperCalcInfo>> LaraPaperCalc(string[] PKIds);
/// <summary>
/// LARA提单纸登记
/// </summary>
/// <param name="PKIds">任务主键数组</param>
/// <returns>返回结果</returns>
Task<LaraPaperRegistDto> LaraPaperRegist(string[] PKIds);
/// <summary>
/// 请求提单纸登记
/// </summary>
/// <param name="laraPaperList">提单纸登记请求参数列表</param>
/// <returns>返回结果</returns>
Task<TaskManageOrderResultDto> LaraPaperRegistPost(List<LaraPaperRegistPostDto> laraPaperList);
/// <summary>
/// 下载任务附件
/// </summary>
/// <param name="taskPKId"></param>
/// <returns>返回文件流</returns>
Task<IActionResult> DownloadTaskAttach(string taskPKId);
/// <summary>
/// 正本附件批量打印
/// </summary>
/// <param name="PKIds">任务主键数组</param>
/// <returns>返回文件流</returns>
Task<IActionResult> PrintBatch(string[] PKIds);
/// <summary>
/// 接收换船
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <returns>返回结果</returns>
Task<TaskManageOrderResultDto> AcceptChangeShip(string taskPKId);
/// <summary>
/// 取消换船
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <returns>返回结果</returns>
Task<TaskManageOrderResultDto> AcceptCancelChangeShip(string taskPKId);
/// <summary>
/// 转发电放邮件
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <param name="toMail">指定邮件地址</param>
/// <returns>返回结果</returns>
Task<TaskManageOrderResultDto> SendTelexEmail(string taskPKId, string toMail);
/// <summary>
/// 发送下货纸
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <param name="fileRole">文件功能 (9原始)</param>
/// <returns>返回结果</returns>
Task<TaskManageOrderResultDto> SendShippingOrder(string taskPKId, string fileRole = "9");
/// <summary>
/// 获取订舱详情
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <returns>返回结果</returns>
Task<TaskBookingOrderDto> GetBookingOrderInfo(string taskPKId);
/// <summary>
/// 获取单票账单详情
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <returns>返回结果</returns>
Task<TaskPerBillResultInfo> GetTaskPerBillInfo(string taskPKId);
/// <summary>
/// 获取提单纸登记记录
/// </summary>
/// <param name="querySearch">查询条件</param>
/// <returns>返回结果</returns>
Task<SqlSugarPagedList<LaraPaperRecordDto>> GetLaraPaperRecordPageAsync(QueryTaskManageBaseDto querySearch);
/// <summary>
/// 导出LARA提单纸登记记录
/// </summary>
/// <param name="sortField">排序字段</param>
/// <param name="pageNo">当前页码</param>
/// <param name="pageSize">页码容量</param>
/// <param name="descSort">排序方法,默认降序</param>
/// <returns>返回结果</returns>
Task<IActionResult> LaraPaperRecordExport(string sortField, int pageNo = 1, int pageSize = 30, bool descSort = true);
/// <summary>
/// 保存SI信息
/// </summary>
/// <param name="model">订舱信息</param>
/// <returns>返回结果</returns>
Task<TaskManageOrderResultDto> SaveBookingSI(TaskBookingOrderDto model);
/// <summary>
/// 获取SI反馈信息
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <returns>返回结果</returns>
Task<TaskSIFeedBackResultDto> GetSIFeedBackInfo(string taskPKId);
/// <summary>
/// 获取VGM比较结果
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <returns>返回结果</returns>
Task<TaskVgmCompareResultDto> GetVGMCompareResult(string taskPKId);
/// <summary>
/// 更新订舱VGM比较更新
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <returns>返回结果</returns>
Task<TaskManageOrderResultDto> SaveBookingVGM(string taskPKId);
/// <summary>
/// 获取换船详情
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <returns>返回结果</returns>
Task<TaskChangeShipResultDto> GetChangeShipInfo(string taskPKId);
/// <summary>
/// 获取取消换船详情
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <returns>返回结果</returns>
Task<TaskChangeShipResultDto> GetAbortChangeShipInfo(string taskPKId);
/// <summary>
/// 手工批量重新比对BC
/// </summary>
/// <param name="PKIds">任务主键数组</param>
/// <returns>返回结果</returns>
Task<TaskManageOrderResultDto> ManualReCompareBC(string[] PKIds);
/// <summary>
/// 下载截单EDI
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <param name="orderNo">订单号</param>
/// <param name="useForwarderCode">是否使用货代代码</param>
/// <param name="forwarderCode">货代代码</param>
/// <param name="forwarderName">货代称呼</param>
/// <param name="fileRole">文件功能 (9原始,1 更新,5 退舱 )</param>
/// <param name="sendType">发送类型 B-订舱 E-截单</param>
/// <param name="multilineid">多行文本拆分记录ID(SITC-收、发、通拆分)</param>
/// <returns></returns>
Task<IActionResult> DownloadClosingEDI(string taskPKId, string orderNo, bool useForwarderCode,
string forwarderCode, string forwarderName, string fileRole, string sendType, string multilineid = "");
/// <summary>
/// 发送截单EDI
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <param name="orderNo">订单号</param>
/// <param name="useForwarderCode">是否使用货代代码</param>
/// <param name="forwarderCode">货代代码</param>
/// <param name="forwarderName">货代称呼</param>
/// <param name="fileRole">文件功能 (9原始,1 更新,5 退舱 )</param>
/// <param name="sendType">发送类型 E-截单</param>
/// <param name="multilineid">多行文本拆分记录ID(SITC-收、发、通拆分)</param>
/// <returns>返回结果</returns>
Task<string> SendClosingEDI(string taskPKId, string orderNo, bool useForwarderCode,
string forwarderCode, string forwarderName, string fileRole, string sendType, string multilineid = "");
/// <summary>
/// 计算LARA纸计算页数
/// </summary>
/// <param name="model">请求LARA纸详情</param>
/// <returns>返回结果</returns>
Task<List<LaraPaperRegistPostDto>> CalcLaraPageNumbers(CalcLaraPageNumbersDto model);
/// <summary>
/// 创建BC任务
/// </summary>
/// <param name="file">文件</param>
/// <param name="modifyFile">BC变更内容后文件</param>
/// <param name="jsonData">BC任务详情JSON</param>
/// <returns>返回回执</returns>
Task<TaskManageOrderResultDto> CreateBCTaskJob(IFormFile file, IFormFile modifyFile, string jsonData);
/// <summary>
/// 获取任务列表
/// </summary>
/// <param name="queryTaskManageDto">查询条件</param>
/// <returns>返回结果</returns>
//Task<List<TaskBaseInfoDto>> GetTaskList(QueryTaskManageDto queryTaskManageDto);
/// <summary>
/// 创建DRAFT任务
/// </summary>
/// <param name="file">文件</param>
/// <param name="modifyFile">BC变更内容后文件</param>
/// <param name="jsonData">BC任务详情JSON</param>
/// <returns>返回回执</returns>
Task<TaskManageOrderResultDto> CreateDRAFTTaskJob(IFormFile file, IFormFile modifyFile, string jsonData);
/// <summary>
/// 创建截单回执任务
/// </summary>
/// <param name="file">文件</param>
/// <param name="modifyFile">截单回执变更内容后文件</param>
/// <param name="jsonData">截单回执任务详情JSON</param>
/// <returns>返回回执</returns>
Task<TaskManageOrderResultDto> CreateSISubmittedTaskJob(IFormFile file, IFormFile modifyFile, string jsonData);
/// <summary>
/// 创建Advisory任务
/// </summary>
/// <param name="file">文件</param>
/// <param name="jsonData">Advisory任务详情JSON</param>
/// <returns>返回回执</returns>
Task<TaskManageOrderResultDto> CreateAdvisoryTaskJob(IFormFile file, IFormFile modifyFile, string jsonData);
}
}