Jianw
2025-05-13 3b39fe3810c3ee2ec9ec97236c1769c5c85e062c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
--[[
    版本:     Version 2.1
    创建日期: 2025-1-29
    创建人:   HAN
 
    WMS-Basis-Model-Version: V15.5
 
    功能:
        wms_equipment Lua程序包整合了一些和设备,设备动作等相关的一些函数
 
        -- Equipment_GetInfo        根据设备号获取设备属性
        -- MQ_EQAction_Exist        判断是否消息队列里是否存在
 
    更改说明:
--]]
wms_base = require ("wms_base")
 
local wms_eq = {_version = "0.2.1"}
 
--[[ 根据设备号获取设备属性
        返回2个值: nRet
        0 获取设备信息 1 不存在 2 错误
        eq  设备对象
--]]
function wms_eq.GetInfo( strLuaDEID, eq_code )
    local nRet, strRetInfo, id
 
    if ( eq_code == nil or eq_code == '' ) then
        return 1, "调用 wms_eq.Equipment_GetInfo 函数时参数不正确,设备编码不能为空!"
    end
    local strCondition = "S_CODE = '"..eq_code.."'"
    nRet, id, strRetInfo = mobox.getDataObjAttrByKeyAttr( strLuaDEID, "Equipment", strCondition )
    if ( nRet == 1 ) then
        return 1, "设备编码='"..eq_code.."'的设备不存在!"
    end
    if ( nRet ~= 0  ) then
        return 2, "getDataObjAttrByKeyAttr 发生错误!"..id
    end
 
    nRet, strRetInfo = mobox.objAttrsToLuaJson( "Equipment", strRetInfo )
    if ( nRet ~= 0  ) then
        return 2, "objAttrsToLuaJson Equipment 失败!"..strRetInfo
    end
 
    local object, success
    success, object = pcall( json.decode, strRetInfo )
    if ( success == false ) then
        error( "objAttrsToLuaJson('Equipment') 返回的的JSON格式不合法!" )
    end
    object.id = id
    return 0, object
end
 
--[[ 
   判断是否消息队列里是否存在 eq_code 和 action_type 一样的记录 N_B_STATE =0 表示没处理的 
   这个函数在输送线不适用,需要判断线体
-- 返回参数 nRet, strResult
--         nRet = 0 表示函数调用成功 非零表示有错
--         strResult = "no" 表示不存在, "yes" 表示存在
--]]
function wms_eq.MQ_EQAction_Exist( strLuaDEID, mq_eq_action )
    local strCondition, nRet, strRetInfo
 
    strCondition = "N_ACTION_CODE = "..mq_eq_action.action_code.." AND S_EQ_CODE = '"..mq_eq_action.eq_code.."' AND N_B_STATE = 0 "
    nRet, strRetInfo = mobox.existThisData( strLuaDEID, "MQ_EQAction", strCondition )
    return nRet, strRetInfo
end
 
return wms_eq