From 9db096bf7366bb953f961bef9fa68a7b5d4c27fe Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期三, 30 四月 2025 11:11:18 +0800
Subject: [PATCH] 修改显示屏

---
 Admin.NET/WCS.Application/PLC/PLCService.cs |  496 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 391 insertions(+), 105 deletions(-)

diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index f364545..c44363d 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -28,6 +28,8 @@
 
     private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId);
 
+    private static int fendao = 1;
+
     public static void OnChangeEvent(object sender, EventArgs e)
     {
         try
@@ -216,11 +218,16 @@
 
                         //淇敼led灞忎俊鎭�
                         var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == taskInfo.EndStation && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business);
-                        ledText += $"浠诲姟绫诲瀷:{modTask.TaskType.GetDescription()}\n\n";
-                        ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
+                        //ledText += $"浠诲姟绫诲瀷:{modTask.TaskType.GetDescription()}\n\n";
+                        //ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
+                        //ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
+                        //ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
+                        //ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}";
+                        ledText += $"鍚嶇О:{modTask.SkuName}\n";
+                        ledText += $"鎵瑰彿:{modTask.LotNo}\n";
+                        ledText += $"鍏ュ簱鏁伴噺:{modTask.Qty}\n";
                         ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
-                        ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
-                        ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}";
+
                         LedDisplay(ledDevice.LedIP, ledText);
                     }
                 }
@@ -451,13 +458,18 @@
 
                                     // led鏄剧ず鍐呭
                                     var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modTask.StartLocate && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business);
-                                    ledText += $"鍏ュ簱瀹屾垚\n\n";
+                                    //ledText += $"鍏ュ簱瀹屾垚\n\n";
 
-                                    ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
+                                    //ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
+                                    //ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
+
+                                    //ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
+                                    //ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}";
+
+                                    ledText += $"鍚嶇О:{modTask.SkuName}\n";
+                                    ledText += $"鎵瑰彿:{modTask.LotNo}\n";
+                                    ledText += $"鍏ュ簱鏁伴噺:{modTask.Qty}\n";
                                     ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
-
-                                    ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
-                                    ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}";
 
                                     LedDisplay(ledDevice.LedIP, ledText);
                                     // 姝ゅ娣诲姞涓嶇┖璺戜笟鍔�
@@ -997,10 +1009,11 @@
                     string groupMsg = "";
                     if (modDevice.StationNum == "27")
                     {
-                        var Qty = plcConn.GetPlcDBValue(PLCDataTypeEnum.Int,"DB135.0").ToString();//鑾峰彇鍙犳墭鏈哄彔鎵樻暟閲�
-                        groupMsg = http.BindPlnInHouseWcs(Qty, palletVal);
+                        var (res2,Qty) = plcConn.GetPlcDBValue(PLCDataTypeEnum.Short,"DB135","0");//鑾峰彇鍙犳墭鏈哄彔鎵樻暟閲�
+                        
+                        groupMsg = http.BindPlnInHouseWcs(Qty.ToString(), palletVal);
 
-                        if (!groupMsg.Contains("-1"))
+                        if (groupMsg.Contains("-1"))
                         {
                             var (res350, palletVal350) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
                             if (res350.IsSucceed && palletVal350 != "350")
@@ -1017,8 +1030,8 @@
                             {
                                 plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "350");
                             }
+                            break;
                         }
-                        break;
                     }
                     string IsBale = "0";
                     strMsg = http.RequestRoadWay(palletVal, modDevice.StationNum, taskModel, louCeng, ref EndLocate, ref TaskNo);
@@ -1066,13 +1079,18 @@
                             // led鏄剧ず鍐呭
                             try
                             {
-                                ledText += $"浠诲姟绫诲瀷:{taskInfo.TaskType.GetDescription()}\n\n";
+                                //ledText += $"浠诲姟绫诲瀷:{taskInfo.TaskType.GetDescription()}\n\n";
 
-                                ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n";
+                                //ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n";
+                                //ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n";
+
+                                //ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n";
+                                //ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}";
+                                ledText += $"鍚嶇О:{taskInfo.SkuName}\n";
+                                ledText += $"鎵瑰彿:{taskInfo.LotNo}\n";
+                                ledText += $"鍏ュ簱鏁伴噺:{taskInfo.Qty}\n";
                                 ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n";
 
-                                ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n";
-                                ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}";
                                 LedDisplay(modDevice.LedIP, ledText);
                                 
                             }
@@ -1248,11 +1266,15 @@
                             HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>());
                             
                             var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business);
-                            ledText += $"浠诲姟绫诲瀷:{taskInfo.TaskType.GetDescription()}\n\n";
-                            ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n";
+                            //ledText += $"浠诲姟绫诲瀷:{taskInfo.TaskType.GetDescription()}\n\n";
+                            //ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n";
+                            //ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n";
+                            //ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n";
+                            //ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}";
+                            ledText += $"鍚嶇О:{taskInfo.SkuName}\n\n";
+                            ledText += $"鎵瑰彿:{taskInfo.LotNo}\n";
+                            ledText += $"鍏ュ簱鏁伴噺:{taskInfo.Qty}\n";
                             ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n";
-                            ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n";
-                            ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}";
                             LedDisplay(modDevice.LedIP, ledText);
                         }
                     }
@@ -1427,6 +1449,9 @@
                         var (res2, palletVal) = plcConn.GetPlcDBValue(modPosPallet.PosType, modDevice.DbNumber, modPosPallet.PlcPos);
                         var modPosStarStationNum = modDevice.listStation.FirstOrDefault(m => m.Text == "璧峰宸ヤ綅");
                         var (res3, starVal) = plcConn.GetPlcDBValue(modPosStarStationNum.PosType, modDevice.DbNumber, modPosStarStationNum.PlcPos);
+                        string tasknoVal = taskVal.ToString();
+                        ////string b = taskVal.GetValue();
+                        //string a = palletVal.ToString();
                         // 鎻掑叆浠诲姟鏄庣粏 
                         var modInsertTaskMonitor = new WcsTaskMonitor()
                         {
@@ -1436,10 +1461,10 @@
                             InteractiveMsg = $"鍐欏叆鎸囦护430锛氭墭鐩樺埌杈緖modDevice.StationNum}宸ヤ綅",
                             PalletNo = palletVal,
                             Status = TaskStatusEnum.Complete,
-                            StartLocat = starVal,
+                            StartLocat = starVal.ToString(),
                             EndLocat = modDevice.StationNum,
                         };
