--[[ 编码: GT-03-14 名称: 装箱工单-按钮-设置为启动 作者:HAN 日期:2023-05-10 函数: SetState 功能: -- 设置为“启动”状态 更改记录: V2.0 LZH 2024-06-06 设置状态后刷新页面 V2.1 LZH 2024-06-06 同一工位同时只能有一个启动状态的装箱工单 --]] json = require("json") mobox = require("OILua_JavelinExt") m3 = require("oi_base_mobox") function SetState(strLuaDEID) local nRet, strRetInfo, objs, nCount -- 获取当前选中的数据对象 nRet, objs = m3.GetSysDataJson(strLuaDEID) if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), objs) end lua.Debug(strLuaDEID, debug.getinfo(1), '设置为启动参数:', objs) local obj_attrs local strCondition, strSetAttr for n = 1, #objs do obj_attrs = m3.KeyValueAttrsToObjAttr(objs[n].attrs) if (obj_attrs ~= nil and obj_attrs ~= '') then -- V2.1 判断该工位下面是否已经存在启用状态的装箱工单 strCondition = "S_STATION = '" .. obj_attrs.S_STATION .. "' AND S_STATE = '启用'" nRet, nCount = mobox.getDBRecordCount(strLuaDEID, "TN_GT_Packing_Order", strCondition) if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), nCount) end if (tonumber(nCount) > 0) then lua.Error(strLuaDEID, debug.getinfo(1), obj_attrs.S_STATION .. "工位已存在启用状态的装箱工单!") end if (obj_attrs.S_STATE == '新建') then strCondition = "S_PACK_NO = '" .. obj_attrs.S_PACK_NO .. "'" strSetAttr = "S_STATE = '启用'" nRet, strRetInfo = mobox.updateDataAttrByCondition(strLuaDEID, "GT_Packing_Order", strCondition, strSetAttr) if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), "设置状态失败!" .. strRetInfo) end -- 如果启动的装箱工单是散装胶的,则调用WCS接口下发机器人规格 if (obj_attrs.S_DISPERSOID == 'Y') then -- 调用国自的任务下发接口 local strCode = lua.guid() -- 生产一个GUID字符串 local url = wms_base.Get_sConst(strLuaDEID, "WCS-url") local strurl = url .. "/ChangeSpecifications" local strHeader = "" local data = { req_no = strCode, palletizing = obj_attrs.S_PALLETIZING } nRet, strRetInfo = CreateInterfaceExc(strLuaDEID, strurl, strHeader, data, "WCS", "机器人规格下发") if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), "调用接口失败!" .. strRetInfo) end end end end end -- V2.0 设置状态后刷新Grid页面 local strAction = '[{"action_type":"refresh","value":""}]' nRet, strRetInfo = mobox.setAction(strLuaDEID, strAction) if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), "setAction错误: " .. strRetInfo) end end