From 8accda250de2a637336a40e04085e1a0cb556c5c Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期一, 23 六月 2025 17:30:36 +0800
Subject: [PATCH] 111

---
 HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs |  336 +++++++++++++++----------------------------------------
 1 files changed, 92 insertions(+), 244 deletions(-)

diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
index 0fb1a31..84f4f6a 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
@@ -5,13 +5,15 @@
 using HH.WCS.Mobox3.NFLZ.util;
 using HH.WCS.Mobox3.NFLZ.wms;
 using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Security.Cryptography;
+using System.Xml.Linq;
 using static HH.WCS.Mobox3.NFLZ.api.OtherModel;
-using static HH.WCS.Mobox3.NFLZ.dispatch.NDC;
+using static HH.WCS.Mobox3.NFLZ.dispatch.NDCApi;
 using static HH.WCS.Mobox3.NFLZ.wms.WMSHelper.AddChangeModel;
 
 namespace HH.WCS.Mobox3.NFLZ.process
@@ -144,15 +146,18 @@
             if (mst.S_TYPE.Contains("绌烘墭涓婄嚎"))
             {
                 LogHelper.Info($"{mst.S_TYPE}鍗歌揣瀹屾垚锛屽啓鍏ヤ俊鍙�);
-                //鏍规嵁璧风偣鍒ゆ柇鏄疉鍙h繕鏄疊鍙�-                var locCode = mst.S_END_LOC;
-                var devInfo = Settings.deviceInfos.Where(a => a.TN_Location.Contains(locCode)).FirstOrDefault();
-                if (devInfo != null)
+                if(state == 6)
                 {
-                    var signal = devInfo.TN_Location[0] == mst.S_END_LOC ? "3F 00 10 0D 0A" : "3F 00 20 0D 0A";
-                    if (PlcHelper.SendHex(devInfo.address, signal)) LogHelper.Info($"{mst.S_TYPE}浠诲姟鍗歌揣瀹屾垚锛屽啓鍏ヤ俊鍙凤細{signal}锛宨p锛歿devInfo.address}");
+                    //鏍规嵁璧风偣鍒ゆ柇鏄疉鍙h繕鏄疊鍙�+                    var locCode = mst.S_END_LOC;
+                    var devInfo = Settings.deviceInfos.Where(a => a.TN_Location.Contains(locCode)).FirstOrDefault();
+                    if (devInfo != null)
+                    {
+                        var signal = devInfo.TN_Location[0] == mst.S_END_LOC ? "3F 00 10 0D 0A" : "3F 00 20 0D 0A";
+                        if (PlcHelper.SendHex(devInfo.address, signal)) LogHelper.Info($"{mst.S_TYPE}浠诲姟鍗歌揣瀹屾垚锛屽啓鍏ヤ俊鍙凤細{signal}锛宨p锛歿devInfo.address}");
+                    }
+                    else LogHelper.Info($"璁惧鏈壘鍒帮紝璐т綅鍙凤細{mst.S_END_LOC}");
                 }
-                else LogHelper.Info($"璁惧鏈壘鍒帮紝璐т綅鍙凤細{mst.S_END_LOC}");
             }
             if (mst.S_TYPE.Contains("婊℃墭涓婄嚎"))
             {
@@ -174,7 +179,7 @@
                 var devInfo = Settings.deviceInfos.Where(a => a.TN_Location.Contains(locCode)).FirstOrDefault();
                 if (devInfo != null)
                 {
-                    var signal = "3F 00 12 22 00 0D 0A";
+                    var signal = "3F 00 12 21 0D 0A";
                     if (state == 1102) signal = "3F 00 10 20 0D 0A";
                     if (PlcHelper.SendHex(devInfo.address, signal)) LogHelper.Info($"{mst.S_TYPE}浠诲姟鍙栬揣瀹屾垚锛屽啓鍏ヤ俊鍙凤細{signal}锛宨p锛歿devInfo.address}");
                 }
@@ -183,15 +188,18 @@
             if (mst.S_TYPE.Contains("婊℃墭涓嬬嚎"))
             {
                 LogHelper.Info($"{mst.S_TYPE}鍙栬揣瀹屾垚锛屽啓鍏ヤ俊鍙�);
-                //鏍规嵁璧风偣鍒ゆ柇鏄疉鍙h繕鏄疊鍙�-                var locCode = mst.S_START_LOC;
-                var devInfo = Settings.deviceInfos.Where(a => a.TN_Location.Contains(locCode)).FirstOrDefault();
-                if (devInfo != null)
+                if(state == 4)
                 {
-                    var signal = devInfo.TN_Location[0] == mst.S_START_LOC ? "3F 00 10 0D 0A" : "3F 00 20 0D 0A";
-                    if (PlcHelper.SendHex(devInfo.address, signal)) LogHelper.Info($"{mst.S_TYPE}浠诲姟鍙栬揣瀹屾垚锛屽啓鍏ヤ俊鍙凤細{signal}锛宨p锛歿devInfo.address}");
+                    //鏍规嵁璧风偣鍒ゆ柇鏄疉鍙h繕鏄疊鍙�+                    var locCode = mst.S_START_LOC;
+                    var devInfo = Settings.deviceInfos.Where(a => a.TN_Location.Contains(locCode)).FirstOrDefault();
+                    if (devInfo != null)
+                    {
+                        var signal = devInfo.TN_Location[0] == mst.S_START_LOC ? "3F 00 10 0D 0A" : "3F 00 20 0D 0A";
+                        if (PlcHelper.SendHex(devInfo.address, signal)) LogHelper.Info($"{mst.S_TYPE}浠诲姟鍙栬揣瀹屾垚锛屽啓鍏ヤ俊鍙凤細{signal}锛宨p锛歿devInfo.address}");
+                    }
+                    else LogHelper.Info($"璁惧鏈壘鍒帮紝璐т綅鍙凤細{mst.S_START_LOC}");
                 }
-                else LogHelper.Info($"璁惧鏈壘鍒帮紝璐т綅鍙凤細{mst.S_START_LOC}");
             }
         }
 
@@ -654,7 +662,6 @@
             if (state == 6)//鍗歌揣瀹屾垚
             {
                 claimGoodsTime(mst, state);
-                writeSignal(mst);
                 CacheBitUpdate(mst, false);
             }
             if (state == 7)
@@ -677,10 +684,11 @@
             if (mst.S_TYPE.Contains("婊℃墭涓嬬嚎"))
             {
                 LogHelper.Info($"绌烘墭浠诲姟鐢熸垚澶勭悊锛屼换鍔$被鍨嬶細{mst.S_TYPE}");
-                var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂绌烘墭" && a.enable == 1).First();
+                string areaName = mst.S_TYPE.Contains("搴撳瓨") ? "鐡惰儦闈炲嵆浜х┖妗� : "鐡惰儦鍗充骇绌烘";
+                var areaInfo = Settings.areaInfos.Where(a => a.areaName == areaName && a.enable == 1).First();
                 if(areaInfo != null)
                 {
-                    startLoca = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First();
+                    startLoca = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_ROW).First();
                     if (startLoca != null)
                     {
                         LogHelper.Info("startLoca" + JsonConvert.SerializeObject(startLoca));
@@ -706,19 +714,12 @@
                 LogHelper.Info($"婊℃墭浠诲姟鐢熸垚澶勭悊锛屼换鍔$被鍨嬶細{mst.S_TYPE}");
                 string startArea = "";
                 LinZhiBCPWorkOrder bcpW = null;
-                if (mst.S_TYPE.Contains("鐡跺澂"))
-                {
-                    bcpW = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo.Contains("鍐滃か鏋楄姖-鐡跺澂缈绘枟鏈�) && a.S_WorkState == "鎵ц涓�).First();
-                }
-                else
-                {
-                    bcpW = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo.Contains("鍐滃か鏋楄姖-鐡剁洊缈绘枟鏈�) && a.S_WorkState == "鎵ц涓�).First();
-                }
-
+                bcpW = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_WorkNo == mst.S_WORK_NO && a.S_WorkState == "鎵ц涓�).First();
+                LogHelper.Info($"婊℃墭浠诲姟鐢熸垚澶勭悊,宸ュ崟锛歿JsonConvert.SerializeObject(bcpW)}");
                 if (mst.S_TYPE.Contains("鐡剁洊"))
                 {
                     //鐡剁洊鏃犲嵆浜у嵆鐢ㄥ拰闈炲嵆浜у嵆鐢�-                    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)
                     {
                         startLoca = DeviceProcess.getFDSXArea(db, bcpW, bcpInfo.areaCode);
@@ -728,18 +729,15 @@
                 {
                     if (bcpW.S_UsingNow == "Y")
                     {
-                        LogHelper.Info($"鐡跺澂鍗充骇鍗崇敤A搴撳尯鏌ユ壘");
-                        startArea = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇鍗崇敤A" && a.enable == 1).FirstOrDefault().areaCode;
+                        LogHelper.Info($"鐡惰儦鍗充骇婊℃ 鏌ユ壘");
+                        startArea = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦鍗充骇婊℃" && a.enable == 1).FirstOrDefault().areaCode;
                         startLoca = DeviceProcess.getFDSXArea(db, bcpW, startArea);
-                        if (startLoca == null)
-                        {
-                            LogHelper.Info($"鐡跺澂鍗充骇鍗崇敤A搴撳尯鏈壘鍒版弧鎵橈紝鍘荤摱鍧嵆浜у嵆鐢˙搴撳尯鏌ユ壘");
-                            startLoca = TaskProcess.BCPInOrOut(db, true, "鐡跺澂鍗充骇鍗崇敤B", bcpW.S_ItemCode);
-                        }
                     }
                     else
                     {
-                        startArea = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault().areaCode;
+                        LogHelper.Info($"鐡惰儦缈绘枟鏈洪潪鍗充骇婊℃ 鏌ユ壘");
+                        string areaName = bcpW.S_PLineNo.Split('-')[1].Substring(0, 1) + "鍙风摱鑳氱炕鏂楁満闈炲嵆浜ф弧妗�;
+                        startArea = Settings.areaInfos.Where(a => a.areaName == areaName && a.enable == 1).FirstOrDefault().areaCode;
                         startLoca = DeviceProcess.getFDSXArea(db, bcpW, startArea);
                     }
                 }
@@ -754,7 +752,7 @@
                     var cntrInfo = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoca.S_CODE).First();
                     if (cntrInfo != null)
                     {
-                        WMSHelper.CreateOpTask(startLoca.S_CODE, mst.S_START_LOC, "鍑哄簱", taskType, cntrInfo.S_CNTR_CODE);
+                        WMSHelper.CreateOpTask(startLoca.S_CODE, mst.S_START_LOC, "鍑哄簱", taskType, cntrInfo.S_CNTR_CODE,"","",bcpW.S_WorkNo);
                     }
                     else LogHelper.Info($"鏈粦瀹氭墭鐩橈紝璐т綅鍙凤細{startLoca.S_CODE}");
                 }
@@ -1103,8 +1101,16 @@
                         TsNo = 1;
                         // 鍧洊浠诲姟涓嬪彂鍙傛暟鑾峰彇
                         // 鑾峰彇璧风粓鐐圭殑AGV绔欑偣
-                        Extend1 = db.Queryable<Location>().Where(a => a.S_CODE == mst.S_START_LOC && a.N_LAYER == mst.N_START_LAYER).First().S_AGV_SITE;
-                        Extend2 = db.Queryable<Location>().Where(a => a.S_CODE == mst.S_END_LOC && a.N_LAYER == mst.N_END_LAYER).First().S_AGV_SITE;
+                        Extend1 = db.Queryable<Location>().Where(a => a.S_CODE == mst.S_START_LOC).First().S_AGV_SITE;
+                        Extend2 = db.Queryable<Location>().Where(a => a.S_CODE == mst.S_END_LOC).First().S_AGV_SITE;
+                        if (mst.N_START_LAYER > 1)
+                        {
+                            Extend1 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_START_LOC && a.N_LAYER == mst.N_START_LAYER).First().S_AGV_SITE;
+                        }
+                        if (mst.N_END_LAYER > 1)
+                        {
+                            Extend2 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_START_LOC && a.N_LAYER == mst.N_END_LAYER).First().S_AGV_SITE;
+                        }
                         Extend3 = "0";
                         // 鑾峰彇 浠诲姟鍙傛暟4 DATA 鏁版嵁
                         string startLayerValue = Convert.ToString(startLayer, 16).ToUpper();
@@ -1141,21 +1147,43 @@
                     Console.WriteLine($"[SendTask]:TaskNo={mst.S_CODE.Trim()},start={Extend1},end={Extend2}");
                     LogHelper.Info($"[SendTask]:TaskNo={mst.S_CODE.Trim()},start={Extend1},end={Extend2}");
                     bool action = true;
-                    var dic = new Dictionary<string, string>();
-                    //var dic1 = new Dictionary<string, string>();
-                    //dic.Add("Pri", mst.N_PRIORITY.ToString());
-                    //dic.Add("No", mst.S_CODE.Trim());
-                    dic.Add("From", Extend1);
-                    dic.Add("To", Extend2);
-                    dic.Add("Func", Extend3);
-                    dic.Add("Data", Extend4);
-
+                    //var dic = new Dictionary<string, string>();
+                    ////var dic1 = new Dictionary<string, string>();
+                    ////dic.Add("Pri", mst.N_PRIORITY.ToString());
+                    ////dic.Add("No", mst.S_CODE.Trim());
+                    //dic.Add("From", Extend1);
+                    //dic.Add("To", Extend2);
+                    //dic.Add("Func", Extend3);
+                    //dic.Add("Data", Extend4);
+                    //
+                    //if (ConveryTaskList.Contains(taskType) || taskType.Contains("绉诲簱"))
+                    //{
+                    //    dic.Add("ItemHeight", Extend5);
+                    //    dic.Add("CntrType", Extend6);
+                    //    dic.Add("FromCol", Extend7);
+                    //    dic.Add("ToCol", Extend8);
+                    //    if (taskType.Contains("绉诲簱") || taskType.Contains("鎴愬搧涓嬬嚎") || taskType.Contains("闆跺ご涓嬬嚎"))
+                    //    {
+                    //        LogHelper.Info($"绉诲簱锛欵xtend5:{Extend5},Extend6:{Extend6},Extend7:{Extend7},Extend8:{Extend8},");
+                    //        if (Extend5 == "" || Extend6 == "" || Extend7 == "" || Extend8 == "")
+                    //        {
+                    //            action = false;
+                    //        }
+                    //    }
+                    //}
+                    var dic = new List<param>
+                    {
+                        new param() { name = "From", value = Extend1 },
+                        new param() { name = "To", value = Extend2 },
+                        new param() { name = "Func", value = Extend3 },
+                        new param() { name = "Data", value = Extend4 }
+                    };
                     if (ConveryTaskList.Contains(taskType) || taskType.Contains("绉诲簱"))
                     {
-                        dic.Add("ItemHeight", Extend5);
-                        dic.Add("CntrType", Extend6);
-                        dic.Add("FromCol", Extend7);
-                        dic.Add("ToCol", Extend8);
+                        dic.Add(new param(){name = "ItemHeight", value = Extend5});
+                        dic.Add(new param(){name = "CntrType", value = Extend6});
+                        dic.Add(new param(){name = "FromCol", value = Extend7});
+                        dic.Add(new param(){name = "ToCol", value = Extend8});
                         if (taskType.Contains("绉诲簱") || taskType.Contains("鎴愬搧涓嬬嚎") || taskType.Contains("闆跺ご涓嬬嚎"))
                         {
                             LogHelper.Info($"绉诲簱锛欵xtend5:{Extend5},Extend6:{Extend6},Extend7:{Extend7},Extend8:{Extend8},");
@@ -1165,13 +1193,13 @@
                             }
                         }
                     }
-
                     if (action)
                     {
-                        var res = new AGVResult();
-                        res = NDC.AddNewOrderNew(TsNo,mst.N_PRIORITY,mst.S_CODE, dic);
+                        var res = new AgvApiResult();
+                        //res = NDC.AddNewOrderNew(TsNo,mst.N_PRIORITY,mst.S_CODE, dic);
+                        res = NDCApi.AddOrderNew(TsNo, mst.N_PRIORITY, mst.S_CODE,dic);
 
-                        if (res != null && (res.Res.ErrCode == 0 || res.Res.ErrCode == 50009))
+                        if (res != null && (res.err_code == 0 || res.err_code == 50009))
                         {
                             mst.N_B_STATE = 1;
                             WCSHelper.UpdateStatus(mst, "宸叉帹閫�);
@@ -1516,14 +1544,12 @@
                 }
                 if (result == null)
                 {
-                    result = TaskProcess.BCPInOrOut(db, true, "鐡惰儦鍗充骇婊℃缂撳瓨鍖�, itemCode);
+                    result = TaskProcess.BCPInOrOut(db, true, "鐡惰儦鍗充骇婊℃缂撳瓨", itemCode);
                 }
                 if(result == null)
                 {
-                    //result = TaskProcess.BCPInOrOut(db, true, "鐡跺澂搴撳尯", itemCode);
                     result = getJBLoc(db, result);
                 }
-
             }
             else
             {
@@ -1566,13 +1592,13 @@
         internal static Location BCPEmptyOut(SqlSugarClient db, string taskName)
         {
             Location result = null;
-            //缈绘枟鏈哄簱瀛樼┖鎵樹笅绾匡紙鐡剁洊锛�-            string endAreaName = taskName.Contains("鐡剁洊") ? "鐡剁洊绌烘墭" : "鐡跺澂绌烘墭";
+
+            string endAreaName = taskName.Contains("鐡剁洊") ? "鐡剁洊闈炲嵆浜х┖妗� : taskName.Contains("搴撳瓨") ? "鐡惰儦闈炲嵆浜х┖妗� : "鐡惰儦鍗充骇绌烘";
             var areaInfo = Settings.areaInfos.Where(a => a.areaName == endAreaName && a.enable == 1).FirstOrDefault();
-            if(areaInfo != null)
+            if (areaInfo != null)
             {
-                var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First();
-                if(locInfo != null)
+                var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_ROW).First();
+                if (locInfo != null)
                 {
                     result = locInfo;
                 }
@@ -1581,187 +1607,9 @@
             {
                 LogHelper.Info($"{endAreaName}鏈厤缃�);
             }
+            
             return result;
         }
-
-        /// <summary>
-        /// 鍗婃垚鍝佺Щ搴�-        /// </summary>
-        /// <param name="action">true - 宸ュ崟寮�惎 false - 宸ュ崟鍏抽棴</param>
-        /// <param name="machine">璁惧</param>
-        internal static void BCPYiKu(bool action, string machine)
-        {
-            var db = new SqlHelper<object>().GetInstance();
-            Location startLoc = null;
-            Location endLoc = null;
-            if (action)
-            {
-                if(machine == "鐡跺澂缈绘枟鏈�)
-                {
-                    //鐡跺澂缈绘枟鏈�-                    //寮�惎锛屽垽鏂伐鍗曠被鍨嬶紝鏍规嵁宸ュ崟绫诲瀷琛ュ厖瀵瑰簲鐨勫簱鍖�鍗充骇鍗崇敤涓嶈ˉ鍏�-                    var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault();
-                    if (areaInfo != null)
-                    {
-                        var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == "鍐滃か鏋楄姖-鐡舵壒缈绘枟鏈� && a.S_WorkState == "鎵ц涓�).First();
-                        if (workInfo.S_UsingNow == "N")
-                        {
-                            startLoc = TaskProcess.BCPInOrOut(db, false, "鐡跺澂搴撳尯", workInfo.S_ItemCode);
-                            endLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First();
-                        }
-                    }
-                    else
-                    {
-                        LogHelper.Info("鐡跺澂闈炲嵆浜у嵆鐢ㄦ湭閰嶇疆");
-                    }
-                        
-                }
-                if (machine == "鐡跺澂娉ㄥ鏈�)
-                {
-                    //寮�惎锛屾煡璇�鐡跺澂绌烘墭 鏄惁绌烘墭鏁伴噺澶т簬3鎵橈紝濡傛灉涓嶅ぇ浜庯紝鍒欒ˉ绌烘墭
-                    var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂娉ㄥ鏈虹┖鎵� && a.enable == 1).FirstOrDefault();
-                    if(areaInfo != null)
-                    {
-                        var locList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).ToList();
-                        if(locList.Count > 2)
-                        {
-                            LogHelper.Info("鐡跺澂绌烘墭 琛ョ┖鎵�);
-                            startLoc = TaskProcess.BCPInOrOut(db, false, "鐡跺澂搴撳尯","");
-                            endLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First();
-                        }
-                    }
-                    else
-                    {
-                        LogHelper.Info("鐡跺澂娉ㄥ鏈虹┖鎵樻湭閰嶇疆");
-                    }
-
-                }
-                if (machine == "鐡剁洊缈绘枟鏈�)
-                {
-                    //寮�惎锛屾煡璇�鐡剁洊闈炴�浜ф�鐢�鐗╂枡鏄惁婊★紝涓嶆弧鍒欒ˉ鍏呯墿鏂�-                    var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault();
-                    if (areaInfo != null)
-                    {
-                        var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).First();
-                        if(locInfo != null)
-                        {
-                            LogHelper.Info("鐡剁洊闈炲嵆浜у嵆鐢�琛ユ弧鎵�);
-                            var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == "鍐滃か鏋楄姖-鐡剁洊缈绘枟鏈� && a.S_WorkState == "鎵ц涓�).First();
-                            startLoc = TaskProcess.BCPInOrOut(db, false, "鐡剁洊搴撳尯", workInfo.S_ItemCode);
-                            endLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First();
-                        }
-                    }
-                    else
-                    {
-                        LogHelper.Info("鐡剁洊闈炲嵆浜у嵆鐢ㄦ湭閰嶇疆");
-                    }
-                }
-            }
-            else
-            {
-                if (machine == "鐡跺澂缈绘枟鏈�)
-                {
-                    //鍏抽棴锛屾煡璇�鐡跺澂闈炲嵆浜у嵆鐢�鐡跺澂鍗充骇鍗崇敤A 鐡跺澂鍗充骇鍗崇敤B 鏄惁鏈夌墿鏂欙紝鏈夊垯鍏ュ簱
-                    var areaList = Settings.areaInfos.Where(a => (a.areaName == "鐡跺澂闈炲嵆浜у嵆鐢� || a.areaName == "鐡跺澂鍗充骇鍗崇敤A") && a.enable == 1).ToList();
-                    if (areaList.Count > 0)
-                    {
-                        foreach(var a in areaList)
-                        {
-                            startLoc = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.areaCode && b.N_CURRENT_NUM > 0 && b.S_LOCK_STATE == "鏃�).Includes(b => b.LocCntrRel).First();
-                            if (startLoc != null) break;
-                        }
-                    }
-                    if (startLoc == null)
-                    {
-                        var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇鍗崇敤B" && a.enable == 1).FirstOrDefault();
-                        if(areaInfo != null)
-                        {
-                            var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0).OrderBy(a => a.N_ROW).OrderByDescending(a => a.N_COL).Take(1).PartitionBy(a => a.N_ROW).Includes(a => a.LocCntrRel).ToList();
-                            if(locInfo.Count > 0)
-                            {
-                                foreach(var a in locInfo)
-                                {
-                                    int row = a.N_ROW;
-                                    var lockInfo = db.Queryable<Location>().Where(b => b.S_AREA_CODE == areaInfo.areaCode && b.N_ROW == a.N_ROW && (b.S_LOCK_STATE == "鍏ュ簱閿� || b.S_LOCK_STATE == "鍑哄簱閿�)).First();
-                                    if(lockInfo == null)
-                                    {
-                                        startLoc = a;
-                                    }
-                                }
-                            }
-                        }
-                    }
-                    if(startLoc != null)
-                    {
-                        if (startLoc.LocCntrRel != null)
-                        {
-                            var itemInfo = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == startLoc.LocCntrRel.S_CNTR_CODE).First();
-                            if (itemInfo != null)
-                            {
-                                endLoc = TaskProcess.BCPInOrOut(db, true, "鐡跺澂搴撳尯", itemInfo.S_ITEM_CODE);
-                            }
-                        }
-                    }
-                }
-                if (machine == "鐡跺澂娉ㄥ鏈�)
-                {
-                    //鍏抽棴锛屾煡璇�鐡跺澂绌烘墭 鏄惁鏈夌┖鎵橈紝鏈夊垯鍏ュ簱
-                    var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂娉ㄥ鏈虹┖鎵� && a.enable == 1).FirstOrDefault();
-                    if (areaInfo != null)
-                    {
-                        startLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First();
-                        if(startLoc != null)
-                        {
-                            endLoc = TaskProcess.BCPInOrOut(db, true, "鐡跺澂搴撳尯", "");
-                        }
-                    }
-                }
-                if (machine == "鐡剁洊缈绘枟鏈�)
-                {
-                    //鍏抽棴锛�1銆佹煡璇�鐡剁洊绌烘墭 鏄惁杩樻湁鎵樼洏锛屾湁鍒欏叆搴� 2銆佹煡璇㈢摱鐩栭潪鍗充骇鍗崇敤 鏄惁鏈夌墿鏂欙紝 鏈夊垯鍏ュ簱
-                    //鍏抽棴锛屾煡璇�鐡跺澂绌烘墭 鏄惁鏈夌┖鎵橈紝鏈夊垯鍏ュ簱
-
-                    //鏌ヨ绌烘墭搴撳尯
-                    var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊绌烘墭" && a.enable == 1).FirstOrDefault();
-                    if (areaInfo != null)
-                    {
-                        startLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First();
-                        if (startLoc != null)
-                        {
-                            endLoc = TaskProcess.BCPInOrOut(db, true, "鐡剁洊搴撳尯", "");
-                        }
-                    }
-
-                    //鏌ヨ婊℃墭搴撳尯
-                    if(startLoc == null)
-                    {
-                        areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault();
-                        if (areaInfo != null)
-                        {
-                            startLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First();
-                            if (startLoc != null)
-                            {
-                                if(startLoc.LocCntrRel != null)
-                                {
-                                    var itemInfo = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == startLoc.LocCntrRel.S_CNTR_CODE).First();
-                                    if(itemInfo != null)
-                                    {
-                                        endLoc = TaskProcess.BCPInOrOut(db, true, "鐡剁洊搴撳尯", itemInfo.S_ITEM_CODE);
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-
-            if (startLoc != null && endLoc != null)
-            {
-                WMSHelper.CreateOpTask(startLoc.S_CODE, endLoc.S_CODE, "鍏ュ簱", "鍗婃垚鍝佺Щ搴�, startLoc.LocCntrRel.S_CNTR_CODE);
-            }
-        }
-
-
 
         /// <summary>
         /// FuLeWebPost

--
Gitblit v1.9.1