-
+                        
                         // 鎻掑叆浜や簰鏃ュ織
                         _db.Insertable(modInsertTaskMonitor).ExecuteCommand();
 
@@ -1455,10 +1480,15 @@
                         var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business && m.PlcId == modDevice.PlcId);
                         
                         ledText += $"鍑哄簱瀹屾垚\n\n";
-                        ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n";
+                        //ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n";
+                        //ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n";
+                        //ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n";
+                        //ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}";
+                        ledText += $"鍚嶇О:{taskInfo.SkuName}\n";
+                        ledText += $"鎵瑰彿:{taskInfo.LotNo}\n";
+                        ledText += $"鍑哄簱鏁伴噺:{taskInfo.Qty}\n";
+                        ledText += $"鍒嗛厤鏁伴噺:{taskInfo.CompleteQty}\n";
                         ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n";
-                        ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n";
-                        ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}";
                         LedDisplay(ledDevice.LedIP, ledText);
                     }
                     // 鍙嶉WMS鍑哄簱瀹屾垚
@@ -1483,7 +1513,7 @@
                         var (res2, palletVal) = plcConn.GetPlcDBValue(modPosPallet.PosType, modDevice.DbNumber, modPosPallet.PlcPos);
                         var modPosStarStationNum = modDevice.listStation.FirstOrDefault(m => m.Text == "璧峰宸ヤ綅");
                         var (res3, starVal) = plcConn.GetPlcDBValue(modPosStarStationNum.PosType, modDevice.DbNumber, modPosStarStationNum.PlcPos);
-
+                        
                         string tasknoVal = taskVal.ToString();
                         var modTask = _db.Queryable<WcsTask>().First(m => m.Status == TaskStatusEnum.Doing && m.TaskNo == tasknoVal && m.IsDelete == false);
                         if (modTask == null)
@@ -1540,10 +1570,16 @@
                         var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business && m.PlcId == modDevice.PlcId);
                         
                         ledText += $"鍑哄簱瀹屾垚\n\n";
-                        ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
+                        //ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
+                        //ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
+                        //ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
+                        //ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}";
+                        ledText += $"鍚嶇О:{modTask.SkuName}\n";
+                        ledText += $"鎵瑰彿:{modTask.LotNo}\n";
+                        ledText += $"鍑哄簱鏁伴噺:{modTask.Qty}\n";
+                        ledText += $"鍒嗛厤鏁伴噺:{modTask.CompleteQty}\n";
                         ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
-                        ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
-                        ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}";
+
                         LedDisplay(ledDevice.LedIP, ledText);
                     }
                     #endregion
@@ -1749,8 +1785,53 @@
 
 
                     #endregion
+                    
                 }
                 break;
+            #region 灏忚溅鍙斁淇″彿
+            case "150":
+                { // 鑾峰彇宸ヤ綅浠诲姟鍙蜂俊鎭�
+                    var strMsg = "";
+                    var http = new HttpService();
+                    // 鑾峰彇鎵樼洏浠诲姟鍙�
+                    var modPosTask = modDevice.listStation.FirstOrDefault(m => m.Text == "浠诲姟鍙�");
+                    var (res1, val) = plcConn.GetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos);
+                    if (res1.IsSucceed)
+                    {
+                        string tasknoVal = val.ToString();
+                        var modTask = _db.Queryable<WcsTask>().First(m => m.Status == TaskStatusEnum.Doing && m.TaskNo == tasknoVal && m.IsDelete == false);
+                        if (modTask == null)
+                        {
+                            //璇诲彇鎴愬姛鍚庡啓鍏�151
+                            var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "151");//鏀跺埌鍙斁淇″彿鍚庡啓鍏�151
+                            if (ret.IsSucceed)
+                            {
+                                //鍥炰紶WMS鍙斁淇″彿
+                                strMsg = http.RequesContinueAgv(val.ToString(), modDevice.StationNum);
+                                if (!strMsg.Contains("-1"))
+                                {
+                                    // 鎻掑叆浠诲姟鏄庣粏 
+                                    var modInsertTaskMonitor = new WcsTaskMonitor()
+                                    {
+                                        TaskNo = tasknoVal,
+                                        PlcId = modDevice.Id,
+                                        PlcName = modDevice.Text,
+                                        InteractiveMsg = $"鍐欏叆鎸囦护151锛歿modDevice.StationNum}宸ヤ綅鍙帴鍙桝GV鏀捐揣鍏ュ簱",
+                                        Status = TaskStatusEnum.Complete,
+                                        StartLocat = modDevice.StationNum
+                                    };
+                                    // 鎻掑叆浜や簰鏃ュ織
+                                    _db.Insertable(modInsertTaskMonitor).ExecuteCommand();
+                                }
+                            }
+                            break;
+                        }
+                    }
+                     //
+
+                }
+                break;
+            #endregion
 
             default: break;
         }
