From 7cc26b2202675a4ef2189a60c275bc9345bc9856 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期二, 08 七月 2025 17:04:24 +0800
Subject: [PATCH] 111

---
 HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs |   91 ++++++++++++++++++++++++---------------------
 1 files changed, 48 insertions(+), 43 deletions(-)

diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
index 95a01fb..4826fa9 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
@@ -514,14 +514,13 @@
             {
                 LogHelper.Info($"鏌ヨ鍒版墽琛屼腑鐨勫伐鍗曪紝宸ュ崟绫诲瀷锛歿workInfo.S_PLineNo}");
                 string startArea = "";
-                string endArea = "";
                 string fullTaskType = "";
                 string emptyTaskType = "";
                 if (workInfo.S_UsingNow == "Y")
                 {
                     LogHelper.Info("鍗充骇鍗崇敤宸ュ崟");
                     //鍗充骇鍗崇敤鍦ㄨ捣鐐逛负绾胯竟
-                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇鍗崇敤A" && a.enable == 1).FirstOrDefault();
+                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇婊℃" && a.enable == 1).FirstOrDefault();
                     if (bcpInfo != null)
                     {
                         startArea = bcpInfo.areaCode;
@@ -533,7 +532,8 @@
                 {
                     LogHelper.Info("闈炲嵆浜у嵆鐢ㄥ伐鍗�);
                     //闈炲嵆浜у嵆鐢ㄨ捣鐐逛负搴撳尯
-                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault();
+                    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)
                     {
                         startArea = bcpInfo.areaCode;
@@ -542,11 +542,9 @@
                     emptyTaskType = "缈绘枟鏈哄簱瀛樼┖鎵樹笅绾匡紙鐡跺澂锛�;
                 }
 
-                endArea = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂绌烘墭" && a.enable == 1).FirstOrDefault().areaCode;
-
                 if (data.Length == 6)
                 {
-                    if (data.Substring(0, 2) == "11")
+                    if (data.Substring(2, 2) == "22")
                     {
                         if (LocationHelper.CheckLocFree(plc.TN_Location[0]))
                         {
@@ -576,23 +574,19 @@
                                     //鍒濆鐘舵�锛屾棤鎵樼洏锛岀洿鎺ヤ笂婊℃墭(闈炲嵆浜у嵆鐢ㄩ渶瑕佹牎楠�濂楄瀹屾垚锛屽嵆浜у嵆鐢ㄧ洿鎺ヤ娇鐢�
                                     if (workInfo.S_UsingNow == "Y")
                                     {
-                                        LogHelper.Info($"鐡跺澂鍗充骇鍗崇敤A搴撳尯鏌ユ壘");
+                                        LogHelper.Info($"鐡跺澂鍗充骇婊℃ 鏌ユ壘");
                                         startLoca = getFDSXArea(db, workInfo, startArea);
-                                        if (startLoca == null)
-                                        {
-                                            LogHelper.Info($"鐡跺澂鍗充骇鍗崇敤A搴撳尯鏈壘鍒版弧鎵橈紝鍘荤摱鍧嵆浜у嵆鐢˙搴撳尯鏌ユ壘");
-                                            startLoca = TaskProcess.BCPInOrOut(db, false, "鐡跺澂鍗充骇鍗崇敤B", workInfo.S_ItemCode);
-                                        }
                                     }
                                     else
                                     {
+                                        LogHelper.Info($"鐡跺澂缈绘枟鏈洪潪鍗充骇婊℃ 鏌ユ壘");
                                         startLoca = getFDSXArea(db, workInfo, startArea);
                                     }
 
                                     if (startLoca != null)
                                     {
                                         //鍒涘缓浣滀笟
-                                        WMSHelper.CreateOpTask(startLoca.S_CODE, locCode, "鍑哄簱", fullTaskType, startLoca.LocCntrRel.S_CNTR_CODE);
+                                        WMSHelper.CreateOpTask(startLoca.S_CODE, locCode, "鍑哄簱", fullTaskType, startLoca.LocCntrRel.S_CNTR_CODE, "", "", workInfo.S_WorkNo);
                                     }
                                 }
                                 else
@@ -600,7 +594,7 @@
                                     LogHelper.Info($"鐡跺澂缈绘枟鏈轰笂鏈夌┖鎵樼洏锛岀敓鎴愮┖鎵樹笅绾夸换鍔★紝鐡跺澂缈绘枟鏈虹偣浣嶏細{plc.TN_Location[0]}");
 
                                     //鍒涘缓浣滀笟
-                                    WMSHelper.CreateOpTask(locCode, "", "鍏ュ簱", emptyTaskType, plcLoca.S_CNTR_CODE);
+                                    WMSHelper.CreateOpTask(locCode, "", "鍏ュ簱", emptyTaskType, plcLoca.S_CNTR_CODE, "", "", workInfo.S_WorkNo);
                                 }
                             }
                         }
@@ -643,12 +637,11 @@
             {
                 LogHelper.Info($"鏌ヨ鍒版墽琛屼腑鐨勫伐鍗曪紝宸ュ崟绫诲瀷锛歿workInfo.S_PLineNo}");
                 string startArea = "";
-                string endArea = "";
                 string fullTaskType = "";
                 string emptyTaskType = "";
                 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;
@@ -657,10 +650,9 @@
                 fullTaskType = "缈绘枟鏈哄簱瀛樻弧鎵樹笂绾匡紙鐡剁洊锛�;
                 emptyTaskType = "缈绘枟鏈哄簱瀛樼┖鎵樹笅绾匡紙鐡剁洊锛�;
 
-                endArea = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊绌烘墭" && a.enable == 1).FirstOrDefault().areaCode;
                 if (data.Length == 6)
                 {
-                    if (data.Substring(0, 2) == "11")
+                    if (data.Substring(2, 2) == "22")
                     {
                         if (LocationHelper.CheckLocFree(plc.TN_Location[0]))
                         {
@@ -690,14 +682,14 @@
                                     if (startLoca != null)
                                     {
                                         //鍒涘缓浣滀笟
-                                        WMSHelper.CreateOpTask(startLoca.S_CODE, locCode, "鍑哄簱", fullTaskType, startLoca.LocCntrRel.S_CNTR_CODE);
+                                        WMSHelper.CreateOpTask(startLoca.S_CODE, locCode, "鍑哄簱", fullTaskType, startLoca.LocCntrRel.S_CNTR_CODE,"","",workInfo.S_WorkNo);
                                     }
                                 }
                                 else
                                 {
-                                    LogHelper.Info($"鐡剁洊缈绘枟鏈轰笂鏈夌┖鎵樼洏锛岀敓鎴愮┖鎵樹笅绾夸换鍔★紝鐡剁洊缈绘枟鏈虹偣浣嶏細{plc.TN_Location[0]}");
+                                    LogHelper.Info($"鐡剁洊缈绘枟鏈轰笂鏈夌┖鎵樼洏锛岀敓鎴愮┖鎵樹笅绾夸换鍔★紝鐡剁洊缈绘枟鏈虹偣浣嶏細{locCode}");
                                     //鍒涘缓浣滀笟
-                                    WMSHelper.CreateOpTask(plc.TN_Location[0],"", "鍏ュ簱", emptyTaskType, plcLoca.S_CNTR_CODE);
+                                    WMSHelper.CreateOpTask(locCode, "", "鍏ュ簱", emptyTaskType, plcLoca.S_CNTR_CODE,"","",workInfo.S_WorkNo);
                                 }
                             }
                         }
@@ -716,6 +708,7 @@
             {
                 foreach(var a in locList)
                 {
+                    LogHelper.Info($"getFDSXArea:鏌ヨ鍒板綋鍓嶈揣浣嶉攣鐘舵�锛歿a.S_LOCK_STATE},璐т綅缂栫爜锛歿a.S_CODE}");
                     if(a.S_LOCK_STATE == "鏃�)
                     {
                         var cntrInfo = db.Queryable<LocCntrRel>().Where(b => b.S_LOC_CODE == a.S_CODE).First();
@@ -724,20 +717,28 @@
                             var itemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == cntrInfo.S_CNTR_CODE).First();
                             if(itemInfo != null)
                             {
-                                if(itemInfo.S_ITEM_CODE == workInfo.S_ItemCode)
+                                LogHelper.Info($"getFDSXArea:鏌ヨ鍒扮墿鏂欑紪鐮侊細{itemInfo.S_ITEM_CODE}");
+                                if (itemInfo.S_ITEM_CODE == workInfo.S_ItemCode)
                                 {
                                     result = a;
                                     break;
                                 }
                             }
-
+                            else
+                            {
+                                LogHelper.Info($"getFDSXArea:褰撳墠鎵樼洏鏈粦瀹氱墿鏂欙紝鎵樼洏缂栫爜锛歿cntrInfo.S_CNTR_CODE}");
+                            }
+                        }
+                        else
+                        {
+                            LogHelper.Info($"getFDSXArea:褰撳墠璐т綅鏈粦瀹氭墭鐩�);
                         }
                     }
                 }
             }
             else
             {
-                LogHelper.Info($"涓烘煡璇㈠埌鍙兘婊℃墭锛屽簱鍖虹紪鐮侊細{startArea}");
+                LogHelper.Info($"getFDSXArea:鏈煡璇㈠埌鍙敤婊℃墭锛屽簱鍖虹紪鐮侊細{startArea}");
             }
             return result;
         }
@@ -784,11 +785,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], "鐡跺澂鏈�);
 
-                    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], "鐡跺澂鏈�);
                 }
             }
             else LogHelper.Info($"鐡跺澂鏈猴細{plc.deviceName} 鏈紑鍚伐鍗曪紝涓嶅彲瑙﹀彂婊℃墭涓嬬嚎", "鐡跺澂鏈�);
@@ -841,11 +842,11 @@
                                 taskType = $"娉ㄥ搴撳瓨绌烘墭涓婄嚎({machine})";
                             }
                             
