From 25184cadd4011856d95e76f1d79b37ce51a3e548 Mon Sep 17 00:00:00 2001 From: chengsc <Demo@DESKTOP-CPA90BF> Date: 星期三, 30 十月 2024 11:34:12 +0800 Subject: [PATCH] 修改问题 --- Admin.NET/WCS.Application/PLC/PLCService.cs | 99 ++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 85 insertions(+), 14 deletions(-) diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs index c946757..84810ce 100644 --- a/Admin.NET/WCS.Application/PLC/PLCService.cs +++ b/Admin.NET/WCS.Application/PLC/PLCService.cs @@ -85,7 +85,7 @@ PlcTaskInfo taskInfo = new PlcTaskInfo(); if (modTask.TaskType == TaskTypeEnum.Move) { - taskInfo = PLCCommon.GetEndPai(modTask.EndLocate.Substring(1, 2), modTask.EndLocate.Substring(2, 2), + taskInfo = PLCCommon.GetEndPai(modTask.EndRoadway.Substring(1, 2), modTask.EndLocate.Substring(2, 2), modTask.EndLocate.Substring(0, 2), modTask.EndLocate.Substring(4, 2), modTask.EndLocate.Substring(6, 2)); @@ -1437,7 +1437,7 @@ TaskNo = modTask.TaskNo, PlcId = modDevice.Id, PlcName = modDevice.Text, - InteractiveMsg = $"鍐欏叆鎸囦护450锛歿modDevice.StationNum}鎷i�夊畬鎴�,鎵樼洏绂诲紑宸ヤ綅", + InteractiveMsg = $"鍐欏叆鎸囦护450锛歿modDevice.StationNum}鍑哄簱瀹屾垚", PalletNo = palletVal, Status = TaskStatusEnum.Complete, StartLocat = starVal.ToString(), @@ -1473,7 +1473,7 @@ // led鏄剧ず鍐呭 var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business && m.PlcId == modDevice.PlcId); - ledText += $"鎷i�夊畬鎴愶紝鎵樼洏绂诲紑宸ヤ綅\n\n"; + ledText += $"鍑哄簱瀹屾垚\n\n"; ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n"; ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n"; ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n"; @@ -1723,7 +1723,7 @@ else { // 涓巔lc浜や簰鍐欏叆鍒嗛亾鍙峰拰娴佺▼鎺у埗瀛� - var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, checkTaskInfo.RoboatNo); + var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, checkTaskInfo.LineNo); if (ret.IsSucceed) { // 鍐欏叆娴佺▼鎺у埗瀛� 2 @@ -1802,16 +1802,17 @@ string boxNo = boxVal.ToString(); if (string.IsNullOrEmpty(boxNo)) { - Log.Error(string.Format("鐮佸灈宸ヤ綅{0}锛岀鐮佷负null鎻掔爜澶辫触!璇蜂汉宸ュ己鍒剁粨鎵广��"), modDevice.StationNum); + Log.Error($"鐮佸灈宸ヤ綅{modDevice.StationNum}锛岀鐮佷负null鎻掔爜澶辫触!璇蜂汉宸ュ己鍒剁粨鎵广��" ); // 鍐欏叆鎻掑叆缁撴灉 2锛氭彃鐮佸け璐� var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "2"); + break; } // 楠岃瘉绠辩爜琛ㄦ槸鍚﹀瓨鍦ㄦ绠辩爜 - var boxInfo = _db.Queryable<WcsBoxInfo>().First(w => w.IsDelete == false && w.BoxNo == boxNo); - if (boxInfo == null) + var boxInfo = _db.Queryable<WcsBoxInfo>().Where(w => w.IsDelete == false && w.BoxNo == boxNo).ToList(); + if (boxInfo.Count == 0) { - Log.Error(string.Format("鐮佸灈宸ヤ綅{0}锛岀鐮亄1}涓嶅瓨鍦�!璇蜂汉宸ュ己鍒剁粨鎵广��"), modDevice.StationNum,boxNo); + Log.Error($"鐮佸灈宸ヤ綅{modDevice.StationNum}锛岀鐮亄boxNo}涓嶅瓨鍦�!璇蜂汉宸ュ己鍒剁粨鎵广��"); // 鍐欏叆鎻掑叆缁撴灉 2锛氭彃鐮佸け璐� var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "2"); break; @@ -1830,26 +1831,42 @@ break; } // 淇敼鎻掔爜琛� - boxInfo.PalletNo = palletNo; - boxInfo.UpdateTime = DateTime.Now; + foreach (WcsBoxInfo item in boxInfo) + { + item.PalletNo = palletNo; + item.UpdateTime = DateTime.Now; + } + var rowCount = _db.Updateable(boxInfo).ExecuteCommand(); if (rowCount > 0) { // 鎻掔爜鎴愬姛 var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "1"); + + //鏄惁缁撴壒绠� + if (boxInfo[0].EndLotFlag == "1" && retVal.IsSucceed) + { + // 瑙﹀彂缁撴壒 瑙g粦鍒嗛亾 + AutoEndLot(boxInfo[0].LotNo, plcConn, "0"); + } } else { // 鎻掔爜澶辫触 - Log.Error(string.Format("绠辩爜{0};鐮佸灈宸ヤ綅{1}锛屾彃鐮佸け璐ワ紝璇峰己鍒剁粨鎵�"),boxNo,modDevice.StationNum); + Log.Error($"绠辩爜{boxNo};鐮佸灈宸ヤ綅{modDevice.StationNum}锛屾彃鐮佸け璐ワ紝璇峰己鍒剁粨鎵�"); var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "2"); + if (retVal.IsSucceed) + { + // 瑙﹀彂缁撴壒 涓嶈В缁戝垎閬� + AutoEndLot(boxInfo[0].LotNo, plcConn, "1"); + } } } } break; case "40": // 璇锋眰缁勬墭锛岀敵璇峰叆搴� - { + { // 鏍规嵁宸ヤ綅鍙凤紝鑾峰彇鎵樼洏鍙� var checkTaskMedel = _db.Queryable<WcsCheckTask>().First(m => m.Port == modDevice.StationNum && m.IsDelete == false); // 鏍规嵁宸ヤ綅鍙疯幏鍙� 鎵樼洏绾胯宸ヤ綅鍙风殑閰嶇疆淇℃伅 @@ -1967,7 +1984,8 @@ int insertCount = _db.Ado.ExecuteCommand(sqlStr); if (insertCount > 0) { - string sqlStr2 = $"delete from WCSBoxInfo where IsDelete=0 and PalletNo='{palletNo}'"; + // 缁勬墭鎴愬姛鍚庡皢淇℃伅瀛樺埌log琛� + string sqlStr2 = $"delete from WCSBoxInfoLog where IsDelete=0 and PalletNo='{palletNo}'"; _db.Ado.ExecuteCommand(sqlStr2); } // 鍚慦MS鐢宠宸烽亾 @@ -2074,7 +2092,11 @@ Log.Error(ex.Message); } } - + /// <summary> + /// LED淇℃伅灞曠ず + /// </summary> + /// <param name="ip"></param> + /// <param name="text"></param> private static void LedDisplay(string ip,string text) { try @@ -2090,6 +2112,55 @@ } } + /// <summary> + /// 鑷姩缁撴壒 + /// </summary> + /// <param name="lotNo">鎵规鍙�</param> + /// <param name="plcConn">Plc杩炴帴</param> + /// <param name="status">鏄惁瑙g粦鍒嗛亾 0锛氳В缁� 1锛氱粦瀹�</param> + private static void AutoEndLot(string lotNo,PLCUtil plcConn,string status) + { + try + { + if (string.IsNullOrWhiteSpace(lotNo)) + { + Console.WriteLine("鎵规鍙蜂负nul"); + } + var checkTaskList = _db.Queryable<WcsCheckTask>().Where(w => w.LotNo == lotNo && w.Status == "1").ToList(); + if (checkTaskList.Count <= 0) + { + Console.WriteLine("鏈壘鍒板垎閬撶粦瀹氫俊鎭�"); + } + foreach (var item in checkTaskList) + { + #region#缁橮LC鍐欏叆缁撴壒鎵规鍙� + var ret = plcConn.SetPlcDBValue(item.PosTypeLot, item.DbNumber, item.PosLot, "1"); + if (ret.IsSucceed) + { + //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟 + item.OrderNo = ""; + item.TaskNo = ""; + item.LotNo = ""; + item.SkuNo = ""; + item.SkuName = ""; + item.BoxType = ""; + item.Qty = 0; + item.PZNo = ""; + item.Status = status; // 缁戝畾鍒嗛亾 0锛氳В缁� 1锛氱粦瀹� + + //鏇存柊鍒嗘嫞浠诲姟 + _db.Updateable(item).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); + } + #endregion + } + } + catch (Exception ex) + { + Log.Error(ex.Message); + throw; + } + } + private static void Test(WcsDeviceDto modDevice) { //鍐欐娴嬭瘯璇籹tring -- Gitblit v1.8.0