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è¿ä¸ªå·¥åºä¸åå¨çæ åµ ãEditby shaocx,2024-09-06ã //if (info.WorkingProcedureCurrent.Equals("OP05")) //{ // loginfo.Remarks = $"读åäºç»´ç {loginfo.WorkPieceID ?? "空"} OP05å·¥åºéå¤è¯»åäº"; // return; //} } if ((info.WorkingProcedureCurrent.Equals("OP05") && isAddWorkPieceInfo == false)) { {//åå¨ è¡¨ WorkPieceInfoæï¼ä½æ¯ WorkPieceProcessè¿ä¸ªå·¥åºä¸åå¨çæ åµ //妿æ¯OP05çï¼å¹¶ä¸æ¯ ä¸éè¦æ°å¢ 表WorkPieceInfoï¼é£ä¹å°±ä¸éè¦æ´æ°è¡¨ 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 åä¸ä¸ªä»¶ ä¸çº¿æ¶é´è·ä¸ä¸ä¸ªä¸çº¿æ¶é´ä¸æ¨¡ä¸æ ·çé®é¢ ãEditby 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ä¸çº¿ï¼å ä¸ºä»æ¯æ ¹æ®ææ¬å表å 容ä¸çº¿ç ãEditby 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 ? "è´¨éä¸ç¬¦å" : ""; } ////åé¦ç»PLCï¼ï¼åå ¥ç¹å¾ å®ï¼ //MessageModel fr = null; //fr = plcService.WriteValuePoint("", "", plcFlag, PLCManger.GetTypeForString("bool")); //if (fr.result) //{ // Log4NetHelper.WriteInfoLog(type, $" 工件{info.WorkPieceID} {loginfo.WorkingProcedure}å·¥åºåé¦ç»PLC æåï¼ åºç° {message}"); //} //else //{ // Log4NetHelper.WriteErrorLog(type, $" 工件{info.WorkPieceID} {loginfo.WorkingProcedure}å·¥åºåé¦ç»PLC å¤±è´¥ï¼ åºç° {message} ï¼å¤±è´¥åå ï¼{fr.resMsg}"); //} //#region åé¦PLC //bool checkQualityInfoCompleteFlag = false; //bool plcFlag = true;//åé¦ç»PLCçæ è®° //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 ? "è´¨éä¸ç¬¦å" : ""; //} ////åé¦ç»PLCï¼ï¼åå ¥ç¹å¾ å®ï¼ //MessageModel fr = null; //fr = plcService.WriteValuePoint("", "", plcFlag, PLCManger.GetTypeForString("bool")); //if (fr.result) //{ // Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" 工件{wplog.WorkPieceID} {WorkingProcedure}å·¥åºåé¦ç»PLC æåï¼ åºç° {message}"); //} //else //{ // Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" 工件{wplog.WorkPieceID} {WorkingProcedure}å·¥åºåé¦ç»PLC å¤±è´¥ï¼ åºç° {message} ï¼å¤±è´¥åå ï¼{fr.resMsg}"); //} //#endregion } else {//读ç 宿è¥å·¥ä»¶è´¨éä¸ç¬¦åæåçè·³åºï¼ä¸ç¨ç®¡è®¾å¤æ¯å¦æå·¥ä»¶æ¾è¿å»ï¼æ°éç³»ç»é½ä¸åæ´å½åå·¥åºï¼åé¦è®¾å¤PLC工件ä¸ç¬¦åï¼ @@ -367,6 +338,7 @@ info.WorkingProcedureCurrent = loginfo.WorkingProcedure; } //*/ #endregion #region æ´æ°è®¾å¤å®æ¶è¡¨ DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - аæ.cs
ÎļþÃû´Ó DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - ¸´ÖÆ(2).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]["ææ å 容"]); DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501 - Àϰæ.cs
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éçæ¶é´è¦æ¯ æç¼åä¸çæ¶é´è¦æ©ï¼é£ä¹æå°±å¿½ç¥ä¸å¤çã 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]["ææ å 容"]); } } 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" />