From 17e3ef45fe0a6b6f8a147b50740834ac734f9317 Mon Sep 17 00:00:00 2001 From: lss <2538410689@qq.com> Date: 星期二, 15 七月 2025 17:30:13 +0800 Subject: [PATCH] 1111 --- HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WMSCore.cs | 91 +++++++++++++++++++++++++++++++++++++-------- 1 files changed, 74 insertions(+), 17 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WMSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WMSCore.cs index 8b14353..f802096 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WMSCore.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WMSCore.cs @@ -51,31 +51,36 @@ //绌烘墭鍥炲簱浠诲姟鍒涘缓 list.ForEach(a => { + var startLoc = LocationHelper.GetLoc(a.S_START_LOC); + var endLoc = LocationHelper.GetLoc(a.S_END_LOC); //绌烘墭鍥炲簱 if (a.N_TYPE == 1) { if (!string.IsNullOrEmpty(a.S_END_LOC)) { - var jbwloc = db.Queryable<Location>().Where(b => b.S_CODE == "XTGKW-1-1").First(); + var jbwloc = LocationHelper.GetLoc("XTGKW-1-1"); if (jbwloc == null) { LogHelper.Info("鍒涘缓鍑哄簱浠诲姟鏈壘鍒版帴椹充綅璐т綅缂栫爜锛岃鍋囨煡鎺ラ┏浣嶇疆璐т綅"); } + //鍒涘缓agv鎼繍浠诲姟 var wcsTask1 = new WCSTask { S_OP_CODE = a.S_CODE, S_OP_NAME = "鍏ュ簱", S_CODE = WCSHelper.GenerateTaskNo(), - S_TYPE = "绌烘墭鍥炲簱", + S_TYPE = "AGV绌烘墭鍥炲簱", S_START_LOC = a.S_START_LOC, S_START_AREA = a.S_START_AREA, + N_START_LANE= startLoc.N_ROADWAY, + N_END_LANE = endLoc.N_ROADWAY, S_END_LOC = jbwloc.S_CODE, - S_END_AREA = jbwloc.S_AREA_CODE, + S_END_AREA = jbwloc.S_AREA_CODE, N_SCHEDULE_TYPE = 1, N_CNTR_COUNT = 1, S_CNTR_CODE = a.S_CNTR_CODE, - + N_PRIORITY=1, }; //鍒涘缓wcs鍥炲簱浠诲姟 var wcsTask2 = new WCSTask @@ -83,15 +88,17 @@ S_OP_CODE = a.S_CODE, S_OP_NAME = "鍏ュ簱", S_CODE = WCSHelper.GenerateTaskNo(), - S_TYPE = "绌烘墭鍥炲簱", + S_TYPE = "WCS绌烘墭鍥炲簱", S_START_LOC = jbwloc.S_CODE, S_START_AREA = jbwloc.S_AREA_CODE, S_END_LOC = a.S_END_LOC, S_END_AREA = a.S_END_AREA, + N_START_LANE = startLoc.N_ROADWAY, + N_END_LANE = endLoc.N_ROADWAY, N_SCHEDULE_TYPE = 2, N_CNTR_COUNT = 1, S_CNTR_CODE = a.S_CNTR_CODE, - + N_PRIORITY = 1, }; if (WCSHelper.CreateTask(wcsTask1) && WCSHelper.CreateTask(wcsTask2)) @@ -105,14 +112,31 @@ } } } - else if (a.N_TYPE == 2) + else if (a.N_TYPE == 2) //鐗╂枡鍑哄簱 { #region MyRegion //鍒ゆ柇澶栦晶鏈夋病鏈夋墭鐩橈紝闇�笉闇�绉诲簱 var StartLoc = db.Queryable<Location>().Where(b => b.S_CODE == a.S_START_LOC).First(); if (StartLoc.N_POS == 1) { - var OutLoc = db.Queryable<Location>().Where(b => b.S_AREA_CODE == StartLoc.S_AREA_CODE && b.N_LAYER == StartLoc.N_LAYER && b.N_POS == 2 && b.N_CURRENT_NUM == 1 && b.N_LOCK_STATE == 0).First(); + int row = 0; + //鍒ゆ柇澶栦晶鎺�+ switch (StartLoc.N_ROW) + { + case 1: + row = 2; + break; + case 4: + row = 3; + break; + case 5: + row = 6; + break; + case 8: + row = 7; + break; + } + var OutLoc = db.Queryable<Location>().Where(b => b.S_AREA_CODE == StartLoc.S_AREA_CODE && b.N_LAYER == StartLoc.N_LAYER && b.N_ROW == row && b.N_CURRENT_NUM == 1 && b.N_LOCK_STATE == 0).First(); if (OutLoc != null) { //鏍规嵁璧风偣鑾峰彇鎵樼洏鍜屾墭鐩樼墿鏂欑粦瀹氬叧绯�@@ -136,17 +160,16 @@ S_OP_CODE = a.S_CODE, S_OP_NAME = "鍑哄簱", S_CODE = WCSHelper.GenerateTaskNo(), - S_TYPE = "绉诲簱", + S_TYPE = "鍫嗗灈鏈虹Щ搴�, S_START_LOC = OutLoc.S_CODE, S_END_LOC = YiKuLoc.S_CODE, N_SCHEDULE_TYPE = 2, N_CNTR_COUNT = 1, S_CNTR_CODE = a.S_CNTR_CODE, - + N_PRIORITY = 1, }; if (WCSHelper.CreateTask(wcsTask)) - { - //鏇存柊浣滀笟鐘舵�涓烘墽琛� + { LocationHelper.LockLoc(OutLoc.S_CODE, 2); LocationHelper.LockLoc(YiKuLoc.S_CODE, 1); } @@ -173,15 +196,17 @@ S_OP_CODE = a.S_CODE, S_OP_NAME = "鍑哄簱", S_CODE = WCSHelper.GenerateTaskNo(), - S_TYPE = "鍑哄簱", + S_TYPE = "WCS鍑哄簱", S_START_LOC = a.S_START_LOC, S_START_AREA = a.S_START_AREA, S_END_LOC = jbwloc.S_CODE, S_END_AREA = jbwloc.S_AREA_CODE, + N_START_LANE = startLoc.N_ROADWAY, + N_END_LANE = endLoc.N_ROADWAY, N_SCHEDULE_TYPE = 2, N_CNTR_COUNT = 1, S_CNTR_CODE = a.S_CNTR_CODE, - + N_PRIORITY = 1, }; //鍒涘缓agv鍑哄簱浠诲姟 var wcsTask2 = new WCSTask @@ -189,15 +214,17 @@ S_OP_CODE = a.S_CODE, S_OP_NAME = "鍑哄簱", S_CODE = WCSHelper.GenerateTaskNo(), - S_TYPE = "鍑哄簱", + S_TYPE = "AGV鍑哄簱", S_START_LOC = jbwloc.S_CODE, S_START_AREA = jbwloc.S_AREA_CODE, S_END_LOC = a.S_END_LOC, S_END_AREA = a.S_END_AREA, + N_START_LANE = startLoc.N_ROADWAY, + N_END_LANE = endLoc.N_ROADWAY, N_SCHEDULE_TYPE = 1, N_CNTR_COUNT = 1, S_CNTR_CODE = a.S_CNTR_CODE, - + N_PRIORITY = 1, }; if (WCSHelper.CreateTask(wcsTask1) && WCSHelper.CreateTask(wcsTask2)) @@ -210,7 +237,37 @@ WMSHelper.UpdateTaskState(a); } } - + else if (a.N_TYPE == 3) //鏍规嵁浣滀笟璧风偣缁堢偣鐢熸垚wcs浠诲姟 + { + //鍒涘缓wcs浠诲姟 + var wcsTask = new WCSTask + { + S_OP_CODE = a.S_CODE, + S_OP_NAME = a.S_TYPE, + S_CODE = WCSHelper.GenerateTaskNo(), + S_TYPE = a.S_TYPE, + S_START_LOC = a.S_START_LOC, + S_START_AREA = a.S_START_AREA, + S_END_LOC = a.S_END_LOC, + S_END_AREA = a.S_END_AREA, + N_START_LANE = startLoc.N_ROADWAY, + N_END_LANE = endLoc.N_ROADWAY, + N_SCHEDULE_TYPE = 2, + N_CNTR_COUNT = 1, + S_CNTR_CODE = a.S_CNTR_CODE, + N_PRIORITY = 1, + }; + + if (WCSHelper.CreateTask(wcsTask)) + { + //鏇存柊浣滀笟鐘舵�涓烘墽琛�+ a.N_B_STATE = 1; + a.S_B_STATE = "鎵ц"; + // LocationHelper.LockLoc(a.S_START_LOC, 2); + // LocationHelper.LockLoc(a.S_END_LOC, 1); + WMSHelper.UpdateTaskState(a); + } + } }); } -- Gitblit v1.9.1