lzh
2025-06-24 13c4a636539584ab977fddacfae884b3ec250aee
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
ÿþ--[[
     x: GT-40-33
      Tðy: \ON/T¨R-ÝO)nPg™eeQ“^
     \O€: LZH
     eQãSýQpeÿOperationStart
     ŸRý€ô‹f:
     ØSôf†SòS:
 --]]
 
wms_op = require("wms_operation")
wms_wh = require("wms_wh")
wms_task = require("wms_task")
require("GT_InAndOutboundPolicies")
require("GT-Base")
function OperationStart(strLuaDEID)
    local nRet, strRetInfo
 
    -- ·ƒÖS\ONù[aŒ
    local operation
    nRet, operation = m3.GetSysCurEditDataObj(strLuaDEID, "Operation")
    if (nRet ~= 0) then
        lua.Error(strLuaDEID, debug.getinfo(1), "·ƒÖS\ONù[aŒ^\'`1Y%!" .. operation)
    end
    lua.Debug(strLuaDEID, debug.getinfo(1), 'ö€™eeQ“^operationÂSpe!', operation)
 
    -- ã‰g\ON-N„vibU\ÂSpe
    local ext_data, success
    success, ext_data = pcall(json.decode, operation.ext_data)
    if (success == false) then
        lua.Error(strLuaDEID, debug.getinfo(1), "operation_obj.ext_data -N…Q¹[JSON<h_ NTÕl!")
    end
 
    local mat_size = 1
 
    -- $R­eå‹÷]S„vûN¡R/f&T…Ç–<P ÿ‚Yœg…ÇR\\ON¾‹n:NI{…_¶r`v^\•ï‹áOo`¾‹n0Ru˜b—
    local strCondition = "( N_B_STATE = " .. wms_base.Get_nConst(strLuaDEID, "ûN¡R¶r`-ò]¨c")
    strCondition = strCondition ..
        " OR N_B_STATE = " .. wms_base.Get_nConst(strLuaDEID, "ûN¡R¶r`-gbLˆ") .. ") AND N_ROADWAY =" .. ext_data.roadway
    nRet, strRetInfo = mobox.getDataObjCount(strLuaDEID, "Task", strCondition)
    if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), strRetInfo) end
    if (tonumber(strRetInfo) > tonumber(wms_base.Get_sConst(strLuaDEID, "Task-g'YûN¡Rpe"))) then
        local msg
        msg = "\ONx:N=" ..
        operation.code ..
        " Rú^ûN¡R1Y%, ÷]S" .. ext_data.roadway .. "„vûN¡Rpeϑò]…Ç" .. wms_base.Get_sConst(strLuaDEID, "Task-g'YûN¡Rpe") .. "*N"
        lua.Warning(strLuaDEID, debug.getinfo(1), msg)
        lua.Wait(strLuaDEID, msg)
        return
    end
 
    -- Rú^Ëz“^eQ“^,dЏûN¡R
    local task = m3.AllocObject(strLuaDEID, "Task")
    task.code = ext_data.task_no
    -- Rú^“:g,dЏûN¡R
    task.op_code = operation.code     -- \ONx
    task.op_name = "Ëz“^eQ“^"
    task.factory = operation.factory  -- å]‚S
    task.type = wms_base.Get_nConst(strLuaDEID, "ûN¡R{|‹W-Ëz“^eQ“^,dЏ")
    task.cntr_code = operation.cntr_code
    -- w¹p
    task.start_wh_code = operation.start_wh_code
    task.start_area_code = operation.start_area_code
    task.start_loc_code = operation.start_loc_code
    -- È~¹p
    task.end_wh_code = operation.end_wh_code
    task.end_area_code = operation.end_area_code
    task.end_loc_code = operation.end_loc_code
    task.schedule_type = wms_base.Get_nConst(strLuaDEID, "Œ¦^{|‹W-ýVê") -- ¾‹nŒ¦^{|‹W
    task.roadway = ext_data.roadway -- ûm R÷]S
    nRet, task = m3.CreateDataObj(strLuaDEID, task)
    if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), "Rú^0ûN¡R01Y%!" .. task) end
    lua.Debug(strLuaDEID, debug.getinfo(1), 'task', task)
 
    -- Ç¹[hV·ƒÖSir™eáOo`
    local cg_detail_list, cg_detail
    nRet, cg_detail_list = wms_cntr.Get_Container_Goods(strLuaDEID, task.cntr_code)
    nRet, cg_detail = m3.ObjAttrStrToLuaObj("CG_Detail", lua.table2str(cg_detail_list[1].attrs))
    if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), cg_detail) end
 
    -- ·ƒÖSw¹pÑ~š[„vWCSÙz¹p
    local condition = "S_VALUE = '" .. task.start_loc_code .. "'"
    nRet, strRetInfo = m3.GetDataObjByCondition(strLuaDEID, "WMS_Const", condition)
    if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), "·ƒÖS08^ϑ0áOo`1Y%! " .. strRetInfo) end
    local loc_code_zd = strRetInfo.name
 
    -- Œ(uýVꁄvûN¡R NÑS¥cãS
    local strCode = lua.guid()  -- u§NN*NGUIDW[&{2N
    local str_day_time = os.date("%Y-%m-%d %H:%M:%S")
    local url = wms_base.Get_sConst(strLuaDEID, "WCS-url")
    local strurl = url .. "/create"
    local strHeader = ""
    local strBody = {}
    local data = {
        req_no = strCode,
        task_type = 1,  -- 1='ireQ“^ÿ2='irúQ“^ÿ3=XbØvÄ~eQ“^ÿ4=XbØvÄ~úQ“^ÿ5=ûy¨Rÿ NǏ“^MO    ÿÿ6=ûy“^
        task_no = task.code,
        tunnel_no = task.roadway,
        from_pos = loc_code_zd,
        to_pos = task.end_loc_code,
        mat_code = task.cntr_code,
        mat_type = cg_detail.item_code,
        mat_memo = cg_detail.item_name,
        req_time = str_day_time,
        mat_size = mat_size
    }
    strBody[1] = data
    lua.Debug(strLuaDEID, debug.getinfo(1), 'strBody', strBody)
    nRet, strRetInfo = CreateInterfaceExc(strLuaDEID, strurl, strHeader, strBody, "WCS", "ûN¡RRú^")
    if (nRet ~= 0) then
        lua.Error(strLuaDEID, debug.getinfo(1), "Œ(u¥cãS1Y%!" .. strRetInfo)
    end
 
    -- ¾‹n¶r`*g¨c
    wms_task.SetStateByCode(strLuaDEID, task.code, "ûN¡R¶r`-ò]¨c")
end