@@ -1801,7 +1882,7 @@
     private static async void BoxConveyorLine(WcsDeviceDto modDevice) 
     {
         var plcConn = modDevice.PLCUtil;
-
+        //浜屾ゼ涓绘壂鍒嗛亾
         if (modDevice.DbNumber == "DB101")//&& modDevice.DbNumber == "DB102"&& (modDevice.DbNumber == "DB102"||modDevice.PlcIdIP == "10.18.51.110")
         {
             // 涓绘壂浜や簰娴佺▼
@@ -1811,15 +1892,26 @@
                     // 涓绘壂鐢宠鍒嗛亾 wcs鍐欏叆2
                     {
                         // 鍒ゆ柇鏄惁婕旂ず妯″紡 true锛氭紨绀烘ā寮�   false:鐢熶骇妯″紡
-                        if (PLCTaskAction.boDemo)   
+                        if (PLCTaskAction.boDemo)
                         {
                             // 閫氶亾鍙�
                             var modPosTask = modDevice.listStation.FirstOrDefault(s => s.Text == "閫氶亾鍙�");
 
-                            // 婕旂ず妯″紡鐩存帴鍐欏叆1鍒嗛亾
-                            var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "1");
+                            // 婕旂ず妯″紡鐩存帴鍐欏叆鍒嗛亾鍙�
+                            //Random random = new Random();
+                            //int ranNumber = random.Next(2) == 0 ? 1 : 5;
+                            if (fendao == 1)
+                            {
+                                fendao = 5;
+                            }
+                            else
+                            {
+                                fendao = 1;
+                            }
+                            var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, fendao.ToString()); //
                             if (ret.IsSucceed)
                             {
+                                Log.Information(string.Format("鍒嗛亾鎴愬姛锛岄亾鍙锋槸锛�" + fendao));
                                 // 鍐欏叆娴佺▼鎺у埗瀛� 2
                                 var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
                                 if (!retVal.IsSucceed)
@@ -1899,11 +1991,11 @@
                                 {
                                     // 鍒ゆ柇鏄惁鍏宠仈鍗曟嵁 wcsordertask
                                     var orderModel = _db.Queryable<WcsOderTask>()
-                                        .First(m => m.SkuNo == boxInfo.SkuNo && m.Status== TaskStatusEnum.Wait && m.LotNo == boxInfo.LotNo && m.IsDelete == false);
+                                        .First(m => m.SkuNo == boxInfo.SkuNo && m.Status == TaskStatusEnum.Wait && m.LotNo == boxInfo.LotNo && m.IsDelete == false);
                                     if (orderModel != null)
                                     {
                                         // 鏍规嵁boxinfo琛ㄤ骇绾垮瓧娈佃嚜鍔ㄧ粦瀹氬垎閬�(1绾夸骇鍝佸彧鑳界粦瀹氬埌8閬�)
-                                        if (boxInfo.LineNo != "1")
+                                        if (boxInfo.LineNo != "涓�绾�")
                                         {// 缁戝畾鍒伴櫎8閬撳鍏朵粬閬�
 
                                             // 鑾峰彇鏈粦瀹氶亾
@@ -1930,7 +2022,7 @@
                                                     break;
                                                 }
 
-                                                foreach (var lineNoModel in lineNoModels) 
+                                                foreach (var lineNoModel in lineNoModels)
                                                 {
                                                     // 璇诲彇璁惧楠岃瘉鏄惁缁戝畾鍒嗛亾
                                                     var (respg, pzNo) = plcConn.GetPlcDBValue(lineNoModel.PosType, lineNoModel.DbNumber, lineNoModel.PlcPos);
@@ -1941,16 +2033,17 @@
                                                             // plc姝ゅ垎閬撴湭瑙g粦
                                                             break;
                                                         }
-                                                        else 
+                                                        else
                                                         {
                                                             // 鑷姩缁戝畾鍒嗛亾
                                                             lineNoModel.OrderNo = orderModel.OrderNo;
                                                             lineNoModel.LotNo = boxInfo.LotNo;
                                                             lineNoModel.SkuNo = boxInfo.SkuNo;
                                                             lineNoModel.SkuName = boxInfo.SkuName;
-                                                            lineNoModel.Qty = orderModel.Qty;
+                                                            lineNoModel.Qty = 0;
                                                             lineNoModel.Status = "1";//宸茬粦瀹�
                                                             lineNoModel.PZNo = skuInfo.PZNo;
+                                                            lineNoModel.FinishQty = 0;
 
                                                             // 缁橮LC鍐欏叆鍝佽
                                                             var ret = plcConn.SetPlcDBValue(lineNoModel.PosType, lineNoModel.DbNumber, lineNoModel.PlcPos, skuInfo.PZNo);
@@ -1972,7 +2065,7 @@
                                                             }
                                                         }
                                                     }
-                                                    else 
+                                                    else
                                                     {
                                                         // 璇诲彇plc澶辫触
                                                         break;
@@ -1980,7 +2073,7 @@
                                                 }
 
                                             }
-                                            else 
+                                            else
                                             {
                                                 // 鑻ユ病鏈夌┖闂查亾锛岃繘琛屽墧闄ゅ鐞嗐�傞槻姝㈠牭濉炰欢绠辩嚎
                                                 var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
@@ -1997,7 +2090,7 @@
                                                 break;
                                             }
                                         }
-                                        else 
+                                        else
                                         {// 缁戝畾鍒�8閬�
                                          // 鑾峰彇鏈粦瀹氶亾
                                             var lineNo8Model = _db.Queryable<WcsCheckTask>()
@@ -2040,9 +2133,10 @@
                                                         lineNo8Model.LotNo = boxInfo.LotNo;
                                                         lineNo8Model.SkuNo = boxInfo.SkuNo;
                                                         lineNo8Model.SkuName = boxInfo.SkuName;
-                                                        lineNo8Model.Qty = orderModel.Qty;
+                                                        lineNo8Model.Qty = 0;
                                                         lineNo8Model.Status = "1";//宸茬粦瀹�
                                                         lineNo8Model.PZNo = skuInfo.PZNo;
+                                                        lineNo8Model.FinishQty = 0;
 
                                                         // 缁橮LC鍐欏叆鍝佽
                                                         var ret = plcConn.SetPlcDBValue(lineNo8Model.PosType, lineNo8Model.DbNumber, lineNo8Model.PlcPos, skuInfo.PZNo);
@@ -2070,7 +2164,7 @@
                                                     // 璇诲彇plc澶辫触
                                                     break;
                                                 }
-                                                
+
 
                                             }
                                             else
@@ -2091,7 +2185,7 @@
                                             }
                                         }
                                     }
