--[[
|
编码: JX-108-26
|
名称: 显示前
|
作者:
|
日期:2025-1-29
|
|
入口函数:BeforeGridShow
|
|
功能说明:
|
显示业务状态(N_B_STATE 和 N_CR_STATE),并控制行按钮显示逻辑
|
--]]
|
|
json = require("json")
|
mobox = require("OILua_JavelinExt")
|
m3 = require("oi_base_mobox")
|
|
function BeforeGridShow(strLuaDEID)
|
local nRet, strRetInfo
|
local data_objs
|
local nCount
|
|
-- 定义业务状态和完工回报状态映射表
|
local state_names = {"等待", "作业启动", "完成", "错误", "执行失败", "出库到站台", "开始回库", "取消"}
|
local cr_state_names = {"没回报", "回报成功", "调接口错误","接口反馈错误"}
|
|
nRet, data_objs = m3.GetSysDataJson(strLuaDEID)
|
if (nRet ~= 0) then
|
lua.Error(strLuaDEID, debug.getinfo(1), "获取网格数据失败: " .. data_objs)
|
end
|
|
nCount = #data_objs
|
if (nCount == 0) then return end
|
|
local row_data_set = {}
|
local obj, attr, attr_name, attr_value
|
local state_index, cr_state_index
|
|
for i = 1, nCount do
|
local row_item = {}
|
|
obj = data_objs[i]
|
row_item.id = obj.id
|
row_item.attrs = {}
|
row_item.row_button_hidden = "再次回报"
|
|
-- 遍历行的属性进行处理
|
for j = 1, #obj.attrs do
|
local attr = {}
|
|
attr.attr = obj.attrs[j].attr
|
attr.value = obj.attrs[j].value
|
if (attr.attr == "N_B_STATE") then
|
state_index = lua.StrToNumber(attr.value)
|
if ( state_index >= 0 and state_index <= 7 ) then
|
attr.value = state_names[state_index + 1]
|
end
|
elseif (attr.attr == "N_CR_STATE") then
|
cr_state_index = lua.StrToNumber(attr.value)
|
if cr_state_index >= 0 and cr_state_index <= 3 then
|
attr.value = cr_state_names[cr_state_index + 1]
|
if ( cr_state_index == 2 or cr_state_index == 3 ) then
|
row_item.row_button_hidden = ""
|
end
|
end
|
end
|
table.insert(row_item.attrs, attr)
|
end
|
table.insert(row_data_set, row_item)
|
end
|
|
-- 更新界面数据
|
local action = {
|
{
|
action_type = "reset_data_attr",
|
value = row_data_set
|
}
|
}
|
|
nRet, strRetInfo = mobox.setAction(strLuaDEID, lua.table2str(action))
|
if (nRet ~= 0) then
|
lua.Error(strLuaDEID, debug.getinfo(1), "更新数据失败: " .. strRetInfo)
|
end
|
end
|