From 4be5e6f4ae34bcb7cb47f05816421459bbfaedf1 Mon Sep 17 00:00:00 2001 From: wsz <w1832984788@outlook.com> Date: 星期二, 10 六月 2025 15:37:13 +0800 Subject: [PATCH] 回调GK-API-08 v02->v04 --- lua_code/Lua/Count_Pan_Sync.lua | 207 ++++++++++++++++++++++++++++++--------------------- 1 files changed, 121 insertions(+), 86 deletions(-) diff --git a/lua_code/Lua/Count_Pan_Sync.lua b/lua_code/Lua/Count_Pan_Sync.lua index 2e8ef42..2ed8118 100644 --- a/lua_code/Lua/Count_Pan_Sync.lua +++ b/lua_code/Lua/Count_Pan_Sync.lua @@ -4,7 +4,7 @@ 浣滆�: 琚佸嘲 鍏ュ彛鍑芥暟锛欳ount_Pan_Sync 鍔熻兘璇存槑: 璇ユ帴鍙f槸鍚屾鎺ュ彛锛�- 涓婃父绯荤粺 璋冪敤璇ユ帴鍙e悗锛學ES 鐨勫搷搴旀姤鏂�success 璇存槑 WES 宸茬粡灏嗚鎶ユ枃鎺ユ敹鎴愬姛; + 涓婃父绯荤粺璋冪敤璇ユ帴鍙e悗锛學ES鐨勫搷搴旀姤鏂噑uccess璇存槑WES宸茬粡灏嗚鎶ユ枃鎺ユ敹鎴愬姛; 闇�鍚屾鐩樼偣浠诲姟琛ㄥ拰鐩樼偣浠诲姟鏄庣粏琛▁ml缁撴瀯銆� 鍙樻洿鍘嗗彶: @@ -74,156 +74,191 @@ </soapenv:Envelope> 鍝嶅簲绀轰緥锛�-<flag>sucess</flag> -<code>0</code> -<message>鎴愬姛</message> -]] --[[ - 鍔熻兘锛氱洏鐐硅鍒掑悓姝ユ帴鍙o紙鏀寔澶氫富琛�澶氭槑缁嗭級 - 浣滆�锛氳宄�- 鍏ュ彛鍑芥暟锛欳ount_Pan_Sync - 璇存槑锛氳В鏋�xml锛屾敮鎸佸涓�InventoryTasks_TB锛堜富琛級锛屾瘡涓富琛ㄤ笅鍙寘鍚涓槑缁嗭紙InventoryTasks_TB_ITEM锛�+<response> + <flag>success</flag> + <code>0</code> + <message>鎴愬姛</message> +</response> ]] -- - wms_base = require("wms_base") xml = require("oi_base_xml") mobox = require("OILua_JavelinExt") m3 = require("oi_base_mobox") +wms = require("OILua_WMS") -- 鍒涘缓缁熶竴杩斿洖缁撴灉 function Create_result(flag, code, msg, error) return { flag = flag or "success", code = code or "0", - message = msg or "", - error = error or "" + message = msg or "" } end function Count_Pan_Sync(strLuaDEID) + -- 鍒濆鍖栨渶缁堢粨鏋�+ local FinalRes = Create_result() + -- 1. 鑾峰彇 xml 鏁版嵁鍖� local nRet, soap_xml = mobox.getCurEditDataPacket(strLuaDEID) if nRet ~= 0 then - FinalRes = Create_result("failure", "1", "鏃犳硶鑾峰彇鏁版嵁鍖� " .. soap_xml) - lua.Stop(strLuaDEID, "鑾峰彇鏁版嵁鍖呭け璐�, FinalRes) + FinalRes = Create_result("failure", "201", "鏃犳硶鑾峰彇鏁版嵁鍖� " .. soap_xml) + local xml_result = xml.json_to_xml(FinalRes, "response") + mobox.returnValue(strLuaDEID, 0, xml_result, 0) + lua.Stop(strLuaDEID, "鑾峰彇鏁版嵁鍖呭け璐�, soap_xml) return end + + lua.DebugEx(strLuaDEID, "鑾峰彇鍒扮殑鏁版嵁鍖�, soap_xml) -- 2. 瑙f瀽 xml local nRet, parsed_data = xml.parse(soap_xml) if nRet ~= 0 then FinalRes = Create_result("failure", "202", "xml 鏍煎紡闈炴硶") - lua.Stop(strLuaDEID, "xml鏍煎紡闈炴硶", FinalRes) + local xml_result = xml.json_to_xml(FinalRes, "response") + mobox.returnValue(strLuaDEID, 0, xml_result, 0) + lua.Stop(strLuaDEID, "xml鏍煎紡闈炴硶", parsed_data) return end - -- 鎻愬彇涓昏〃鏁版嵁锛堝彲鑳藉涓�InventoryTasks_TB锛�+ -- 3. 鎻愬彇涓昏〃鏁版嵁 local receipt_data = parsed_data.Envelope.Body.InventoryTasksReq.InventoryTasks_Input local input_params = receipt_data.InputParameters -- 妫�煡鏄惁瀛樺湪 InventoryTasks_TB if not input_params or not input_params.InventoryTasks_TB then FinalRes = Create_result("failure", "203", "xml 鏁版嵁鏍煎紡閿欒锛岀己灏�InventoryTasks_TB") - lua.Stop(strLuaDEID, "xml 鏁版嵁鏍煎紡閿欒", FinalRes) + local xml_result = xml.json_to_xml(FinalRes, "response") + mobox.returnValue(strLuaDEID, 0, xml_result, 0) + lua.Stop(strLuaDEID, "xml 鏁版嵁鏍煎紡閿欒", xml_result) return end - -- 鍒ゆ柇 InventoryTasks_TB 鏄崟涓璞¤繕鏄暟缁�- -- xml 瑙f瀽鍚庯紝濡傛灉鍙湁涓�釜 InventoryTasks_TB锛屽彲鑳借繑鍥�table锛涘涓垯鍙兘鏄暟缁�+ -- 4. 缁熶竴澶勭悊锛氱‘淇�mainTables 鏄暟缁勶紙鍗充娇鍙湁涓�釜涓昏〃锛� local mainTables = input_params.InventoryTasks_TB - if not mainTables then - FinalRes = Create_result("failure", "204", "xml 鏁版嵁鏍煎紡閿欒锛孖nventoryTasks_TB 涓虹┖") - lua.Stop(strLuaDEID, "xml 鏁版嵁鏍煎紡閿欒", FinalRes) - return - end - -- 5. 缁熶竴澶勭悊锛氱‘淇�mainTables 鏄暟缁勶紙鍗充娇鍙湁涓�釜涓昏〃锛� if mainTables[1] == nil then - -- 濡傛灉 mainTables 涓嶆槸鏁扮粍锛堝崟涓富琛級锛屽垯鍖呰鎴愭暟缁� mainTables = {mainTables} end - -- 閬嶅巻鎵�湁涓昏〃鏁版嵁 - local result = Create_result() + -- 5. 鑾峰彇绯荤粺甯搁噺 + local RetWH_COE, CONST_WH = wms_base.Get_sConst2("GK_Default_Warehouse") + if RetWH_COE ~= 0 then + lua.DebugEx(strLuaDEID, "鑾峰彇浠撳簱甯搁噺澶辫触!", CONST_WH) + FinalRes = Create_result("failure", "204", "鑾峰彇浠撳簱甯搁噺澶辫触" .. CONST_WH) + local xml_result = xml.json_to_xml(FinalRes, "response") + mobox.returnValue(strLuaDEID, 0, xml_result, 0) + lua.Stop(strLuaDEID, "鑾峰彇绯荤粺甯搁噺澶辫触", xml_result) + return + end + + -- 6. 閬嶅巻鎵�湁鐩樼偣浠诲姟 for i = 1, #mainTables do local mainData = mainTables[i] - -- lua.DebugEx(strLuaDEID, "涓昏〃浠诲姟ID:", mainData.taskId) + + -- 妫�煡鐩樼偣浠诲姟鏄惁宸插瓨鍦�+ local strCondition = string.format("S_CP_NO = '%s'", mainData.taskId) + lua.DebugEx(strLuaDEID, "鏌ヨ鐩樼偣浠诲姟鏉′欢", strCondition) + local nRet, retCountPlan = m3.GetDataObjByCondition(strLuaDEID, "Count_Plan", strCondition) + lua.DebugEx(strLuaDEID, "鏌ヨ缁撴灉", retCountPlan) + if nRet == 0 then + -- 鏌ヨ鎴愬姛涓旀壘鍒拌褰曪紝璇存槑鐩樼偣浠诲姟宸插瓨鍦�+ lua.DebugEx(strLuaDEID, "鏌ヨ鎴愬姛锛岀洏鐐逛换鍔″凡瀛樺湪", retCountPlan) + FinalRes = Create_result("failure", "1", "鐩樼偣浠诲姟宸插瓨鍦�, + "鐩樼偣浠诲姟[" .. mainData.taskId .. "]宸插瓨鍦�) + local xml_result = xml.json_to_xml(FinalRes, "response") + mobox.returnValue(strLuaDEID, 0, xml_result, 0) + lua.Stop(strLuaDEID, "鐩樼偣浠诲姟宸插瓨鍦�, retCountPlan) + return + -- 濡傛灉鏄痭Ret=1锛岄偅涔堣〃绀鸿繖涓暟鎹湪琛ㄤ腑涓嶅瓨鍦紝鍙互鏀惧績鎻掑叆鏂版暟鎹�+ elseif nRet ~= 1 then + -- 鏌ヨ鍑洪敊 + lua.DebugEx(strLuaDEID, "鏌ヨ鍑洪敊", retCountPlan) + FinalRes = Create_result("failure", "206", "妫�煡鐩樼偣浠诲姟鏄惁瀛樺湪鏃跺嚭閿�, + "妫�煡鐩樼偣浠诲姟[" .. mainData.taskId .. "]鏃跺嚭閿� " .. retCountPlan) + local xml_result = xml.json_to_xml(FinalRes, "response") + mobox.returnValue(strLuaDEID, 0, xml_result, 0) + lua.Stop(strLuaDEID, "妫�煡鐩樼偣浠诲姟鏄惁瀛樺湪鏃跺嚭閿�, xml_result) + return + end + -- 鍒涘缓涓昏〃鏁版嵁 local count_plan = m3.AllocObject(strLuaDEID, "Count_Plan") - count_plan.cp_no = mainData.taskId; -- 鐩樼偣璁″垝鍙�- count_plan.inventory_mode = mainTables[i].inventoryMode; -- 鐩樼偣鏂瑰紡 - count_plan.work_mode = mainData.workMode; -- 浣滀笟鏂瑰紡 - count_plan.count_limit = mainData.MaintenanceNumber; -- 鐩樼偣鏁伴噺闄愬埗 - count_plan.type = mainTables[i].inventoryType; -- 鐩樼偣绫诲瀷 - count_plan.bs_no = mainData.orderNo; -- 鏉ユ簮鍗曞彿 - count_plan.storeId = mainData.storer; -- 璐т富缂栫爜 - count_plan.ownerId = mainData.owner; -- 鐗╂潈 - count_plan.begin_time = mainData.mtBeginDate; -- 鍔ㄧ寮�鏃堕棿 - count_plan.end_time = mainData.mtEndDate; -- 鍔ㄧ缁撴潫鏃堕棿 - count_plan.prod_line = mainData.productLine; -- 浜у搧绾�- count_plan.begin_location = mainData.beginLocation; -- 寮�搴撲綅 - count_plan.end_location = mainData.endLocation; -- 缁撴潫搴撲綅 - count_plan.area_code = mainData.areaCode; -- 搴撳尯 - count_plan.op_date = mainData.orderDate; -- 璁㈠崟鏃ユ湡 - count_plan.priority = mainData.priority; -- 浼樺厛绾�- count_plan.note = mainData.memo; -- 澶囨敞 - -- count_plan.type = wms_base.Get_nConst2(strLuaDEID, "WMS_CountType") - count_plan.plan_total = 0; -- 璁″垝鐩樼偣鏁�- count_plan.b_state = 0; - local RetWH_COE, CONST_WH = wms_base.Get_sConst2(strLuaDEID, "GK_Default_Warehouse") - if (RetWH_COE ~= 0) then - FinalRes = Create_result("failure", "1", "鑾峰彇浠撳簱甯搁噺澶辫触", CONST_WH) - lua.Stop(strLuaDEID, "鑾峰彇浠撳簱甯搁噺澶辫触", CONST_WH) - else - count_plan.wh_code = CONST_WH; -- 浠撳簱 - count_plan.acc_finish = 0; - end - lua.DebugEx(strLuaDEID, "鍒涘缓鐨勮〃鍗曪細", count_plan); + count_plan.cp_no = mainData.taskId + count_plan.inventory_mode = mainData.inventoryMode + count_plan.work_mode = mainData.workMode + count_plan.count_limit = mainData.MaintenanceNumber + count_plan.pan_type = mainData.inventoryType or "" + lua.DebugEx(strLuaDEID, "瀹瑰櫒绫诲瀷锛�, count_plan.pan_type); + count_plan.bs_no = mainData.orderNo + count_plan.storer = mainData.storerId + count_plan.owner = mainData.ownerId + count_plan.begin_time = mainData.mtBeginDate + count_plan.end_time = mainData.mtEndDate + count_plan.wh_code = CONST_WH + count_plan.plan_total = 0 + count_plan.b_state = 0 + count_plan.acc_finish = 0 + lua.DebugEx(strLuaDEID, "鑾峰彇鍒涘缓鏁版嵁锛�, count_plan); + -- 妫�煡鏄惁宸插瓨鍦ㄧ浉鍚屽叧閿瓧鐨勮褰� local nRet, ret_info = m3.CreateDataObj(strLuaDEID, count_plan) + lua.DebugEx(strLuaDEID, "鍒涘缓缁撴灉", ret_info) if nRet ~= 0 then - result.flag = "failure" - result.code = "102" - result.message = "鍒涘缓涓昏〃鏁版嵁澶辫触" - result.error = "琛屽彿[" .. count_plan.cp_no .. "]鍒涘缓澶辫触: " .. ret_info - lua.DebugEx(strLuaDEID, "涓昏〃鏁版嵁鍒涘缓澶辫触: ", ret_info) - FinalRes = Create_result("failure", "205", "涓昏〃鏁版嵁鍒涘缓澶辫触: ", ret_info) - lua.Stop(strLuaDEID, "鍒涘缓涓昏〃鏁版嵁澶辫触" .. count_plan.cp_no, ret_info) + -- 鍐嶆妫�煡鏄惁鐪熺殑瀛樺湪 + local nRetCheck, retCountPlanCheck = m3.GetDataObjByCondition(strLuaDEID, "Count_Plan", strCondition) + lua.DebugEx(strLuaDEID, "鍐嶆鏌ヨ缁撴灉", retCountPlanCheck) + if nRetCheck == 0 then + FinalRes = Create_result("failure", "205", "鐩樼偣浠诲姟宸插瓨鍦�, + "鐩樼偣浠诲姟[" .. mainData.taskId .. "]宸插瓨鍦�) + else + FinalRes = Create_result("failure", "207", "鍒涘缓鐩樼偣浠诲姟涓昏〃澶辫触", + "鐩樼偣浠诲姟[" .. mainData.taskId .. "]鍒涘缓澶辫触: " .. ret_info) + end + local xml_result = xml.json_to_xml(FinalRes, "response") + mobox.returnValue(strLuaDEID, 0, xml_result, 0) + lua.Stop(strLuaDEID, "鍒涘缓鐩樼偣浠诲姟涓昏〃澶辫触", ret_info) + return end + -- 妫�煡鏄庣粏鏁版嵁鏄惁瀛樺湪 - if not mainData.InventoryTasks_TB_ITEM then - lua.DebugEx(strLuaDEID, "璀﹀憡锛氫换鍔�" .. mainData.taskId .. " 鏃犳槑缁嗘暟鎹�) + if mainData.InventoryTasks_TB_ITEM == nil then + lua.DebugEx(strLuaDEID, "璀﹀憡锛氱洏鐐逛换鍔�" .. mainData.taskId .. " 鏃犳槑缁嗘暟鎹�) + -- 鏃犳槑缁嗘暟鎹笉瑙嗕负閿欒锛岀户缁鐞嗕笅涓�釜浠诲姟 else - -- 7. 閬嶅巻褰撳墠涓昏〃鐨勬墍鏈夋槑缁嗘暟鎹�+ -- 7. 閬嶅巻褰撳墠鐩樼偣浠诲姟鐨勬墍鏈夋槑缁嗘暟鎹� local details = mainData.InventoryTasks_TB_ITEM -- 纭繚 details 鏄暟缁勶紙鍗充娇鍙湁涓�釜鏄庣粏锛� if details[1] == nil then details = {details} end - -- 閬嶅巻涓昏〃鏁版嵁鍙婂叾鏄庣粏鏁版嵁 + for j = 1, #details do local item = details[j] + -- 鍒涘缓鏄庣粏鏁版嵁 local count_plan_item = m3.AllocObject(strLuaDEID, "Count_Plan_Detail") - count_plan_item.cp_no = mainData.taskId; -- 鐩樼偣璁″垝鍙凤紙鍏宠仈涓昏〃锛�- count_plan_item.row_no = item.orderItemId; -- 璁㈠崟缂栧彿 - count_plan_item.qty = item.qty; -- 璁″垝鏁伴噺 - count_plan_item.wms_bn = item.batchNo; -- WMS鎵规缂栧彿 - count_plan_item.batch_no = item.produceCode; -- 鐢熶骇鎵规 - count_plan_item.prd_date = item.productDate; -- 鐢熶骇鏃ユ湡 - count_plan_item.exp_date = item.expiryDate; -- 鏈夋晥鏈�- count_plan_item.reg_no = item.registerNo; -- 鍟嗗搧缂栫爜 + count_plan_item.cp_no = mainData.taskId + count_plan_item.row_no = item.orderItemId + count_plan_item.qty = lua.Get_NumAttrValue(item.qty) or 0 + count_plan_item.wms_bn = item.batchNo + count_plan_item.batch_no = item.produceCode or "" + count_plan_item.prd_date = item.productDate or "" + count_plan_item.exp_date = item.expiryDate or "" + count_plan_item.reg_no = item.registerNo or "" + local nRet, ret_info = m3.CreateDataObj(strLuaDEID, count_plan_item) if nRet ~= 0 then - result.flag = "failure" - result.code = "102" - result.message = "鍒涘缓鏄庣粏鏁版嵁澶辫触" - result.error = "琛屽彿[" .. count_plan_item.row_no .. "]鍒涘缓澶辫触: " .. ret_info - FinalRes = Create_result("failure", "1", "鏄庣粏琛ㄦ暟鎹垱寤哄け璐�", ret_info) - lua.Stop(strLuaDEID, "鍒涘缓鏄庣粏琛ㄦ暟鎹け璐� .. count_plan.cp_no, ret_info) - else - lua.DebugEx(strLuaDEID, "鏄庣粏鏁版嵁鍒涘缓鎴愬姛锛�, count_plan_item) - FinalRes = Create_result("success", "0", "鎴愬姛", "123") + FinalRes = Create_result("failure", "208", "鍒涘缓鐩樼偣鏄庣粏澶辫触", "鍒涘缓澶辫触: " .. ret_info) + local xml_result = xml.json_to_xml(FinalRes, "response") + mobox.returnValue(strLuaDEID, 0, xml_result, 0) + lua.DebugEx(strLuaDEID, "鍒涘缓鐩樼偣鏄庣粏澶辫触", xml_result) + lua.Stop(strLuaDEID, "鍒涘缓鐩樼偣鏄庣粏澶辫触", ret_info) + return end end end end + + -- 8. 杩斿洖鎴愬姛 + FinalRes = Create_result("success", "0", "鐩樼偣浠诲姟鍒涘缓鎴愬姛") local xml_result = xml.json_to_xml(FinalRes, "response") mobox.returnValue(strLuaDEID, 0, xml_result, 0) end -- Gitblit v1.9.1