1
Jianw
9 天以前 70f29da38121b9a467841253e3268feb5df02902
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
--[[
    编码: GK-52-16
    来源: WMS-52-16
 
    名称: 3053-点中出库任务
    作者:HAN  
    日期:2025-7-5
 
    级别:固定 (说明本段代码在项目中不太会变化)
    
    函数: ClickItem
    功能:
        -- 3053 中的功能,点中出库任务后把入库信息 加到自定义表单的{3053-出库分拣}
 
    更改记录:
 
--]]
 
json  = require ("json")
mobox = require ("OILua_JavelinExt")
m3 = require("oi_base_mobox")
 
function ClickItem ( strLuaDEID ) 
    local nRet, strRetInfo
    local data_json
 
    -- 获取点中的【预分配容器明细】
    nRet, data_json = m3.GetSysDataJson( strLuaDEID )
    if nRet ~= 0 then 
        lua.Stop( strLuaDEID, data_json ) 
        return
    end     
    if ( #data_json ~= 1 ) then 
        lua.Stop( strLuaDEID, " datajson数据输入不正确 !" ) 
        return
    end 
 
    local id = lua.trim_guid_str( data_json[1].id )
    local action_array = {}
    local obj_attrs = m3.KeyValueAttrsToObjAttr( data_json[1].attrs )
 
    if lua.StrIsEmpty( obj_attrs.S_PUT_WALL_NO ) then
        lua.Stop( strLuaDEID, " 出库任务数据对象属性不正确,播种墙料格号 (S_PUT_WALL_NO) 不能为空 !" ) 
        return
    end 
 
    if lua.StrIsEmpty( obj_attrs.S_LOC_CODE ) then
        lua.Stop( strLuaDEID, " 出库任务数据对象属性不正确,拣货架料格号 (S_LOC_CODE) 不能为空 !" ) 
        return
    end 
 
    local login_info
    nRet, login_info = wms_base.Get_CurLoginUserInfo( strLuaDEID )
    if ( nRet ~= 0 ) then 
        wms_base.Notice_Audio( strLuaDEID, login_info, "error.mp3" )
        return
    end    
 
    -- 设置面板【出库分拣】、【播种墙显示】、【拣料箱显示】中的输入信息
    -- 亮点
    local qty = lua.StrToNumber(obj_attrs.F_QTY)
    local action = {
        {
        action_type = "refresh_related_panel",
        value = {  
                    {
                        panel_name = "出库分拣",
                        input_parameter = {
                            id = id,
                            pac_no = obj_attrs.S_PAC_NO,                  -- 组盘号
                            item_code = obj_attrs.S_ITEM_CODE,
                            item_name = obj_attrs.S_ITEM_NAME,
                            cntr_code = obj_attrs.S_CNTR_CODE,
                            cell_no = obj_attrs.S_CELL_NO,
                            station = obj_attrs.S_STATION_NO,
                            bs_no = obj_attrs.S_BS_NO,                      -- 来源业务单号
                            dc_no = obj_attrs.S_DC_NO,                      -- 配盘号
                            wh_code = obj_attrs.S_WH_CODE,                  -- 仓库编码
                            area_code = obj_attrs.S_AREA_CODE,              -- 库区编码  
                            loc_code = obj_attrs.S_LOC_CODE,                -- 货位编码  
                            put_wall_no = obj_attrs.S_PUT_WALL_NO,        -- 播种墙
                            qty = qty
                        }
                    },
                    {
                        panel_name = "播种墙显示",
                        input_parameter = {
                            loc_code = obj_attrs.S_PUT_WALL_NO,                -- 货位编码
                        }
                    },
                    {
                        panel_name = "拣料箱显示",
                        input_parameter = {
                            cell_no = obj_attrs.S_CELL_NO,
                            loc_code = obj_attrs.S_LOC_CODE,                -- 货位编码
                            light_color = "#FFD700"                         -- 显示黄色
                        }
                    }  
                 }       
        }
    }    
 
    nRet, strRetInfo = mobox.setAction( strLuaDEID, lua.table2str(action)  )
    if ( nRet ~= 0 ) then 
        lua.Stop( strLuaDEID, "setAction失败! "..strRetInfo ) 
        return
    end 
 
    -- 拣货架 亮灯
    nRet, strRetInfo = gk_base.Lighting( loc_code, obj_attrs.S_LOC_CODE, qty, PTL_COLOR.Green, 1, login_info.login, "" )
    if nRet ~= 0 then
        wms_base.Notice_Audio( strLuaDEID, "货位'"..obj_attrs.S_LOC_CODE.."' 亮灯失败! "..strRetInfo, "error.mp3" )
        return            
    end   
    -- 播种墙 亮灯  
    nRet, strRetInfo = gk_base.Lighting( obj_attrs.S_PUT_WALL_NO, obj_attrs.S_CELL_NO, qty, PTL_COLOR.Green, 1, login_info.login, "出库分拣" )
    if nRet ~= 0 then
        wms_base.Notice_Audio( strLuaDEID, "货位'"..obj_attrs.S_PUT_WALL_NO.."' 亮灯失败! "..strRetInfo, "error.mp3" )
        return            
    end         
end