--[[ 版本: Version 2.1 创建日期: 2025-5-28 创建人: HAN WMS-Basis-Model-Version: V15.5 功能: WMS 中用到的一些常量定义在这个程序包 --]] json = require ("json") mobox = require ("OILua_JavelinExt") lua = require ("oi_base_func") m3 = require ("oi_base_mobox") -- 容器类型 WMS_CNTR_TYPE_NAME = { ["Pallet"] = "托盘", ["Normal"] = "常规", ["Cell_Box"] = "料格", ["Picking_Box"] = "拣料箱" } WMS_CNTR_TYPE = { ["托盘"] = "Pallet", ["常规"] = "Normal", ["料格"] = "Cell_Box", ["P拣料箱"] = "icking_Box" } -- 码盘明细 表中的属性 -- 预分配明细也一样的属性 INB_PALLET_DETAIL_ATTRS = { "S_CELL_NO", "S_ITEM_CODE", "S_ITEM_NAME", "S_SERIAL_NO", "S_ITEM_STATE", "S_BATCH_NO", "S_WMS_BN", "S_OWNER", "S_STORER", "S_SUPPLIER_NO", "F_QTY", "S_UOM", "D_PRD_DATE", "D_EXP_DATE", "S_BS_NO", "S_BS_TYPE", "N_BS_ROW_NO", "F_VOLUME", "F_WEIGHT", "S_UDF01", "S_UDF02", "S_UDF03", "S_UDF04", "S_UDF05", "S_UDF06", "S_UDF07", "S_UDF08", "S_UDF09", "S_UDF10", "S_UDF11", "S_UDF12", "S_UDF13", "S_UDF14", "S_UDF15", "S_UDF16", "S_UDF17", "S_UDF18", "S_UDF19", "S_UDF20" } -- 配盘明细基本属性/Distribution_CNTR_Detail DC_DETAIL_ATTRS = { "S_CNTR_CODE", "S_CELL_NO", "S_STORER", "S_ITEM_CODE", "S_ITEM_STATE", "S_ITEM_NAME", "S_SERIAL_NO", "S_BATCH_NO", "S_OWNER", "S_SUPPLIER_NO", "S_WMS_BN", "F_QTY", "S_UOM", "D_PRD_DATE", "D_EXP_DATE", "S_UDF01", "S_UDF02", "S_UDF03", "S_UDF04", "S_UDF05", "S_UDF06", "S_UDF07", "S_UDF08", "S_UDF09", "S_UDF10", "S_UDF11", "S_UDF12", "S_UDF13", "S_UDF14", "S_UDF15", "S_UDF16", "S_UDF17", "S_UDF18", "S_UDF19", "S_UDF20" } -- 库存量表中主要属性 INV_DETAIL_BASE_ATTRS = { "S_CNTR_CODE", "S_CELL_NO", "S_STORER", "S_ITEM_CODE", "S_ITEM_STATE", "S_ITEM_NAME", "S_SERIAL_NO", "S_BATCH_NO", "S_WMS_BN", "S_OWNER", "S_SUPPLIER_NO", "F_QTY", "F_ALLOC_QTY", "F_QTY_FREEZE", "F_QTY_VALID", "S_UOM", "D_PRD_DATE", "D_EXP_DATE", "S_BS_NO", "S_BS_TYPE", "N_BS_ROW_NO" } UDF_ATTRS = { "S_UDF01", "S_UDF02", "S_UDF03", "S_UDF04", "S_UDF05", "S_UDF06", "S_UDF07", "S_UDF08", "S_UDF09", "S_UDF10", "S_UDF11", "S_UDF12", "S_UDF13", "S_UDF14", "S_UDF15", "S_UDF16", "S_UDF17", "S_UDF18", "S_UDF19", "S_UDF20" } -- INV_TXN_Log, INV_Lock_Log 的基本属性 INV_LOG_BASE_ATTRS = { "S_WH_CODE", "S_AREA_CODE", "S_LOC_CODE", "S_CNTR_CODE", "S_CELL_NO", "S_STORER", "S_ITEM_CODE", "S_ITEM_STATE", "S_ITEM_NAME", "S_SERIAL_NO", "S_BATCH_NO", "S_WMS_BN", "S_OWNER", "S_SUPPLIER_NO", "D_PRD_DATE", "D_EXP_DATE" } -- 出库单明细基础属性 OUTBOUND_DETAIL_BASE_ATTRS = { "S_STORER", "S_ITEM_CODE", "S_ITEM_STATE", "S_ITEM_NAME", "S_SERIAL_NO", "S_BATCH_NO", "S_OWNER", "S_SUPPLIER_NO", "F_QTY", "S_UOM", "F_WEIGHT", "F_VOLUME", "S_PICKING_RULE", "S_MATCH_RULE" } -- 容器扩展数据基本属性 CNTR_EXT_BASE_ATTRS = { "S_STORER", "S_ITEM_CODE", "S_ITEM_STATE", "S_SERIAL_NO", "S_BATCH_NO", "S_OWNER", "S_SUPPLIER_NO", "D_EXP_DATE", "D_PRD_DATE", "S_WMS_BN" } -- 容器基本属性 CNTR_BASE_ATTRS = { "S_CODE", "S_CTD_CODE", "S_TYPE", "F_WEIGHT", "F_MAX_WEIGHT", "N_DETAIL_COUNT", "F_GOOD_WEIGHT", "F_GOOD_VOLUME", "C_FULL", "N_EMPTY_FULL", "F_LENGTH", "F_WIDTH", "F_HEIGHT", "N_GOOD_NUM", "S_SOURCE", "F_ACT_WEIGHT" } -- +----------------+ -- | 常量定义 | -- +----------------+ -- 绑定/解绑方法 METHOD_TYPE = lua.MakeConstantTable({ System = 1, -- 系统 Manual = 2 -- 人工 }) -- 货位容器加解绑动作 CNTR_LOC_ACTION = lua.MakeConstantTable({ Bind= 1, -- 绑定 Unbind = 2 -- 解绑 }) -- 锁类型 LOCK_TYPE = lua.MakeConstantTable({ Inbound= 1, -- 入库锁 Outbound = 2, -- 出库锁 Other = 3 -- 其它锁 }) -- mobox.returnValue 函数中返回字符串类型定义 RETSTR_TYPE = lua.MakeConstantTable({ String = 0, -- 字符串 Json = 1 -- Json格式 }) -- mobox.returnValue 函数中返回结果类型定义 RETRES_TYPE = lua.MakeConstantTable({ Normal = 0, -- 常规 Sql = 1, -- 返回是一个Update 的SQL语句 UpdateAttrValue = 2, -- 返回是的更新数据对象属性的设置 Stop = 3, -- 停止当前操作 Unfulfilled = 4, -- 条件不具备,等待后处理,返回的是原因 ProcessOk = 5, -- 处理完成,但希望反馈结果异常,返回值是异常原因 Error = -1, -- 返回的字符串是错误信息 }) -- [Operation] N_TYPE/作业类型 OPERATION_TYPE = lua.MakeConstantTable({ Inbound = 1, -- 入库 Outbound = 2, -- 出库 Move = 3 -- 移库 }) -- [Operation] N_B_STATE /作业状态 OPERATION_STATE = lua.MakeConstantTable({ WaitStartup = 0, -- 待启动 Run = 1, -- 执行 Finish = 2, -- 完成 Error = 3, -- 错误 StartupFail = 4, -- 启动失败 Paused = 5, -- 暂停 Wait = 6, -- 等待 Cancel = 7, -- 取消 BeforeStartup = 8 -- 待启动前 }) -- [Operation] N_TASK_STATE/作业中任务状态 OP_TASK_STATE = lua.MakeConstantTable({ None = 1, -- 入库 Pushed = 2, -- 已推送 Run = 3 -- 已执行 }) --各种数据类中的状态,特别是 N_B_STATE -- [码盘]状态 PALLET_STATE = lua.MakeConstantTable({ -- Inbound_Palletization 中的 N_B_STATE 值 Pallet = 10, -- 码盘中 PalletOK = 11, -- 码盘完成 Inbound_Pending = 12, -- 待入库 Stock_In = 20, -- 开始入库 Finish = 30, -- 入库完成 Cancel = 40 -- 取消 }) -- [加解绑]状态 BINDING_METHOD = lua.MakeConstantTable({ -- Loc_Container 中的 N_BINDING_METHOD 值 System = 1, -- 系统 Manual = 2 -- 人工 }) -- [入库波次/Inbound_Wave]状态 IN_WAVE_STATE = lua.MakeConstantTable({ -- Inbound_Wave 中的 N_B_STATE 值 Unalloc = 0, -- 待分配 PreAlloc_OK = 1, -- 预分配完成 Op_Start = 2, -- 已经开始入库作业 Finish = 3, -- 入库完成 On_Pause = 4, -- 暂停中 Paused = 5, -- 暂停 On_Close = 6, -- 关闭中 Closed = 7 -- 关闭 }) -- [入库单/Inbound_Order]状态 INBOUND_STATE = lua.MakeConstantTable({ -- Inbound_Order 中的 N_B_STATE 值 Unalloc = 0, -- 待分配 PreAlloc_OK = 1, -- 预分配完成 Op_Start = 2, -- 已经开始入库作业 Finish = 3, -- 入库完成 On_Pause = 4, -- 暂停中 Paused = 5, -- 暂停 On_Close = 6, -- 关闭中 Closed = 7 -- 关闭 }) -- [任务/Task]状态 TASK_STATE = lua.MakeConstantTable({ -- Task 中的 N_B_STATE 值 Wait = 0, -- 等待 Pushed = 1, -- 已推送 Run = 2, -- 执行 Finish = 3, -- 完成 Error = 4, -- 错误 Cancel = 5 -- 取消 }) -- [Task/任务]任务类型 TASK_TYPE = lua.MakeConstantTable({ -- Task 中的 N_TYPE 值 None = 0, -- 无 In_Conveyor= 1, -- 输送线入库 Out_Conveyor = 2, -- 输送线出库 In_Stacker= 5, -- 堆垛机入库 Out_Stacker = 6, -- 堆垛机出库 In_AGV = 10, -- AGV入库 Out_AGV = 11, -- AGV出库 In_Picking = 20, -- Picking车入库 Out_Picking = 21, -- Picking车出库 }) -- [Pre_Alloc_Container/预分配容器]状态 PAC_STATE = lua.MakeConstantTable({ -- Pre_Alloc_Container 中的 N_B_STATE 值 InStock = 0, -- 未出库 Outbound = 1, -- 出库中 Arrive_Statio = 2, -- 到站台 PalletOK = 3, -- 码盘完成 Inbound = 4, -- 入库中 Finish = 5, -- 完成 Cancel = 6, -- 取消 Error = 7 -- 错误 }) -- [Pre_Alloc_CNTR_Detail/预分配容器]状态 PAC_DETAIL_STATE = lua.MakeConstantTable({ -- Pre_Alloc_CNTR_Detail 中的 N_B_STATE 值 None = 0, -- 未执行 Palletizing = 1, -- 码盘 PalletizingOK = 2, -- 码盘完成 Cancel = 3 -- 取消 }) -- [Outbound_Order/出库单]状态 OUTBOUND_ORDER_STATE = lua.MakeConstantTable({ -- Outbound_Order 中的 N_B_STATE 值 Unalloc = 0, -- 未配货 InAlloc = 1, -- 配货中 AllocOK = 2, -- 配货完成 OP_Star = 3, -- 开始出库 Finish = 4, -- 完成 Error = 5, -- 错误 On_Pause = 6, -- 暂停中 Paused = 7, -- 暂停 On_Close = 8, -- 关闭中 Closed = 9 -- 关闭 }) -- [Distribution_CNTR/配盘容器]状态 DIST_CNTR_STATE = lua.MakeConstantTable({ -- Distribution_CNTR 中的 N_B_STATE 值 None = 0, -- 未配货 PrePickingOK = 1, -- 配货完成 Out = 2, -- 出库中 OutOK = 3, -- 出库完成 PickingOK = 4, -- 拣货完成 Back = 5, -- 回库 Finish = 6, -- 完成 Error = 7, -- 错误 Cancel = 8 -- 取消 }) -- [Distribution_CNTR_Detail/配盘明细]状态 DC_DETAIL_STATE = lua.MakeConstantTable({ -- Distribution_CNTR_Detail 中的 N_B_STATE 值 None = 0, -- 不可执行 CanDoPicking = 1, -- 可执行分拣 PickingOK = 2, -- 完成分拣 Cancel = 3 -- 取消 }) -- [Picking_CNTR/配盘明细]状态 PICKING_CNTR_STATE = lua.MakeConstantTable({ -- Picking_CNTR 中的 N_B_STATE 值 WaitPicking = 0, -- 待拣货 PickingOK = 1 -- 拣货完成 }) --/////////////////////////////////////////////////////// --条件判断操作符号 CONDITION_SYMBOL = lua.MakeConstantTable({ Equals = "=", -- 等于 Greater = ">", -- 大于 Less = "<", -- 小于 LessOrEquals = "<=", -- 小于等于 GreaterOrEquals = ">=", -- 大于等于 NotEquals = "!=", -- 不等于 Include = "%", -- 包含 NotInclude = "!%", -- 不包含 IsEmpty = "null", -- 为空 NotEmpty = "notnull", -- 不为空 FrontInclude = "0%", -- 前面有 BehindInclude = "%0" -- 后面有 })