using Model.InterFaceModel;
using Model.ModelDto.BllSoDto;
using Model.ModelDto.DataDto;
using Model.ModelVm.BllSoVm;
using WMS.Entity.DataEntity;
using System.Collections.Generic;
using System.Xml;
namespace WMS.IBLL.IBllSoServer
{
public interface IExportNoticeServer
{
///
/// 添加出库单(上游系统)
///
/// 模型
///
bool ErpAddExportNotice(SoInfo model);
///
/// 获取执行完成的单据发送至erp
///
/// 出库单Id
/// 上传路径
/// 操作人
///
bool FinishSo(int id, string url, int userId);
//------------------------------------------------------------------------------------------
///
/// 查询出库总单信息
///
/// 出库单号
/// 单据类型
/// 状态
/// 批次号
/// 承运商
/// 是否生成波次
/// 是否发运
/// 波次号
///
///
///
///
List GetExportNoticeList(string no,string type, string status, string LotNo,int? logisticsId,string isWave, string isDespatch,string waveNo, int page, int limit, out int count);
///
/// 获取添加或修改出库单明细所显示的库存数据源
///
/// 类型
/// 物流编码、名称、批次
///
List GetStockGroupList( string type, string msg);
///
/// 添加出库单
///
/// 模型
/// 操作人
///
bool AddExportNotice(AddEditExportNoticeVm model,int userId);
///
/// 获取编辑出库单据
///
/// 单据号
///
EditExportNotifyDto GetEditExportNotice(string code);
///
/// 编辑出库单
///
///
///
///
bool EditExportNotice(AddEditExportNoticeVm model, int userId);
///
/// 删除出库单
///
/// 出库单Id
/// 操作人
///
bool DelExportNotice(int id,int userId);
///
/// 单据关闭(关单)
///
/// 出库单Id
/// 操作人
///
bool CloseExportNotice(int id,int userId);
XmlNode AddExXmlStr(int id, int userId);
//------------------------------------------------------------------------------------------
///
/// 获取托盘出库明细
///
/// 物料号
/// 物料名称
/// 托盘号
/// 批次
/// 抽检标识
/// 零托标识
///
///
///
///
List GetPalletNoOutList(string skuNo, string skuName, string palletNo, string lotNo,
string inspectMark, string bitPalletMark, int page, int limit, out int count);
///
/// 托盘下发出库
///
/// 托盘号
/// 出库口
/// 操作人
/// 下发出库接口路径
/// 提示消息
///
List IssuePalletNoOut(string palletNo, string outMode, int userId, string url, out string str);
//------------------------------------------------------------------------------------------
///
/// 下发出库(调用cs接口给他库位地址)
///
/// 出库单号
/// 出库口
/// 操作人
/// 下发出库路径
/// 提示信息
/// 下发的指令集合
List IssueOutHouse(string soNo, string outMode, int userId,string url,out string str);
///
/// wcs返回的成功信号或手动完成(出库成功)
///
/// 任务号
/// 操作人
///
void ExportSuccess(string taskNo,int userId);
///
/// 重新下发出库任务
///
/// 任务号
/// 操作人
/// 下发路径
///
OutCommandDto AgainSendSoTask(string taskNo, int userId,string url);
///
/// 手动取消出库任务
///
/// 任务号
/// 操作人
///
void CancelSoTask(string taskNo, int userId);
///
/// 空取异常
///
/// 任务信息
/// 出库任务
bool EmptyException(ReceiveWcsSignal model);
//------------------------------------------------------------------------------------------
///
/// 自动分配
///
/// 出库单据号
/// 操作人
///
bool AutoAllot(string soNo, int userId);
///
/// 取消分配
///
/// 出库单据号
/// 操作人
///
bool CancelAllot(string soNo, int userId);
///
/// 维护出库单备注信息
///
///
///
///
void EditNoticeDemo(int id, string demo, int userId);
///
/// 获取库存明细信息(出库单手动分配选择数据源)
///
/// 出库单明细Id
/// 仓库号
/// 巷道号
/// 储位号
/// 物料编码、名称、批次号
/// 托盘码
///
List GetHandOutList(int detailId, string houseNo, string roadwayNo, string locateNo, string msg,string palletNo);
///
/// 手动分配出库单明细
///
///
///
void AddHandOutAllot(AddHandOutVm model, int userId);
}
}