-                                    else 
+                                    else
                                     {
                                         // 涓嶅叧鑱斿崟鎹洿鎺ヨ繘琛屽墧闄ゅ鐞�
                                         var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
@@ -2117,14 +2211,16 @@
                                         var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
                                         if (retVal.IsSucceed)
                                         {
-                                            if (modDevice.DbNumber == "DB102")//1L鎷嗚泛鍒嗘嫞鍚庨渶瑕佸洖浼犵鐮�
-                                            {
-                                                var http = new HttpService();
-                                                IsBaleModel2 ret1 = http.RequestBoxno(boxNoVal);
-                                                if (ret1.Success == -1)
+                                            {  // liudl 姝ゆ绋嬪簭涓嶄細鎵ц 纭鍚庣洿鎺ュ垹闄�
+                                                if (modDevice.DbNumber == "DB102")//1L鎷嗚泛鍒嗘嫞鍚庨渶瑕佸洖浼犵鐮�
                                                 {
-                                                    Log.Error("绠辩爜鍒嗘嫞鍥炰紶澶辫触锛岄渶瑕佹墜鍔ㄦ嫞璐с�傚け璐ョ鐮侊細"+boxNoVal);
-                                                    break;
+                                                    var http = new HttpService();
+                                                    IsBaleModel2 ret1 = http.RequestBoxno(boxNoVal);
+                                                    if (ret1.Success == -1)
+                                                    {
+                                                        Log.Error("绠辩爜鍒嗘嫞鍥炰紶澶辫触锛岄渶瑕佹墜鍔ㄦ嫞璐с�傚け璐ョ鐮侊細" + boxNoVal);
+                                                        break;
+                                                    }
                                                 }
                                             }
                                             break;
@@ -2138,10 +2234,88 @@
                 default: break;
             }
         }
-        else  
+        //涓�妤间富鎵垎閬�
+        else if (modDevice.DbNumber == "DB102")
+        {
+            switch (modDevice.Value.ToString())
+            {
+                case "1":
+                    // 1妤间欢绠盤LC璇锋眰WCS璇荤爜
+                    {
+                        // 璇诲彇plc绠辩爜
+                        var modBoxNo = modDevice.listStation.FirstOrDefault(m => m.Text == "涓绘壂鏉$爜");
+                        var (res, boxNo) = plcConn.GetPlcDBValue(modBoxNo.PosType, modDevice.DbNumber, modBoxNo.PlcPos);
+                        if (string.IsNullOrWhiteSpace(boxNo.ToString()))
+                        {
+
+                            // 绠变俊鎭负null鍐欏叆鍓旈櫎閫氶亾鍙�:0
+                            var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "0");
+                            if (ret.IsSucceed)
+                            {
+                                // 鍐欏叆娴佺▼鎺у埗瀛� 2
+                                var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+                                if (retVal.IsSucceed)
+                                {
+                                    Log.Error("绠辩爜涓簄ull鎴栧凡缁戝畾鎵樼洏锛岃繘琛屽墧闄ゃ��");
+                                    break;
+                                }
+                            }
+                        }
+                        else
+                        {
+                            // 绠辩爜
+                            string boxNoVal = boxNo.ToString();
+                            // 閫氶亾鍙�
+                            var modLineNo = modDevice.listStation.FirstOrDefault(m => m.Text == "閫氶亾鍙�");
+
+                            // 璋冪敤wms鎺ュ彛楠岃瘉绠辩爜鏄惁鍙嫞璐у苟杩斿洖瑁呰溅鍙�
+                            var http = new HttpService();
+                            RequestloadingAddre requesModel = http.ResultBoxInfoExportWcs(boxNoVal);
+                            if (requesModel.Success != "1")
+                            {
+                                // 绠变俊鎭负null鍐欏叆鍓旈櫎閫氶亾鍙�:0
+                                var ret = plcConn.SetPlcDBValue(modLineNo.PosType, modDevice.DbNumber, modLineNo.PlcPos, "0");
+                                if (ret.IsSucceed)
+                                {
+                                    // 鍐欏叆娴佺▼鎺у埗瀛� 2
+                                    var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+                                    if (retVal.IsSucceed)
+                                    {
+                                        Log.Error("鍑哄簱鍒嗘嫞鏍规嵁绠辩爜鑾峰彇瑁呰溅鍙eけ璐ワ紝杩涜鍓旈櫎銆�" + requesModel.Message);
+                                        break;
+                                    }
+                                }
+                            }
+                            else
+                            {
+                                // 鍐欏叆鍑哄簱鍒嗛亾鍙�
+                                // var ret = plcConn.SetPlcDBValue(modLineNo.PosType, modDevice.DbNumber, modLineNo.PlcPos, requesModel.loadingAddre);
+                                var ret = plcConn.SetPlcDBValue(modLineNo.PosType, modDevice.DbNumber, modLineNo.PlcPos, requesModel.loadingAddre);
+                                if (ret.IsSucceed)
+                                {
+                                    // 鍐欏叆娴佺▼鎺у埗瀛� 2
+                                    var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+                                    if (retVal.IsSucceed)
+                                    {
+                                        break;
+                                    }
+                                }
+                            }
+                        }
+                    }; break;
+                case "10":
+                    // 1妤间欢绠盤LC璇荤爜澶辫触锛學CS涓嶅仛澶勭悊鐩存帴鍓旈櫎鎵嬫寔鎷h揣銆�
+                    {
+
+                    }; break;
+                default:
+                    break;
+            }
+        }
+        else
         {
             // 鎻掔爜浜や簰
-            switch (modDevice.Value.ToString()) 
+            switch (modDevice.Value.ToString())
             {
                 case "1":
                     // 鎵樼洏鏉$爜鍙
@@ -2151,7 +2325,7 @@
                         // 璇诲彇PLC鎵樼洏鏉$爜鍙�
                         var (res, palletVal) = plcConn.GetPlcDBValue(modPalletNo.PosType, modDevice.DbNumber, modPalletNo.PlcPos);
                         string palletNo = palletVal.ToString();
-                        if (string.IsNullOrEmpty(palletNo)) 
+                        if (string.IsNullOrEmpty(palletNo))
                         {
                             Log.Error(string.Format("{0}锛岃鍙栫殑鎵樼洏鍙蜂负null", modDevice.Text));
                             break;
@@ -2159,18 +2333,18 @@
 
                         // 鏍规嵁宸ヤ綅鍙峰皢鎵樼洏鍙蜂繚瀛樺湪鍒嗛亾琛�
                         var checkTaskMedel = _db.Queryable<WcsCheckTask>().First(m => m.Port == modDevice.StationNum && m.IsDelete == false);
-                        if (checkTaskMedel == null) 
+                        if (checkTaskMedel == null)
                         {
                             Log.Error(string.Format("鏍规嵁鐮佸灈宸ヤ綅{0}锛岃幏鍙栧垎閬撳け璐�!", modDevice.StationNum));
                             break;
                         }
                         checkTaskMedel.PalletNo = palletNo;
                         var rowCount = _db.Updateable(checkTaskMedel).ExecuteCommand();
-                        if (rowCount > 0 ) 
+                        if (rowCount > 0)
                         {
                             // plc鍐欏叆璇诲彇鎴愬姛琛ㄧず 2
                             var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
-                            if (retVal.IsSucceed) 
+                            if (retVal.IsSucceed)
                             {
                                 // liudl  姝ゅ闇�娣诲姞
                                 // 閫氱煡鍒嗘嫞鐮佸灈椤垫洿鏂�
@@ -2190,24 +2364,24 @@
                             var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "1");
                             break;
                         }
-                        else 
+                        else
                         {
                             // 鑾峰彇绠辨潯鐮�
                             // 鑾峰彇绠辨潯鐮侀厤缃�
                             var modBoxNo = modDevice.listStation.FirstOrDefault(m => m.Text == "绠辨潯鐮�");
                             var (res, boxVal) = plcConn.GetPlcDBValue(modBoxNo.PosType, modDevice.DbNumber, modBoxNo.PlcPos);
                             string boxNo = boxVal.ToString();
-                            if (string.IsNullOrEmpty(boxNo)) 
+                            if (string.IsNullOrEmpty(boxNo))
                             {
-                                Log.Error($"鐮佸灈宸ヤ綅{modDevice.StationNum}锛岀鐮佷负null鎻掔爜澶辫触!璇蜂汉宸ュ己鍒剁粨鎵广��" );
+                                Log.Error($"鐮佸灈宸ヤ綅{modDevice.StationNum}锛岀鐮佷负null鎻掔爜澶辫触!璇蜂汉宸ュ己鍒剁粨鎵广��");
                                 // 鍐欏叆鎻掑叆缁撴灉 2锛氭彃鐮佸け璐�
                                 var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "2");
-                                
+
                                 break;
                             }
                             // 楠岃瘉绠辩爜琛ㄦ槸鍚﹀瓨鍦ㄦ绠辩爜
                             var boxInfo = _db.Queryable<WcsBoxInfo>().Where(w => w.IsDelete == false && w.BoxNo == boxNo).ToList();
-                            if (boxInfo.Count == 0) 
+                            if (boxInfo.Count == 0)
                             {
                                 Log.Error($"鐮佸灈宸ヤ綅{modDevice.StationNum}锛岀鐮亄boxNo}涓嶅瓨鍦�!璇蜂汉宸ュ己鍒剁粨鎵广��");
                                 // 鍐欏叆鎻掑叆缁撴灉 2锛氭彃鐮佸け璐�
@@ -2215,44 +2389,123 @@
                                 break;
                             }
                             // 鑾峰彇褰撳墠鍒嗛亾鎵樼洏鍙�
-                            var checkTaskMedel = _db.Queryable<WcsCheckTask>().First(m => m.Port == modDevice.StationNum && m.IsDelete == false);
+                            string port = modDevice.StationNum.ToString();
+                            var checkTaskMedel = _db.Queryable<WcsCheckTask>().First(m => m.Port == port && m.Status == "1");
                             if (checkTaskMedel == null)
                             {
                                 Log.Error(string.Format("鏍规嵁鐮佸灈宸ヤ綅{0}锛岃幏鍙栧垎閬撳け璐�!", modDevice.StationNum));
                                 break;
                             }
                             string palletNo = checkTaskMedel.PalletNo;
-                            if (string.IsNullOrEmpty(palletNo)) 
+                            if (string.IsNullOrEmpty(palletNo))
                             {
-                                Log.Error(string.Format("鑾峰彇鐮佸灈宸ヤ綅{0}涓婄殑鎵樼洏鍙峰け璐ワ紒",modDevice.StationNum));
+                                Log.Error(string.Format("鑾峰彇鐮佸灈宸ヤ綅{0}涓婄殑鎵樼洏鍙峰け璐ワ紒", modDevice.StationNum));
                                 break;
                             }
                             // 淇敼鎻掔爜琛�
-                            foreach (WcsBoxInfo item in boxInfo) 
+                            foreach (WcsBoxInfo item in boxInfo)
                             {
                                 item.PalletNo = palletNo;
                                 item.UpdateTime = DateTime.Now;
+                                item.OrderCode = checkTaskMedel.OrderNo;
                             }
-
+                            
+                            checkTaskMedel.Qty += boxInfo.First().QtyCount;//璁板綍褰撳墠鎵樼洏涓婄墿鏂欐暟閲�
+                            _db.Updateable(checkTaskMedel).ExecuteCommand();
                             var rowCount = _db.Updateable(boxInfo).ExecuteCommand();
+                            Log.Information(string.Format("鎻掔爜鎴愬姛锛岀鐮佹槸锛�" + boxNo, modDevice.StationNum));
                             if (rowCount > 0)
                             {
                                 // 鎻掔爜鎴愬姛
                                 var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "1");
-                                
+
                                 //鏄惁缁撴壒绠� 
-                                if (boxInfo[0].EndLotFlag == "1" && retVal.IsSucceed) 
+                                //if (boxInfo[0].EndLotFlag == "1" && retVal.IsSucceed)
+                                //{
+                                //    // 瑙﹀彂缁撴壒 鍒嗛亾鍙樹负缁撴壒涓�
+                                //    AutoEndLot(boxInfo[0].LotNo, plcConn, "2");
+                                //}
+                                if (retVal.IsSucceed)
                                 {
-                                    // 瑙﹀彂缁撴壒 鍒嗛亾鍙樹负缁撴壒涓�
-                                    AutoEndLot(boxInfo[0].LotNo, plcConn, "2");
+                                    //鍒よ鏄惁鎺ユ敹瀹屽伐鏁伴噺
+                                    var models = _db.Queryable<WcsCheckTask>().First(w => w.SkuNo == boxInfo.First().SkuNo && w.LotNo == boxInfo.First().LotNo);
+                                    if (models.FinishQty>0)
+                                    {
+                                        //妫�鏌ュ凡鐮佸灈绠辨暟(涓嶅惈闆剁)锛岀爜鍨涙暟閲忎笌瀹屽伐鏁伴噺鐩哥瓑鍚庤嚜鍔ㄧ粨鎵�:鍐欏叆PLC淇″彿鈥斺�旂粨鎵逛腑
+                                        int Fqty = (int)models.FinishQty;//瀹屽伐鏁伴噺
+                                        int Jpqty = 0;//宸茬爜鍨涙暟閲�
+
+                                        //鑾峰彇宸茬粍鐩樻暟閲�
+                                        var checkNum = _db.Queryable<WcsBoxInfoLog>().Where(m => m.SkuNo == models.SkuNo && m.LotNo == models.LotNo && m.OrderCode == checkTaskMedel.OrderNo).ToList();//缁勭洏琛ㄧ鐮佷俊鎭�
+                                        if (checkNum.Count > 0)
+                                        {
+                                            if (!string.IsNullOrEmpty(checkNum.First().BoxNo2) || !string.IsNullOrEmpty(checkNum.First().BoxNo3))//鏈夋敮鐮�
+                                            {
+                                                foreach (var item in checkNum)
+                                                {
+                                                    Jpqty = (int)(Jpqty + item.Qty);
+                                                }
+                                            }
+                                            else//鏃犳敮鐮�
+                                            {
+                                                foreach (var item in checkNum)
+                                                {
+                                                    Jpqty = (int)(Jpqty + item.QtyCount);
+                                                }
+                                            }
+                                        }
+                                        //鑾峰彇宸叉彃鐮佹暟閲�
+                                        var checkNum2 = _db.Queryable<WcsBoxInfo>().Where(m => m.SkuNo == models.SkuNo && m.LotNo == models.LotNo &&(m.PalletNo != null || m.PalletNo != "") && m.OrderCode == checkTaskMedel.OrderNo).ToList();//绠辩爜琛ㄥ凡鐮佸灈绠辩爜淇℃伅
+                                        if (checkNum2.Count > 0)
+                                        {
+                                            if (!string.IsNullOrEmpty(checkNum2.First().BoxNo2) || !string.IsNullOrEmpty(checkNum2.First().BoxNo3))//鏈夋敮鐮�
+                                            {
+                                                foreach (var item2 in checkNum2)
+                                                {
+                                                    Jpqty = (int)(Jpqty + item2.Qty);
+                                                }
+                                            }
+                                            else//鏃犳敮鐮�
+                                            {
+                                                foreach (var item2 in checkNum2)
+                                                {
+                                                    Jpqty = (int)(Jpqty + item2.QtyCount);
+                                                }
+                                            }
+                                        }
+                                        //鑾峰彇闆剁鏁伴噺
+                                        var checkNum3 = _db.Queryable<WcsBoxInfo>().Where(m => m.BitBoxMark == "1" && m.SkuNo == models.SkuNo && m.LotNo == models.LotNo).ToList();
+                                        if (checkNum3.Count > 0)
+                                        {
+                                            if (!string.IsNullOrEmpty(checkNum3.First().BoxNo2) || !string.IsNullOrEmpty(checkNum3.First().BoxNo3))//鏈夋敮鐮�
+                                            {
+                                                foreach (var item3 in checkNum3)
+                                                {
+                                                    Jpqty = (int)(Jpqty + item3.Qty);
+                                                }
+                                            }
+                                            else//鏃犳敮鐮�
+                                            {
+                                                foreach (var item3 in checkNum3)
+                                                {
+                                                    Jpqty = (int)(Jpqty + item3.QtyCount);
+                                                }
+                                            }
+                                        }
+                                        if (Jpqty == Fqty)
+                                        {
+                                            // 瑙﹀彂缁撴壒 鍒嗛亾鍙樹负缁撴壒涓�
+                                            AutoEndLot(boxInfo[0].LotNo, plcConn, "2");
+                                        }
+                                    }
                                 }
                             }
-                            else 
+                            else
                             {
                                 // 鎻掔爜澶辫触
                                 Log.Error($"绠辩爜{boxNo};鐮佸灈宸ヤ綅{modDevice.StationNum}锛屾彃鐮佸け璐ワ紝璇峰己鍒剁粨鎵�");
                                 var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "2");
-                                if (retVal.IsSucceed) 
+                                if (retVal.IsSucceed)
                                 {
                                     // 瑙﹀彂缁撴壒 涓嶈В缁戝垎閬�
                                     AutoEndLot(boxInfo[0].LotNo, plcConn, "1");
@@ -2263,8 +2516,8 @@
                     break;
                 case "40":
                     // 璇锋眰缁勬墭锛岀敵璇峰叆搴�
-                     {
-                        lock (OLock) 
+                    {
+                        lock (OLock)
                         {
                             // 鏍规嵁宸ヤ綅鍙凤紝鑾峰彇鎵樼洏鍙�
                             var checkTaskMedel = _db.Queryable<WcsCheckTask>().First(m => m.Port == modDevice.StationNum && m.IsDelete == false);
@@ -2277,7 +2530,7 @@
 
                                 // 鍐欏叆浜や簰宸ヤ綅鐩爣鍦板潃
                                 var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, "234");
-                                if (retVal.IsSucceed) 
+                                if (retVal.IsSucceed)
                                 {
                                     // 鍐欏叆缁勬墭鍥炲娴佺▼瀛�
                                     retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "50");
@@ -2300,11 +2553,11 @@
                                     Log.Error(string.Format("鐢宠宸烽亾澶辫触锛岀爜鍨涘伐浣峽0};鍘熷洜{1}", modDevice.StationNum, strMsg));
                                     break;
                                 }
-                                else 
+                                else
                                 {
                                     // 鑾峰彇鍏ュ簱浠诲姟淇℃伅
                                     var taskModel = _db.Queryable<WcsTask>().First(m => m.TaskNo == TaskNo && m.IsDelete == false && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing));
-                                    if (taskModel != null) 
+                                    if (taskModel != null)
                                     {
                                         // 鑾峰彇鍏ュ簱鍙栬揣宸ヤ綅
                                         string endLocatVlue = PLCCommon.RoadwayToStationNum(taskModel.EndRoadway, "2");
@@ -2359,10 +2612,10 @@
                                         //    taskModel.Status = TaskStatusEnum.Doing;
                                         //    _db.Updateable(taskModel).ExecuteCommand();
                                         //}
-                                    }   
+                                    }
                                 }
                             }
-                            else 
+                            else
                             {
                                 // 鏍规嵁鎵樼洏鍙凤紝灏嗙粍鎵樹俊鎭彃鍏oxinfolog琛� 骞跺垹闄oxinfo琛ㄦ暟鎹�
                                 var boxInfoList = _db.Queryable<WcsBoxInfo>().Where(w => w.IsDelete == false && w.PalletNo == palletNo).ToList();
@@ -2379,19 +2632,40 @@
                                     }
                                     break;
                                 }
