using System; using System.Collections.Generic; using System.Text; namespace Model.InterFaceModel { #region ERP接口实体类 /// /// 发送接收erp接口参数的model /// public class ErpModel { /// /// 状态码 0 成功 -1失败 /// public int Success { get; set; } /// /// 信息详情 /// public string Message { get; set; } } public class SendQcNoModel { // 采购单号 public string OrderNo { get; set; } /// /// 请验号 /// public string QcNo { get; set; } /// /// 物料编码 /// public string SkuNo { get; set; } /// /// 自有批次 /// public string LotNo { get; set; } /// /// 供货批次 /// public string SupplierLot { get; set; } /// /// 消耗数量 /// public string CompleteQty { get; set; } /// /// 取样完成日期-总单UpdateTime /// public string CompleteTime { get; set; } } #endregion #region WCS接口实体类 /// /// 接收wcs接口返回参数的model /// public class WcsModel { public int StatusCode { get; set; } public string Msg { get; set; } } /// /// Wms专用 下发指令Dto /// public class OutCommandDto { /// /// 任务号 /// public string TaskNo { get; set; } /// /// 任务类型 /// public string TaskType { get; set; } /// /// 托盘号 /// public string PalletNo { get; set; } /// /// 起始位置 /// public string StartLocate { get; set; } /// /// 起始巷道 /// public string StartRoadway { get; set; } /// /// 结束位置 /// public string EndLocate { get; set; } /// /// 目标巷道 /// public string EndRoadway { get; set; } /// /// 出库口 /// public string OutMode { get; set; } /// /// 顺序-优先级 /// public int Order { get; set; } /// /// 托盘类型,0:物料 1:托盘 /// public string PalletType { get; set; } /// /// 拣货方式,0:机器人拆垛 1:PDA拆垛 /// public string UnstackingMode { get; set; } /// /// 托盘上总数量 /// public decimal? BoxexQty { get; set; } /// /// 拣货数量 /// public decimal? CompleteQty { get; set; } } /// /// 接受wcs任务反馈信息Model /// public class ReceiveWcsSignal { /// /// 任务号 /// public string TaskNo { get; set; } /// /// 托盘号 /// public string PalletNo { get; set; } /// /// //2,任务完成,3,取消, /// public string TaskStatus { get; set; } /// /// 0:入库、1:出库、2:移库 /// public string TaskType { get; set; } } //成品码垛信息 public class BoxPalletBindVm { /// /// 生产工单 /// public string OrderCode { get; set; } /// /// 入库单号 /// public string AsnNo { get; set; } /// /// 入库单明细 /// public int AsnDetailNo { get; set; } /// /// 托盘号 /// public string PalletNo { get; set; } /// /// 托盘数量 /// public decimal Qty { get; set; } /// /// 托盘类型 0物料托 1空托盘托 /// public string Type { get; set; } /// /// 物料编码 /// public string SkuNo { get; set; } /// /// 批次号 /// public string LotNo { get; set; } /// /// 批次描述 /// public string LotText { get; set; } /// /// 供货批次 /// public string SupplierLot { get; set; } public List Detail { get; set; } } //码垛箱码明细信息 public class BoxPalletBindDetailVm { /// /// 生产单据号 /// public string OrderCode { get; set; } /// /// 箱号 /// public string BoxNo { get; set; } /// /// 盒号 /// public string BoxNo2 { get; set; } /// /// 支号 /// public string BoxNo3 { get; set; } /// /// 数量 /// public decimal Qty { get; set; } /// /// 满箱数量 /// public decimal FullQty { get; set; } /// /// 物料编码 /// public string SkuNo { get; set; } /// /// 物料名称 /// public string SkuName { get; set; } /// /// 批次号 /// public string LotNo { get; set; } /// /// 批次描述 /// public string LotText { get; set; } /// /// 生产日期 /// public DateTime? ProductionTime { get; set; } /// /// 过期时间 /// public DateTime? ExpirationTime { get; set; } /// /// 检验标记 /// public string InspectMark { get; set; } /// /// 零箱标记 /// public string BitBoxMark { get; set; } /// /// 质检状态 /// public string InspectStatus { get; set; } /// /// 物料规格 /// public string Standard { get; set; } /// /// 包装规格 /// public string PackageStandard { get; set; } /// /// 储存期至 /// public DateTime? StoreTime { get; set; } /// /// 第几件 /// public int? QtyOrd { get; set; } /// /// 总件数 /// public int? QtyCount { get; set; } } #endregion #region Limes接口实体类 /// /// Limes接口返回实体 /// public class LimesModel { /// /// 状态码 0 成功 -1失败 /// public int Success { get; set; } /// /// 信息详情 /// public string Message { get; set; } /// /// 取样量 /// public string SamplingQty { get; set; } } /// /// 调用Limes接口 /// public class SendLimesModel { public string QcNo { get; set; } public string SkuNo { get; set; } public string Qty { get; set; } public string LotNo { get; set; } public string SupplierLot { get; set; } public string RequestUser { get; set; } } #endregion #region AGV接口实体类 /// /// 生成任务单 /// public class AgvSchedulingTask { /// /// 请求编号,每个请求都要一个唯一编号同一个请求重复提交 使用同一编号 /// 是否必填:是 /// public string reqCode { get; set; } /// /// 请求时间 /// 格式: “yyyy-MM-ddHH:mm:ss” /// 是否必填:否 /// public string reqTime { get; set; } /// /// 客户端编号,如 PDA,HCWMS 等。 /// 是否必填:否 /// public string clientCode { get; set; } /// /// 令牌号, 由调度系统颁发。 /// 是否必填:否 /// public string tokenCode { get; set; } /// /// 任务类型,与在 RCS-2000 端配置的主任务类型编号一致。 /// 内置任务类型: /// 厂内货架搬运: F01 /// 厂内货架空满交换: F02 /// 辊筒搬运接驳:F03 /// 厂内货架出库 AGV 待命:F04 /// 旋转货架: F05 /// 厂内电梯任务: F06 /// 以下为叉车专用任务类型 /// 高位货架到工作台: F11 /// 工作台到高位货架: F12 /// 巷道到工作台: F13 /// 工作台到巷道: F14 /// 高位货架到工作台(接驳) : F15 /// 工作台到高位货架(接驳) : F16 /// 巷道到工作台(接驳) : F17 /// 工作台到巷道(接驳) : F18 /// 叉车电梯主任务: F20 /// 是否必填:是 /// public string taskTyp { get; set; } /// /// 容器类型(叉车/CTU 专用) /// 叉车项目必传 /// 是否必填:否 /// public string ctnrTyp { get; set; } /// /// 容器编号(叉车/CTU 专用) 托盘号? /// 是否必填:否 /// public string ctnrCode { get; set; } /// /// 容器数量 /// 是否必填:否 /// public string ctnrNum { get; set; } /// /// 任务模式 /// 0-普通 move /// 1-出库 move /// 2-入库 move /// 3-移库 move /// 说明: /// 1>任务模板中也可以配置模式,如果接口传了则优先使用接口传入的值 /// 2>出库 move 模式不能被打断,普通move和入库move可以被打断。出库 move 执行后必须执行入库move 或者移库 move,若后续未带move 标识,则系统不会执行,会将任务挂起。 /// 是否必填:否 /// public string taskMode { get; set; } /// /// 工作位,一般为机台或工作台位置,与 RCS-2000 端配置的位置名称一致, 工作位名称为字母\数字\或组合, 不超过 32 位。 /// 是否必填:否 /// public string wbCode { get; set; } /// /// 位置路径:AGV 关键路径位置集合,与任务类型中模板配置的位置路径一一对应。待现场地图部署、配置完成后可获取。 /// positionCode:位置编号, 单个编号不超过 64 位 /// type:位置类型说明: /// 00 表示:位置编号 /// 01 表示:物料批次号 /// 02 表示:策略编号(含多个区域) /// 如:第一个区域放不下, 可以放第二个区域 /// 03 表示:货架编号,通过货架编号找到货架所在位置 /// 04 表示:区域编号,在区域中查找可用位置 /// 05 表示:仓位编号(叉车/CTU 专用) /// 06 表示:巷道编号 /// 07 表示:容器编号 /// 08 表示:巷道策略 /// 09 表示:巷道区域 /// 10 表示:巷道仓位 /// 11 表示:输送线(机台)编号 /// 12 表示:CTU 工作台(梳齿工作站)编号 /// 13 表示:搬运巷道指定货架出库 /// 是否必填:否 /// public List positionCodePath { get; set; } /// /// 货架编号,不指定货架可以为空 /// 是否必填:否 /// public string podCode { get; set; } /// /// 别对应地图的任务完成时有值 /// 左: 180 /// 右: 0 /// 上: 90 /// 下: -90 /// 不指定方向可以为空;如果终点不是工作台或工作台未配置方向则作为终点方向塞入子任务报文,如果工作台配有方向则两者做差结果作为终点方向塞入子任务报文 /// 是否必填:否 /// public string podDir { get; set; } /// /// 货架类型, 传空时表示随机找个货架 /// 找空货架传参方式如下: /// -1: 代表不关心货架类型, 找到空货架即可. /// -2: 代表从工作位获取关联货架类型, 如果未配置, 只找空货架.货架类型编号: 只找该货架类型的空货架 /// 是否必填:否 /// public string podTyp { get; set; } /// /// 物料批次或货架上的物料唯一编码,生成任务单时,货架与物料直接绑定时使用. (通过同时传 podCode 和materialLot来绑定或通过wbCode 找到位置上的货架和materialLot 来绑定)巷道任务通过该字段传入特征值 /// 是否必填:否 /// public string materialLot { get; set; } /// /// 物料类型 /// 是否必填:否 /// public string materialType { get; set; } /// /// 优先级,从(1~127)级,最大优先级最高。为空时,采用任务模板的优先级。 /// 是否必填:否 /// public string priority { get; set; } /// /// 任务单号,选填, 不填系统自动生成,UUID 小于等于 64 位 /// 是否必填:否 /// public string taskCode { get; set; } /// /// AGV 编号,填写表示指定某一编号的 AGV 执行该任务 /// 是否必填:否 /// public string agvCode { get; set; } /// /// 组编号 /// CTU 场景下用于按组出库,同组任务优先拼车。 如业务需要任务组间或组内按顺序出库,则需调用料箱顺序出库(CTU)接口。潜伏式场景下,通过组号来管理顺序出库的顺序,组号小的优先出库。 /// 是否必填:否 /// public string groupId { get; set; } /// /// 设备类型 /// 是否必填:否 /// public string agvType { get; set; } /// /// 区域 /// 是否必填:否 /// public string positionSelStrategy { get; set; } /// /// 自定义字段.JSON 格式 /// 是否必填:否 /// public string data { get; set; } /// /// 目标储位地址(23项目) /// public string userCallCode { get; set; } } public class PositionCodePath { public string positionCode { get; set; } public string type { get; set; } } /// /// 继续执行任务 /// public class AgvContinueTask { /// /// 请求编号,每个请求都要一个唯一编号, 同一个请求重复提交, 使用同一编号。 /// 是否必填:是 /// public string ReqCode { get; set; } /// /// 请求时间截 /// 格式: “yyyy-MM-dd HH:mm:ss”。 /// 是否必填:否 /// public string ReqTime { get; set; } /// /// 客户端编号,如 PDA,HCWMS 等。 /// 是否必填:否 /// public string ClientCode { get; set; } /// /// 令牌号, 由调度系统颁发。 /// 是否必填:否 /// public string TokenCode { get; set; } /// /// 工作位,与 RCS-2000 端配置的位置名称一致 /// 是否必填:否 /// public string WbCode { get; set; } /// /// 货架号,采用货架号触发的方式。 /// 是否必填:否 /// public string PodCode { get; set; } /// /// AGV 编号,采用 AGV 编号触发的方式。 /// 是否必填:否 /// public string AgvCode { get; set; } /// /// 任务单号,选填, 不填系统自动生成,必须为 64 位 UUID /// 是否必填:否 /// public string TaskCode { get; set; } /// /// 下一个子任务的序列,指定第几个子任务开始执行,校验子任务执行是否正确。不填默认执行下一个子任务。 /// 是否必填:否 /// public string TaskSeq { get; set; } /// /// 下一个位置信息,在任务类型中配置外部设置时需要传入,否则不需要设置。待现场地图部署、配置完成后可获取 /// 是否必填:否 /// public string NextPositionCode { get; set; } } /// /// 取消任务 /// public class AgvCancelTask { /// /// 请求编号,每个请求都要一个唯一编号, 同一个请求重复提交, 使用同一编号。 /// 是否必填:是 /// public string ReqCode { get; set; } /// /// 请求时间截 /// 格式: “yyyy-MM-dd HH:mm:ss”。 /// 是否必填:否 /// public string ReqTime { get; set; } /// /// 客户端编号,如 PDA,HCWMS 等。 /// 是否必填:否 /// public string ClientCode { get; set; } /// /// 令牌号, 由调度系统颁发。 由RCS-2000 告知上层系统 /// 是否必填:否 /// public string TokenCode { get; set; } /// /// 取消类型 /// 0 表示:取消后货架直接放地上 /// 1 表示:AGV 仍然背着货架, 根据回库区域执行回库指令, 只有潜伏车和 CTU 车支持。 /// 若不传值,默认的取消模式为 0 /// 是否必填:否 /// public string ForceCancel { get; set; } /// /// forcecancel=1 时有意义,回库区域编号,如果为空,采用货架配置的库区。 /// 是否必填:否 /// public string MatterArea { get; set; } /// /// 取消该 AGV 正在执行的任务单 /// 是否必填:否 /// public string AgvCode { get; set; } /// /// 任务单编号, 取消该任务单 /// 是否必填:否 /// public string TaskCode { get; set; } } /// /// 任务完成通知参数 /// public class AgvTaskDto { /// /// 请求编号,每个请求都要一个唯一编号 /// 同一个请求重复提交 使用同一编号 /// 是否必填:是 /// public string reqCode { get; set; } /// /// 请求时间戳 /// 格式: “yyyy-MM-ddHH:mm:ss” /// 是否必填:是 /// public string reqTime { get; set; } /// /// 地码 X 坐标(mm):任务完成时有值 /// 是否必填:否 /// public double cooX { get; set; } /// /// 地码 Y 坐标(mm):任务完成时有值 /// 是否必填:否 /// public double cooY { get; set; } /// /// 当前位置编号 /// 任务开始:该位置为任务起点 /// 走出储位:该位置为任务起点 /// 任务单取消:该位置为工作位编号 /// 任务结束:该位置为任务终点 /// 取放申请:取放料箱的点 /// 是否必填:是 /// public string currentPositionCode { get; set; } /// /// 自定义字段,不超过 2000 个字符 /// 是否必填:否 /// public string data { get; set; } /// /// 地图编号 /// 是否必填:否 /// public string mapCode { get; set; } /// /// 地码编号:任务完成时有值 /// 是否必填:否 /// public string mapDataCode { get; set; } /// /// 仓位编号:叉车与 CTU 任务时有值 /// 是否必填:否 /// public string stgBinCode { get; set; } /// /// 方法名, 可使用任务类型做为方法名 /// 由 RCS-2000 任务模板配置后并告知上层系统 /// 默认使用方式: /// start : 任务开始 /// outbin : 走出储位 /// end : 任务结束 /// cancel : 任务单取消 /// apply:CTU 料箱取放申请 /// 是否必填:是 /// public string method { get; set; } /// /// 货架编号:背货架时有值 /// 是否必填:否 /// public string podCode { get; set; } /// /// 别对应地图的任务完成时有值 /// 左: 180 /// 右: 0 /// 上: 90 /// 下: -90 /// 是否必填:否 /// public string podDir { get; set; } /// /// 物料编号 /// 是否必填:否 /// public string materialLot { get; set; } /// /// AGV 编号(同 agvCode ) /// 是否必填:否 /// public string robotCode { get; set; } /// /// 当前任务单号 /// 是否必填:是 /// public string taskCode { get; set; } /// /// 工作位,与 RCS-2000 端配置的位置名称一致。任务完成时有值,与生成任务单接口中的 wbCode 一致 /// 是否必填:否 /// public string wbCode { get; set; } /// /// 容器编号 /// 是否必填:否 /// public string ctnrCode { get; set; } /// /// 容器类型 /// 是否必填:否 /// public string ctnrType { get; set; } /// /// 巷道编号 /// 是否必填:否 /// public string roadWayCode { get; set; } /// /// 巷道内顺序号 /// 巷道尾是 0,到巷道头依次递增 1 /// 是否必填:否 /// public string seq { get; set; } /// /// 设备编号,如梳齿式工作站、输送线等,一般使用于 CTU 场景。系统根据仓位定位到关联的设备编号。 /// 是否必填:否 /// public string eqpCode { get; set; } } /// /// WMS回应AGV信息 /// public class OutCommanAgvDto { /// /// 返回码 /// 0:成功 /// 1:参数相关的错误 /// 6:重复发送,上层系统不需要重发 /// 99:其他未知错误,调用失败后,可以重试 /// 100: 该任务不存在,上层系统不需重发,需要人工介入处理 /// 是否必填:是 /// public string Code { get; set; } /// /// 返回消息 /// 是否必填:是 /// public string Message { get; set; } /// /// 请求编号 /// 是否必填:是 /// public string ReqCode { get; set; } /// /// 返回的数据结构 /// 是否必填:否 /// public string Data { get; set; } } /// /// AGV申请空托盘垛入库 /// public class AGVNullPalletRuKu { public string PalletNo { get; set; } public decimal Qty { get; set; } public string PutInLocation { get; set; } } /// /// agv请求接口应答 /// public class AgvResultModel { public string code { get; set; } public string message { get; set; } public string data { get; set; } public string reqCode { get; set; } } #endregion }