Jianw
2025-05-14 29f8b36ebb718d2051bf0e7e701973ec4419ee80
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
--[[
    编码: WMS-16-11
    名称: 盘点计划-按钮-启动
    作者:HAN  
    日期:2025-1-29
 
    级别:固定 (说明本段代码在项目中不太会变化)
    
    函数: StartCount
 
    功能:
        -- N_B_STATE = 0 的盘点计划启动盘点,根据计划盘点类型生成【计划盘点容器】
        -- 【计划盘点容器采用】生成采用 WFP 来进行处理
 
    更改记录:
--]]
json  = require ("json")
mobox = require ("OILua_JavelinExt")
m3 = require("oi_base_mobox")
 
function StartCount ( strLuaDEID ) 
    local nRet, strRetInfo
    local data_json
    nRet, data_json = m3.GetSysDataJson( strLuaDEID )
    if (nRet ~= 0) then lua.Error( strLuaDEID, debug.getinfo(1), data_json ) end 
    local nCount = #data_json
    if ( nCount == 0 ) then return end
 
    local obj
    for n = 1, nCount do
        nRet, obj = m3.ObjAttrStrToLuaObj( "Count_Plan", lua.table2str(data_json[n].attrs) )  
        if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "m3.ObjAttrStrToLuaObj 失败! "..obj ) end
        if ( obj.b_state == nil ) then
            lua.Error( strLuaDEID, debug.getinfo(1), "盘点计划列表Grid中需要有一个N_B_STATE列属性! " )
        end
        -- 增加一个后台触发脚本程序
        if ( obj.b_state == 0 ) then
            local add_wfp_paramter = {
                wfp_type = 1,                  -- 触发数据对象事件(指定数据对象标识)
                cls = "Count_Plan",
                obj_id = data_json[n].id,
                trigger_event = "盘点计划启动"
            }
            nRet, strRetInfo = m3.AddSysWFP( strLuaDEID, add_wfp_paramter )
            if ( nRet ~= 0 ) then
                lua.Error( strLuaDEID, debug.getinfo(1), strRetInfo )
            end
 
            -- 更新盘点计划业务状态
            local strCondition
            local id = lua.trim_guid_str( data_json[n].id )
            strCondition = "S_ID = '"..id.."'"
            local strSetAttr = "N_B_STATE = 1 "
            nRet, strRetInfo = mobox.updateDataAttrByCondition( strLuaDEID, "Count_Plan", strCondition, strSetAttr )
            if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "updateDataAttrByCondition失败"..strRetInfo ) end   
        else
            lua.Warning( strLuaDEID, debug.getinfo(1), "盘点计划对象标识 = '"..data_json[n].id.."' 已经启动过不需要再次启动!" )
        end
    end
 
    -- 前端刷新一下点中行
    local strAction = '[{"action_type":"refresh_cur_row","value":""}]'
    nRet, strRetInfo = mobox.setAction(strLuaDEID, strAction)
    if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "setAction错误: "..strRetInfo) end     
end