From 4422008672f79f74841e11f20430c5e76686e293 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周四, 19 12月 2024 10:33:46 +0800 Subject: [PATCH] 修复 hmid更改合格状态,没清理 不合格原因的问题 --- DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs | 72 +++++++++++++++++++++++++---------- 1 files changed, 51 insertions(+), 21 deletions(-) diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs index 9e5649a..e1f8283 100644 --- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs +++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs @@ -1,4 +1,5 @@ 锘縰sing iWare_SCADA_BusinessLogical.BLL; +using iWare_SCADA_BusinessLogical.BLL.Important; using iWare_SCADA_BusinessLogical.Utils; using iWare_SCADA_Model; using System; @@ -59,6 +60,8 @@ // plcService.OpenService(); //} + string lastHandlerWorkPileIDForOP0501 = "";//鏈�鍚庝竴娆″鐞嗙殑宸ヤ欢鍙� + while (true) { ThreadStatusMonitor threadStatusMonitor = new ThreadStatusMonitor(); @@ -91,7 +94,7 @@ var path = ConfigHelper.GetConfigString("WorkPeiceIDPath");//鎵撶爜鏈烘墦鐮佷簩缁寸爜璺緞 //鎵弿鍏变韩鐩綍骞跺皢鏂扮殑鏂囦欢鎵弿杩斿洖 涓�鑸妭鎷嶅湪15绉掑乏鍙筹紙鍙互纭涓�涓嬶級 //鎵弿淇敼鏃堕棿鍦ㄤ笂娆℃壂鎻忔椂闂翠箣鍓�10绉掑埌褰撳墠鏃堕棿鐨勪箣闂寸殑鏂囦欢 - var dataTime = CommonManager.Instance.CheackPath(Environment.CurrentDirectory + "\\LastModifyTime\\OP05-LastScapTime.txt", 4,-10); + var dataTime = CommonManager.Instance.CheackPath(Environment.CurrentDirectory + "\\LastModifyTime\\OP05-LastScapTime.txt", 4, -10); var scapEndTime = DateTimeHelper.GetDateTime(); var newFiles = FileHelper.DetectNewFilesCSV(path, 60, Convert.ToDateTime(dataTime), scapEndTime); @@ -104,7 +107,7 @@ threadStatusMonitor.Threadlastmodifytime = DateTime.Now; Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{_dataCaptureConfig.WorkingProcedure}宸ュ簭璇诲彇宸ユ帶鏈轰腑浜岀淮鐮佷俊鎭�,鏂囦欢鍚�:{file.FullName}"); - DataTable dt = null; + DataTable dt = null; dt = CSVHelper.ReadCSV(file.FullName); if (dt == null) { @@ -166,9 +169,9 @@ } Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), - $"{_dataCaptureConfig.WorkingProcedure}宸ュ簭璇诲彇宸ユ帶鏈轰腑浜岀淮鐮佷俊鎭�,宸ヤ欢鏈�鏂版椂闂�:{(cache==null?"鏃犵紦瀛�":cache.ToString())}"); + $"{_dataCaptureConfig.WorkingProcedure}宸ュ簭璇诲彇宸ユ帶鏈轰腑浜岀淮鐮佷俊鎭�,宸ヤ欢鏈�鏂版椂闂�:{(cache == null ? "鏃犵紦瀛�" : cache.ToString())}"); for (int i = dt.Rows.Count - 1; i >= 0; i--) - { + {//闄嶅簭锛屽嵆浼樺厛璇诲彇鏈�鍚庝竴鏉℃暟鎹� string timeValue = " "; try { @@ -183,14 +186,15 @@ { if (j == 0) { - if(currrentTime>DateTimeHelper.GetDateTime().AddHours(-10)) + if (currrentTime > DateTimeHelper.GetDateTime().AddHours(-10)) { lasttime = currrentTime; } } var oldTime = DateTime.Now.AddMinutes(-10); - if (currrentTime <= oldTime) - { + // if (currrentTime <= oldTime) + if (lastHandlerWorkPileIDForOP0501 == Convert.ToString(dt.Rows[i]["鎵撴爣鍐呭"])) + {//濡傛灉excel閲岀殑鏃堕棿瑕佹瘮 褰撳墠鍓�10鍒嗛挓鏃堕棿瑕佹棭锛岄偅涔堟垜灏卞拷鐣ヤ笉澶勭悊銆� break; } filteredRows[j] = dt.Rows[i]; @@ -198,8 +202,9 @@ else { var cacheTime = Convert.ToDateTime(cache); - if (currrentTime <= cacheTime) - { + //if (currrentTime <= cacheTime) + if (lastHandlerWorkPileIDForOP0501 == Convert.ToString(dt.Rows[i]["鎵撴爣鍐呭"])) + {//濡傛灉excel閲岀殑鏃堕棿瑕佹瘮 鎴戠紦瀛樹腑鐨勬椂闂磋鏃╋紝閭d箞鎴戝氨蹇界暐涓嶅鐞嗐�� break; } filteredRows[j] = dt.Rows[i]; @@ -221,7 +226,7 @@ } } - filteredRows = filteredRows.Where(item=>item!=null).ToArray(); + filteredRows = filteredRows.Where(item => item != null).ToArray(); // 璁剧疆缂撳瓨鍊� DateTime absoluteExpiration = DateTime.Now.AddDays(30); TimeSpan slidingExpiration = TimeSpan.FromMinutes(20); @@ -244,7 +249,7 @@ dataTime = file.LastAccessTime.ToString(); writer.Write(dataTime); } - Log4NetHelper.WriteInfoLog(LogType.PLCOP05, $"璇诲彇鍒皗filteredRows.Count()}琛屾暟鎹紝鏃堕棿鑼冨洿鏄瘂filteredRows[j-1]["鏃堕棿"]}-{filteredRows[0]["鏃堕棿"]}"); + Log4NetHelper.WriteInfoLog(LogType.PLCOP05, $"璇诲彇鍒皗filteredRows.Count()}琛屾暟鎹紝鏃堕棿鑼冨洿鏄瘂filteredRows[j - 1]["鏃堕棿"]}-{filteredRows[0]["鏃堕棿"]}"); } //// 宸ヤ欢鍙凤紙浜岀淮鐮佸�硷級 @@ -266,16 +271,19 @@ //wplog.EquipmentID = WorkingProcedure; wplog.Remarks = "cs"; wplog.MonitoringPoint = DataCapturePointCode; + //wplog.CreatedUserName = DataCapturePointCode; + SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref wplog, DataCapturePointCode, DataCapturePointCname); wplog.CreatedTime = DateTimeHelper.GetDateTime(); - wplog.CreatedUserName = DataCapturePointCode; wplog.UpdatedTime = DateTimeHelper.GetDateTime(); - wplog.UpdatedUserName = Environment.MachineName+"鑷姩" + Thread.CurrentThread.ManagedThreadId.ToString(); + wplog.UpdatedUserName = Environment.MachineName + "鑷姩" + Thread.CurrentThread.ManagedThreadId.ToString(); wplog.IsDeleted = false; wplog.EquipmentID = _dataCaptureConfig.EquipmentID; wplog.OnlineTime = DateTimeHelper.GetDateTime();//缁欎笂绾挎椂闂寸敤 - wplog.QualityState = 1; + //wplog.QualityState = 1; + wplog.QualityState = (int)QualityStateEnum.OK;//榛樿鍚堟牸锛孫P05榛樿鍚堟牸 + wplog.ProcessingDuration = 1; wplog.MachineToolState = 1; wplog.AlertType = 1; @@ -289,22 +297,44 @@ wplog.KnifeToolEarlyWarningLife = 3; wplog.KnifeToolSurplusLife = 10; + //蹇�熷鐞� + List<WorkPieceLog> wplogs = new List<WorkPieceLog>(); + foreach (var item in filteredRows) { - Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), - $"{_dataCaptureConfig.WorkingProcedure}宸ュ簭璇诲彇宸ユ帶鏈轰腑浜岀淮鐮佷俊鎭�,璇诲彇宸ヤ欢浜岀淮鐮�:{item["鎵撴爣鍐呭"].ToString()}"); - if (item == null) break; wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId(); wplog.WorkPieceID = item["鎵撴爣鍐呭"].ToString(); wplog.OfflineTime = Convert.ToDateTime(dataTime); wplog.Remarks = item["鏃堕棿"].ToString() + "|" + item["鎵撴爣鍐呭"].ToString() + "|" + item["鎵撴爣鍐呭"].ToString() + "|" + item["鎵爜绛夌骇"].ToString() + "|" + item["鎵爜缁撴灉"].ToString(); - WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), null, _dataCaptureConfig.IsFeedback); + //杞崲 + WorkPieceLog newLog = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLog>(wplog); + wplogs.Add(newLog); + } + //鏌ヨ鏁版嵁锛岃繃婊� + var queryList = wplogs.Select(x => x.WorkPieceID).ToList(); + List<WorkPieceProcess> new_exist_WorkPieceProcess = new List<WorkPieceProcess>(); + using (DbModel db = new DbModel()) + { + //鎵惧埌鏁版嵁搴撲腑宸叉湁杩欎釜宸ュ簭鐨勬暟鎹� + new_exist_WorkPieceProcess = db.WorkPieceProcess.Where(o => queryList.Contains(o.WorkPieceID) + && o.WorkingProcedureCurrent == _dataCaptureConfig.WorkingProcedure).ToList(); + } + var querynew__exist_WorkPieceProcessList = new_exist_WorkPieceProcess.Select(x => x.WorkPieceID).ToList(); + //鎵惧埌闇�瑕佹柊澧炵殑鏁版嵁 + wplogs = wplogs.Where(x => !querynew__exist_WorkPieceProcessList.Contains(x.WorkPieceID)).ToList(); + foreach (var item in wplogs) + { + Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), + $"{_dataCaptureConfig.WorkingProcedure}宸ュ簭璇诲彇宸ユ帶鏈轰腑浜岀淮鐮佷俊鎭�,璇诲彇宸ヤ欢浜岀淮鐮�:{item.WorkPieceID.ToString()}"); + + ReadQRcodeManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), null, _dataCaptureConfig.IsFeedback); threadStatusMonitor.Threadstatue = 1; } - + //璁板綍涓嬫渶鍚庝竴涓爜 + lastHandlerWorkPileIDForOP0501 = Convert.ToString(dt.Rows[dt.Rows.Count - 1]["鎵撴爣鍐呭"]); } } @@ -314,7 +344,7 @@ //Log4NetHelper.WriteInfoLog(LogType.PLCOP05, $"鎵弿瀹屾垚锛屽叡鎵弿鍒帮細锛坽fileCount.Count()}锛変釜鏂囦欢"); } //SystemValue.value_OP0501 = value.ToString(); - } + } } catch (Exception ex) { @@ -343,7 +373,7 @@ SystemValue.lbl_Alert_OP0501 = $"{_dataCaptureConfig.WorkingProcedure}宸ュ簭鎵撴爣瀹屾垚鏍囪锛岃鍙栧伐鎺ф満涓墦鍗颁簩缁寸爜淇℃伅锛屼笉鍋氭牎楠岋紝璇风‘璁ら厤缃俊鎭紒"; Log4NetHelper.WriteInfoLog(LogType.PLCOP05, $"{_dataCaptureConfig.WorkingProcedure}宸ュ簭鎵撴爣瀹屾垚鏍囪锛岃鍙栧伐鎺ф満涓墦鍗颁簩缁寸爜淇℃伅锛屼笉鍋氭牎楠岋紝璇风‘璁ら厤缃紓甯�"); } - + } } -- Gitblit v1.9.3