From 05f2a20bb792169bf7b8a101af8718b96449f55a Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周五, 06 9月 2024 16:11:33 +0800 Subject: [PATCH] 整理代码 --- DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs | 1227 +++++++++++++--------------------------------------------- 1 files changed, 273 insertions(+), 954 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 eaae713..e01949f 100644 --- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs +++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs @@ -1,4 +1,5 @@ -锘縰sing iWare_SCADA_BusinessLogical.Utils; +锘縰sing HslCommunication.BasicFramework; +using iWare_SCADA_BusinessLogical.Utils; using iWare_SCADA_Model; using iWare_SCADA_Model.MiddleModel; using iWare_SCADA_Model.TableModel; @@ -7,6 +8,7 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.Data.Entity.Validation; using System.Diagnostics; //using System.Data.Entity.Infrastructure; using System.Linq; @@ -21,32 +23,32 @@ { public class WorkPieceInfoManager { - public static WorkPieceInfo GetWorkPieceInfo(string WorkPieceID) - { - using (DbModel db = new DbModel()) - { - //鏌ヨ鎵�鏈� - var query = db.WorkPieceInfo.Where(o => o.WorkPieceID == WorkPieceID).FirstOrDefault(); - return query; - } - } + //public static WorkPieceInfo GetWorkPieceInfo(string WorkPieceID) + //{ + // using (DbModel db = new DbModel()) + // { + // //鏌ヨ鎵�鏈� + // var query = db.WorkPieceInfo.Where(o => o.WorkPieceID == WorkPieceID).FirstOrDefault(); + // return query; + // } + //} - public static long InsertWorkPieceInfo(WorkPieceInfo workPiece) - { - using (DbModel db = new DbModel()) - { - db.WorkPieceInfo.Add(workPiece); - db.SaveChanges(); - return workPiece.Id; - } - } + //public static long InsertWorkPieceInfo(WorkPieceInfo workPiece) + //{ + // using (DbModel db = new DbModel()) + // { + // db.WorkPieceInfo.Add(workPiece); + // db.SaveChanges(); + // return workPiece.Id; + // } + //} - public static WorkPieceLogMiddle GetAddWorkPieceLog(WorkPieceLogMiddle loginfo) - { - loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - return loginfo; - } + //public static WorkPieceLogMiddle GetAddWorkPieceLog(WorkPieceLogMiddle loginfo) + //{ + // loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId(); + // return loginfo; + //} /// <summary> /// 缁橶orkPieceLog涓婚敭绛夊叕鍏辩殑鐨勫睘鎬ц祴鍊� @@ -149,217 +151,12 @@ } catch (Exception ex) { - loginfo.Remarks = (loginfo.Remarks ?? "") + $"{loginfo.WorkPieceID ?? "绌�"}鍒�鍏峰鍛芥洿鏂版暟鎹紓甯竰ex.Message}"; + loginfo.Remarks = $"{loginfo.WorkPieceID ?? "绌�"}鍒�鍏峰鍛芥洿鏂版暟鎹紓甯竰ex.Message}"; } } - /// <summary> - /// 璇诲彇浜岀淮鐮佹椂閫昏緫 - /// 鏍¢獙宸ヤ欢鏄惁璺冲簭锛岃川閲忔槸鍚﹀悎鏍� - /// </summary> - public static void ReadQRcode(WorkPieceLog loginfo, LogType type, PLCService plcService, int? IsFeedback) - {//姝ゅ鍚屾椂鎻掑叆浜哤orkPieceLog锛學orkPieceInfoLog琛紝骞舵柊澧炴垨淇敼WorkPieceInfo琛� - using (DbModel db = new DbModel()) - { - try - { - bool isAddWorkPieceInfo = false; - if (loginfo.WorkPieceID.Length == 22) - { - WorkPieceInfo info = new WorkPieceInfo(); - info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); - if (info == null || info.WorkPieceID.Length < 1) - {//鎻掑叆WorkPieceInfo琛� - loginfo = CommonManager.Instance.GetWorkPieceID(loginfo, type); - info = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLog>(loginfo); - //EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict()); - if (!loginfo.WorkingProcedure.Equals("OP05")) - {//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬� - info.QualityState = (int)QualityState.Suspected; - info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; - info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; - } - else - { - info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� - info.Remarks = "OP05鏂板宸ヤ欢淇℃伅"; - } - info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime(); - info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80"; - info.CreatedUserName = loginfo.MonitoringPoint; - info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - info = ParseQRCode(info); - isAddWorkPieceInfo = true; - } - else - { - if (info.WorkingProcedureCurrent.Equals("OP05")) - { - loginfo.Remarks = (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; - 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.Remarks ?? "" + $"{info.WorkingProcedureCurrent}宸ヤ欢涓婄嚎"; - - 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) - { - pro.EndTime = DateTimeHelper.GetDateTime(); - pro.UpdatedUserName = loginfo.MonitoringPoint; - pro.UpdatedTime = DateTimeHelper.GetDateTime(); - pro.Remarks = (pro.Remarks ?? "") + "鍙堜竴娆′笂绾匡紝鏇存柊缁撴潫鏃堕棿"; - } - //姣忔鎵弿涓婄嚎閮芥彃鍏ヨ拷婧〃 - WorkPieceProcess process = new WorkPieceProcess(); - process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info); - process.StartTime = DateTimeHelper.GetDateTime(); - process.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK; - process.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - process.CreatedUserName = loginfo.MonitoringPoint; - process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - process.UpdatedUserName = loginfo.MonitoringPoint; - process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - process.OperationType = OperationType.鐢熶骇.ToString(); - process.Remarks = ""; - if (loginfo.WorkingProcedure.Equals("OP05")) - { - process.EndTime = process.StartTime; - } - db.WorkPieceProcess.Add(process); - - //db.Database.AutoTransactionsEnabled = false;// 鍚屼竴涓猄aveChanges榛樿浜嬪姟锛� 鍏抽棴榛樿浜嬪姟锛�... 濂藉儚涓嶈兘鐢ㄥ晩锛屽悗闈㈠啀鐮旂┒鍚� - if (isAddWorkPieceInfo) - { - db.WorkPieceInfo.Add(info); - } - else - {//涓嶇‘瀹歩nfo鏄洿鎺ヤ細淇敼杩樻槸闇�瑕佸啀娆℃煡璇紝寰呮祴璇� - //info.Remarks = "淇敼锛屽叿浣撲慨鏀归�昏緫寰呭畾"; - } - - #region 鍒ゆ柇鏄惁璺冲簭,鎴栬川閲忎笉绗﹀悎 鐒跺悗鍙嶉PLC - if (IsFeedback.HasValue && IsFeedback.Value == (int)FeedbackMode.FeedbackPLC) - { - bool checkQualityInfoCompleteFlag = false; - bool plcFlag = true;//鍙嶉缁橮LC鐨勬爣璁� - string message = ""; - checkQualityInfoCompleteFlag = WorkPieceInfoManager.CheckQualityInfoComplete(info, loginfo, type); - - 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(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宸ヤ欢涓嶇鍚堬紝 - //鑻ュ伐搴忓悗缁敹闆嗙偣鏀跺埌鐩稿叧宸ヤ欢淇℃伅鍐嶅彉鏇村綋鍓嶅伐搴忥紝 浣嗚川閲忎俊鎭笉鍙� - - info.WorkingProcedureCurrent = loginfo.WorkingProcedure; - } - #endregion - - #region 鏇存柊璁惧瀹炴椂琛� - - bool isAddEquipmentCurrentMonitor = false; - EquipmentCurrentMonitor equinfo = new EquipmentCurrentMonitor(); - equinfo = db.EquipmentCurrentMonitor.Where(o => o.EquipmentID == loginfo.EquipmentID).FirstOrDefault(); - if (equinfo == null || equinfo.Id < 1) - {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂� - Log4NetHelper.WriteErrorLog(type, $"璁惧{loginfo.EquipmentID} 鍛婅鐩戞帶{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒拌澶囩洃鎺т俊鎭紝鐜版柊澧�"); - equinfo = EntityPropHelper.Mapper<EquipmentCurrentMonitor, WorkPieceLog>(loginfo); - equinfo.OnlineTime = DateTime.Now; - isAddEquipmentCurrentMonitor = true; - } - else - {//鏇存柊宸ヤ欢 - equinfo.WorkPieceID = loginfo.WorkPieceID; - equinfo.UpdatedUserName = loginfo.MonitoringPoint; - equinfo.UpdatedTime = DateTime.Now; - equinfo.OnlineTime = DateTime.Now; - } - if (isAddEquipmentCurrentMonitor) - { - equinfo.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - db.EquipmentCurrentMonitor.Add(equinfo); - } - #endregion - //db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo)); - db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info)); - //UpdateKnifeToolLift(db, loginfo);//鏇存柊鍒�鍏峰鍛戒俊鎭� - } - else - { - loginfo.Remarks = (loginfo.Remarks ?? "") + $"涓婄嚎瀹屾垚璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父"; - Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}涓婄嚎鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細"); - - } - } - catch (Exception e) - { - loginfo.Remarks = (loginfo.Remarks ?? "") + $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}"; - } - finally - { - loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - db.WorkPieceLog.Add(loginfo); - db.SaveChanges(); - - } - - } - } + public static WorkPieceLogMiddle QualityDataHand(WorkPieceLogMiddle loginfo, List<EquipmentQualityConfig> qcofig) { try @@ -453,728 +250,56 @@ return loginfo; } + + /// <summary> - /// 璐ㄩ噺妫�娴嬪畬鎴� + /// 璧嬪�� 淇敼浜� 銆怑ditby shaocx,2024-07-05銆� /// </summary> /// <param name="logMiddle"></param> - /// <param name="type"></param> - public static void QualityInfoComplete(WorkPieceLogMiddle logMiddle, LogType type) + /// <returns></returns> + public static string ResetUpdatedUserName(WorkPieceLogMiddle logMiddle) { - //姝ゅ鍚屾椂鎻掑叆浜哤orkPieceLog锛學orkPieceInfoLog琛紝骞舵柊澧炴垨淇敼WorkPieceInfo琛� - //鎻掑叆璐ㄩ噺鐩稿叧琛≦ualityDataInfo + if (logMiddle.MonitoringPoint.Equals("OP1003")) + {//鍥犱负OP10鍜孫P40鏄竴鍙版満鍣紝OP1003涓撻棬鏄疧P40娴嬮噺鐨勩�� + return "OP4003"; + } + return logMiddle.MonitoringPoint; + } - using (DbModel db = new DbModel()) + + + + + public static void SetWorkingProcedureCurrentForOP10(WorkPieceInfo cur_db_info, ref string set_WorkingProcedureCurrent) + { + //鎴柇瀛楃涓� + if (cur_db_info.WorkingProcedureCurrent.Length == 4) { - - bool isAddWorkPieceInfo = false; - WorkPieceLog loginfo2 = new WorkPieceLog(); - loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(logMiddle); try { - - if (logMiddle.WorkPieceID.Length == 22) - {//鑾峰彇鍒扮殑宸ヤ欢鍙峰紓甯� - WorkPieceInfo pieceInfo = new WorkPieceInfo(); - pieceInfo = db.WorkPieceInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); - if (pieceInfo == null || pieceInfo.WorkPieceID.Length < 1) - {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂� - if (logMiddle.MonitoringPoint.Equals("OP1002") || logMiddle.MonitoringPoint.Equals("OP1003") || logMiddle.MonitoringPoint.Contains("OP2002")) - {//OP10 娌℃湁涓婄嚎鎵爜鏋紝绾﹀畾鐢ㄦ祴閲忓畬鎴愪俊鍙峰綋涓婄嚎鏍囪 - pieceInfo = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLogMiddle>(logMiddle); - //EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict()); - if (!logMiddle.WorkingProcedure.Equals("OP05")) - {//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬� - pieceInfo.QualityState = (int)QualityState.Suspected; - pieceInfo.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; - pieceInfo.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; - } - else - { - pieceInfo.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� - pieceInfo.Remarks = "OP05鏂板宸ヤ欢淇℃伅"; - } - pieceInfo.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime(); - pieceInfo.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80"; - pieceInfo.CreatedUserName = logMiddle.MonitoringPoint; - pieceInfo.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();// - pieceInfo.WorkingProcedureEndTime = null; - pieceInfo = ParseQRCode(pieceInfo); - isAddWorkPieceInfo = true; - - - } - else - { - loginfo2.Remarks = loginfo2.Remarks ?? "" + $"|宸ヤ欢{logMiddle.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡logMiddle.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"; - Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{logMiddle.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡logMiddle.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"); - return; - } - } - if (logMiddle.MonitoringPoint.Equals("OP1002") || logMiddle.MonitoringPoint.Equals("OP1003") || logMiddle.MonitoringPoint.Contains("OP2002")) - {// OP10 娌℃湁涓婄嚎鎵爜鏋紝绾﹀畾鐢ㄦ祴閲忓畬鎴愪俊鍙峰綋涓婄嚎鏍囪锛屾墍浠ヤ笂绾块渶瑕佷慨鏀圭殑瀛楁鏀捐繖閲� - - if (logMiddle.WorkingProcedure.Equals("OP10")) - { - var WorkingProcedure = (logMiddle.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40"); - loginfo2.WorkingProcedure = WorkingProcedure;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂 - logMiddle.WorkingProcedure = WorkingProcedure;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂 - } - pieceInfo.WorkPieceCurrentPosition = logMiddle.WorkingProcedure; - pieceInfo.WorkPieceCurrentPositionOrder = pieceInfo.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) / 2; - pieceInfo.WorkingProcedureCurrent = logMiddle.WorkingProcedure; - pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime(); - - #region 鏇存柊璁惧瀹炴椂琛� - - bool isAddEquipmentCurrentMonitor = false; - EquipmentCurrentMonitor equinfo = new EquipmentCurrentMonitor(); - equinfo = db.EquipmentCurrentMonitor.Where(o => o.EquipmentID == logMiddle.EquipmentID).FirstOrDefault(); - if (equinfo == null || equinfo.Id < 1) - {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂� - Log4NetHelper.WriteErrorLog(type, $"璁惧{logMiddle.EquipmentID} 鍛婅鐩戞帶{logMiddle.WorkingProcedure} 娌℃湁鑾峰彇鍒拌澶囩洃鎺т俊鎭紝鐜版柊澧�"); - equinfo = EntityPropHelper.Mapper<EquipmentCurrentMonitor, WorkPieceLog>(logMiddle); - equinfo.OnlineTime = DateTime.Now; - isAddEquipmentCurrentMonitor = true; - } - else - {//鏇存柊宸ヤ欢 - equinfo.WorkPieceID = logMiddle.WorkPieceID; - equinfo.UpdatedUserName = logMiddle.MonitoringPoint; - equinfo.UpdatedTime = DateTime.Now; - equinfo.OnlineTime = DateTime.Now; - } - if (isAddEquipmentCurrentMonitor) - { - equinfo.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - db.EquipmentCurrentMonitor.Add(equinfo); - } - #endregion - //UpdateKnifeToolLift(db, loginfo);//鏇存柊鍒�鍏峰鍛戒俊鎭� - } - pieceInfo.WorkPieceState = (int)WorkPieceState.WIP;//鎺ㄥ嚭鍚庡拰SPC鎶芥鍚� 璐ㄩ噺褰曞叆鏃剁姸鎬佷慨鏀瑰洖鍦ㄥ埗鍝� - pieceInfo.EquipmentID = logMiddle.EquipmentID; - pieceInfo.QualityStateUpdateUser = logMiddle.UpdatedUserName; - pieceInfo.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime; - pieceInfo.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); - pieceInfo.Remarks = pieceInfo.Remarks ?? "" + $"{logMiddle.WorkingProcedure}璐ㄩ噺妫�娴嬪畬鎴愪慨鏀�"; - pieceInfo.UpdatedUserName = logMiddle.MonitoringPoint; - pieceInfo.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - if (!(pieceInfo.WorkingProcedureStartTime.HasValue && pieceInfo.WorkingProcedureStartTime > DateTime.Parse("1900/01/01"))) - {//宸ュ簭寮�濮嬫椂闂存病鏈夊垯璧嬪�� - pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime(); - } - pieceInfo.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG); - //璧嬪�间笉鍚堟牸鍘熷洜 - SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo); - - - if (!pieceInfo.QualityState.Equals(((int)QualityState.OK).ToString())) - { - pieceInfo.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍納pieceInfo.QualityState}"; - } - else - { - pieceInfo.QualityErrorInfo = ""; - } - logMiddle.QualityState = pieceInfo.QualityState; - if (isAddWorkPieceInfo) - { - db.WorkPieceInfo.Add(pieceInfo); - } - - #region 鏍规嵁鏍囧噯鍊兼洿鏂版渶鏂拌川閲忔暟鎹紙OP10/OP40/OP20/OP60锛� - var qcofig = db.EquipmentQualityConfig.Where(o => o.WorkingProcedure.Equals(logMiddle.WorkingProcedure) && o.ParamType != 1 && o.IsDeleted == false).ToList(); - if (qcofig.Count > 0) - { - QualityDataHand(logMiddle, qcofig); - } - #endregion - - - var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); - if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1) - {//鎻掑叆QualityDataInfo琛� - qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle); - db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData)); - } - //淇敼QualityDataInfo琛� //閲嶅鏀跺埌璐ㄩ噺淇℃伅锛屼細瑕嗙洊涔嬪墠鐨� - EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(logMiddle, qualityData, GetQualityDataInfoUpdate(logMiddle, logMiddle.WorkingProcedure, logMiddle.MonitoringPoint));//鎸囧畾淇敼瀛楁 - - qualityData.QualityStateUpdateUser = pieceInfo.UpdatedUserName; - qualityData.QualityReceiveTime = pieceInfo.UpdatedTime.Value.LocalDateTime; - qualityData.QualityStateUpdateMode = pieceInfo.QualityStateUpdateMode; - if (logMiddle.WorkingProcedure.Equals("OP10")) - { - qualityData.OP10QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; - qualityData.OP10QualityReceiveTime = DateTimeHelper.GetDateTime(); - } - else if (logMiddle.WorkingProcedure.Equals("OP20")) - { - //Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}璐ㄩ噺淇℃伅銆恵loginfo.QualityStateStr ?? "绌�"}銆�" + - // $"銆恵(loginfo.QualityState.HasValue? loginfo.QualityState.Value:999)}銆戙�恵(info.QualityState.HasValue ? info.QualityState.Value : 888)}銆� 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]"); - qualityData.OP20QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; - qualityData.OP20QualityReceiveTime = DateTimeHelper.GetDateTime(); - qualityData.OP20QualityFilePath = logMiddle.OP20QualityFilePath; - } - else if (logMiddle.WorkingProcedure.Equals("OP30")) - { - switch (logMiddle.MonitoringPoint) - { - case "OP3002CH3": - qualityData.OP30QualityFilePathCH3 = logMiddle.OP30QualityFilePathCH3; - qualityData.OP30QualityStateCH3 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; - qualityData.OP30QualityReceiveTimeCH3 = DateTimeHelper.GetDateTime(); - break; - case "OP3002CH4": - qualityData.OP30QualityFilePathCH4 = logMiddle.OP30QualityFilePathCH4; - qualityData.OP30QualityStateCH4 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; - qualityData.OP30QualityReceiveTimeCH4 = DateTimeHelper.GetDateTime(); - break; - case "OP3002CH5": - qualityData.OP30QualityFilePathCH5 = logMiddle.OP30QualityFilePathCH5; - qualityData.OP30QualityStateCH5 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; - qualityData.OP30QualityReceiveTimeCH5 = DateTimeHelper.GetDateTime(); - break; - case "OP3002CH6": - qualityData.OP30QualityFilePathCH6 = logMiddle.OP30QualityFilePathCH6; - qualityData.OP30QualityStateCH6 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; - qualityData.OP30QualityReceiveTimeCH6 = DateTimeHelper.GetDateTime(); - break; - default: - break; - } - //qualityData.OP30QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; - //qualityData.OP30QualityReceiveTime = DateTimeHelper.GetDateTime(); - } - else if (logMiddle.WorkingProcedure.Equals("OP35")) - { - qualityData.OP35QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; - qualityData.OP35QualityReceiveTime = DateTimeHelper.GetDateTime(); - } - else if (logMiddle.WorkingProcedure.Equals("OP40")) - { - qualityData.OP40QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; - qualityData.OP40QualityReceiveTime = DateTimeHelper.GetDateTime(); - } - else if (logMiddle.WorkingProcedure.Equals("OP60")) - { - qualityData.OP60QualityFilePath = logMiddle.OP60QualityFilePath; - qualityData.OP60QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; - qualityData.OP60QualityReceiveTime = DateTimeHelper.GetDateTime(); - } - else if (logMiddle.WorkingProcedure.Equals("OP80")) - { - qualityData.OP80QualityFilePath = logMiddle.OP80QualityFilePath; - qualityData.OP80QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; - qualityData.OP80QualityReceiveTime = DateTimeHelper.GetDateTime(); - } - - var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID && o.WorkingProcedureCurrent == pieceInfo.WorkingProcedureCurrent && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault(); - if (pro == null || pro.WorkPieceID.Length < 1 || logMiddle.MonitoringPoint.Equals("OP1002") || logMiddle.MonitoringPoint.Equals("OP1003") || logMiddle.MonitoringPoint.Contains("OP2002")) - {// OP10 娌℃湁涓婄嚎鎵爜鏋紝绾﹀畾鐢ㄦ祴閲忓畬鎴愪俊鍙峰綋涓婄嚎鏍囪锛屾墍浠ヤ笂绾块渶瑕佷慨鏀圭殑瀛楁鏀捐繖閲� - //涓婄嚎鏄瘡娆¢兘鎻掑叆 - - WorkPieceProcess process = new WorkPieceProcess(); - process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(pieceInfo); - process.StartTime = DateTimeHelper.GetDateTime(); - process.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : (int)QualityState.OK; - //璁板綍璐ㄩ噺涓嶅悎鏍煎師鍥� 銆怑ditby shaocx,2024-06-26銆� - //璧嬪�间笉鍚堟牸鍘熷洜 - SetQualityNoOk_WorkPieceProcess(logMiddle, ref process); - - process.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - process.CreatedUserName = logMiddle.MonitoringPoint; - process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - process.UpdatedUserName = logMiddle.MonitoringPoint; - process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - process.OperationType = OperationType.鐢熶骇.ToString(); - process.QualityDataInfoID = qualityData.Id; - process.Remarks = ""; - db.WorkPieceProcess.Add(process); - } - else - {//鍏朵粬鐨勯兘鍙槸淇敼 - pro.QualityDataInfoID = qualityData.Id; - pro.UpdatedUserName = logMiddle.MonitoringPoint; - pro.UpdatedTime = DateTimeHelper.GetDateTime(); - pro.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : 9; - //璧嬪�间笉鍚堟牸鍘熷洜 - SetQualityNoOk_WorkPieceProcess(logMiddle, ref pro); - - //TODO:鍒ゆ柇濡傛灉鏄�60宸ュ簭锛岄偅涔堝氨瑕佹洿鏂皃ro琛ㄧ殑鍒涘缓浜轰负loginfo.MonitoringPoint 銆怑ditby shaocx,2024-06-05銆� - if (logMiddle.WorkingProcedure == "OP60") - { - pro.CreatedUserName = logMiddle.MonitoringPoint; - - } - } - - if (logMiddle.QualityType != null && logMiddle.QualityType.Equals(QualityType.SPC.ToString())) - {//SPC鍙嶉锛� - if (logMiddle.QualityState != (int)QualityState.OK) - { - //褰撴煇鍒板伐搴忔娴嬪埌涓嶅悎鏍煎伐浠舵椂锛屼粠璇ュ伐浠跺姞宸ュ畬鎴愭椂鍒诲墠鎸囧畾鏃堕棿璧疯嚦鎶ユ涓嶅悎鏍兼椂闂存锛岀郴缁熷皢璇ュ伐浠剁殑鏈�鍚庡姞宸ュ伐搴忓湪璇ユ椂闂存鍐呭姞宸ョ殑鎵�鏈夊伐浠躲�佹鍦ㄥ姞宸ョ殑宸ヤ欢銆佽宸ュ簭鍏ュ彛澶勭殑绗竴涓伐浠跺叏閮ㄦ爣璁颁负鐤戜技鐘舵�侊紝鐢变汉宸ュ妫�宸ヤ欢骞朵慨鏀圭姸鎬侊紝骞舵敮鎸佹壒閲忓彉鏇淬�� - //绛斿锛氬湪绾挎祴閲忎笉闇�瑕佽蛋杩欎釜娴佺▼锛屽彧鏈塖PC鎶芥鎵嶉渶瑕侊紝闇�瑕佹妸杩欐椂闂存鐨勫伐浠跺叏閮ㄧ疆涓虹枒浼硷紝鍝�曟槸宸插畬鎴愬伐浠� - //鏃堕棿娈佃捣濮嬫椂闂达細鎶芥宸ヤ欢鐢熶骇鏃堕棿鍓嶄竴SPC鎶芥鏃堕棿 - //鏃堕棿娈电粨鏉熸椂闂达細鎶芥宸ヤ欢璐ㄩ噺缁撴灉鍑虹幇鍚庣殑鏃堕棿 - //鎶芥宸ヤ欢宸ュ簭鎵弿鏋鍏ュ彛澶勭殑绗竴涓伐浠� 涔熸妸璐ㄩ噺鐘舵�佺疆涓虹枒浼� - //锛堟瘡涓�宸ュ簭SPC鎶芥鏄缃殑鍥哄畾鐨勶紝姣斿200鎶�4锛岀姸鎬佺疆涓虹枒浼兼椂鑻ュ伐浠惰繕鍦ㄨ澶囧唴锛屼細缁х画鐢熶骇瀹屾瘯鍚庢帓鍑猴級 - //鐩墠杩欏潡閫昏緫鏀惧埌浜� WebAPI涓簡 - - } - - } - db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(pieceInfo)); - db.QualityDataInfoLog.Add(GetAddQualityDataInfoLog(qualityData));//鎻掑叆鏃ュ織 + var bb = cur_db_info.WorkingProcedureCurrent.Substring(2, 2); + int ii = Convert.ToInt32(bb); + if (ii <= 10) + { + set_WorkingProcedureCurrent = "OP10"; } else { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴愯鍙栦簩缁寸爜{logMiddle.WorkPieceID ?? "绌�"}寮傚父"; - Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細"); - + set_WorkingProcedureCurrent = "OP40"; } } - catch (Exception ex) + catch (Exception) { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴恵logMiddle.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{ex.Message}++{ex.StackTrace}"; - Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細"); - } - finally - { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}"; - db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛� - db.SaveChanges(); + set_WorkingProcedureCurrent = cur_db_info.WorkingProcedureCurrent; } } - } - /// <summary> - /// 宸ヤ欢鎺ㄥ嚭NOOK - /// </summary> - /// <param name="loginfo"></param> - /// <param name="type"></param> - public static void WorkPiecePushOff(WorkPieceLogMiddle loginfo, LogType type) - { - using (DbModel db = new DbModel()) + else { - WorkPieceLog loginfo2 = new WorkPieceLog(); - loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(loginfo); - try - { - if (loginfo.WorkPieceID != null && loginfo.WorkPieceID.Trim('\0').Length == 22) - { - WorkPieceInfo info = new WorkPieceInfo(); - info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); - if (info == null || info.WorkPieceID.Length < 1) - {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂� - Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{loginfo.WorkPieceID} 宸ヤ欢鎺ㄥ嚭宸ュ簭{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"); - return; - } - else - {//鏇存柊琛╓orkPieceInfo - if (loginfo.WorkingProcedure.Equals("OP10")) - { - info.WorkPieceCurrentPosition = info.WorkingProcedureCurrent + "NOOK"; - //var WorkingProcedure = (loginfo.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40"); - loginfo2.WorkingProcedure = info.WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂 - loginfo.WorkingProcedure = info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂 - } - else - { - info.WorkingProcedureCurrent = loginfo.WorkingProcedure; - info.WorkPieceCurrentPosition = loginfo.WorkingProcedure + "NOOK"; - } - info.WorkPieceState = (int)WorkPieceState.NOOKPush; - info.UpdatedUserName = loginfo.MonitoringPoint; - info.UpdatedTime = DateTime.Now; - info.Remarks = "宸ヤ欢NOOK鎺ㄥ嚭"; - if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01"))) - { - info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime(); - } - info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime(); - info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + loginfo.WorkingProcedure;//宸插畬鎴愬伐搴� - info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2; - } - if (loginfo.WorkingProcedure.Equals("OP35")) - {//涓轰簡瑙e喅OP35鐨勯噰闆嗗埌鐨勮川閲忎俊鎭槸OK杩楴OOK鐨勬儏鍐碉紝OP35 NOOK鏃舵洿鏂拌川閲忎俊鎭� - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"OP35NOOK鍘熻川閲忎俊鎭瘂(info.QualityState.HasValue ? info.QualityState.Value.ToString() : "绌�")}"; - info.QualityState = (int)QualityState.NG; - if (!info.QualityState.Equals(((int)QualityState.OK).ToString())) - { - info.QualityErrorInfo = $"{loginfo.WorkingProcedure}宸ュ簭璐ㄩ噺NOOK閲囬泦鏁版嵁涓嶅悎鏍納info.QualityState}"; - } - else - { - info.QualityErrorInfo = ""; - } - loginfo.QualityState = info.QualityState; - - var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); - if (qualityData != null) - { - qualityData.OP35QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; - qualityData.OP35QualityReceiveTime = DateTimeHelper.GetDateTime(); - db.QualityDataInfoLog.Add(GetAddQualityDataInfoLog(qualityData)); - } - } - //鏇存柊涓婁竴宸ュ簭鐨勭粨鏉熸椂闂� - var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == loginfo.WorkingProcedure && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault(); - if (pro != null && pro.WorkPieceID.Length > 0) - { - pro.EndTime = DateTimeHelper.GetDateTime(); - pro.Remarks = (pro.Remarks ?? "") + "NOOK缁撴潫"; - pro.UpdatedUserName = loginfo.MonitoringPoint; - pro.UpdatedTime = DateTimeHelper.GetDateTime(); - } - - db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info)); - - } - else - { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"宸ヤ欢NOOK鎺ㄥ嚭璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父"; - Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}宸ヤ欢NOOK鎺ㄥ嚭璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細"); - } - } - catch (Exception e) - { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}"; - } - - - db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛� - db.SaveChanges(); - } - - } - /// <summary> - /// 宸ヤ欢SPC鎶芥鎺ㄥ嚭 - /// </summary> - /// <param name="loginfo"></param> - /// <param name="type"></param> - public static void WorkPieceSPCPushOff(WorkPieceLogMiddle loginfo, LogType type) - { - - using (DbModel db = new DbModel()) - { - WorkPieceLog loginfo2 = new WorkPieceLog(); - loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(loginfo); - try - { - if ((loginfo.WorkPieceID != null && loginfo.WorkPieceID.Trim('\0').Length == 22) - //|| !((loginfo.WorkingProcedure.Equals("OP10") || loginfo.WorkingProcedure.Equals("OP40")) && loginfo.Remarks.Length > 0) - ) - { - WorkPieceInfo info = new WorkPieceInfo(); - info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); - if (info == null || info.WorkPieceID.Length < 1) - {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂� - loginfo2.Remarks = $"宸ヤ欢{loginfo.WorkPieceID} 宸ヤ欢SPC鎺ㄥ嚭宸ュ簭{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"; - Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{loginfo.WorkPieceID} 宸ヤ欢SPC鎺ㄥ嚭宸ュ簭{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"); - return; - } - else - {//鏇存柊琛╓orkPieceInfo - if (loginfo.WorkingProcedure.Equals("OP10")) - { - info.WorkPieceCurrentPosition = info.WorkingProcedureCurrent + "SPC"; - //var WorkingProcedure = (loginfo.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40"); - loginfo2.WorkingProcedure = info.WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂 - loginfo.WorkingProcedure = info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂 - } - else - { - info.WorkingProcedureCurrent = loginfo.WorkingProcedure; - info.WorkPieceCurrentPosition = loginfo.WorkingProcedure + "SPC"; - } - info.WorkPieceState = (int)WorkPieceState.SPCPush; - info.UpdatedUserName = loginfo.MonitoringPoint; - info.UpdatedTime = DateTime.Now; - info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime(); - if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01"))) - { - info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime(); - } - - - info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + loginfo.WorkingProcedure;//宸插畬鎴愬伐搴� - info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2; - } - info.Remarks = "宸ヤ欢SPC鎶芥鎺ㄥ嚭"; - - //鏇存柊涓婁竴宸ュ簭鐨勭粨鏉熸椂闂� - var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == loginfo.WorkingProcedure && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault(); - if (pro != null && pro.WorkPieceID.Length > 0) - { - pro.EndTime = DateTimeHelper.GetDateTime(); - pro.Remarks = (pro.Remarks ?? "") + "SPC鎶芥缁撴潫"; - pro.UpdatedUserName = loginfo.MonitoringPoint; - pro.UpdatedTime = DateTimeHelper.GetDateTime(); - } - //姣忔SPC 閮芥彃鍏ヨ拷婧〃 - WorkPieceProcess process = new WorkPieceProcess(); - process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info); - process.StartTime = DateTimeHelper.GetDateTime(); - process.OperationType = OperationType.SPC.ToString(); - process.QualityState = (int)QualityState.Suspected; - process.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - process.CreatedUserName = loginfo.MonitoringPoint; - process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - process.UpdatedUserName = loginfo.MonitoringPoint; - process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - process.Remarks = "宸ヤ欢SPC鎶芥鎺ㄥ嚭"; - db.WorkPieceProcess.Add(process); - - - db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info)); - } - else - { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"宸ヤ欢SPC鎶芥鎺ㄥ嚭璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父"; - Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}宸ヤ欢SPC鎶芥鎺ㄥ嚭璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細"); - } - } - catch (Exception e) - { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}"; - } - finally - { - db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛� - db.SaveChanges(); - } - + set_WorkingProcedureCurrent = cur_db_info.WorkingProcedureCurrent; } } - /// <summary> - /// 宸ュ簭瀹屾垚 - /// </summary> - /// <param name="logMiddle"></param> - /// <param name="type"></param> - public static void WorkingProcedureComplete(WorkPieceLogMiddle logMiddle, LogType type) - { - using (DbModel db = new DbModel()) - { - if (logMiddle.WorkingProcedure.Equals("OP70")) - { - logMiddle.QualityState = (int)QualityState.OK; //濡傛灉鏄疧P70锛屽垯榛樿鏄悎鏍� 銆怑ditby shaocx,2024-06-25銆� - } - - WorkPieceLog loginfo2 = new WorkPieceLog(); - loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(logMiddle); - - try - { - if (logMiddle.WorkPieceID != null && logMiddle.WorkPieceID.Trim('\0').Length == 22) - { - - bool isAddWorkPieceInfo = false; - WorkPieceInfo info = new WorkPieceInfo(); - info = db.WorkPieceInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); - if (info == null || info.WorkPieceID.Length < 1) - {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂� 锛堜负浜嗘祴璇曞厛鍏堟柊澧烇級 - Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{logMiddle.WorkPieceID} 宸ヤ欢鎺ㄥ嚭宸ュ簭{logMiddle.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"); - //db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛� - //db.SaveChanges(); - - loginfo2 = CommonManager.Instance.GetWorkPieceID(logMiddle, type); - info = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLog>(logMiddle); - //EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict()); - if (!logMiddle.WorkingProcedure.Equals("OP05")) - {//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬� - info.QualityState = (int)QualityState.Suspected; - info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; - info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; - } - else - { - info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� - info.Remarks = "OP05鏂板宸ヤ欢淇℃伅"; - } - info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();//WorkPieceInitOnlineTime - info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80"; - info.CreatedUserName = logMiddle.MonitoringPoint; - info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - info.WorkingProcedureCurrent = logMiddle.WorkingProcedure; - info.WorkingProcedureEndTime = null; - info = ParseQRCode(info); - isAddWorkPieceInfo = true; - } - if (logMiddle.WorkingProcedure.Equals("OP10")) - { - //var WorkingProcedure = (loginfo.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40"); - loginfo2.WorkingProcedure = info.WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂 - logMiddle.WorkingProcedure = info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂 - } - info.UpdatedUserName = logMiddle.MonitoringPoint; - info.UpdatedTime = DateTimeHelper.GetDateTime(); - info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + logMiddle.WorkingProcedure;//宸插畬鎴愬伐搴� - if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01"))) - {//鑻ヤ竴鐩存病鏈夊伐搴忓紑濮嬫椂闂达紝鍒欒祴鍊煎綋鍓嶆椂闂� - info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime(); - } - info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime(); - info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) / 2; - info.Remarks = $"{logMiddle.WorkingProcedure}宸ュ簭瀹屾垚"; - long op80id = 0; - if (logMiddle.WorkingProcedure.Equals("OP80")) - { - info.WorkPieceState = (int)WorkPieceState.FinishedProducts; - info.WorkPieceLastOfflineTime = DateTimeHelper.GetDateTime(); - info.WorkPieceCurrentPosition = "OP80"; - info.CompleteTime = DateTimeHelper.GetDateTime(); - info.OP80NewCode = logMiddle.OP80NewCode; - - //璐ㄦ鏁版嵁鏀逛负 鑾峰彇鏂囦欢鍚庝慨鏀� 銆怑ditby shaocx,2024-06-15銆� - /* - info.QualityState = (int)((loginfo.QualityStateStr.Equals("OK") || loginfo.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG); - loginfo.QualityState = info.QualityState; - info.QualityStateUpdateUser = loginfo.UpdatedUserName; - info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime; - info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); - //*/ - - var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); - if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1) - {//鎻掑叆QualityDataInfo琛� - qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle); - db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData)); - } - //淇敼QualityDataInfo琛� //閲嶅鏀跺埌璐ㄩ噺淇℃伅锛屼細瑕嗙洊涔嬪墠鐨� - EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(logMiddle, qualityData, GetQualityDataInfoUpdate(logMiddle, logMiddle.WorkingProcedure, logMiddle.MonitoringPoint));//鎸囧畾淇敼瀛楁 - - //璐ㄦ鏁版嵁鏀逛负 鑾峰彇鏂囦欢鍚庝慨鏀� 銆怑ditby shaocx,2024-06-15銆� - /* - qualityData.QualityStateUpdateUser = info.UpdatedUserName; - qualityData.QualityReceiveTime = info.UpdatedTime.Value.LocalDateTime; - qualityData.QualityStateUpdateMode = info.QualityStateUpdateMode; - qualityData.OP80QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; - qualityData.OP80QualityReceiveTime = DateTimeHelper.GetDateTime(); - qualityData.OP80QualityFilePath = loginfo.OP80QualityFilePath; - op80id = qualityData.Id; - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿loginfo.QualityStateStr ?? "绌�"}"; - if (!info.QualityState.Equals(((int)QualityState.OK).ToString())) - { - info.QualityErrorInfo = $"{loginfo.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�"; - } - else - { - info.QualityErrorInfo = ""; - } - //*/ - } - else if (logMiddle.WorkingProcedure.Equals("OP30")) - { - - info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG); - logMiddle.QualityState = info.QualityState; - info.QualityStateUpdateUser = logMiddle.UpdatedUserName; - info.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime; - info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); - - var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); - if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1) - {//鎻掑叆QualityDataInfo琛� - qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle); - db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData)); - } - qualityData.QualityStateUpdateUser = info.UpdatedUserName; - qualityData.QualityReceiveTime = info.UpdatedTime.Value.LocalDateTime; - qualityData.QualityStateUpdateMode = info.QualityStateUpdateMode; - qualityData.OP30QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; - qualityData.OP30QualityReceiveTime = DateTimeHelper.GetDateTime(); - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}"; - if (!info.QualityState.Equals(((int)QualityState.OK).ToString())) - { - info.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�"; - } - else - { - info.QualityErrorInfo = ""; - } - } - else - { - info.WorkPieceState = (int)WorkPieceState.WIP; - if (info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) + 4 <= info.WorkingProcedurePlan.Length) - { - info.WorkPieceCurrentPosition = info.WorkingProcedurePlan.Substring(info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure), 8); - } - } - - var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID && o.WorkingProcedureCurrent == info.WorkingProcedureCurrent && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault(); - if (pro == null || pro.WorkPieceID.Length < 1) - { - WorkPieceProcess process = new WorkPieceProcess(); - process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info); - process.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - process.StartTime = DateTimeHelper.GetDateTime(); - process.EndTime = DateTimeHelper.GetDateTime(); - if (logMiddle.WorkingProcedure.Equals("OP80")) - {//OP80鐨勮川閲忔暟鎹槸鍚庢潵鑾峰彇鏂囦欢鎼炵殑 - } - else - { - process.QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value : (int)QualityState.OK; - } - process.CreatedUserName = logMiddle.MonitoringPoint; - process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - process.UpdatedUserName = logMiddle.MonitoringPoint; - process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - process.OperationType = OperationType.鐢熶骇.ToString(); - process.Remarks = ""; - if (logMiddle.WorkingProcedure.Equals("OP80")) - { - process.GetQcDataFlag = logMiddle.GetQcDataFlag;//璧嬪�兼爣璁� [Editby shaocx,2024-06-15] - } - if (op80id > 0) - { - process.QualityDataInfoID = op80id; - } - db.WorkPieceProcess.Add(process); - } - else - { - if (op80id > 0) - { - pro.QualityDataInfoID = op80id; - } - pro.EndTime = DateTimeHelper.GetDateTime(); - pro.UpdatedUserName = logMiddle.MonitoringPoint; - pro.UpdatedTime = DateTimeHelper.GetDateTime(); - if (logMiddle.WorkingProcedure.Equals("OP80")) - { - if (pro.GetQcDataFlag != 0) - { - pro.GetQcDataFlag = logMiddle.GetQcDataFlag;//璧嬪�兼爣璁� [Editby shaocx,2024-06-15] - } - } - } - - - if (isAddWorkPieceInfo) - { - db.WorkPieceInfo.Add(info); - } - db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info)); - } - else - { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"涓嬬嚎瀹屾垚璇诲彇浜岀淮鐮亄logMiddle.WorkPieceID ?? "绌�"}寮傚父"; - Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭涓嬬嚎 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細"); - - } - } - catch (Exception e) - { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璇诲彇浜岀淮鐮亄logMiddle.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}"; - } - db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛� - db.SaveChanges(); - } - } + public static void AlertMonitor(WorkPieceLog loginfo, LogType type) { @@ -1589,7 +714,7 @@ .OrderByDescending(o => o.WarnStartTime).FirstOrDefault(); if (loginfo.IsMessage) {//鑻ユ湁鍛婅锛屽鏋滄湁璁惧鐘舵�佸彉鏇达紝鑲畾鎻掑叆锛屾澶勫彧淇敼鍗冲彲 - //鑻ユ湁鍛婅锛屽鏋滆澶囩姸鎬佹病鏈夊彉鏇达紝鏈夊憡璀︼紝涔熶笉鎻掑叆鏂扮殑锛堥棶棰橈細褰撶姸鎬佹病鏈夋洿鏀癸紝濡備竴鐩存槸鏁呴殰锛屼絾鍛婅淇℃伅鏈夊彉鍖栵紝鎬庝箞鍔� ps锛氭澶勫厛涓嶇锛� + //鑻ユ湁鍛婅锛屽鏋滆澶囩姸鎬佹病鏈夊彉鏇达紝鏈夊憡璀︼紝涔熶笉鎻掑叆鏂扮殑锛堥棶棰橈細褰撶姸鎬佹病鏈夋洿鏀癸紝濡備竴鐩存槸鏁呴殰锛屼絾鍛婅淇℃伅鏈夊彉鍖栵紝鎬庝箞鍔� ps锛氭澶勫厛涓嶇锛� infolog.WarnStartTime = DateTimeHelper.GetDateTime(); infolog.WarnType = alertall; infolog.Warnmsg = warnmsg; @@ -1776,7 +901,7 @@ } catch (Exception e) { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"{loginfo2.MonitoringPoint}璁惧鐩戞帶鏇存柊鏁版嵁寮傚父{e.Message}.{e.StackTrace}"; + loginfo2.Remarks = $"{loginfo2.MonitoringPoint}璁惧鐩戞帶鏇存柊鏁版嵁寮傚父{e.Message}.{e.StackTrace}"; Log4NetHelper.WriteErrorLog(type, $"{loginfo2.MonitoringPoint}璁惧鐩戞帶鏇存柊鏁版嵁寮傚父{e.Message}.{e.StackTrace}"); } @@ -1939,10 +1064,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(); } @@ -2110,13 +1235,47 @@ public static void SetQualityNoOk_WorkPieceInfo(WorkPieceLogMiddle logMiddle, ref WorkPieceInfo pieceInfo) { + if (!IsWirteQualityNoOk(logMiddle, pieceInfo.QualityNoOk)) return; + pieceInfo.QualityNoOk = logMiddle.QualityNoOk; pieceInfo.QualityNoOkReason = logMiddle.QualityNoOkReason; } public static void SetQualityNoOk_WorkPieceProcess(WorkPieceLogMiddle logMiddle, ref WorkPieceProcess pieceProcess) { + if (!IsWirteQualityNoOk(logMiddle, pieceProcess.QualityNoOk)) return; + pieceProcess.QualityNoOk = logMiddle.QualityNoOk; pieceProcess.QualityNoOkReason = logMiddle.QualityNoOkReason; + } + + /// <summary> + /// 鏄惁闇�瑕侀噸鍐� NOOK鍘熷洜 + /// </summary> + /// <param name="logMiddle"></param> + /// <param name="pieceInfo"></param> + /// <returns></returns> + public static bool IsWirteQualityNoOk(WorkPieceLogMiddle logMiddle, int? qualityNoOk) + { + if (logMiddle.WorkingProcedure == (WorkingProcedureForHMI.OP30).ToString()) + { + //鐗规畩閫昏緫锛氭寜鐓P30鐨勯『搴忓垽鏂� + if (logMiddle.QualityNoOk != null && qualityNoOk != null + && ( + qualityNoOk == (int)QualityNoOkEnum.OP30鍘嬭‖濂楀伐浣嶅姏鐭╄秴宸� + || qualityNoOk == (int)QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩瓒呭樊 + || qualityNoOk == (int)QualityNoOkEnum.OP30缁堟嫥绱у伐浣嶅姏鐭╄秴宸� + || qualityNoOk == (int)QualityNoOkEnum.OP30棰勬嫥绱у伐浣嶅姏鐭╄秴宸� + ) + ) + { + if ((int)logMiddle.QualityNoOk > (int)qualityNoOk) + {//涓嶉渶瑕侀噸鏂拌祴鍊� + return false; + } + } + } + + return true; } @@ -2198,15 +1357,35 @@ return loginfo; } + /// <summary> + /// 璁剧疆涓棿鍙橀噺鐨勮川閲忔暟鎹� + /// </summary> + /// <param name="logMiddle"></param> + public static void SetLogMiddleForQuality(ref WorkPieceLogMiddle logMiddle) + { + + logMiddle.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityStateEnum.OK : QualityStateEnum.NG); + + //鏍规嵁璐ㄩ噺鏁版嵁鍒ゆ柇鏄惁鍚堟牸/涓嶅悎鏍� 銆怑ditby shaocx,2024-06-25銆� + QualityNoOkEnum? qualityNoOkEnum = null; + QualityStateEnum qualityState = WorkPieceInfoManager.CalcQualityStateForOP(logMiddle, ref qualityNoOkEnum); + logMiddle.QualityState = (int)qualityState; + logMiddle.QualityStateStr = qualityState.ToString(); + if (qualityNoOkEnum != null) + { + logMiddle.QualityNoOk = (int)qualityNoOkEnum; + logMiddle.QualityNoOkReason = qualityNoOkEnum.ToString(); + } + } /// <summary> /// 璁$畻OP 璐ㄩ噺鏁版嵁鏄惁鍚堟牸 /// </summary> - public static QualityState CalcQualityStateForOP(WorkPieceLogMiddle logMiddle, ref QualityNoOkEnum? qualityNoOkEnum) + private static QualityStateEnum CalcQualityStateForOP(WorkPieceLogMiddle logMiddle, ref QualityNoOkEnum? qualityNoOkEnum) { - QualityState qualityState = QualityState.Suspected; + QualityStateEnum qualityState = QualityStateEnum.Suspected; if (logMiddle.WorkingProcedure == "OP60") - { + {//鍚堟牸/涓嶅悎鏍肩敱 WMS鑷鍒ゆ柇 decimal _QualityOP60To1 = SystemHelper.GetDecimal(logMiddle.QualityOP60To1); decimal _QualityOP60To2 = SystemHelper.GetDecimal(logMiddle.QualityOP60To2); var isPass_QualityOP60To1 = false; @@ -2232,48 +1411,165 @@ if (isPass_QualityOP60To1 && isPass_QualityOP60To2) { - qualityState = QualityState.OK; + qualityState = QualityStateEnum.OK; } else { - qualityState = QualityState.NG; + qualityState = QualityStateEnum.NG; } if (_QualityOP60To1 == 0 || _QualityOP60To2 == 0) { - qualityState = QualityState.Suspected; + qualityState = QualityStateEnum.Suspected; return qualityState; } return qualityState; } + else if (logMiddle.WorkingProcedure == "OP80") + {//鍚堟牸/涓嶅悎鏍肩敱 OP80 鍒ゆ柇锛孮ualityState 鍜� QualityStateStr 閮藉湪璋冪敤褰撳墠鏂规硶鍓� 鍐欏叆鍊间簡 + if (logMiddle.QualityState == (int)QualityStateEnum.OK) + { + qualityState = QualityStateEnum.OK; + return qualityState; + } + + decimal _QualityOP80_D_TKZJ = SystemHelper.GetDecimal(logMiddle.QualityOP80_D_TKZJ); + if (!(_QualityOP80_D_TKZJ >= (decimal)53.018 && _QualityOP80_D_TKZJ <= (decimal)53.03)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80澶уご瀛旂洿寰勮秴宸�; + } + + decimal _QualityOP80_X_TKZJ = SystemHelper.GetDecimal(logMiddle.QualityOP80_X_TKZJ); + if (!(_QualityOP80_X_TKZJ >= (decimal)22.005 && _QualityOP80_X_TKZJ <= (decimal)22.011)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛旂洿寰勮秴宸�; + } + + decimal _QualityOP80_ZXJ = SystemHelper.GetDecimal(logMiddle.QualityOP80_ZXJ); + if (!(_QualityOP80_ZXJ >= (decimal)144.475 && _QualityOP80_ZXJ <= (decimal)144.525)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80涓績璺濊秴宸�; + } + + decimal _QualityOP80_DTKYZD = SystemHelper.GetDecimal(logMiddle.QualityOP80_DTKYZD); + if (!(_QualityOP80_DTKYZD >= (decimal)0 && _QualityOP80_DTKYZD <= (decimal)0.005)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80澶уご瀛斿渾鏌卞害瓒呭樊; + } + + decimal _QualityOP80_XTSMYD = SystemHelper.GetDecimal(logMiddle.QualityOP80_XTSMYD); + if (!(_QualityOP80_XTSMYD >= (decimal)0 && _QualityOP80_XTSMYD <= (decimal)0.003)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿渾搴︿笂闈㈣秴宸�; + } + + decimal _QualityOP80_XTXMYD = SystemHelper.GetDecimal(logMiddle.QualityOP80_XTXMYD); + if (!(_QualityOP80_XTXMYD >= (decimal)0 && _QualityOP80_XTXMYD <= (decimal)0.003)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿渾搴︿笅闈㈣秴宸�; + } + + decimal _QualityOP80To4 = SystemHelper.GetDecimal(logMiddle.QualityOP80To4); + if (!(_QualityOP80To4 >= (decimal)(-0.075) && _QualityOP80To4 <= (decimal)0.075)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿钩琛屽害寮洸瓒呭樊; + } + + decimal _QualityOP80To5 = SystemHelper.GetDecimal(logMiddle.QualityOP80To5); + if (!(_QualityOP80To5 >= (decimal)(-0.2) && _QualityOP80To5 <= (decimal)0.2)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿钩琛屽害鎵洸瓒呭樊; + } + + decimal _QualityOP80To6 = SystemHelper.GetDecimal(logMiddle.QualityOP80To6); + if (!(_QualityOP80To6 >= (decimal)0 && _QualityOP80To6 <= (decimal)0.04)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80澶уご瀛斿瀭鐩村害瓒呭樊; + } + + decimal _QualityOP80To10 = SystemHelper.GetDecimal(logMiddle.QualityOP80To10); + if (!(_QualityOP80To10 >= (decimal)0 && _QualityOP80To10 <= (decimal)0.04)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿瀭鐩村害瓒呭樊; + } + + decimal _QualityOP80_Houdu = SystemHelper.GetDecimal(logMiddle.QualityOP80_Houdu); + if (!(_QualityOP80_Houdu >= (decimal)21.80 && _QualityOP80_Houdu <= (decimal)21.85)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80鍘氬害瓒呭樊; + } + + decimal _QualityOP80To1 = SystemHelper.GetDecimal(logMiddle.QualityOP80To1); + if (!(_QualityOP80To1 >= (decimal)364 && _QualityOP80To1 <= (decimal)385)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80澶уご绔噸閲忚秴宸�; + } + + decimal _QualityOP80To2 = SystemHelper.GetDecimal(logMiddle.QualityOP80To2); + if (!(_QualityOP80To2 >= (decimal)143 && _QualityOP80To2 <= (decimal)155)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご绔噸閲忚秴宸�; + } + + + return qualityState; + } else if (logMiddle.WorkingProcedure == "OP10") - { - if (logMiddle.QualityState != (int)QualityState.OK) + {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂� + if (logMiddle.QualityState == (int)QualityStateEnum.NG) { qualityNoOkEnum = QualityNoOkEnum.OP10鍘氬害瓒呭樊; + } + else + { + qualityState = QualityStateEnum.OK; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP20") - { - if (logMiddle.QualityState != (int)QualityState.OK) + {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂� + if (logMiddle.QualityState == (int)QualityStateEnum.NG) { qualityNoOkEnum = QualityNoOkEnum.OP20灏忓ご瀛旂洿寰勮秴宸�; + } + else + { + qualityState = QualityStateEnum.OK; + } + return qualityState; + } + else if (logMiddle.WorkingProcedure == "OP30") + {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂� + if (logMiddle.QualityStateStr.Equals("OK")) + { + qualityState = QualityStateEnum.OK; + } + else + { + qualityState = QualityStateEnum.NG; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP35") - { - if (logMiddle.QualityState != (int)QualityState.OK) + {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂� + if (logMiddle.QualityState == (int)QualityStateEnum.NG) { - qualityNoOkEnum = QualityNoOkEnum.OP35婊氬帇鍔涗笉鍚堟牸; + qualityNoOkEnum = QualityNoOkEnum.OP35婊氬帇鍔涜秴宸�; + } + else + { + qualityState = QualityStateEnum.OK; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP40") - { - if (logMiddle.QualityState != (int)QualityState.OK) + {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂� + if (logMiddle.QualityState == (int)QualityStateEnum.NG) { qualityNoOkEnum = QualityNoOkEnum.OP40鍘氬害瓒呭樊; + } + else + { + qualityState = QualityStateEnum.OK; } return qualityState; } @@ -2281,6 +1577,29 @@ } + /// <summary> + /// 鑾峰彇璐ㄩ噺鐘舵�佸�� + /// </summary> + /// <param name="qualityState"></param> + /// <returns></returns> + public static int GetQualityStateValue(int? qualityState) + { + if (qualityState.HasValue == false) + { + return (int)QualityStateEnum.Suspected; + } + if (qualityState.Value == 1) + { + return (int)QualityStateEnum.OK; + } + if (qualityState.Value == 2) + { + return (int)QualityStateEnum.NG; + } + return (int)QualityStateEnum.Suspected; + } + + #endregion } } -- Gitblit v1.9.3