From e4f89a92209ebca77240edaa3b78f66eb6e4b3d5 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周五, 06 9月 2024 08:58:43 +0800 Subject: [PATCH] 修复为null的问题 --- DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs | 153 ++++++++++++++++++++++++--------------------------- 1 files changed, 72 insertions(+), 81 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 0a641a4..b0bf5f0 100644 --- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs +++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs @@ -183,13 +183,14 @@ info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; } else - { + {//OP05宸ュ簭 info.QualityState = (int)QualityStateEnum.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍� info.Remarks = "OP05鏂板宸ヤ欢淇℃伅"; } 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,46 +198,40 @@ } 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; + //} } - info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();// - info.WorkingProcedureEndTime = null; - info.WorkPieceState = (int)WorkPieceState.WIP; - info.EquipmentID = loginfo.EquipmentID; - info.QualityStateUpdateUser = loginfo.UpdatedUserName; - info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime; - info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); - info.UpdatedUserName = loginfo.MonitoringPoint; - SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref info, loginfo.DataCapturePointCname); - info.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - info.WorkPieceCurrentPosition = loginfo.WorkingProcedure; - info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2; - info.WorkingProcedureCurrent = loginfo.WorkingProcedure; - info.Remarks = $"{info.WorkingProcedureCurrent}宸ヤ欢涓婄嚎"; + if ((loginfo.WorkingProcedure.Equals("OP05") && isAddWorkPieceInfo == false)) + {//瀛樺湪 琛� WorkPieceInfo鏈夛紝浣嗘槸 WorkPieceProcess杩欎釜宸ュ簭涓嶅瓨鍦ㄧ殑鎯呭喌 + //濡傛灉鏄疧P05鐨勶紝骞朵笖鏄� 涓嶉渶瑕佹柊澧� 琛╓orkPieceInfo锛岄偅涔堝氨涓嶉渶瑕佹洿鏂拌〃 WorkPieceInfo + } + else + { + info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();// + info.WorkingProcedureEndTime = null; + info.WorkPieceState = (int)WorkPieceState.WIP; + info.EquipmentID = loginfo.EquipmentID; + info.QualityStateUpdateUser = loginfo.UpdatedUserName; + info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime; + info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); + info.UpdatedUserName = loginfo.MonitoringPoint; + SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref info, loginfo.DataCapturePointCname); + info.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); + + info.WorkPieceCurrentPosition = loginfo.WorkingProcedure; + info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2; + 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")) { @@ -244,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) @@ -274,12 +289,22 @@ new_process.Remarks = ""; new_process.MyRemarks = "璇荤爜涓婄嚎鏃讹紝姣忔鎵弿涓婄嚎閮芥彃鍏ヨ拷婧〃"; if (loginfo.WorkingProcedure.Equals("OP05")) - { + {//鐗规畩澶勭悊OP05宸ュ簭 new_process.EndTime = new_process.StartTime; + + //濡傛灉宸茬粡瀛樺湪鍏朵粬宸ュ簭锛岄偅涔堝氨蹇呴』瑕佹寜鐓у叾浠栧伐搴忕殑鏃堕棿寰�鍓嶆帹鏁版嵁 銆怑ditby shaocx,2024-09-05銆� + var op05OtherProccss = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID).OrderBy(x => x.StartTime).FirstOrDefault(); + if (op05OtherProccss != null) + {//璇存槑鏈夛紝閭d箞鏃堕棿灏辨寜鐓ц繖涓椂闂村線鍓嶆帹 + var _time = op05OtherProccss.StartTime.AddHours(-1); + new_process.StartTime = _time; + new_process.EndTime = _time; + new_process.CreatedTime = _time; + new_process.UpdatedTime = _time; + } } db.WorkPieceProcess.Add(new_process); } - //db.Database.AutoTransactionsEnabled = false;// 鍚屼竴涓猄aveChanges榛樿浜嬪姟锛� 鍏抽棴榛樿浜嬪姟锛�... 濂藉儚涓嶈兘鐢ㄥ晩锛屽悗闈㈠啀鐮旂┒鍚� if (isAddWorkPieceInfo) { @@ -291,6 +316,7 @@ } #region 鍒ゆ柇鏄惁璺冲簭,鎴栬川閲忎笉绗﹀悎 鐒跺悗鍙嶉PLC + /* if (IsFeedback.HasValue && IsFeedback.Value == (int)FeedbackMode.FeedbackPLC) { bool checkQualityInfoCompleteFlag = false; @@ -304,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宸ヤ欢涓嶇鍚堬紝 @@ -348,6 +338,7 @@ info.WorkingProcedureCurrent = loginfo.WorkingProcedure; } + //*/ #endregion #region 鏇存柊璁惧瀹炴椂琛� @@ -1929,7 +1920,7 @@ .OrderByDescending(o => o.WarnStartTime).FirstOrDefault(); if (loginfo.IsMessage) {//鑻ユ湁鍛婅锛屽鏋滄湁璁惧鐘舵�佸彉鏇达紝鑲畾鎻掑叆锛屾澶勫彧淇敼鍗冲彲 - //鑻ユ湁鍛婅锛屽鏋滆澶囩姸鎬佹病鏈夊彉鏇达紝鏈夊憡璀︼紝涔熶笉鎻掑叆鏂扮殑锛堥棶棰橈細褰撶姸鎬佹病鏈夋洿鏀癸紝濡備竴鐩存槸鏁呴殰锛屼絾鍛婅淇℃伅鏈夊彉鍖栵紝鎬庝箞鍔� ps锛氭澶勫厛涓嶇锛� + //鑻ユ湁鍛婅锛屽鏋滆澶囩姸鎬佹病鏈夊彉鏇达紝鏈夊憡璀︼紝涔熶笉鎻掑叆鏂扮殑锛堥棶棰橈細褰撶姸鎬佹病鏈夋洿鏀癸紝濡備竴鐩存槸鏁呴殰锛屼絾鍛婅淇℃伅鏈夊彉鍖栵紝鎬庝箞鍔� ps锛氭澶勫厛涓嶇锛� infolog.WarnStartTime = DateTimeHelper.GetDateTime(); infolog.WarnType = alertall; infolog.Warnmsg = warnmsg; @@ -2279,10 +2270,10 @@ info.UpdatedTime = DateTimeHelper.GetDateTime(); info.UpdatedUserName = threadinfo.Threadcode; info.Threadlastmodifytime = threadinfo.Threadlastmodifytime > DateTime.MinValue ? threadinfo.Threadlastmodifytime : info.Threadlastmodifytime;//濡傛灉鏈変紶鍙傚垯鏇存柊 - //if (info.Threadstatue==1) - //{ - // info.Threadlastmodifytime = DateTimeHelper.GetDateTime();//鏈�鏂拌窇鍒版暟鎹� - //} + //if (info.Threadstatue==1) + //{ + // info.Threadlastmodifytime = DateTimeHelper.GetDateTime();//鏈�鏂拌窇鍒版暟鎹� + //} } db.SaveChanges(); } -- Gitblit v1.9.3