Jianw
2025-05-13 b21510ffde25ef027d63862212495ac43b35b10f
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
122
123
124
125
126
127
128
129
130
 
-- 获取源文件信息
local handle = io.popen("cd")
local script_dir
if handle then
  script_dir = handle:read("*a"):gsub("[\r\n]+$", "")
  handle:close()
end
print(jit and jit.arch or "unknown")
-- 设置脚本目录
--package.path  = package.path  .. ";./bin/;./jx/?.lua;./jx_base/?.lua;./mobox_base/?.lua;./wms/?.lua;./wms_base/?.lua;" 
-- 动态获取当前脚本目录(关键!)
--local script_dir = debug.getinfo(1, "S").source:match("@?(.*/)")
print("当前脚本所在的目录是: " .. script_dir)
 
-- 重置 package.path(避免旧路径干扰)
package.path = ""
package.path = package.path .. ";" .. script_dir .. "/?.lua"
-- 添加必要路径(使用正确的模板格式)
package.path = package.path ..
  ";" .. script_dir .. "/bin/?.lua" ..  -- 子目录 bin
  ";" .. script_dir .. "/lualibs/?.lua" ..  -- 子目录 bin
  ";" .. script_dir .. "/lua/00-Factory/?.lua" .. 
  ";" .. script_dir .. "/wms/?.lua" ..
  ";" .. script_dir .. "/lualibs/xml2lua-master/?.lua" ..
  ";" .. script_dir .. "/wms_base/?.lua"..
  ";" .. script_dir .. "/mobox_base/?.lua" 
 
  -- 添加 C 模块搜索路径(针对 Windows 的 .dll 文件)
package.cpath = package.cpath .. ";"
.. script_dir .. "/bin/clibs/?.dll"..
 ";" .. script_dir .. "/bin/clibs/socket/?.dll"
 
local xml = require("LuaXML_lib")
local xml_str = "<root><item>test</item></root>"
local xml_tree = xml.eval(xml_str)
print(getmetatable(xml_tree).__index.find)  -- 若输出 nil,则元表未绑定方法
-- 获取 XML 树的元表
local mt = getmetatable(xml_tree)
if mt then
    mt.__index.find = function(self, tag)
        -- 递归遍历 XML 树,查找指定标签
        for i, child in ipairs(self) do
            if child.tag == tag then  -- 假设标签名存储在 child.tag 字段
                return child
            end
            -- 递归查找子节点
            local found = child:find(tag)
            if found then return found end
        end
        return nil
    end
end
-- 获取根标签名
local root_tag = xml_tree[0]
print("根标签名:", root_tag)  -- 输出 "root"
 
-- 获取根节点下的第一个子节点
local first_child = xml_tree[1]
print("子节点标签:", first_child[0])  -- 输出 "item"
print("子节点内容:", first_child[1])  -- 输出 "test"
 
-- 通过 find 方法查询根节点
local root_node = xml_tree:find("root")
if root_node then
    for i, child in ipairs(root_node:children()) do
        print("子节点内容:", child[1])
    end
end
--local cjson = require("cjson")
local json = require("json")
-- 递归转换 XML 节点为 Lua 表
function xml_to_table(node)
    local result = {}
    -- 提取标签名(假设存储在索引0)
    result.tag = node[0]
    -- 提取属性(假设存储在 `.attr` 字段)
    if node.attr then
        result.attributes = node.attr
    end
    -- 处理子节点和文本内容
    result.children = {}
    for i = 1, #node do
        local child = node[i]
        if type(child) == "table" then
            table.insert(result.children, xml_to_table(child))
        else
            -- 处理文本内容
            result.text = child
        end
    end
    return result
end
 
-- 示例:转换 XML 树为 JSON
local lua_table = xml_to_table(xml_tree)
local json_str = json.encode(lua_table)
print(json_str)
 
 
print("1")
http = require("socket.http")
print("2")
ltn12 = require("ltn12")
url = require("socket.url")
print("3")
-- 加载模块
wms = require ("OILua_WMS")
mobox = require("OILua_JavelinExt")
local wms_base = require("wms_base")
-- 需要调试的脚本
--require("WMS-28-10 Count_Order-AddByCountPlan")
require("WMS-00-10 Factory-BaseDataExport")
local strLuaDEID = "{55521D04-144A-4423-96DF-0C8516FA4DBE}"
local nRet
 
-- 启动事务
mobox.startTransaction( strLuaDEID )
 
-- 调试脚本的入口函数
--nRet = AfterClickOK ( strLuaDEID )
nRet = WMS_BaseData_Export ( strLuaDEID )
 
if ( nRet == 0 ) then
  mobox.commit(strLuaDEID)
else
  mobox.abort(strLuaDEID)
end
 
print( "OK" )