using System.Collections.Generic; using System.Threading.Tasks; using MDL.Models; using MDL.DTOs; namespace DAL.Interfaces { /// /// 标签替换请求的数据访问接口 /// public interface ILabelReplaceRepository { /// /// 创建标签替换请求记录 /// /// 标签替换请求实体 /// 创建的记录ID Task CreateAsync(LabelReplaceEntity entity); /// /// 根据ID获取标签替换请求记录 /// /// 记录ID /// 标签替换请求实体 Task GetByIdAsync(int id); /// /// 根据中性面单单号获取标签替换请求记录 /// /// 中性面单单号 /// 标签替换请求实体 Task GetByWaybillNumberAsync(string waybillNumber); /// /// 根据跟踪单号获取标签替换请求记录 /// /// 跟踪单号 /// 标签替换请求实体列表 Task> GetByTrackingNumberAsync(string trackingNumber); /// /// 更新标签替换请求记录 /// /// 标签替换请求实体 /// 更新是否成功 Task UpdateAsync(LabelReplaceEntity entity); /// /// 删除标签替换请求记录 /// /// 记录ID /// 删除是否成功 Task DeleteAsync(int id); /// /// 获取所有标签替换请求记录 /// /// 标签替换请求实体列表 Task> GetAllAsync(); /// /// 分页获取标签替换请求记录 /// /// 页码 /// 每页大小 /// 排序字段 /// 排序顺序 /// 提单号 /// 大包号 /// 参考号 /// 中性面单单号 /// 尾程跟踪单号 /// 换单状态 /// 客户ID /// 标签替换请求实体列表和总记录数 Task<(List, int)> GetByPageAsync(int page, int pageSize, string sortBy, string sortOrder, string billOfLadingNumber, string masterPackageNumber, string referenceNumber, string neutralWaybillNumber, string finalMileTrackingNumber, string replaceStatus, int? customerId, string startCreatedAt, string endCreatedAt, string startReplacedAt, string endReplacedAt); /// /// 批量查询换单状态 /// /// 客户ID /// 中性面单单号列表 /// 尾程跟踪单号列表 /// 标签替换请求实体列表和最新扫描时间映射 Task<(List, Dictionary)> GetLabelReplaceStatusAsync(int customerId, List waybillNumbers, List trackingNumbers); /// /// 根据交接单号列表批量获取标签替换请求记录 /// /// 交接单号列表 /// 客户ID /// 标签替换请求实体列表 Task> GetByHandoverNumbersAsync(List handoverNumbers, int? customerId); /// /// 将base64编码转换为PDF文件并保存 /// /// base64编码的PDF内容 /// 文件名 /// 保存的文件路径 Task ConvertBase64ToPdfAsync(string base64Content, string fileName); /// /// 更新Label字段但保持LabelRetrievedAt不变 /// /// 记录ID /// 新的Label值 /// 更新是否成功 Task UpdateLabelWithoutChangingRetrievedAtAsync(int id, string newLabel); /// /// 获取每日标签统计数据 /// /// 开始日期 /// 结束日期 /// 客户ID /// 每日标签统计数据列表 Task> GetDailyLabelStatsAsync(string startDate, string endDate, int? customerId); /// /// 获取每日标签统计数据(中文版本,使用自定义SQL) /// /// 每日标签统计数据列表 Task> GetDailyLabelStatsChineseAsync(); } }