From 99004292e20a9e1efa4e3b11b8c319bfd796912c Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期一, 14 七月 2025 17:24:30 +0800
Subject: [PATCH] 111

---
 HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs |   69 ++++++++++++++++++----------------
 1 files changed, 36 insertions(+), 33 deletions(-)

diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
index 18f2d22..cd18687 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
@@ -520,7 +520,7 @@
                 {
                     LogHelper.Info("鍗充骇鍗崇敤宸ュ崟");
                     //鍗充骇鍗崇敤鍦ㄨ捣鐐逛负绾胯竟
-                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦鍗充骇婊℃" && a.enable == 1).FirstOrDefault();
+                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇婊℃" && a.enable == 1).FirstOrDefault();
                     if (bcpInfo != null)
                     {
                         startArea = bcpInfo.areaCode;
@@ -532,7 +532,7 @@
                 {
                     LogHelper.Info("闈炲嵆浜у嵆鐢ㄥ伐鍗�);
                     //闈炲嵆浜у嵆鐢ㄨ捣鐐逛负搴撳尯
-                    string areaName = plc.deviceName.Split('-')[1].Substring(0, 1) + "鍙风摱鑳氱炕鏂楁満闈炲嵆浜ф弧妗�;
+                    string areaName = plc.deviceName.Split('-')[1].Substring(0, 1) + "鍙风摱鍧炕鏂楁満闈炲嵆浜ф弧妗�;
                     var bcpInfo = Settings.areaInfos.Where(a => a.areaName == areaName && a.enable == 1).FirstOrDefault();
                     if (bcpInfo != null)
                     {
@@ -544,7 +544,7 @@
 
                 if (data.Length == 6)
                 {
-                    if (data.Substring(0, 2) == "11")
+                    if (data.Substring(2, 2) == "22")
                     {
                         if (LocationHelper.CheckLocFree(plc.TN_Location[0]))
                         {
@@ -574,12 +574,12 @@
                                     //鍒濆鐘舵�锛屾棤鎵樼洏锛岀洿鎺ヤ笂婊℃墭(闈炲嵆浜у嵆鐢ㄩ渶瑕佹牎楠�濂楄瀹屾垚锛屽嵆浜у嵆鐢ㄧ洿鎺ヤ娇鐢�
                                     if (workInfo.S_UsingNow == "Y")
                                     {
-                                        LogHelper.Info($"鐡惰儦鍗充骇婊℃ 鏌ユ壘");
+                                        LogHelper.Info($"鐡跺澂鍗充骇婊℃ 鏌ユ壘");
                                         startLoca = getFDSXArea(db, workInfo, startArea);
                                     }
                                     else
                                     {
-                                        LogHelper.Info($"鐡惰儦缈绘枟鏈洪潪鍗充骇婊℃ 鏌ユ壘");
+                                        LogHelper.Info($"鐡跺澂缈绘枟鏈洪潪鍗充骇婊℃ 鏌ユ壘");
                                         startLoca = getFDSXArea(db, workInfo, startArea);
                                     }
 
@@ -635,7 +635,11 @@
             var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == plc.deviceName).First();
             if (workInfo != null && workInfo.S_WorkState == "鎵ц涓�)
             {
-                LogHelper.Info($"鏌ヨ鍒版墽琛屼腑鐨勫伐鍗曪紝宸ュ崟绫诲瀷锛歿workInfo.S_PLineNo}");
+                if (workInfo.S_ItemName == "灏忓寘瑁呯洊")
+                {
+                    return;
+                }
+                LogHelper.Info($"鏌ヨ鍒版墽琛屼腑鐨勫伐鍗曪紝宸ュ崟绫诲瀷锛歿workInfo.S_PLineNo},鐗╂枡缂栫爜锛歿workInfo.S_ItemCode}锛岀墿鏂欑被鍨嬶細{workInfo.S_ITEM_TYPE}");
                 string startArea = "";
                 string fullTaskType = "";
                 string emptyTaskType = "";
@@ -652,7 +656,7 @@
 
                 if (data.Length == 6)
                 {
-                    if (data.Substring(0, 2) == "11")
+                    if (data.Substring(2, 2) == "22")
                     {
                         if (LocationHelper.CheckLocFree(plc.TN_Location[0]))
                         {
@@ -718,7 +722,8 @@
                             if(itemInfo != null)
                             {
                                 LogHelper.Info($"getFDSXArea:鏌ヨ鍒扮墿鏂欑紪鐮侊細{itemInfo.S_ITEM_CODE}");
-                                if (itemInfo.S_ITEM_CODE == workInfo.S_ItemCode)
+                                LogHelper.Info($"getFDSXArea:鏌ヨ鍒扮墿鏂欐壒娆★細{itemInfo.S_BATCH_NO}");
+                                if (itemInfo.S_ITEM_CODE + itemInfo.S_BATCH_NO == workInfo.S_ItemCode + workInfo.S_ITEM_TYPE)
                                 {
                                     result = a;
                                     break;
@@ -754,20 +759,6 @@
             LogHelper.Info($"{plc.deviceName}-{plc.address}-{data}", "鐡跺澂鏈�);
             var db = new SqlHelper<object>().GetInstance();
 
-            LogHelper.Info($"鐡跺澂鏈猴紝鏌ヨ浠诲姟缁堢偣锛歿plc.TN_Location[0]}");
-            if (LineState.Keys.Contains(plc.TN_Location[0]))
-            {
-                LogHelper.Info("鐡跺澂鏈哄寘鍚浠诲姟缁堢偣");
-                LineState[plc.TN_Location[0]].status = data;
-                LineState[plc.TN_Location[0]].modify = DateTime.Now;
-            }
-            else
-            {
-                LogHelper.Info("鐡跺澂鏈烘湭鍖呭惈璇ヤ换鍔$粓鐐�);
-                LineState.Add(plc.TN_Location[0], new statemodel { status = data, modify = DateTime.Now });
-            }
-
-
             var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == plc.deviceName).First();
             if (workInfo != null && workInfo.S_WorkState == "鎵ц涓�)
             {
@@ -785,11 +776,11 @@
                     taskType = "娉ㄥ搴撳瓨婊℃墭涓嬬嚎锛堢摱鍧級";
                 }
                 //endArea = Settings.GetLinJiangBCPAreaList().Where(a => a.AreaName == "鐡跺澂婊℃墭" && a.Enable == "1").FirstOrDefault().AreaNo;
-                if (data.Length == 4)
+                if (data.Length == 8)
                 {
-                    if (data == "1122") LinZhialysisBottleCapAndPreformTwo(plc, db, workInfo, endArea, taskType, plc.TN_Location[0], "鐡跺澂鏈�);
+                    if (data.Substring(0, 2) == "12") LinZhialysisBottleCapAndPreformTwo(plc, db, workInfo, endArea, taskType, plc.TN_Location[0], "鐡跺澂鏈�, data);
 
-                    if (data == "1221") LinZhialysisBottleCapAndPreformTwo(plc, db, workInfo, endArea, taskType, plc.TN_Location[1], "鐡跺澂鏈�);
+                    if (data.Substring(2, 2) == "22") LinZhialysisBottleCapAndPreformTwo(plc, db, workInfo, endArea, taskType, plc.TN_Location[1], "鐡跺澂鏈�, data);
                 }
             }
             else LogHelper.Info($"鐡跺澂鏈猴細{plc.deviceName} 鏈紑鍚伐鍗曪紝涓嶅彲瑙﹀彂婊℃墭涓嬬嚎", "鐡跺澂鏈�);
@@ -806,9 +797,22 @@
         /// <param name="taskType"></param>
         /// <param name="deviceBit"></param>
         /// <param name="type"></param>
-        private static void LinZhialysisBottleCapAndPreformTwo(Settings.deviceInfo plc, SqlSugar.SqlSugarClient db, LinZhiBCPWorkOrder workInfo, string endArea, string taskType, string deviceBit, string type)
+        private static void LinZhialysisBottleCapAndPreformTwo(Settings.deviceInfo plc, SqlSugar.SqlSugarClient db, LinZhiBCPWorkOrder workInfo, string endArea, string taskType, string deviceBit, string type,string data)
         {
             LogHelper.Info($"{type}娉ㄥ鏈轰换鍔″鐞嗗紑濮�);
+
+            LogHelper.Info($"鐡跺澂鏈猴紝鏌ヨ浠诲姟缁堢偣锛歿deviceBit}");
+            if (LineState.Keys.Contains(deviceBit))
+            {
+                LogHelper.Info("鐡跺澂鏈哄寘鍚浠诲姟缁堢偣");
+                LineState[deviceBit].status = data;
+                LineState[deviceBit].modify = DateTime.Now;
+            }
+            else
+            {
+                LogHelper.Info("鐡跺澂鏈烘湭鍖呭惈璇ヤ换鍔$粓鐐�);
+                LineState.Add(deviceBit, new statemodel { status = data, modify = DateTime.Now });
+            }
             //鍐嶆鍒ゆ柇淇″彿
             if (LocationHelper.CheckLocFree(deviceBit))
             {
@@ -862,12 +866,12 @@
                             {
                                 LogHelper.Info($"{type}娉ㄥ鏈轰笂鏈粦瀹氭墭鐩�鑷姩缁戝畾鎵樼洏");
 
-                                TaskProcess.BindLocCntr(deviceBit, cntrCode, workInfo.S_ItemCode, "");
+                                TaskProcess.BindLocCntr(deviceBit, cntrCode, workInfo.S_ItemCode, "","","",workInfo.S_ItemName);
                             }
                             else
                             {
                                 cntrCode = cntrInfo.S_CNTR_CODE;
-                                TaskProcess.BindCntrItem(cntrCode, workInfo.S_ItemCode, "", "");
+                                TaskProcess.BindCntrItem(cntrCode, workInfo.S_ItemCode, "", "",workInfo.S_ItemName);
                             }
                             //鍒涘缓浣滀笟
                             WMSHelper.CreateOpTask(deviceBit, "", "鍏ュ簱", taskType, cntrCode,"","",workInfo.S_WorkNo);
@@ -929,7 +933,7 @@
                 if (mst.S_TYPE.Contains("缈绘枟鏈�))
                 {
                     LogHelper.Info($"鏌ヨ缈绘枟鏈哄厑璁稿彇绌轰俊鍙�鍏佽鍙栫┖淇″彿={LineState[mst.S_START_LOC.Trim()].status} 鏃堕棿闂撮殧={DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds}", "瀹夊叏浜や簰");
-                    if ((LineState[mst.S_START_LOC.Trim()].status == "112100" || LineState[mst.S_START_LOC.Trim()].status == "112200") && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10)
+                    if (LineState[mst.S_START_LOC.Trim()].status.Substring(4,2) == "00" && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10)
                     {
                         //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                         NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 18, "1101");
@@ -941,7 +945,7 @@
                     LogHelper.Info($"鏌ヨ杈撻�绾垮厑璁稿彇婊′俊鍙�鍏佽鍙栨弧淇″彿={LineState[mst.S_START_LOC.Trim()].status} 鏃堕棿闂撮殧={DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds}", "瀹夊叏浜や簰");
                     if (mst.S_TYPE.Contains("婊℃墭涓嬬嚎"))
                     {
-                        if ((LineState[mst.S_START_LOC.Trim()].status.Substring(4,2) == "01" || LineState[mst.S_START_LOC.Trim()].status.Substring(6,2) == "02") && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10)
+                        if ((LineState[mst.S_START_LOC.Trim()].status.Substring(4,2) == "00" || LineState[mst.S_START_LOC.Trim()].status.Substring(4,2) == "02") && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10)
                         {
                             //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                             NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 18, "1101");
@@ -956,7 +960,6 @@
                             TaskProcess.sendSing(mst, 1101);
                         }
                     }
-                    
                 }
             }
             else LogHelper.Info($"瀛楀吀涓湭鎵惧埌璇ey鐨勬暟鎹紝key锛歿mst.S_START_LOC}");
@@ -973,7 +976,7 @@
                     if (mst.S_TYPE.Contains("缈绘枟鏈�))
                     {
                         LogHelper.Info($"鏌ヨ缈绘枟鏈哄厑璁镐笂婊′俊鍙�鍏佽涓婃弧淇″彿={LineState[mst.S_END_LOC.Trim()].status} 鏃堕棿闂撮殧={DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds}", "瀹夊叏浜や簰");
-                        if ((LineState[mst.S_END_LOC.Trim()].status == "112100" || LineState[mst.S_END_LOC.Trim()].status == "112200") && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
+                        if (LineState[mst.S_END_LOC.Trim()].status.Substring(4,2) == "00" && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                         {
                             //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                             NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 18, "1103");
@@ -985,7 +988,7 @@
                         LogHelper.Info($"鏌ヨ杈撻�绾垮厑璁歌ˉ绌轰俊鍙�鍏佽琛ョ┖淇″彿={LineState[mst.S_END_LOC.Trim()].status} 鏃堕棿闂撮殧={DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds}", "瀹夊叏浜や簰");
                         if (mst.S_TYPE.Contains("绌烘墭涓婄嚎"))
                         {
-                            if ((LineState[mst.S_END_LOC.Trim()].status.Substring(4,2) == "01" || LineState[mst.S_END_LOC.Trim()].status.Substring(6,2) == "02") && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
+                            if ((LineState[mst.S_END_LOC.Trim()].status.Substring(4,2) == "00" || LineState[mst.S_END_LOC.Trim()].status.Substring(4,2) == "02") && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                             {
                                 //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                                 NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 18, "1103");

--
Gitblit v1.9.1