+                                //鍒ゆ柇鎵樼洏涓婄殑绠辩爜鏄惁宸茬粍鐩�
+                                foreach (var item in boxInfoList)
+                                {
+                                    var groupBoxno = _db.Queryable<WcsBoxInfoLog>().Where(w => w.BoxNo == item.BoxNo).ToList();
+                                    if (groupBoxno.Count>0)
+                                    {
+                                        Log.Error(string.Format("鐢宠宸烽亾澶辫触锛岀爜鍨涘伐浣峽0}锛岀鐮佷俊鎭笉瀛樺湪", modDevice.StationNum));
+                                        // 鍐欏叆浜や簰宸ヤ綅鐩爣鍦板潃
+                                        var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, "234");
+                                        if (retVal.IsSucceed)
+                                        {
+                                            // 鍐欏叆缁勬墭鍥炲娴佺▼瀛�
+                                            retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "50");
+                                        }
+                                        break;
+                                    }
+                                }
+                                
+                                // 缁勬墭鎴愬姛鍚庡皢淇℃伅瀛樺埌log琛�
                                 string sqlStr = $"insert into WCSBoxInfoLog select * from WCSBoxInfo where IsDelete=0 and PalletNo='{palletNo}'";
                                 int insertCount = _db.Ado.ExecuteCommand(sqlStr);
                                 if (insertCount > 0)
                                 {
-                                    // 缁勬墭鎴愬姛鍚庡皢淇℃伅瀛樺埌log琛�
-                                    string sqlStr2 = $"delete from WCSBoxInfoLog where  IsDelete=0 and PalletNo='{palletNo}'";
+                                    string sqlStr2 = $"delete from WCSBoxInfo where  IsDelete=0 and PalletNo='{palletNo}'";
                                     _db.Ado.ExecuteCommand(sqlStr2);
                                 }
