From 38a9baa41316a3f834b67f0334ec001abeeede07 Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期五, 16 五月 2025 17:34:07 +0800
Subject: [PATCH] 金坛优化

---
 dispatch/WcsTask.cs |  146 +++++++++++++++++++++++-------------------------
 1 files changed, 71 insertions(+), 75 deletions(-)

diff --git a/dispatch/WcsTask.cs b/dispatch/WcsTask.cs
index 1dd1249..5973110 100644
--- a/dispatch/WcsTask.cs
+++ b/dispatch/WcsTask.cs
@@ -262,7 +262,7 @@
                 LogHelper.Info("Wcs涓嬪彂浠诲姟寮傚父" + ex.Message, "Wcs涓嬪彂浠诲姟");
                 return result;
             }
-            return result;
+          
         }
         /// <summary>
         /// Wcs婊℃墭鍏ュ拰绌烘墭鍑�@@ -360,45 +360,55 @@
                         var endList2 = LocationHelper.GetAllLocList1(workFlow.ERRORAREA);
                         end1 = LocationHelper.FindEndcolByLoc(endList2, workFlow.ERRORAREA);
                         LogHelper.Info($"ZcWcsInWorkArea涓�浠诲姟鍏ュ紓甯稿簱鍖虹粓鐐逛俊鎭� + JsonConvert.SerializeObject(end1), "Wcs涓嬪彂浠诲姟");
+                        if (end1 == null)
+                        {
+                            LogHelper.Info($"ZcWcsInWorkArea浠诲姟涓嬪彂澶辫触锛岀粓鐐瑰簱鍖簕workFlow.ERRORAREA},娌℃壘鍒扮粓鐐�, "Wcs涓嬪彂浠诲姟");
+                            throw new Exception($"缁堢偣搴撳尯{workFlow.ERRORAREA},娌℃壘鍒扮粓鐐�);
+                        }
                     }
                     else {
                         end1 = LocationHelper.FindEndcolByLoc(endList1, workFlow.ENDAREA);
                         LogHelper.Info($"ZcWcsInWorkArea涓�浠诲姟鍏ヤ笁灞傝揣鏋剁粓鐐逛俊鎭� + JsonConvert.SerializeObject(end1), "Wcs涓嬪彂浠诲姟");
+                        if (end1 == null)
+                        {
+                            LogHelper.Info($"ZcWcsInWorkArea浠诲姟涓嬪彂澶辫触锛岀粓鐐瑰簱鍖簕workFlow.ENDAREA},娌℃壘鍒扮粓鐐�, "Wcs涓嬪彂浠诲姟");
+                            throw new Exception($"缁堢偣搴撳尯{workFlow.ENDAREA},娌℃壘鍒扮粓鐐�);
+                        }
                     }
 
 
                     LogHelper.Info($"ZcWcsInWorkArea浠诲姟涓嬪彂缁堢偣淇℃伅" + JsonConvert.SerializeObject(end1), "Wcs涓嬪彂浠诲姟");
 
-                    if (end1 == null)
-                    {
-                        LogHelper.Info($"ZcWcsInWorkArea浠诲姟涓嬪彂澶辫触锛岀粓鐐瑰簱鍖簕workFlow.ENDAREA},娌℃壘鍒扮粓鐐�, "Wcs涓嬪彂浠诲姟");
-                        throw new Exception($"缁堢偣搴撳尯{workFlow.ENDAREA},娌℃壘鍒扮粓鐐�);
-                    }
-                    //娣诲姞鎵樼洏鐗╂枡鍏宠仈琛�                    
+                   
+
+
+                    //娣诲姞鎵樼洏 寮傚父鎵樼洏涓嶆坊鍔�+                    if (!(model.code == "1" || model.contNo == "99")) {
+
+                        //娣诲姞鎵樼洏鐗╂枡鍏宠仈琛�+
                         CntrItemRel rel = new CntrItemRel();
-                       
+
                         rel.S_CNTR_CODE = model.contNo;
                         rel.PRODUCTIONDATE = DateTime.Parse(item.wrkdatetime);
                         rel.S_ITEM_CODE = item.recipe;
                         rel.F_SUM_QTY = item.zl;
                         rel.TurnCardNum = item.tmh;
                         rel.facnm = item.facnm;
-                        rel.cdrub= item.cdrub;
+                        rel.cdrub = item.cdrub;
                         rel.mchid = item.mchid;
                         rel.wdate = item.wdate;
-                        rel.wsht = item.wsht; 
-                        rel.strbat = item.strbat; 
+                        rel.wsht = item.wsht;
+                        rel.strbat = item.strbat;
                         rel.endbat = item.endbat;
-                        rel.planno = item.planno; 
-                        rel.stage  = item.stage;
+                        rel.planno = item.planno;
+                        rel.stage = item.stage;
                         rel.grd = item.grd;
-                        
+
                         ContainerHelper.CreateCntrItem(rel);
 
 
-                    //娣诲姞鎵樼洏
-                    if (model.code == "1" || model.contNo == "99") {
                         Container cntr1 = new Container();
                         cntr1.S_CODE = model.contNo;
                         cntr1.C_ENABLE = "Y";
@@ -437,7 +447,13 @@
                         //浼樺厛绾�                         N_PRIORITY = 1,
                         //宸ヨ绫诲瀷
-                        TOOLSTYPE = ""
+                        TOOLSTYPE = "",
+                        //璧风偣搴撳尯鍚嶇О
+                        S_START_AREA_NAME = start1.S_AREA_Name,
+                        //缁堢偣搴撳尯鍚嶇О
+                        S_END_AREA_NAME= end1.S_AREA_Name,
+                        //鎺ラ┏浣嶅簱鍖哄悕绉�+                        CONNECTION_AREA = ""
                     };
 
                     //鍒涘缓浣滀笟
@@ -525,7 +541,13 @@
                         //浼樺厛绾�                         N_PRIORITY = 1,
                         //宸ヨ绫诲瀷
-                        TOOLSTYPE = ""
+                        TOOLSTYPE = "" ,
+                        //璧风偣搴撳尯鍚嶇О
+                        S_START_AREA_NAME = start.S_AREA_Name,
+                        //缁堢偣搴撳尯鍚嶇О
+                        S_END_AREA_NAME = end.S_AREA_Name,
+                        //鎺ラ┏浣嶅簱鍖哄悕绉�+                        CONNECTION_AREA = ""
                     };
 
                     //鍒涘缓浣滀笟
@@ -635,11 +657,12 @@
                                     TaskHelper.Fail(transportTask);
                                     TaskProcess.OperateStatus(transportTask, 7);
 
-                                    var agvTask = newDb.Queryable<WMSTask>().Where(e => e.S_CODE == transportTask.S_OP_CODE+"_1")?.First();
+                                    var agvTask = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv");
+
                                     if (agvTask == null)
                                     {
-                                        LogHelper.Info($"RFID鏍¢獙澶辫触锛屾病鎵惧埌瀵瑰簲{transportTask.S_OP_CODE+"_1"}浠诲姟", "Wcs浠诲姟鎵ц閫氱煡");
-                                        throw new Exception($"RFID鏍¢獙澶辫触,娌℃壘鍒板搴攞transportTask.S_OP_CODE + "_1"}浠诲姟");
+                                        LogHelper.Info($"RFID鏍¢獙澶辫触锛屾病鎵惧埌瀵瑰簲{transportTask.S_OP_CODE}鐨刟gv浠诲姟", "Wcs浠诲姟鎵ц閫氱煡");
+                                        throw new Exception($"RFID鏍¢獙澶辫触,娌℃壘鍒板搴攞transportTask.S_OP_CODE }鐨刟gv浠诲姟");
                                     }
                                     var workFlow = TaskHelper.selectWorkFlowByType(agvTask.N_TYPE.ToString(), agvTask.TOOLSTYPE);
                                   
@@ -695,7 +718,7 @@
                             TaskHelper.Fail(transportTask);
                             TaskProcess.OperateStatus(transportTask, 7);
                             LocationHelper.updateLocLock(transportTask.S_START_LOC, 4, "寮傚父閿�);
-                            var agvTask = TaskHelper.GetTask(transportTask.S_OP_CODE + "_1");
+                            var agvTask = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv");
                             if (agvTask!=null)
                             {
                                 TaskHelper.Fail(agvTask);
@@ -927,62 +950,35 @@
                 LogHelper.Info("鏌ヨ鍒板畨鍏ㄨ姹備俊鍙疯褰曡〃宸茬粡瀛樺湪鏁版嵁,姝ゆ淇″彿涓嶄笅杈剧粰绔嬪簱", "agv鎵ц閫氱煡");
                 return true;
             }
-
-            if (mst.S_TYPE.Contains("鍏ュ簱"))
+            switch (state)
             {
-                 Type = "2";
-                 bit = mst.S_END_LOC;
-                if (state == 1103)
-                {
-                    Meshod = "AgvRequest";
-                    bit = mst.S_END_LOC;
-                }
-                else if (state == 7)
-                {
-                    Type = "3";
-                    Meshod = "AgvRequestCancel";
-                }
-                else if (state == 4) {
-                    //鐢宠鍑洪棬
-                    Type = "4";
-                    Meshod = "AgvRequest";
-                    bit = mst.S_END_LOC;
-                }
-                else
-                {
-                    Meshod = "Complete";
-                }
-            }
-            else if (mst.S_TYPE.Contains("鍑哄簱"))
-            {
-                Type = "1";
-                bit = mst.S_START_LOC;
-                if (state == 1101)
-                {
-                    Meshod = "AgvRequest";
-                }
-                else if (state == 7)
-                {
-                    Type = "3";
-                    Meshod = "AgvRequestCancel";
-                }
-                else if (state == 3)
-                {
-                    //鐢宠杩涢棬
-                    Type = "3";
-                    Meshod = "AgvRequest";
+                case 1101:
+                    Type = "1";
                     bit = mst.S_START_LOC;
-                }
-                else
-                {
+                    Meshod = "AgvRequest";
+                    break;
+                case 1102:
+                    Type = "1";
+                    bit = mst.S_START_LOC;
                     Meshod = "Complete";
-                }
+                    break;
+                case 1103:
+                    Type = "2";
+                    bit = mst.S_END_LOC;
+                    Meshod = "AgvRequest";
+                    break;
+                case 1104:
+                    Type = "2";
+                    bit = mst.S_END_LOC;
+                    Meshod = "Complete";
+                    break;
+                case 7:
+                    Type = "5";
+                    bit = mst.S_END_LOC;
+                    Meshod = "AgvRequestCancel";
+                    break;
             }
-            else
-            {
-                LogHelper.Info("闄や簡鍑哄叆搴撳叾浣欎笉闇�瀹夊叏璇锋眰", "agv鎵ц閫氱煡");
-                return true;
-            }
+
 
 
 
@@ -1161,7 +1157,7 @@
 
                       var endLoc = LocationHelper.GetLocOne(task.S_END_LOC);
 
-                       var end = newDb.Queryable<Location>().Where(a => a.S_AREA_CODE == endLoc.S_AREA_CODE && a.N_ROW == endLoc.N_ROW && a.N_COL > endLoc.N_COL && a.S_LOCK_STATE == "鏃� && a.N_CURRENT_NUM == 0).OrderBy(b=>b.N_COL).First();
+                       var end = newDb.Queryable<Location>().Where(a => a.S_AREA_CODE == endLoc.S_AREA_CODE && a.N_ROW == endLoc.N_ROW && a.N_COL > endLoc.N_COL && a.S_LOCK_STATE == "鏃� && a.N_CURRENT_NUM == 0 && a.C_ENABLE=="Y").OrderBy(b=>b.N_COL).First();
 
                       LogHelper.Info($"Wcs鏀捐揣鏈夎揣瀵绘壘鏂扮粓鐐逛俊鎭� + JsonConvert.SerializeObject(end), "鏀捐揣鏈夎揣");
 

--
Gitblit v1.9.1