| | |
| | | info.Remarks = $"工件二维码第一次出现的工序{loginfo.WorkingProcedure}不是OP05,数据缺失,请确认情况并做相应处理!"; |
| | | } |
| | | else |
| | | { |
| | | {//OP05工序 |
| | | info.QualityState = (int)QualityStateEnum.OK;//此处需要注意,判断所有工序质量,然后再赋值 //默认合格,OP05默认是合格 |
| | | info.Remarks = "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 ((info.WorkingProcedureCurrent.Equals("OP05") && isAddWorkPieceInfo == false)) |
| | | { |
| | | //如果是OP05的,并且是 不需要新增 表WorkPieceInfo,那么就不需要更新表 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 同一个件 下线时间跟下一个上线时间一模一样的问题 【Editby shaocx,2024-08-27】 |
| | | var isNeedAddNewProcess = true; |
| | |
| | | new_process.Remarks = ""; |
| | | new_process.MyRemarks = "读码上线时,每次扫描上线都插入追溯表"; |
| | | if (loginfo.WorkingProcedure.Equals("OP05")) |
| | | { |
| | | {//特殊处理OP05工序 |
| | | new_process.EndTime = new_process.StartTime; |
| | | |
| | | //如果已经存在其他工序,那么就必须要按照其他工序的时间往前推数据 【Editby shaocx,2024-09-05】 |
| | | var op05OtherProccss = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID).OrderBy(x => x.StartTime).FirstOrDefault(); |
| | | if (op05OtherProccss != null) |
| | | {//说明有,那么时间就按照这个时间往前推 |
| | | 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;// 同一个SaveChanges默认事务, 关闭默认事务:... 好像不能用啊,后面再研究吧 |
| | | if (isAddWorkPieceInfo) |
| | | { |
| | |
| | | cur_db_info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); |
| | | if (cur_db_info == null || cur_db_info.WorkPieceID.Length < 1) |
| | | {//没有工件信息,不做更新 |
| | | Log4NetHelper.WriteErrorLog(type, $"工件{loginfo.WorkPieceID} 工件推出工序{loginfo.WorkingProcedure} 没有获取到工件信息不做更新"); |
| | | Log4NetHelper.WriteErrorLog(type, $"工件{loginfo.WorkPieceID} 工件推出NOOK工序{loginfo.WorkingProcedure} 没有获取到工件信息不做更新"); |
| | | return; |
| | | } |
| | | else |
| | |
| | | info.QualityErrorInfo = ""; |
| | | } |
| | | //*/ |
| | | |
| | | loginfo2.Remarks = $"测量合格状态:{logMiddle.St3_Means_OK},称重状态:{logMiddle.St4_Weight_OK}"; |
| | | } |
| | | else if (logMiddle.WorkingProcedure.Equals("OP30")) |
| | | { |
| | |
| | | .OrderByDescending(o => o.WarnStartTime).FirstOrDefault(); |
| | | if (loginfo.IsMessage) |
| | | {//若有告警,如果有设备状态变更,肯定插入,此处只修改即可 |
| | | //若有告警,如果设备状态没有变更,有告警,也不插入新的(问题:当状态没有更改,如一直是故障,但告警信息有变化,怎么办 ps:此处先不管) |
| | | //若有告警,如果设备状态没有变更,有告警,也不插入新的(问题:当状态没有更改,如一直是故障,但告警信息有变化,怎么办 ps:此处先不管) |
| | | infolog.WarnStartTime = DateTimeHelper.GetDateTime(); |
| | | infolog.WarnType = alertall; |
| | | infolog.Warnmsg = warnmsg; |
| | |
| | | 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(); |
| | | } |