-                                
+                                //缁勭洏鎴愬姛鍚庢竻绌哄垎鎷h〃褰撳墠鎵樼洏涓婄墿鏂欐暟閲�
+                                checkTaskMedel.Qty = 0;
+                                _db.Updateable(checkTaskMedel).ExecuteCommand();
+
                                 // 鍚慦MS鐢宠宸烽亾
                                 var http = new HttpService();
                                 string TaskNo = "", EndLocate = "";
-                                string strMsg = http.BindRequestRoadWay(checkTaskMedel.OrderNo,palletNo, checkTaskMedel.BoxCount.ToDecimal(),"0", checkTaskMedel.SkuNo, checkTaskMedel.LotNo, "","", boxInfoList, 
+                                string strMsg = http.BindRequestRoadWay(checkTaskMedel.OrderNo, palletNo, checkTaskMedel.Qty.ToDecimal(), "0", checkTaskMedel.SkuNo, checkTaskMedel.LotNo, "", "", boxInfoList,
                                     modDevice.StationNum, "1", "2", ref EndLocate, ref TaskNo);
                                 if (strMsg.Contains("-1"))
                                 {
@@ -2408,6 +2682,17 @@
                                         var ret1 = plcConn.SetPlcDBValue(checkTaskMedel.PosTypeLot, modDevice.DbNumber, checkTaskMedel.PlcPos, "0");
                                         if (ret1.IsSucceed)
                                         {
+                                            //鏇存柊鍏ュ簱璁㈠崟
+                                            var orderTask = _db.Queryable<WcsOderTask>().Where(w => w.SkuNo == checkTaskMedel.SkuNo && w.LotNo == checkTaskMedel.LotNo && w.IsDelete == false).ToList();
+                                            if (orderTask.Count >0)
+                                            {
+                                                foreach (var item in orderTask)
+                                                {
+                                                    item.Status = TaskStatusEnum.Complete;
+                                                    _db.Updateable(item).ExecuteCommand();
+                                                }
+                                            }
+
                                             //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟    liudl 鏈�鍚庝竴鎵樼洏鐢宠瀹屽叆搴撴墠鍙竻绌�
                                             checkTaskMedel.OrderNo = "";
                                             checkTaskMedel.TaskNo = "";
@@ -2418,9 +2703,12 @@
                                             checkTaskMedel.Qty = 0;
                                             checkTaskMedel.PZNo = "";
                                             checkTaskMedel.Status = "0";      // 缁戝畾鍒嗛亾 0锛氳В缁�  1锛氱粦瀹� 
+                                            checkTaskMedel.FinishQty = 0;
 
                                             //鏇存柊鍒嗘嫞浠诲姟
                                             _db.Updateable(checkTaskMedel).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+
+                                            
                                         }
                                     }
                                     // 鑾峰彇鍏ュ簱浠诲姟淇℃伅
@@ -2443,7 +2731,7 @@
                                         {
                                             // 鍐欏叆缁勬墭鍥炲娴佺▼瀛�
                                             var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "50");
-                                            if (retVal.IsSucceed) 
+                                            if (retVal.IsSucceed)
                                             {
                                                 // 灏嗗叆搴撲换鍔$敱姝e湪鎵ц鏀逛负姝e湪鎵ц
                                                 taskModel.Status = TaskStatusEnum.Doing;
@@ -2473,24 +2761,25 @@
                         }
                     }
                     break;
