From 2c53ddfdef7167fed7d777ee72e6e445c0ed91d3 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周五, 06 9月 2024 07:30:08 +0800 Subject: [PATCH] 优化 op05上线 --- DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - 老版.cs | 0 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs | 94 +++++++++++-------------------- DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs | 38 ++++++++++-- DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - 新版.cs | 28 ++++++++- DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/iWare_SCADA_BusinessLogical.csproj | 4 5 files changed, 91 insertions(+), 73 deletions(-) diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs index b074e05..f0957ca 100644 --- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs +++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs @@ -190,6 +190,7 @@ info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime(); info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80"; info.CreatedUserName = loginfo.MonitoringPoint; + info.WorkingProcedureCurrent = loginfo.WorkingProcedure;//宸ュ簭璧嬪�� SystemBussinessHelper.SetWorkPieceInfoMiddleForCreatedUserName(ref info, loginfo.DataCapturePointCname); info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); info = ParseQRCode(info); @@ -197,14 +198,15 @@ } else { - if (info.WorkingProcedureCurrent.Equals("OP05")) - { - loginfo.Remarks = $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"} OP05宸ュ簭閲嶅璇诲彇浜�"; - return; - } + //瀛樺湪 琛� WorkPieceInfo鏈夛紝浣嗘槸 WorkPieceProcess杩欎釜宸ュ簭涓嶅瓨鍦ㄧ殑鎯呭喌 銆怑ditby shaocx,2024-09-06銆� + //if (info.WorkingProcedureCurrent.Equals("OP05")) + //{ + // loginfo.Remarks = $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"} OP05宸ュ簭閲嶅璇诲彇浜�"; + // return; + //} } if ((info.WorkingProcedureCurrent.Equals("OP05") && isAddWorkPieceInfo == false)) - { + {//瀛樺湪 琛� WorkPieceInfo鏈夛紝浣嗘槸 WorkPieceProcess杩欎釜宸ュ簭涓嶅瓨鍦ㄧ殑鎯呭喌 //濡傛灉鏄疧P05鐨勶紝骞朵笖鏄� 涓嶉渶瑕佹柊澧� 琛╓orkPieceInfo锛岄偅涔堝氨涓嶉渶瑕佹洿鏂拌〃 WorkPieceInfo } else @@ -222,30 +224,14 @@ info.WorkPieceCurrentPosition = loginfo.WorkingProcedure; info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2; - info.WorkingProcedureCurrent = loginfo.WorkingProcedure; + info.WorkingProcedureCurrent = loginfo.WorkingProcedure;//宸ュ簭璧嬪�� info.Remarks = $"{info.WorkingProcedureCurrent}宸ヤ欢涓婄嚎"; } //淇涓� op35 鍚屼竴涓欢 涓嬬嚎鏃堕棿璺熶笅涓�涓笂绾挎椂闂翠竴妯′竴鏍风殑闂 銆怑ditby shaocx,2024-08-27銆� var isNeedAddNewProcess = true; - var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && !o.OperationType.Equals("SPC") && (o.EndTime == null || o.EndTime <= DateTime.MinValue)).OrderByDescending(o => o.StartTime).FirstOrDefault(); - if (pro != null && pro.WorkPieceID.Length > 1) - { - if (pro.WorkingProcedureCurrent == loginfo.WorkingProcedure) - {//琛ㄧず宸ュ簭鐩稿悓 - isNeedAddNewProcess = false; - pro.Remarks = "鍙堜竴娆′笂绾匡紝鏇存柊缁撴潫鏃堕棿"; - } - else - { - pro.EndTime = DateTimeHelper.GetDateTime(); - pro.UpdatedUserName = loginfo.MonitoringPoint; - pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname; - pro.UpdatedTime = DateTimeHelper.GetDateTime(); - pro.Remarks = "鍙堜竴娆′笂绾匡紝鏇存柊缁撴潫鏃堕棿"; - } - } + //鐗规畩澶勭悊OP05涓婄嚎锛屽洜涓轰粬鏄牴鎹枃鏈垪琛ㄥ唴瀹逛笂绾跨殑 銆怑ditby shaocx,2024-09-03銆� if (loginfo.WorkingProcedure.Equals("OP05")) { @@ -253,6 +239,26 @@ if (op05Proccss != null) { isNeedAddNewProcess = false;//涓嶉渶瑕佹柊澧炰簡 + } + } + else + { + var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && !o.OperationType.Equals("SPC") && (o.EndTime == null || o.EndTime <= DateTime.MinValue)).OrderByDescending(o => o.StartTime).FirstOrDefault(); + if (pro != null && pro.WorkPieceID.Length > 1) + { + if (pro.WorkingProcedureCurrent == loginfo.WorkingProcedure) + {//琛ㄧず宸ュ簭鐩稿悓 + isNeedAddNewProcess = false; + pro.Remarks = "鍙堜竴娆′笂绾匡紝鏇存柊缁撴潫鏃堕棿"; + } + else + { + pro.EndTime = DateTimeHelper.GetDateTime(); + pro.UpdatedUserName = loginfo.MonitoringPoint; + pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname; + pro.UpdatedTime = DateTimeHelper.GetDateTime(); + pro.Remarks = "鍙堜竴娆′笂绾匡紝鏇存柊缁撴潫鏃堕棿"; + } } } if (isNeedAddNewProcess) @@ -310,6 +316,7 @@ } #region 鍒ゆ柇鏄惁璺冲簭,鎴栬川閲忎笉绗﹀悎 鐒跺悗鍙嶉PLC + /* if (IsFeedback.HasValue && IsFeedback.Value == (int)FeedbackMode.FeedbackPLC) { bool checkQualityInfoCompleteFlag = false; @@ -323,43 +330,7 @@ message = !checkQualityInfoCompleteFlag ? "璺冲簭锛�" : ""; message += info.QualityState != (int)QualityStateEnum.OK ? "璐ㄩ噺涓嶇鍚�" : ""; } - ////鍙嶉缁橮LC锛岋紙鍐欏叆鐐瑰緟瀹氾級 - //MessageModel fr = null; - //fr = plcService.WriteValuePoint("", "", plcFlag, PLCManger.GetTypeForString("bool")); - //if (fr.result) - //{ - // Log4NetHelper.WriteInfoLog(type, $" 宸ヤ欢{info.WorkPieceID} {loginfo.WorkingProcedure}宸ュ簭鍙嶉缁橮LC 鎴愬姛锛� 鍑虹幇 {message}"); - //} - //else - //{ - // Log4NetHelper.WriteErrorLog(type, $" 宸ヤ欢{info.WorkPieceID} {loginfo.WorkingProcedure}宸ュ簭鍙嶉缁橮LC 澶辫触锛� 鍑虹幇 {message} 锛屽け璐ュ師鍥狅細{fr.resMsg}"); - //} - - //#region 鍙嶉PLC - - //bool checkQualityInfoCompleteFlag = false; - //bool plcFlag = true;//鍙嶉缁橮LC鐨勬爣璁� - //string message = ""; - //checkQualityInfoCompleteFlag = WorkPieceInfoManager.CheckQualityInfoComplete(info, wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure)); - - //if (!checkQualityInfoCompleteFlag || info.QualityState != (int)QualityState.OK) - //{ - // plcFlag = false; - // message = !checkQualityInfoCompleteFlag ? "璺冲簭锛�" : ""; - //message += info.QualityState != (int)QualityState.OK ? "璐ㄩ噺涓嶇鍚�" : ""; - //} - ////鍙嶉缁橮LC锛岋紙鍐欏叆鐐瑰緟瀹氾級 - //MessageModel fr = null; - //fr = plcService.WriteValuePoint("", "", plcFlag, PLCManger.GetTypeForString("bool")); - //if (fr.result) - //{ - // Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" 宸ヤ欢{wplog.WorkPieceID} {WorkingProcedure}宸ュ簭鍙嶉缁橮LC 鎴愬姛锛� 鍑虹幇 {message}"); - //} - //else - //{ - // Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" 宸ヤ欢{wplog.WorkPieceID} {WorkingProcedure}宸ュ簭鍙嶉缁橮LC 澶辫触锛� 鍑虹幇 {message} 锛屽け璐ュ師鍥狅細{fr.resMsg}"); - //} - //#endregion + } else {//璇荤爜瀹屾垚鑻ュ伐浠惰川閲忎笉绗﹀悎鎴栧彂鐢熻烦搴忥紝涓嶇敤绠¤澶囨槸鍚︽妸宸ヤ欢鏀捐繃鍘伙紝鏁伴噰绯荤粺閮戒笉鍙樻洿褰撳墠宸ュ簭锛屽弽棣堣澶嘝LC宸ヤ欢涓嶇鍚堬紝 @@ -367,6 +338,7 @@ info.WorkingProcedureCurrent = loginfo.WorkingProcedure; } + //*/ #endregion #region 鏇存柊璁惧瀹炴椂琛� diff --git "a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - \345\244\215\345\210\266\0502\051.cs" "b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - \346\226\260\347\211\210.cs" similarity index 92% rename from "DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - \345\244\215\345\210\266\0502\051.cs" rename to "DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - \346\226\260\347\211\210.cs" index 5d893a1..d870c5e 100644 --- "a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - \345\244\215\345\210\266\0502\051.cs" +++ "b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - \346\226\260\347\211\210.cs" @@ -296,21 +296,41 @@ // 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(); +// //杞崲 +// 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()}"); + // WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), null, _dataCaptureConfig.IsFeedback); // threadStatusMonitor.Threadstatue = 1; // } - // //璁板綍涓嬫渶鍚庝竴涓爜 // lastHandlerWorkPileIDForOP0501 = Convert.ToString(dt.Rows[dt.Rows.Count - 1]["鎵撴爣鍐呭"]); diff --git "a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - \345\244\215\345\210\266.cs" "b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - \350\200\201\347\211\210.cs" similarity index 100% rename from "DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - \345\244\215\345\210\266.cs" rename to "DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - \350\200\201\347\211\210.cs" 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 484a428..042948c 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 @@ -59,6 +59,8 @@ // plcService.OpenService(); //} + string lastHandlerWorkPileIDForOP0501 = "";//鏈�鍚庝竴娆″鐞嗙殑宸ヤ欢鍙� + while (true) { ThreadStatusMonitor threadStatusMonitor = new ThreadStatusMonitor(); @@ -189,7 +191,8 @@ } } var oldTime = DateTime.Now.AddMinutes(-10); - if (currrentTime <= oldTime) + // if (currrentTime <= oldTime) + if (lastHandlerWorkPileIDForOP0501 == Convert.ToString(dt.Rows[i]["鎵撴爣鍐呭"])) {//濡傛灉excel閲岀殑鏃堕棿瑕佹瘮 褰撳墠鍓�10鍒嗛挓鏃堕棿瑕佹棭锛岄偅涔堟垜灏卞拷鐣ヤ笉澶勭悊銆� break; } @@ -198,7 +201,8 @@ else { var cacheTime = Convert.ToDateTime(cache); - if (currrentTime <= cacheTime) + //if (currrentTime <= cacheTime) + if (lastHandlerWorkPileIDForOP0501 == Convert.ToString(dt.Rows[i]["鎵撴爣鍐呭"])) {//濡傛灉excel閲岀殑鏃堕棿瑕佹瘮 鎴戠紦瀛樹腑鐨勬椂闂磋鏃╋紝閭d箞鎴戝氨蹇界暐涓嶅鐞嗐�� break; } @@ -292,22 +296,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(); + //杞崲 + 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()}"); + WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), null, _dataCaptureConfig.IsFeedback); threadStatusMonitor.Threadstatue = 1; } - + //璁板綍涓嬫渶鍚庝竴涓爜 + lastHandlerWorkPileIDForOP0501 = Convert.ToString(dt.Rows[dt.Rows.Count - 1]["鎵撴爣鍐呭"]); } } diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/iWare_SCADA_BusinessLogical.csproj b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/iWare_SCADA_BusinessLogical.csproj index 159c7d5..9e8adbe 100644 --- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/iWare_SCADA_BusinessLogical.csproj +++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/iWare_SCADA_BusinessLogical.csproj @@ -83,8 +83,8 @@ <Compile Include="BLL\SystemValue.cs" /> <Compile Include="BLL\WorkPieceInfoManager.cs" /> <Compile Include="BLL\WorkPieceLogManager.cs" /> - <Compile Include="DataCaptureHandlerV2\DataCaptureHandler_OP0501 - 澶嶅埗%282%29.cs" /> - <Compile Include="DataCaptureHandlerV2\DataCaptureHandler_OP0501 - 澶嶅埗.cs" /> + <Compile Include="DataCaptureHandlerV2\DataCaptureHandler_OP0501 - 鏂扮増.cs" /> + <Compile Include="DataCaptureHandlerV2\DataCaptureHandler_OP0501 - 鑰佺増.cs" /> <Compile Include="DataCaptureHandlerV2\DeleteDataHandler.cs" /> <Compile Include="DataCaptureHandlerV2\OP80QualityDataHandler.cs" /> <Compile Include="DataCaptureHandlerV2\DataCaptureHandler_01.cs" /> -- Gitblit v1.9.3