-                            Location startLoca = TaskProcess.getMStartLoc(db);
+                            Location startLoca = TaskProcess.getMStartLoc(db,workInfo.S_UsingNow);
                             if (startLoca != null)
                             {
                                 //鍒涘缓浣滀笟
-                                WMSHelper.CreateOpTask(startLoca.S_CODE, deviceBit, "鍑哄簱", taskType, startLoca.LocCntrRel.S_CNTR_CODE);
+                                WMSHelper.CreateOpTask(startLoca.S_CODE, deviceBit, "鍑哄簱", taskType, startLoca.LocCntrRel.S_CNTR_CODE, "", "", workInfo.S_WorkNo);
                             }
                             else
                             {
@@ -866,10 +867,10 @@
                             else
                             {
                                 cntrCode = cntrInfo.S_CNTR_CODE;
-                                TaskProcess.BindCntrItem(deviceBit, cntrCode, workInfo.S_ItemCode, "");
+                                TaskProcess.BindCntrItem(cntrCode, workInfo.S_ItemCode, "", "");
                             }
                             //鍒涘缓浣滀笟
-                            WMSHelper.CreateOpTask(deviceBit, "", "鍏ュ簱", taskType, cntrCode);
+                            WMSHelper.CreateOpTask(deviceBit, "", "鍏ュ簱", taskType, cntrCode,"","",workInfo.S_WorkNo);
                         }
                     }
                 }