-                default:break;
-            }
+                default: break;
+            } 
         }        
     }
 
     /// <summary>
-    /// 鎷嗗灈鏈哄櫒浜轰笟鍔″鐞�
+    /// 鍑哄簱浠剁杈撻�佸拰鎷嗗灈鏈哄櫒浜轰笟鍔″鐞�
     /// </summary>
     /// <param name="modDevice"></param>
     private static void StackingRobot(WcsDeviceDto modDevice)
     {
         var plcConn = modDevice.PLCUtil;
-        if (modDevice.DbNumber == "DB131" && modDevice.DbNumber == "DB132" && modDevice.DbNumber == "DB133" && modDevice.DbNumber == "DB134")
+        if (modDevice.DbNumber == "DB131" || modDevice.DbNumber == "DB132" || modDevice.DbNumber == "DB133" || modDevice.DbNumber == "DB134")
         {
             switch (modDevice.Value.ToString())
             {
                 case "10"://10  plc璇锋眰wcs璇绘墭鐩樼爜   20 wcs璇诲彇ok  wcs 鍐欏叆鏁伴噺鍙婅鏍�  30
-                    var strMsg = "";
+
+                    //wcs璇诲彇ok20
                     var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "20");
                     if (ret.IsSucceed)
                     {
@@ -2505,7 +2794,7 @@
                         // 鏍规嵁浠诲姟鍙疯幏鍙栦换鍔′俊鎭�
                         if (res1.IsSucceed)
                         {
-                            var modTask = _db.Queryable<WcsTask>().First(m => m.Status == TaskStatusEnum.Doing && m.TaskNo == tasknoVal && m.EndLocate == "009" && m.IsDelete == false);
+                            var modTask = _db.Queryable<WcsTask>().First(m => m.TaskNo == tasknoVal && m.EndLocate == "009" && m.IsDelete == false);
                             if (modTask == null)
                             {
                                 Log.Error(string.Format($"鍑哄簱浠诲姟鏈笅鍙戯紝璇蜂汉宸ュ鐞嗭紝鏃犳硶鎷嗗灈锛�"));
@@ -2515,45 +2804,42 @@
                             //閫氳繃浠诲姟鍙峰拰鎵樼洏鍙峰悜WMS鐢宠姝ゆ墭鐩樼殑鎷嗗灈淇℃伅
                             var http = new HttpService();
                             RequestBoxInfoCheckAll tasklist = http.RequestBoxCheckinfo(palletVal, tasknoVal);
-                            if (!tasklist.Success.Contains("-1"))
+                            if (tasklist.Success != -1)
                             {
                                 //鑾峰彇鎷嗗灈鐗╂枡鍝佺(闇�瑕佸鍔犵墿鏂欏垽鏂紝鍚屼竴涓墿鏂欏彿鍙兘浼氬嚭鐜颁笉鍚岀殑鐮佸灈瑙勫垯)
-                                var pz = _db.Queryable<WcsMateialPzInfo>().First(m => m.SkuNo == tasklist.list[0].SkuNo);
+                                var pz = _db.Queryable<WcsMateialPzInfo>().First(m => m.SkuNo == tasklist.data.SkuNo);
                                 //涓嬪彂鎷嗘墭瑙勬牸锛屾媶绠辨暟鍜屾墭鐩樹笂鎬荤鏁帮紙涓嶇粦瀹氭満鍣ㄤ汉锛屾媶鍨涗换鍔′俊鎭彧涓嬪彂涓�娆★級
                                 // 缁橮LC鍐欏叆浠诲姟鏁版嵁
                                 var listResult = new List<Result>();
                                 // 鑾峰彇鎵樼洏瑙勫垯
                                 var Standard = modDevice.listStation.FirstOrDefault(m => m.Text == "瑙勬牸");
-                                listResult.Add(plcConn.SetPlcDBValue(Standard.PosType, modDevice.DbNumber, Standard.PlcPos, tasklist.list[0].Standard));
+                                listResult.Add(plcConn.SetPlcDBValue(Standard.PosType, modDevice.DbNumber, Standard.PlcPos, pz.PZNo));
                                 //鎶撶鏁�
                                 var qty = modDevice.listStation.FirstOrDefault(m => m.Text == "鎷嗙鏁伴噺");
-                                listResult.Add(plcConn.SetPlcDBValue(qty.PosType, modDevice.DbNumber, qty.PlcPos, tasklist.list[0].Qty.ToString()));
+                                listResult.Add(plcConn.SetPlcDBValue(qty.PosType, modDevice.DbNumber, qty.PlcPos, tasklist.data.Qty.ToString()));
                                 //鎬荤鏁�
                                 var qtycount = modDevice.listStation.FirstOrDefault(m => m.Text == "鎬荤鏁�");
-                                listResult.Add(plcConn.SetPlcDBValue(qtycount.PosType, modDevice.DbNumber, qtycount.PlcPos, tasklist.list[0].QtyCount.ToString()));
+                                listResult.Add(plcConn.SetPlcDBValue(qtycount.PosType, modDevice.DbNumber, qtycount.PlcPos, tasklist.data.QtyCount.ToString()));
 
 
                                 // 鏄惁鍐欏叆鎴愬姛
                                 if (listResult.All(s => s.IsSucceed))
                                 {
-                                    var ret1 = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "20");
+                                    //wcs 鍐欏叆鏁伴噺鍙婅鏍� 30
+                                    var ret1 = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "30");
 
                                 }
                                 else
                                 {
-                                    Log.Error(string.Format($"鐮佸灈淇℃伅鏈啓鍏ワ紒鎵樼洏鍙凤細"+palletVal+"锛岀爜鍨涗綅锛�"+modDevice.StationNum));
+                                    Log.Error(string.Format($"鐮佸灈淇℃伅鏈啓鍏ワ紒鎵樼洏鍙凤細" + palletVal + "锛岀爜鍨涗綅锛�" + modDevice.StationNum));
                                     break;
                                 }
                             }
                         }
                     }
-
-                    break;
-                default:
-                    break;
+                break;
             }
-        }
-                
+        }      
     }
 
     /// <summary>

--
Gitblit v1.8.0