using System;
using System.Collections.Generic;
using System.Text;
using Model.InterFaceModel;
using Model.ModelDto;
using Model.ModelVm.PdaVm;
namespace WMS.IBLL.IPdaServer
{
public interface IPdaSoServer
{
///
/// 验证托盘是否存在并是否可出库
///
/// 托盘号
/// "":可使用 -1:不可使用(原因)
string IsEnableOkPalletNo(string palletNo);
///
/// 获取执行中的出库单(根据托盘码)
///
/// 托盘码
/// 类型 区分是否是平库出库获取单据
///
List GetRunSoNoticeList(string palletNo, string type);
///
/// 获取出库托盘上的物料批次(根据托盘码)
///
/// 托盘码
/// 单据号
///
List GetSoSkuLotNoListByPallet(string palletNo,string soNo);
///
/// 获取出库口、规格、待拣及已拣数量(根据出库单明细ID、托盘号)
///
/// 出库单明细ID
/// 托盘号
///
OutPdaInfo GetOutlets(string soDetailId, string palletNo);
///
/// 获取出库单的计划数量和完成
///
/// 出库单明细ID
///
OutPdaInfo GetPlanAndFinishQty(string soDetailId);
///
/// 获取箱码信息(根据箱码在库存箱码明细中查询)
///
/// 出库单明细ID
/// 托盘号
/// 箱码
/// 支/袋码
///
List GetDataComBoxInfo(string soDetailId,string palletNo, string boxNo, string boxNo3);
///
/// 获取库内无箱码的托盘分配信息
///
/// 出库单明细ID
/// 托盘号
///
List GetAllotPlnInfo(string soDetailId,string palletNo);
///
/// 出库pda拣货
///
/// 出库单
/// 出库单明细ID
/// 托盘号
/// 箱码
/// 盒码
/// 支/袋码
/// 操作人
void SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string PickQty, int userId);
///
/// 出库pda拣货
///
/// 出库单
/// 出库单明细ID
/// 托盘号
/// 拣货数量
/// 操作人
void SoSetQtyPick(string soNo, string soDetailId, string palletNo, string PickQty, int userId);
///
/// 下发空托出库
///
/// 托盘跺数
/// 出库口
/// 下发路径
///
string IssuePlnOutHouse(OutModePalletVm model, int userId,string url);
///
/// 获取平库托盘信息
///
/// 出库单号
/// 托盘号
///
List GetPingKuInfoByPallet(string soNo, string palletNo);
///
/// 平库出库完成
///
/// 出库单号
/// 库位地址
/// 托盘号
/// 操作人
///
void PlaneExportSuccess(string soNo, string palletNo,int userId);
///
/// 根据托盘号获取取样类型
///
///
/// 0:库内取样、1:库前取样
string GetSampleType(string palletNo);
///
/// 根据托盘号获取入库单据(库前取样出库业务)
///
/// 托盘号
/// 单据集合
List GetAsnNoByPallet(string palletNo);
///
/// 取样出库拣货(标签)
///
/// 拣货类型 0库内取样,有出库单及分配信息; 1库前取样,反向添加出库单及分配信息
/// 出库单
/// 出库单明细
/// 托盘号
/// 外箱码
/// 内箱码
/// 拣货数量
/// 入库单
/// 操作人ID
void SampleSoSetPick(string soType, string soNo, string soDetailId, string palletNo, string boxNo,
string boxNo3, string pickQty1, string asnNo, int userId);
///
/// 拼托出库pda拣货-标签
///
/// 出库单
/// 出库单明细ID
/// 托盘号
/// 箱码
/// 盒码
/// 支/袋码
/// 新托盘号
/// 操作人
void SoSetPinPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string PickQty,string palletNoNew, int userId);
///
/// 拼托出库pda拣货-数量
///
///
///
///
///
///
///
void SoSetQtyPinPick(string soNo, string soDetailId, string palletNo, string PickQty, string palletNoNew, int userId);
///
/// 取样出库拣货(无标签)
///
/// 拣货类型 0库内取样,有出库单及分配信息; 1库前取样,反向添加出库单及分配信息
/// 出库单
/// 出库单明细
/// 托盘号
/// 拣货数量
/// 入库单
/// 操作人ID
void SampleSoSetQtyPick(string soType, string soNo, string soDetailId, string palletNo, string PickQty,
string asnNo, int userId);
#region JC23版取样
///
/// 根据托盘号获取取样类型
///
/// 托盘号
/// 0:标签取样 1:数量取样
string GetSampleType2(string palletNo);
///
/// 获取待出库或待取样的请验单
///
///
List GetInspectionNo();
///
/// 获取请验单相关信息
///
/// 请验单
///
InspectionRequestDto GetInspectionRequestInfo(string qcNo);
///
/// 取样出库拣货(标签)
///
/// 请验单
/// 托盘号
/// 箱码
/// 支码
/// 拣货数量
///
void SampleSetPick(string qcNo, string palletNo, string boxNo, string boxNo3, string pickQty, int userId);
///
/// 取样出库拣货(数量)
///
/// 请验单
/// 托盘号
/// 拣货数量
///
void SampleSetQtyPick(string qcNo, string palletNo, string pickQty, int userId);
#endregion
}
}