From 70b4bdc6f999c55b75138e013abf436100e9987b Mon Sep 17 00:00:00 2001 From: liudl <673013083@qq.com> Date: 星期一, 23 六月 2025 15:33:16 +0800 Subject: [PATCH] 修改手自动 --- Admin.NET/WCS.Application/PLC/PLCService.cs | 207 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 163 insertions(+), 44 deletions(-) diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs index eced7d0..0e5d647 100644 --- a/Admin.NET/WCS.Application/PLC/PLCService.cs +++ b/Admin.NET/WCS.Application/PLC/PLCService.cs @@ -218,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); } } @@ -453,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); // 姝ゅ娣诲姞涓嶇┖璺戜笟鍔� @@ -1069,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); } @@ -1251,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); } } @@ -1458,14 +1477,19 @@ // led鏄剧ず鍐呭 // 鏍规嵁鐩爣宸ヤ綅鍙疯幏鍙栧搴旂殑LEDIP鍦板潃 - var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business && m.PlcId == modDevice.PlcId); + //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.PalletNo}\n\n"; - ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n"; - ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}"; - LedDisplay(ledDevice.LedIP, ledText); + //ledText += $"鍑哄簱瀹屾垚\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"; + //ledText += $"鎵瑰彿:{taskInfo.LotNo}\n"; + //ledText += $"鍑哄簱鏁伴噺:{taskInfo.Qty}\n"; + //ledText += $"鍒嗛厤鏁伴噺:{taskInfo.CompleteQty}\n"; + //ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n"; + //LedDisplay(ledDevice.LedIP, ledText); } // 鍙嶉WMS鍑哄簱瀹屾垚 //TaskReques taskReques = new TaskReques(); @@ -1545,11 +1569,17 @@ // led鏄剧ず鍐呭 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 += $"鍑哄簱瀹屾垚\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 @@ -1965,7 +1995,7 @@ if (orderModel != null) { // 鏍规嵁boxinfo琛ㄤ骇绾垮瓧娈佃嚜鍔ㄧ粦瀹氬垎閬�(1绾夸骇鍝佸彧鑳界粦瀹氬埌8閬�) - if (boxInfo.LineNo != "1") + if (boxInfo.LineNo != "涓�绾�") {// 缁戝畾鍒伴櫎8閬撳鍏朵粬閬� // 鑾峰彇鏈粦瀹氶亾 @@ -2010,9 +2040,10 @@ 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); @@ -2102,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); @@ -2357,7 +2389,8 @@ 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)); @@ -2376,7 +2409,9 @@ 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) @@ -2385,18 +2420,85 @@ var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "1"); //鏄惁缁撴壒绠� - if (boxInfo[0].EndLotFlag == "1" && retVal.IsSucceed) - { - // 瑙﹀彂缁撴壒 鍒嗛亾鍙樹负缁撴壒涓� - AutoEndLot(boxInfo[0].LotNo, plcConn, "2"); - } - - //妫�鏌ュ凡鐮佸灈绠辨暟锛岀爜鍨涙暟閲忎笌瀹屽伐鏁伴噺鐩哥瓑鍚庤嚜鍔ㄧ粨鎵� - //var finishiqty = _db.Queryable<WcsBoxInfoLog>().Count(m => m.SkuNo = ) - //if (true) + //if (boxInfo[0].EndLotFlag == "1" && retVal.IsSucceed) //{ - + // // 瑙﹀彂缁撴壒 鍒嗛亾鍙樹负缁撴壒涓� + // AutoEndLot(boxInfo[0].LotNo, plcConn, "2"); //} + if (retVal.IsSucceed) + { + //鍒よ鏄惁鎺ユ敹瀹屽伐鏁伴噺 + 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 { @@ -2556,11 +2658,14 @@ 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")) { @@ -2577,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 = ""; @@ -2587,9 +2703,12 @@ checkTaskMedel.Qty = 0; checkTaskMedel.PZNo = ""; checkTaskMedel.Status = "0"; // 缁戝畾鍒嗛亾 0锛氳В缁� 1锛氱粦瀹� + checkTaskMedel.FinishQty = 0; //鏇存柊鍒嗘嫞浠诲姟 _db.Updateable(checkTaskMedel).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); + + } } // 鑾峰彇鍏ュ簱浠诲姟淇℃伅 -- Gitblit v1.8.0