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