From 79e04c3c2125ab860670f05b0f73ca9cc4168c0f Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期一, 23 六月 2025 17:16:31 +0800 Subject: [PATCH] 优化产品入库逻辑,修复货位绑定和货品明细重复的问题 --- /dev/null | 38 -- core/Monitor.cs | 126 ------- wms/WMSHelper.cs | 70 ---- config/config.json | 2 .vs/HH.WCS.Mobox3.AnGang/FileContentIndex/b46d38b7-1876-42b3-81c8-ac8f930ac5f8.vsidx | 0 core/WCSCore.cs | 33 + HH.WCS.Mobox3.AnGang.csproj | 4 api/DebugController.cs | 33 + dispatch/GZRobot.cs | 2 api/AgvController.cs | 15 api/ApiHelper.cs | 462 ++++++++++----------------- process/TaskProcess.cs | 78 ---- api/MoboxController.cs | 64 --- .vs/HH.WCS.Mobox3.AnGang/FileContentIndex/45cd14e7-f5f2-43ad-8265-90a4e2beef30.vsidx | 0 14 files changed, 232 insertions(+), 695 deletions(-) diff --git a/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/26cb7641-a9ff-4b60-93af-e7b9228fb03d.vsidx b/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/26cb7641-a9ff-4b60-93af-e7b9228fb03d.vsidx deleted file mode 100644 index fdebf7c..0000000 --- a/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/26cb7641-a9ff-4b60-93af-e7b9228fb03d.vsidx +++ /dev/null Binary files differ diff --git a/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/45cd14e7-f5f2-43ad-8265-90a4e2beef30.vsidx b/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/45cd14e7-f5f2-43ad-8265-90a4e2beef30.vsidx new file mode 100644 index 0000000..8526058 --- /dev/null +++ b/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/45cd14e7-f5f2-43ad-8265-90a4e2beef30.vsidx Binary files differ diff --git a/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/487b627d-37f2-4def-b2fe-acf99cac927a.vsidx b/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/487b627d-37f2-4def-b2fe-acf99cac927a.vsidx deleted file mode 100644 index 63a339b..0000000 --- a/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/487b627d-37f2-4def-b2fe-acf99cac927a.vsidx +++ /dev/null Binary files differ diff --git a/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/b46d38b7-1876-42b3-81c8-ac8f930ac5f8.vsidx b/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/b46d38b7-1876-42b3-81c8-ac8f930ac5f8.vsidx new file mode 100644 index 0000000..3c039d6 --- /dev/null +++ b/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/b46d38b7-1876-42b3-81c8-ac8f930ac5f8.vsidx Binary files differ diff --git a/HH.WCS.Mobox3.AnGang.csproj b/HH.WCS.Mobox3.AnGang.csproj index a437f8b..2b3bf1d 100644 --- a/HH.WCS.Mobox3.AnGang.csproj +++ b/HH.WCS.Mobox3.AnGang.csproj @@ -266,10 +266,6 @@ <Compile Include="App_Start\SwaggerControllerDescProvider.cs" /> <Compile Include="device\SnapDevice.cs" /> <Compile Include="device\SnapManager.cs" /> - <Compile Include="models\TN_Count_CG_Detail.cs" /> - <Compile Include="models\TN_Count_Diff.cs" /> - <Compile Include="models\TN_Count_Order.cs" /> - <Compile Include="models\TN_Count_Plan.cs" /> <Compile Include="models\TN_Inbound_DataRecord.cs" /> <Compile Include="models\TN_Outbound_DataRecord.cs" /> <Compile Include="core\WMSCore.cs" /> diff --git a/api/AgvController.cs b/api/AgvController.cs index 0f27764..b807d60 100644 --- a/api/AgvController.cs +++ b/api/AgvController.cs @@ -20,19 +20,6 @@ [RoutePrefix("agv")] public class AgvController : ApiController { - ///// <summary> - ///// NDC HostToAGV 浠诲姟鐘舵�鍥炴姤 - ///// </summary> - ///// <param name="model"></param> - ///// <returns></returns> - //[HttpPost] - //[Route("AGVCallbackState")] - //public ReturnResult AGVCallbackState(AgvTaskState model) - //{ - // LogHelper.Info("NDC HostToAGV浠诲姟鐘舵�鍥炴姤锛� + JsonConvert.SerializeObject(model), "HosttoagvTask"); - // return AgvService.OperateAgvTaskStatus(model); - //} - /// <summary> /// RCS鍥借嚜AGV浠诲姟鐘舵�鍥炴姤 /// </summary> @@ -44,7 +31,7 @@ //LogHelper.Info("RCS鍥借嚜AGV浠诲姟鐘舵�鍥炴姤锛� + JsonConvert.SerializeObject(model), "HosttoagvTask"); return GZRobot.orderStatusReport(model); } - + /// <summary> /// AGV 涓庝骇绾胯繘琛屽畨鍏ㄤ氦浜� /// </summary> diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs index 7f71918..c5fad07 100644 --- a/api/ApiHelper.cs +++ b/api/ApiHelper.cs @@ -28,12 +28,23 @@ var startLoc = db.Queryable<TN_Location>() .Where(a => a.S_CODE == model.StartLoc) .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") - .Where(a => a.N_CURRENT_NUM == 0) + //.Where(a => a.N_CURRENT_NUM == 0) .Where(a => Settings.Areas[0].Contains(a.S_AREA_CODE)) // 鏀跺彂鍖� .First(); if (startLoc == null) { - return BuildSimpleResult(1, $"璧风偣浣嶇疆{model.StartLoc}涓嶅瓨鍦ㄦ垨涓嶆弧瓒宠姹傦細闇�锛�锛夋病鏈夐攣鐘舵�锛�锛夊綋鍓嶆棤瀹瑰櫒锛�锛夊睘浜庡彇鏀捐揣鍖�); + return BuildSimpleResult(1, $"璧风偣浣嶇疆{model.StartLoc}涓嶅瓨鍦ㄦ垨涓嶆弧瓒宠姹傦細(1)娌℃湁閿佺姸鎬�(2)灞炰簬鍙栨斁璐у尯"); + } + + var locCntrRelOld = db.Queryable<TN_Loc_Container>() + .Where(c => c.S_LOC_CODE == model.StartLoc).First(); + + // 浜у搧鍏ュ簱锛氬亣瀹氱敤鎴蜂笉浼氬皢鏂板叆搴撶墿鏂欙紝鏀惧埌宸叉湁鐗╂枡鐨勬敹鍙戣揣鍖哄叆搴�+ // 鏂颁骇鍝佸叆搴撴椂锛屽鏋滃瓨鍦ㄦ棫鐨勮揣浣嶇粦瀹氭暟鎹紙鍑哄簱閬楃暀椤圭洰锛夌洿鎺ュ垹闄�+ TN_CG_Detail cgDetailOld = null; + if (locCntrRelOld != null) { + cgDetailOld = db.Queryable<TN_CG_Detail>() + .Where(d => d.S_CNTR_CODE == locCntrRelOld.S_CNTR_CODE).First(); } // 瀹瑰櫒 ID 鍜�鐗╂枡 ID 鏈寚瀹氾紝鐢辩郴缁熺洿鎺ョ敓鎴�@@ -42,7 +53,7 @@ var cntId = GenerateNo("瀹瑰櫒鍙�, "CN"); var cgId = GenerateNo("鐗╂枡鍙�, "CG"); - // 鍒濆鏄病鏈夌粦瀹氫俊鎭殑锛屽厛灏嗚捣鐐逛綅缃笌瀹瑰櫒缁戝畾锛屽鍣ㄤ笌鐗╂枡缁戝畾 + // 棣栨鍏ュ簱锛氭病鏈夌粦瀹氫俊鎭紝鍏堝皢璧风偣浣嶇疆涓庡鍣ㄧ粦瀹氾紝瀹瑰櫒涓庣墿鏂欑粦瀹� var locCntrRel = new TN_Loc_Container() { S_LOC_CODE = startLoc.S_CODE, S_CNTR_CODE = cntId, @@ -52,6 +63,8 @@ S_ITEM_CODE = cgId, S_CNTR_CODE = cntId, }; + + startLoc.N_CURRENT_NUM = 1; var endLocCode = "0"; // 鍋囩殑榛樿缁堢偣鍦板潃 @@ -72,6 +85,21 @@ // 鏃犺鏄惁閫夋嫨缁堢偣璐ф灦锛岄兘绛夊埌绉伴噸涔嬪悗鍐嶈绠楃粓鐐硅揣浣� using (var tran = db.Ado.UseTran()) { + if (locCntrRelOld != null) { + if (db.Deleteable<TN_Loc_Container>(locCntrRelOld).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return BuildSimpleResult(500, + $"鍒犻櫎璐т綅瀹瑰櫒鍏崇郴琛ㄥけ璐ワ細璐т綅{locCntrRelOld.S_LOC_CODE}锛屽鍣▄locCntrRelOld.S_CNTR_CODE}"); + } + } + if (cgDetailOld != null) { + if (db.Deleteable<TN_CG_Detail>(cgDetailOld).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return BuildSimpleResult(500, + $"鍒犻櫎鏃у鍣ㄨ揣鍝佹槑缁嗚〃澶辫触锛氬鍣▄cgDetailOld.S_CNTR_CODE}锛岀墿鏂檣cgDetailOld.S_ITEM_CODE}"); + } + } + if (db.Insertable<TN_Loc_Container>(locCntrRel).ExecuteCommand() <= 0) { tran.RollbackTran(); return BuildSimpleResult(500, @@ -85,7 +113,7 @@ } if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { - it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY }).ExecuteCommand() <= 0) { + it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, it.N_CURRENT_NUM }).ExecuteCommand() <= 0) { tran.RollbackTran(); return BuildSimpleResult(500, $"鏇存柊璧风偣璐т綅閿佺姸鎬佸け璐ワ細璧风偣璐т綅{startLoc.S_CODE}"); @@ -112,6 +140,117 @@ var date = DateTime.Now.ToString("yyMMdd"); return $"{prefix}{date}-{id.ToString().PadLeft(5, '0')}"; // 褰㈠锛欳N250525-00011 } + + /// <summary> + /// 鍏煎Inbound鍜孭artInbound鐨勫姛鑳斤紝澶囩敤锛堥棶棰橈細鍑哄簱鍚庢棤娉曡嚜鍔ㄦ竻鏁版嵁锛屽鑷村叆搴撳悗鍥炲簱锛�+ /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public static SimpleResult InboundTwoWays(InboundInfo model) { + var taskName = TaskName.浜у搧鍏ュ簱; + var db = new SqlHelper<object>().GetInstance(); + + try { + // 璧风偣浣嶇疆蹇呴』锛氫负绌恒�鏃犻攣銆佸惎鐢ㄣ�灞炰簬鏀跺彂鍖哄煙 + var startLoc = db.Queryable<TN_Location>() + .Where(a => a.S_CODE == model.StartLoc) + .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") + //.Where(a => a.N_CURRENT_NUM == 0) + .Where(a => Settings.Areas[0].Contains(a.S_AREA_CODE)) // 鏀跺彂鍖�+ .First(); + + if (startLoc == null) { + return BuildSimpleResult(1, $"璧风偣浣嶇疆{model.StartLoc}涓嶅瓨鍦ㄦ垨涓嶆弧瓒宠姹傦細(1)娌℃湁閿佺姸鎬�(2)灞炰簬鍙栨斁璐у尯"); + } + + // 瀹瑰櫒 ID 鍜�鐗╂枡 ID 鏈寚瀹氾紝鐢辩郴缁熺洿鎺ョ敓鎴�+ //var cntId = Guid.NewGuid().ToString("D"); + //var CgId = Guid.NewGuid().ToString("D"); + var cntId = GenerateNo("瀹瑰櫒鍙�, "CN"); + var cgId = GenerateNo("鐗╂枡鍙�, "CG"); + + var locCntrRel = db.Queryable<TN_Loc_Container>() + .Where(c => c.S_LOC_CODE == model.StartLoc).First(); + + // 鍙湁棣栨鍏ュ簱锛堝綋鍓嶆墭鐩樻湭缁戝畾鍦ㄨ捣鐐硅揣浣嶏級鏃禼gDetail璁剧疆鍊硷紝骞舵彃鍏�+ // 鍚﹀垯锛宑gDetail涓虹┖锛屼唬琛ㄦ槸鍥炲簱浣滀笟锛堟鍓嶆湁缁戝畾杩囪捣鐐癸級 + TN_CG_Detail cgDetail = null; + if (locCntrRel == null) { + // 棣栨鍏ュ簱锛氭病鏈夌粦瀹氫俊鎭紝鍏堝皢璧风偣浣嶇疆涓庡鍣ㄧ粦瀹氾紝瀹瑰櫒涓庣墿鏂欑粦瀹�+ locCntrRel = new TN_Loc_Container() { + S_LOC_CODE = startLoc.S_CODE, + S_CNTR_CODE = cntId, + }; + + cgDetail = new TN_CG_Detail() { + S_ITEM_CODE = cgId, + S_CNTR_CODE = cntId, + }; + } + + startLoc.N_CURRENT_NUM = 1; + + var endLocCode = "0"; // 鍋囩殑榛樿缁堢偣鍦板潃 + + // 鎸囧畾璐т綅鎺掑彿锛堜笉鑳戒负绌恒�绌哄瓧绗︿覆鎴栫┖鏍硷級 + if (model.Row != null && model.Row.Trim() != "") { + endLocCode = model.Row; // 鐢ㄦ帓鍙峰瓧绗︿覆褰撳仛鍋囧湴鍧�+ if (!int.TryParse(model.Row.Trim(), out int row)) { + return BuildSimpleResult(2, $"{model.Row} 涓嶅悎娉曪細鏃犳硶杞垚鏁存暟绫诲瀷"); + } + // 璐ф灦鎺掑彿鍙兘鏄�0 - 8 + if (row <= 0 || row > 8) { + return BuildSimpleResult(2, $"璐ф灦鍙�{model.Row} 蹇呴』鏄�-8涔嬮棿鐨勬暣鏁�); + } + } + + var task = WCSHelper.BuildInboundTask(startLoc, endLocCode, cntId); + LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�+ + // 鏃犺鏄惁閫夋嫨缁堢偣璐ф灦锛岄兘绛夊埌绉伴噸涔嬪悗鍐嶈绠楃粓鐐硅揣浣�+ using (var tran = db.Ado.UseTran()) { + if (cgDetail != null) { + if (db.Insertable<TN_Loc_Container>(locCntrRel).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return BuildSimpleResult(500, + $"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄥけ璐ワ細璐т綅{locCntrRel.S_LOC_CODE}锛屽鍣▄locCntrRel.S_CNTR_CODE}"); + } + + if (db.Insertable<TN_CG_Detail>(cgDetail).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return BuildSimpleResult(500, + $"鎻掑叆瀹瑰櫒璐у搧鏄庣粏琛ㄥけ璐ワ細瀹瑰櫒{cgDetail.S_CNTR_CODE}锛岀墿鏂檣cgDetail.S_ITEM_CODE}"); + } + } + + if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { + it.N_LOCK_STATE, + it.S_LOCK_STATE, + it.S_LOCK_OP, + it.T_MODIFY, + it.N_CURRENT_NUM + }).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return BuildSimpleResult(500, + $"鏇存柊璧风偣璐т綅閿佺姸鎬佸け璐ワ細璧风偣璐т綅{startLoc.S_CODE}"); + } + + if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return BuildSimpleResult(500, + $"鐢熸垚浠诲姟 {taskName} 澶辫触锛氬鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLocCode} 锛岀粓鐐硅揣浣嶆湭鎸囧畾"); + } + + tran.CommitTran(); + return BuildSimpleResult(0, + $"鐢熸垚浠诲姟 {taskName} 鎴愬姛锛氬鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLocCode} 锛岀粓鐐硅揣浣嶆湭鎸囧畾"); + } + } + catch (Exception ex) { + return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}"); + } + } + /// <summary> /// PDA閫夋嫨缁堢偣璐т綅 @@ -152,10 +291,10 @@ interaction_info_id = int.Parse(task.S_EQ_TASK_CODE), info_status = "error", })) { - LogHelper.Info($"鍥借嚜AGV鎺ュ彈瓒呴噸鍙栨秷淇℃伅鎴愬姛", "API"); + LogHelper.Info($"鍥借嚜AGV鎺ュ彈瓒呴噸鍙栨秷淇℃伅鎴愬姛", "HosttoagvTask"); } else { - LogHelper.Info($"鍥借嚜AGV鎺ュ彈瓒呴噸鍙栨秷淇℃伅澶辫触", "API"); + LogHelper.Info($"鍥借嚜AGV鎺ュ彈瓒呴噸鍙栨秷淇℃伅澶辫触", "HosttoagvTask"); } return BuildSimpleResult(8, $"鐗╂枡閲嶉噺{cgDetail.F_QTY}瓒呰繃2t"); @@ -199,10 +338,10 @@ info_status = "invalid", return_value = LocationHelper.GetAgvSite(task.S_END_LOC), // 鐩墠浣跨敤agvsite })) { - LogHelper.Info($"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅鎴愬姛", "API"); + LogHelper.Info($"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅鎴愬姛", "HosttoagvTask"); } else { - LogHelper.Info($"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅澶辫触", "API"); + LogHelper.Info($"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅澶辫触", "HosttoagvTask"); } @@ -228,7 +367,7 @@ } /// <summary> - /// 浜у搧閮ㄥ垎鍑哄簱(WMS) + /// 浜у搧閮ㄥ垎鍑哄簱 /// </summary> /// <param name="model"></param> /// <returns></returns> @@ -299,7 +438,7 @@ } /// <summary> - /// 浜у搧閮ㄥ垎鍥炲簱(WMS) + /// 浜у搧閮ㄥ垎鍥炲簱 /// </summary> /// <param name="model"></param> /// <returns></returns> @@ -313,7 +452,7 @@ if (startLoc == null) { return BuildSimpleResult(2, $"璧风偣浣嶇疆 {model.startLoc} 涓嶇鍚堝洖搴撴潯浠�); } - + var locCntrRel = db.Queryable<TN_Loc_Container>().First(a => a.S_LOC_CODE == model.startLoc); if (locCntrRel == null) { return BuildSimpleResult(3, $"璧风偣浣嶇疆 {model.startLoc} 娌℃湁缁戝畾瀹瑰櫒锛屾棤鍙洖搴撶殑鐗╂枡"); @@ -373,11 +512,10 @@ return BuildSimpleResult(2, $"浠诲姟鍙穥model.TaskNo}涓嶅瓨鍦�); } - if (task.N_B_STATE == 0 && task.S_B_STATE == TN_Task.GetStateStr(0) - || task.N_B_STATE == 1 && task.S_B_STATE == TN_Task.GetStateStr(1)) { - - task.N_B_STATE = 4; - task.S_B_STATE = "鍙栨秷"; + // 绛夊緟 鎴�宸叉帹閫�鏃讹紝鍙互鍙栨秷浠诲姟 + //if (task.N_B_STATE == 0 && task.S_B_STATE == TN_Task.GetStateStr(0) + // || task.N_B_STATE == 1 && task.S_B_STATE == TN_Task.GetStateStr(1)) { + if (task.N_B_STATE == 0 || task.N_B_STATE == 1) { var startloc = db.Queryable<TN_Location>().First(a => a.S_CODE == task.S_START_LOC); var endloc = db.Queryable<TN_Location>().First(a => a.S_CODE == task.S_END_LOC); @@ -398,16 +536,23 @@ endloc.T_MODIFY = System.DateTime.Now; } - if (!int.TryParse(task.S_EQ_TASK_CODE, out var code)) { - return BuildSimpleResult(1, $"褰撳墠浠诲姟{task.S_CODE}娌℃湁鎵惧埌瀵瑰簲鐨勫浗鑷狝GV orderId锛�); + if (task.N_B_STATE == 1) { + if (!int.TryParse(task.S_EQ_TASK_CODE, out var code)) { + LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}娌℃湁鎵惧埌瀵瑰簲鐨勫浗鑷狝GV orderId锛�); + } + else { + var res = GZRobot.CancelGZOrder(code); + if (!res) { + LogHelper.Info($"鍥借嚜AGV鍙栨秷浠诲姟澶辫触锛�, "HosttoagvTask"); + } + else { + LogHelper.Info($"鍥借嚜AGV鍙栨秷浠诲姟鎴愬姛锛�, "HosttoagvTask"); + } + } } - var res = GZRobot.CancelGZOrder(code); - if (!res) { - LogHelper.Info($"鍥借嚜AGV鍙栨秷浠诲姟澶辫触锛�, "API"); - } - else { - LogHelper.Info($"鍥借嚜AGV鍙栨秷浠诲姟鎴愬姛锛�, "API"); - } + + task.N_B_STATE = 4; + task.S_B_STATE = "鍙栨秷"; using (var tran = db.Ado.UseTran()) { if (db.Updateable<TN_Location>(startloc).ExecuteCommand() <= 0) { @@ -452,264 +597,7 @@ return BuildSimpleResult(3, $"鍙湁浠诲姟鍙风姸鎬佷负 绛夊緟 鎴�宸叉帹閫�鐨勪换鍔℃墠鑳藉彇娑�); } - //public static SimpleResult CreateCountPlan(CreateCountPlanInfo model) { - // var db = new SqlHelper<object>().GetInstance(); - // try { - - // var countPlan = new TN_Count_Plan() { - // S_CP_NO = GenerateNo("鐩樼偣璁″垝", "CP"), - // S_TYPE = model.countType, - // }; - - // if (model.countType == "璐т綅") { - // countPlan.S_LOC_CODE = model.targetId; - // } - // else if (model.countType == "鐗╂枡") { - // countPlan.S_ITEM_CODE = model.targetId; - // } - // else { - // return BuildSimpleResult(2, $"鍒涘缓鐩樼偣璁″垝澶辫触锛氫笉鍚堟硶鐨勭洏鐐圭被鍨�'{model.countType}'"); - // } - - // if (db.Insertable<TN_Count_Plan>(countPlan).ExecuteCommand() <= 0) { - // return BuildSimpleResult(2, "鍒涘缓鐩樼偣璁″垝澶辫触"); - // } - - // return BuildSimpleResult(0, "鍒涘缓鐩樼偣璁″垝鎴愬姛"); - - // } - // catch (Exception ex) { - - // return BuildSimpleResult(1, ex.Message); - // } - //} - - //public static SimpleResult CreateCountOrder(CreateCountOrderInfo model) { - // var db = new SqlHelper<object>().GetInstance(); - // var info = ""; - // try { - // var countPlan = db.Queryable<TN_Count_Plan>() - // .Where(a => a.S_CP_NO == model.planId).First(); - - // if (countPlan == null) { - // return BuildSimpleResult(2, $"鐩樼偣璁″垝鍗曞彿 '{model.planId}' 涓嶅瓨鍦�); - // } - - // var countOrder = new TN_Count_Order() { - // S_CP_NO = model.planId, - // S_COUNT_NO = GenerateNo("鐩樼偣鍗�, "CN"), - // }; - - // var countDetailList = new List<TN_Count_CG_Detail>(); - // if (countPlan.S_TYPE == "璐т綅") { - // var cgDetail = db.Queryable<TN_Location, TN_Loc_Container, TN_CG_Detail> - // ((l, c, d) => l.S_CODE == c.S_LOC_CODE && c.S_CNTR_CODE == d.S_CNTR_CODE) - // .Where(l => l.S_CODE == countPlan.S_LOC_CODE) - // .Select((l, c, d) => d).First(); - - // var countDetail = new TN_Count_CG_Detail { - // S_COUNT_NO = countOrder.S_COUNT_NO, - // S_CNTR_CODE = cgDetail.S_CNTR_CODE, - // S_ITEM_CODE = cgDetail.S_ITEM_CODE, - // }; - - // countDetailList.Add(countDetail); - // } - // else if (countPlan.S_TYPE == "鐗╂枡") { - // var cgDetailList = db.Queryable<TN_CG_Detail>() - // .Where(d => d.S_ITEM_CODE == countPlan.S_ITEM_CODE).ToList(); - - // foreach (var cgDetail in cgDetailList) { - // var countDetail = new TN_Count_CG_Detail { - // S_COUNT_NO = countOrder.S_COUNT_NO, - // S_CNTR_CODE = cgDetail.S_CNTR_CODE, - // S_ITEM_CODE = cgDetail.S_ITEM_CODE, - // }; - - // countDetailList.Add(countDetail); - // } - // } - // else { - // return BuildSimpleResult(3, $"璁″垝鍗�{model.planId}'鐨勭被鍨媨countPlan.S_TYPE}涓嶅悎娉�); - // } - - // using (var tran = db.Ado.UseTran()) { - // if (db.Insertable<TN_Count_Order>(countOrder).ExecuteCommand() <= 0) { - // tran.RollbackTran(); - // info = "鍒涘缓鐩樼偣鍗曞け璐�; - // return BuildSimpleResult(2, info); - // } - - // if (db.Insertable<TN_Count_CG_Detail>(countDetailList).ExecuteCommand() <= 0) { - // tran.RollbackTran(); - // info = "鍒涘缓鐩樼偣鍗曟槑缁嗗け璐�; - // return BuildSimpleResult(3, info); - // } - - // tran.CommitTran(); - // } - - // return BuildSimpleResult(0, "鍒涘缓鐩樼偣鍗曟垚鍔�); - // } - // catch (Exception ex) { - - // return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}"); - // } - //} - - //public static SimpleResult CountProduct(CountProductInfo model) { - // var db = new SqlHelper<object>().GetInstance(); - // try { - // var cgDetail = db.Queryable<TN_CG_Detail>() - // .Where(d => d.S_CNTR_CODE == model.cntrCode).First(); - - // if (cgDetail == null) { - // return BuildSimpleResult(2, $"鎵句笉鍒板鍣ㄥ彿'{model.cntrCode}'瀵瑰簲鐨勭墿鏂�); - // } - - // var countDiff = new TN_Count_Diff { - // S_CNTR_CODE = cgDetail.S_CNTR_CODE, - // F_QTY = cgDetail.F_QTY, - // F_ACTUAL_QTY = model.qty - // }; - - // if (db.Insertable<TN_Count_Diff>(countDiff).ExecuteCommand() <= 0) { - // return BuildSimpleResult(3, $"鎻掑叆鐩樼偣宸紓琛ㄥけ璐�); - // } - - // return BuildSimpleResult(0, "鐩樼偣宸紓瀹屾垚"); - - // } - // catch (Exception ex) { - // return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}"); - // } - //} - - ///// <summary> - ///// 鐩樼偣鐞嗚揣鍑哄簱(WMS) - ///// </summary> - ///// <param name="model"></param> - ///// <returns></returns> - //internal static SimpleResult CheckOutbound(CheckOutboundInfo model) { - // var taskName = TaskName.鐩樼偣鐞嗚揣鍑哄簱; - // var db = new SqlHelper<object>().GetInstance(); - - // try { - // // 璧风偣浣嶇疆锛氬彇鏀捐揣鍖猴紙鏈夎揣鐗┿�娌℃湁閿併�宸插惎鐢級 - // var startLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.startLoc && a.N_CURRENT_NUM == 1 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && Settings.Areas[0].Contains(a.S_AREA_CODE)); - // if (startLoc == null) { - // return BuildSimpleResult(2, $"璧风偣浣嶇疆 {model.startLoc} 涓嶇鍚堝嚭搴撴潯浠�); - // } - - // var locCntrRel = db.Queryable<TN_Loc_Container>().First(a => a.S_LOC_CODE == model.startLoc); - // if (locCntrRel == null) { - // return BuildSimpleResult(3, $"璧风偣浣嶇疆 {model.startLoc} 娌℃湁缁戝畾瀹瑰櫒锛屾棤鍙洖搴撶殑鐗╂枡"); - // } - - // // 缁堢偣浣嶇疆锛氳揣鏋讹紙娌℃湁璐х墿锛屾病鏈夐攣锛�- // var endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.endLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y"); - // if (endLoc == null) { - // return BuildSimpleResult(4, $"缁堢偣浣嶇疆 {model.endLoc} 涓嶅叿澶囨斁璐ф潯浠�); - // } - - // var cntID = locCntrRel.S_CNTR_CODE; - // var task = WCSHelper.BuildTask(startLoc, endLoc, cntID, taskName); - // LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�- // LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�- - // using (var tran = db.Ado.UseTran()) { - // if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { - // it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY }).ExecuteCommand() <= 0) { - // tran.RollbackTran(); - // return BuildSimpleResult(500, - // $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}"); - // } - - // if (db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new { - // it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY }).ExecuteCommand() <= 0) { - // tran.RollbackTran(); - // return BuildSimpleResult(500, - // $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); - // } - - // if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) { - // tran.RollbackTran(); - // return BuildSimpleResult(500, - // $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); - // } - - // tran.CommitTran(); - // return BuildSimpleResult(0, - // $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); - // } - // } - // catch (Exception ex) { - // return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}"); - // } - //} - - ///// <summary> - ///// 鐩樼偣鐞嗚揣鍥炲簱(WMS) - ///// </summary> - ///// <param name="model"></param> - ///// <returns></returns> - //internal static SimpleResult CheckInbound(CheckInboundInfo model) { - // var taskName = TaskName.鐩樼偣鐞嗚揣鍥炲簱; - // var db = new SqlHelper<object>().GetInstance(); - - // try { - // // 璧风偣浣嶇疆锛氬彇鏀捐揣鍖猴紙鏈夎揣鐗┿�娌℃湁閿併�宸插惎鐢級 - // var startLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.startLoc && a.N_CURRENT_NUM == 1 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && Settings.Areas[0].Contains(a.S_AREA_CODE)); - // if (startLoc == null) { - // return BuildSimpleResult(2, $"璧风偣浣嶇疆 {model.startLoc} 涓嶇鍚堝洖搴撴潯浠�); - // } - - // var locCntrRel = db.Queryable<TN_Loc_Container>().First(a => a.S_LOC_CODE == model.startLoc); - // if (locCntrRel == null) { - // return BuildSimpleResult(3, $"璧风偣浣嶇疆 {model.startLoc} 娌℃湁缁戝畾瀹瑰櫒锛屾棤鍙洖搴撶殑鐗╂枡"); - // } - - // // 缁堢偣浣嶇疆锛氳揣鏋讹紙娌℃湁璐х墿锛屾病鏈夐攣锛�- // var endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.endLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y"); - // if (endLoc == null) { - // return BuildSimpleResult(4, $"缁堢偣浣嶇疆 {model.endLoc} 涓嶅叿澶囨斁璐ф潯浠�); - // } - - // var cntID = locCntrRel.S_CNTR_CODE; - // var task = WCSHelper.BuildTask(startLoc, endLoc, cntID, taskName); - // LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�- // LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�- - // using (var tran = db.Ado.UseTran()) { - // if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { - // it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY }).ExecuteCommand() <= 0) { - // tran.RollbackTran(); - // return BuildSimpleResult(500, - // $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}"); - // } - - // if (db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new { - // it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY }).ExecuteCommand() <= 0) { - // tran.RollbackTran(); - // return BuildSimpleResult(500, - // $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); - // } - - // if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) { - // tran.RollbackTran(); - // return BuildSimpleResult(500, - // $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); - // } - - // tran.CommitTran(); - // return BuildSimpleResult(0, - // $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); - // } - // } - // catch (Exception ex) { - // return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}"); - // } - //} + public static ErpResult InboundDataSync(InboundDataSyncInfo model) { //return BuildErpResult(1, "娴嬭瘯"); @@ -728,8 +616,8 @@ S_ITEM_CODE = transaction.itemCode, S_ITEM_NAME = transaction.itemName, S_ITEM_SHORT_DESC = transaction.itemShortDesc, - S_STOCK_QUANTITY = transaction.stockQuantity, - S_IN_QUANTITY = transaction.inQuantity, + S_STOCK_QUANTITY = transaction.stockQuantity, // 搴撳瓨鏁伴噺 + S_IN_QUANTITY = transaction.inQuantity, // 鍏ュ簱鏁伴噺 S_TOTAL_PRICE = transaction.totalPrice, S_STOCK_IN_TIME = transaction.stockInTime, S_STORE_KEEPER = transaction.storeKeeper, @@ -756,7 +644,7 @@ cgDetailList.Add(cgDetail); } - + using (var tran = db.Ado.UseTran()) { if (db.Insertable<TN_Inbound_DataRecord>(recordList).ExecuteCommand() <= 0) { tran.RollbackTran(); @@ -799,7 +687,7 @@ S_ITEM_CODE = issue.itemCode, S_ITEM_NAME = issue.itemName, S_SHORT_DESC = issue.itemShortDesc, - S_ACTUAL_QTY = issue.actualIssuedQty, + S_ACTUAL_QTY = issue.actualIssuedQty, // 瀹炲彂鏁伴噺 S_ISSUED_AMOUNT = issue.issuedAmount, S_SUPPLIER_NAME = issue.supplierName, S_ISSUER = issue.issuer, diff --git a/api/DebugController.cs b/api/DebugController.cs index 109a250..e2c950a 100644 --- a/api/DebugController.cs +++ b/api/DebugController.cs @@ -101,6 +101,27 @@ } /// <summary> + /// 鍒濆鍖栨暟鎹簱 + /// </summary> + /// <returns></returns> + [HttpPost] + [Route("CreateDatabase")] + public string CreateDatabase() { + try { + var db = new SqlHelper<object>().GetInstance(); + + var entityTypes = new Type[] { }; + + //db.CodeFirst.InitTables(entityTypes); + } + catch (Exception ex) { + LogHelper.Info($"鍙戠敓浜嗗紓甯�); + return "鍒濆鍖栨暟鎹簱閿欒" + ex.Message; + } + return "鎴愬姛"; + } + + /// <summary> /// DEBUG锛氭牴鎹换鍔″彿璁剧疆鐗╂枡閲嶉噺 /// </summary> /// <param name="model"></param> @@ -159,14 +180,6 @@ public List<GzResult> GzResultList { set; get; } } - public class LocCntrCg { - public string LocCode { get; set; } - public string LocArea { get; set; } - public string CntrCode { get; set; } - public string ItemCode { get; set; } - public string BatchNo { get; set; } - } - /// <summary> /// 妯℃嫙 AGV 浼犻�淇″彿锛岀敤浜庢洿鏀逛换鍔$姸鎬� /// </summary> @@ -183,10 +196,6 @@ /// AGV 涓嬩竴涓姸鎬� /// </summary> public int NextState { set; get; } - } - - public class CoverInfo { - public bool IsCover { set; get; } = true; } public class SetTaskWeightInfo { diff --git a/api/MoboxController.cs b/api/MoboxController.cs index cae34ee..8b48776 100644 --- a/api/MoboxController.cs +++ b/api/MoboxController.cs @@ -38,7 +38,7 @@ } /// <summary> - /// 浜у搧閮ㄥ垎鍑哄簱(WMS) + /// 浜у搧閮ㄥ垎鍑哄簱 /// </summary> /// <param name="model"></param> /// <returns></returns> @@ -50,7 +50,7 @@ } /// <summary> - /// 浜у搧閮ㄥ垎鍥炲簱(WMS) + /// 浜у搧閮ㄥ垎鍥炲簱 /// </summary> /// <param name="model"></param> /// <returns></returns> @@ -72,65 +72,5 @@ LogHelper.Info("瑙﹀彂API锛氬彇娑堜换鍔� + JsonConvert.SerializeObject(model), "API"); return ApiHelper.CancelTask(model); } - - ///// <summary> - ///// 鍒涘缓鐩樼偣璁″垝鍗�WMS) - ///// </summary> - ///// <param name="model"></param> - ///// <returns></returns> - //[HttpPost] - //[Route("CreateCountPlan")] - //public SimpleResult CreateCountPlan(CreateCountPlanInfo model) { - // LogHelper.Info("瑙﹀彂API锛氬垱寤虹洏鐐硅鍒掑崟(WMS)" + JsonConvert.SerializeObject(model), "API"); - // return ApiHelper.CreateCountPlan(model); - //} - - ///// <summary> - ///// 鍒涘缓鐩樼偣鍗�PDA) - ///// </summary> - ///// <param name="model"></param> - ///// <returns></returns> - //[HttpPost] - //[Route("CreateCountOrder")] - //public SimpleResult CreateCountOrder(CreateCountOrderInfo model) { - // LogHelper.Info("瑙﹀彂API锛氬垱寤虹洏鐐瑰崟(PDA)" + JsonConvert.SerializeObject(model), "API"); - // return ApiHelper.CreateCountOrder(model); - //} - - ///// <summary> - ///// 鐩樼偣鐞嗚揣(PDA) - ///// </summary> - ///// <param name="model"></param> - ///// <returns></returns> - //[HttpPost] - //[Route("CountProduct")] - //public SimpleResult CountProduct(CountProductInfo model) { - // LogHelper.Info("瑙﹀彂API锛氱洏鐐圭悊璐�PDA)" + JsonConvert.SerializeObject(model), "API"); - // return ApiHelper.CountProduct(model); - //} - - ///// <summary> - ///// 鐩樼偣鐞嗚揣鍑哄簱(WMS) - ///// </summary> - ///// <param name="model"></param> - ///// <returns></returns> - //[HttpPost] - //[Route("CheckOutbound")] - //public SimpleResult CheckOutbound(CheckOutboundInfo model) { - // LogHelper.Info("瑙﹀彂API锛氱洏鐐圭悊璐у嚭搴�WMS)" + JsonConvert.SerializeObject(model), "API"); - // return ApiHelper.CheckOutbound(model); - //} - - ///// <summary> - ///// 鐩樼偣鐞嗚揣鍥炲簱(WMS) - ///// </summary> - ///// <param name="model"></param> - ///// <returns></returns> - //[HttpPost] - //[Route("CheckInbound")] - //public SimpleResult CheckInbound(CheckInboundInfo model) { - // LogHelper.Info("瑙﹀彂API锛氱洏鐐圭悊璐у洖搴�WMS)" + JsonConvert.SerializeObject(model), "API"); - // return ApiHelper.CheckInbound(model); - //} } } diff --git a/config/config.json b/config/config.json index c3b7b07..a1155a6 100644 --- a/config/config.json +++ b/config/config.json @@ -1,6 +1,6 @@ { "WebApiUrl": "http://127.0.0.1:8901", - "RCSApiUrl": "http://127.0.0.1:6001", + "RCSApiUrl": "http://127.0.0.1:6001/", "NDCApiUrl": "http://127.0.0.1:5201/api/order/", "SqlServer": "Data Source=192.168.1.144;Initial Catalog=YinKouAnGan;User ID=hhuser;Password=Hh123321&&", "TCPServerIP": "127.0.0.1", diff --git a/core/Monitor.cs b/core/Monitor.cs index 6a801db..d7c3deb 100644 --- a/core/Monitor.cs +++ b/core/Monitor.cs @@ -15,131 +15,7 @@ /// </summary> public class Monitor { - //public static void CheckCountOrder() { - // var taskName = TaskName.鐩樼偣鐞嗚揣鍑哄簱; - // var db = new SqlHelper<object>().GetInstance(); - // var info = ""; - - // try { - // var orderList = db.Queryable<TN_Count_Order>() - // .Where(c => c.N_B_STATE == 1) - // .OrderBy(c => c.T_CREATE, SqlSugar.OrderByType.Asc) - // .ToList(); - - // if (orderList.Count == 0) { - // LogHelper.Info($"杞--{taskName}--鏆傛棤寰呮墽琛岀殑{taskName}鍗�); - // return; - // } - - // var detailList = new List<TN_Count_CG_Detail>(); - // foreach (var order in orderList) { - // var doingCount = db.Queryable<TN_Count_CG_Detail>() - // .Count(d => d.S_COUNT_NO == order.S_COUNT_NO && d.N_B_STATE >= 2); // 鎵ц涓�- // var allCount = db.Queryable<TN_Count_CG_Detail>() - // .Count(d => d.S_COUNT_NO == order.S_COUNT_NO); - // LogHelper.Info($"杞--{taskName}--缁熻{taskName}鍗�{order.S_COUNT_NO}'浠诲姟宸蹭笅鍙戯細{doingCount}/{allCount}"); - - // if (doingCount == allCount) { - // order.N_B_STATE = 2; // 鎵�湁浠诲姟閮藉凡鎵ц - // db.Updateable<TN_Count_Order>(order).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); - // continue; - // } - - // var countCgDetailList = db.Queryable<TN_Count_CG_Detail>() - // .Where(a => a.S_COUNT_NO == order.S_COUNT_NO && a.N_B_STATE == 1) // 宸蹭笅鍙�- // .ToList(); - - // if (countCgDetailList.Count == 0) { - // LogHelper.Info($"杞--{taskName}--{taskName}鍗曟槑缁嗙姸鎬佸紓甯�); - // continue; - // } - - // detailList.AddRange(countCgDetailList); - // } - - // if (detailList.Count == 0) { - // return; - // } - - // foreach (var detail in detailList) { - // var startLoc = db.Queryable<TN_Location>() - // .LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE) - // .Where((l, c) => c.S_CNTR_CODE == detail.S_CNTR_CODE) - // .First(); - - // if (startLoc == null) { - // LogHelper.Info($"杞--{taskName}锛氭病鏈夋壘鍒板悎閫傜殑璧风偣璐т綅锛�); - // continue; - // } - - // var endLoc = db.Queryable<TN_Location>() - // .Where(a => Settings.Areas[0].Contains(a.S_AREA_CODE)) - // .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") - // .Where(a => a.N_CURRENT_NUM == 0).First(); - - // if (endLoc == null) { - // LogHelper.Info($"杞--{taskName}锛氭病鏈夋壘鍒板悎閫傜殑缁堢偣璐т綅锛佸崟鍙蜂负 '{detail.S_COUNT_NO}'"); - // continue; - // } - - // detail.N_B_STATE = 2; - - // var cntId = detail.S_CNTR_CODE; - // var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName); - - // LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�- // LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�- - // using (var tran = db.Ado.UseTran()) { - // if (db.Updateable<TN_Count_CG_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) { - // tran.RollbackTran(); - // LogHelper.Info($"杞--{taskName}--淇敼鏄庣粏琛ㄧ姸鎬佷负瀹屾垚澶辫触锛�); - // } - - // if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { - // it.N_LOCK_STATE, - // it.S_LOCK_STATE, - // it.S_LOCK_OP, - // it.T_MODIFY - // }).ExecuteCommand() <= 0) { - // tran.RollbackTran(); - // info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屽鍣ㄥ彿{cntId}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐硅揣浣峽endLoc.S_CODE}"; - // LogHelper.Info(info); - // continue; - // } - - // if (db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new { - // it.N_LOCK_STATE, - // it.S_LOCK_STATE, - // it.S_LOCK_OP, - // it.T_MODIFY - // }).ExecuteCommand() <= 0) { - - // tran.RollbackTran(); - // info = $"鐢熸垚'{taskName}'澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}"; - // LogHelper.Info(info); - // continue; - // } - - // if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) { - // tran.RollbackTran(); - // info = $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}"; - // LogHelper.Info(info); - // continue; - // } - - // tran.CommitTran(); - // info = $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}"; - // LogHelper.Info(info); - // //continue; - // } - // } - // } - // catch (Exception ex) { - // info = $"鍙戠敓浜嗗紓甯革細{ex.Message}"; - // LogHelper.Info(info); - // } - //} + } } diff --git a/core/WCSCore.cs b/core/WCSCore.cs index ca22441..63ae73d 100644 --- a/core/WCSCore.cs +++ b/core/WCSCore.cs @@ -164,7 +164,7 @@ if (data.Count == 0) { LogHelper.Info("璁剧疆缁堢偣璐т綅澶辫触锛氭病鏈夋帴鍙楀埌鏉ヨ嚜鍥借嚜AGV鐨勯噸閲忎俊鎭�); - //return; // TODO 姝e紡杩愯鏈夊浗鑷狝GV鐨勬椂鍊欐仮澶�+ //cgDetail.F_QTY = 0; // 涓嶈缃负绌猴紝渚夸簬娴嬭瘯鏃堕鍏堣缃竴涓甯稿� } else { var weight = float.Parse(data[0].parameter_varchar200_up); @@ -209,6 +209,19 @@ // 閲嶉噺瓒呰繃 2t endLoc = null; LogHelper.Info("閲嶉噺瓒呰繃2t锛屼笉鍏佽鍏ュ簱"); + + // 浼犻�缁欏浗鑷狝GV + if (GZRobot.UpdateInteractInfo(new UpdateInteractInfo { + type_name = "GET_DST", + interaction_info_id = int.Parse(tn_task.S_EQ_TASK_CODE), + info_status = "error", + })) { + LogHelper.Info($"鍥借嚜AGV鎺ュ彈瓒呴噸鍙栨秷淇℃伅鎴愬姛", "HosttoagvTask"); + } + else { + LogHelper.Info($"鍥借嚜AGV鎺ュ彈瓒呴噸鍙栨秷淇℃伅澶辫触", "HosttoagvTask"); + } + return; } else if (cgDetail.F_QTY > 1500) { @@ -236,14 +249,13 @@ tn_task.S_END_LOC = "0"; // 涓嶉渶瑕佸啀缁橤Z AGV浼犵┖鍊硷紝涓�紑濮嬪氨娌$粰鍏蜂綋璐т綅锛屽彧缁欎簡Area - //var request = new UpdateInteractInfo { // interaction_info_id = 3, // 鏇存敼缁堢偣淇℃伅 // info_status = "active", // return_value = "", //}; - //GZRobot.UpdateInteractInfo(request); + if (db.Updateable<TN_Task>(tn_task).UpdateColumns(it => new { it.S_END_LOC }) .ExecuteCommand() > 0) { //LocationHelper.LockLoc(endLoc.S_CODE, 1);//缁堢偣鍏ュ簱閿�@@ -258,6 +270,19 @@ tn_task.S_END_LOC = endLoc.S_CODE; LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�+ + // 浼犻�缁欏浗鑷狝GV + if (GZRobot.UpdateInteractInfo(new UpdateInteractInfo { + type_name = "GET_DST", + interaction_info_id = int.Parse(tn_task.S_EQ_TASK_CODE), + info_status = "invalid", + return_value = LocationHelper.GetAgvSite(tn_task.S_END_LOC), // 鐩墠浣跨敤agvsite + })) { + LogHelper.Info($"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅鎴愬姛", "HosttoagvTask"); + } + else { + LogHelper.Info($"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅澶辫触", "HosttoagvTask"); + } using (var tran = db.Ado.UseTran()) { if (db.Updateable<TN_Task>(tn_task).UpdateColumns(it => new { it.S_END_LOC }) @@ -337,8 +362,6 @@ { //浣跨敤鑷畾涔変换鍔℃帹閫� TaskProcess.SendTask(task);//璋冨害NDC鎴栨澀濂ユ垨鍥借嚜璁惧 - //TaskProcess.SendGZTask(task);///璋冨害鍥借嚜璁惧 - }); } else diff --git a/dispatch/GZRobot.cs b/dispatch/GZRobot.cs index 0604374..c4ee859 100644 --- a/dispatch/GZRobot.cs +++ b/dispatch/GZRobot.cs @@ -431,7 +431,7 @@ public int interaction_info_id { get; set; } public string type_name { get; set; } = "GET_DST"; public string info_status { get; set; } - public string return_value { get; set; } + public string return_value { get; set; } = ""; } public class interaction_state { diff --git a/models/TN_Count_CG_Detail.cs b/models/TN_Count_CG_Detail.cs deleted file mode 100644 index ee7d799..0000000 --- a/models/TN_Count_CG_Detail.cs +++ /dev/null @@ -1,22 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -using SqlSugar; - -namespace HH.WCS.Mobox3.AnGang.models { - /// <summary> - /// 鐩樼偣鍗曟槑缁嗚〃 - /// </summary> - [SugarTable("TN_Count_CG_Detail")] - public class TN_Count_CG_Detail : BaseModel { - public string S_COUNT_NO { get; set; } - public string S_ITEM_CODE { get; set; } - public string S_CNTR_CODE { get; set; } - - public int N_B_STATE { get; set; } - - } -} diff --git a/models/TN_Count_Diff.cs b/models/TN_Count_Diff.cs deleted file mode 100644 index f295999..0000000 --- a/models/TN_Count_Diff.cs +++ /dev/null @@ -1,21 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -using SqlSugar; - -namespace HH.WCS.Mobox3.AnGang.models { - /// <summary> - /// 鐩樼偣宸紓琛�- /// </summary> - [SugarTable("TN_Count_Diff")] - public class TN_Count_Diff : BaseModel { - public string S_COUNT_NO { get; set; } - public string S_CNTR_CODE { get; set; } - public float F_QTY { get; set; } - public float F_ACTUAL_QTY { get; set; } - public string S_ITEM_CODE { get; set; } - } -} diff --git a/models/TN_Count_Order.cs b/models/TN_Count_Order.cs deleted file mode 100644 index 6d70cd5..0000000 --- a/models/TN_Count_Order.cs +++ /dev/null @@ -1,24 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -using SqlSugar; - -namespace HH.WCS.Mobox3.AnGang.models { - [SugarTable("TN_Count_Order")] - public class TN_Count_Order : BaseModel { - public string S_CP_NO { get; set; } - - /// <summary> - /// 鐩樼偣鍗曞彿 - /// </summary> - public string S_COUNT_NO { get; set; } - - /// <summary> - /// 涓氬姟鐘舵�锛�绛夊緟鎵ц 1宸叉墽琛屽緟鐢熸垚浠诲姟 2浠诲姟鎵ц涓�3浠诲姟瀹屾垚 - /// </summary> - public int N_B_STATE { get; set; } - } -} diff --git a/models/TN_Count_Plan.cs b/models/TN_Count_Plan.cs deleted file mode 100644 index 5ae7fc1..0000000 --- a/models/TN_Count_Plan.cs +++ /dev/null @@ -1,38 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -using SqlSugar; - -namespace HH.WCS.Mobox3.AnGang.models { - [SugarTable("TN_Count_Plan")] - public class TN_Count_Plan : BaseModel { - /// <summary> - /// 鐩樼偣璁″垝鍙�- /// </summary> - public string S_CP_NO { get; set; } - - /// <summary> - /// 鐩樼偣绫诲瀷锛氳揣鐗╃洏鐐�璐т綅鐩樼偣 - /// </summary> - public string S_TYPE { get; set; } - - /// <summary> - /// 鐩樼偣鐘舵�锛� 鈥�鏈墽琛�1 鈥�鍚姩涓�2 鈥�鎵ц涓�3 鈥�瀹屾垚 4 鈥�鍑洪敊 - /// </summary> - public int N_B_STATE { get; set; } = 0; - - ///// <summary> - ///// 璁″垝鐩樼偣鐗╂枡鏁伴噺 - ///// </summary> - //public int N_PLAN_TOTAL { get; set; } - - // ------ - - public string S_LOC_CODE { get; set; } = ""; - - public string S_ITEM_CODE { get; set; } = ""; - } -} diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index 6c81fbd..8255a80 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -123,6 +123,7 @@ if (code > 0) { //鏇存柊浠诲姟鐘舵� mst.N_B_STATE = 1; + mst.S_B_STATE = TN_Task.GetStateStr(1); mst.S_EQ_TASK_CODE = code.ToString(); WCSHelper.UpdateStatus(mst); WCSHelper.UpdateEQNo(mst); @@ -131,83 +132,6 @@ else { LogHelper.Info($"鍥借嚜鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};" + JsonConvert.SerializeObject(mst)); } - - //if (mst.N_SCHEDULE_TYPE == 1)//閫氳繃NDC锛宧osttoagv璋冨害璁惧 - //{ - // start = LocationHelper.GetAgvSite(mst.S_START_LOC); - // end = LocationHelper.GetAgvSite(mst.S_END_LOC); - - // //if (mst.S_TYPE == "绌烘墭涓嬬嚎鍫嗗彔") { - // // end = LocationHelper.GetAgvSite(mst.S_END_LOC, true); - // //} - - // LogHelper.Info($"NDC鎺ㄩ�浠诲姟 {mst.S_CODE};" + "start=" + start + "end= " + end); - // var startLoc = LocationHelper.GetLoc(mst.S_START_LOC); - // var endLoc = LocationHelper.GetLoc(mst.S_END_LOC); - // var dic = new List<param>(); - // dic.Add(new param() { name = "IKey", value = "IKey" }); - // dic.Add(new param() { name = "From", value = start.ToString() }); - // dic.Add(new param() { name = "To", value = end.ToString() }); - // dic.Add(new param() { name = "FUNC", value = startLoc.N_LAYER.ToString() }); - - // dic.Add(new param() { name = "Ctype", value = "0" }); - - - // //if (mst.S_TYPE == "浣欐枡涓嬬嚎鍏ュ簱" || mst.S_TYPE == "浜哄伐鎷嗙洏鍏ュ簱") { - // // dic.Add(new param() { name = "DATA", value = "1024" }); - // //} - // //else { - // // dic.Add(new param() { name = "DATA", value = "0" }); - // //} - - // var res = NDCApi.AddOrderNew(1, 1, mst.S_CODE, dic);//娣诲姞鏂板懡浠�- // if (res != null && (res.err_code == 0 || res.err_code == 50009)) { - // //鎺ㄩ�鎴愬姛锛屼慨鏀逛换鍔′紭鍏堢骇 - // mst.N_B_STATE = 1; - // mst.S_B_STATE = TN_Task.GetStateStr(1); - // WCSHelper.UpdateStatus(mst);//鏇存柊浠诲姟鐘舵� - // result = true; - // LogHelper.Info($"NDC鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE}start= {mst.S_START_LOC} + end = {mst.S_END_LOC}"); - // } - // else { - // LogHelper.Info($"NDC鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};Res:" + JsonConvert.SerializeObject(res)); - // } - //} - //else if (mst.N_SCHEDULE_TYPE == 5)//閫氳繃鏉ゥ璋冨害璁惧 - //{ - // //璋冪涓夋柟鎺ュ彛 - // var model = new HanAo.TaskInfoModel { - // requestPk = mst.S_CODE, - // frmPos = mst.S_START_LOC, - // toPos = mst.S_END_LOC, - // trkType = mst.S_OP_NAME == "鍏ュ簱" ? "1" : "2", - // contNo = mst.S_CNTR_CODE - // }; - // if (HanAo.CreateOrder(model)) { - // mst.N_B_STATE = 1; - // WCSHelper.UpdateStatus(mst); - // LogHelper.Info($"鏉ゥ鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE};" + "start=" + model.frmPos + "end= " + model.toPos); - // } - // else { - // LogHelper.Info($"鏉ゥ鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};" + JsonConvert.SerializeObject(model)); - // } - //} - //else if (mst.N_SCHEDULE_TYPE == 3) //閫氳繃鍥借嚜璋冨害璁惧 - //{ - // var code = GZRobot.CreateOrder(mst.S_CODE, mst.N_PRIORITY, JsonConvert.SerializeObject(new { src = mst.S_START_LOC, dst = mst.S_END_LOC }), "p2p"); - // if (code > 0) { - // //鏇存柊浠诲姟鐘舵� - // mst.N_B_STATE = 1; - // mst.S_EQ_TASK_CODE = code.ToString(); - // WCSHelper.UpdateStatus(mst); - // WCSHelper.UpdateEQNo(mst); - // LogHelper.Info($"鍥借嚜鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE};" + "start=" + mst.S_START_LOC + "end= " + mst.S_END_LOC); - // } - // else { - // LogHelper.Info($"鍥借嚜鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};" + JsonConvert.SerializeObject(mst)); - // } - //} - } return result; } diff --git a/wms/WMSHelper.cs b/wms/WMSHelper.cs index 965ede9..5812340 100644 --- a/wms/WMSHelper.cs +++ b/wms/WMSHelper.cs @@ -19,74 +19,6 @@ /// </summary> internal class WMSHelper { - /// <summary> - /// 浜哄伐鎵嬪姩PDA鍙栨秷浠诲姟锛�=鍙戠粰AGV鍙栨秷浠诲姟 - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - internal static SimpleResult PDACancleTask(CancleTaskInfo model) - { - SimpleResult simpleResult = new SimpleResult(); - var db = new SqlHelper<object>().GetInstance(); - try - { - if (model.taskNO.Length > 0) - { - var task = db.Queryable<TN_Task>().First(a => a.S_CODE == model.taskNO); - if (task != null && task.S_B_STATE != "瀹屾垚") - { - if (NDCApi.CancelOrder(model.taskNO).err_code == 0) - { - task.S_B_STATE = "閿欒"; - task.N_B_STATE = 4; - if (db.Updateable<TN_Task>(task).ExecuteCommand() > 0) - { - simpleResult.resultCode = 0; - simpleResult.resultMsg = $"閫氱煡AGV鍙栨秷璇ヤ换鍔″彿锛屾垚鍔燂紝{model.taskNO}"; - LogHelper.Info(simpleResult.resultMsg); - return simpleResult; - } - else - { - simpleResult.resultCode = 4; - simpleResult.resultMsg = $"鏇存柊浠诲姟鐘舵�淇℃伅澶辫触{model.taskNO}"; - LogHelper.Info(simpleResult.resultMsg); - return simpleResult; - } - } - else - { - simpleResult.resultCode = 1; - simpleResult.resultMsg = $"閫氱煡AGV鍙栨秷璇ヤ换鍔″彿锛屽け璐ワ紝{model.taskNO}"; - LogHelper.Info(simpleResult.resultMsg); - return simpleResult; - } - - } - else - { - simpleResult.resultCode = 2; - simpleResult.resultMsg = $"鏈壘鍒拌浠诲姟鍙锋垨璇ヤ换鍔″彿宸插畬鎴愶紝鏃犻渶閫氱煡AGV鍙栨秷"; - LogHelper.Info(simpleResult.resultMsg); - return simpleResult; - } - - } - else - { - simpleResult.resultCode = 3; - simpleResult.resultMsg = $"浜哄伐鎵嬪姩PDA鍙栨秷浠诲姟锛�=鍙戠粰AGV鍙栨秷浠诲姟锛屽弬鏁版棤鏁�; - LogHelper.Info(simpleResult.resultMsg); - return simpleResult; - } - } - catch (Exception ex) - { - simpleResult.resultCode = -1; - simpleResult.resultMsg = $"鍙戠敓浜嗗紓甯竰ex.Message}"; - LogHelper.Info(simpleResult.resultMsg); - return simpleResult; - } - } + } } -- Gitblit v1.9.1