@@ -928,9 +929,10 @@
                 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);
+                        //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
+                        NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 18, "1101");
                         TaskProcess.sendSing(mst, 1101);
                     }
                 }
@@ -939,21 +941,21 @@
                     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 == "1122" || LineState[mst.S_START_LOC.Trim()].status == "1221") && 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);
-                            TaskProcess.sendSing(mst, 1101);
+                            //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
+                            NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 18, "1101");
                         }
                     }
                     else
                     {
                         if (LineState[mst.S_START_LOC.Trim()].status == "1220" && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10)
                         {
-                            NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
+                            //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
+                            NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 18, "1101");
                             TaskProcess.sendSing(mst, 1101);
                         }
                     }
-                    
                 }
             }
             else LogHelper.Info($"瀛楀吀涓湭鎵惧埌璇ey鐨勬暟鎹紝key锛歿mst.S_START_LOC}");
@@ -970,9 +972,10 @@
                     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);
+                            //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
+                            NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 18, "1103");
                             TaskProcess.sendSing(mst, 1103);
                         }
                     }
@@ -981,9 +984,10 @@
                         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 == "1122" || LineState[mst.S_END_LOC.Trim()].status == "1221") && 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);
+                                //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
+                                NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 18, "1103");
                                 TaskProcess.sendSing(mst, 1103);
                             }
                         }
@@ -991,7 +995,8 @@
                         {
                             if (LineState[mst.S_END_LOC.Trim()].status == "1021" && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                             {
-                                NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
+                                //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
+                                NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 18, "1103");
                                 TaskProcess.sendSing(mst, 1103);
                             }
                         }

--
Gitblit v1.9.1