| | |
| | | /// <summary> |
| | | /// 工件推出NOOK |
| | | /// </summary> |
| | | /// <param name="loginfo"></param> |
| | | /// <param name="logMiddle"></param> |
| | | /// <param name="type"></param> |
| | | public static void WorkPiecePushOff(WorkPieceLogMiddle loginfo, LogType type) |
| | | public static void WorkPiecePushOff(WorkPieceLogMiddle logMiddle, LogType type) |
| | | { |
| | | using (DbModel db = new DbModel()) |
| | | { |
| | | WorkPieceLog loginfo2 = new WorkPieceLog(); |
| | | loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(loginfo); |
| | | loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(logMiddle); |
| | | try |
| | | { |
| | | if (loginfo.WorkPieceID != null && loginfo.WorkPieceID.Trim('\0').Length == 22) |
| | | if (logMiddle.WorkPieceID != null && logMiddle.WorkPieceID.Trim('\0').Length == 22) |
| | | { |
| | | bool isAddWorkPieceInfo = false; |
| | | WorkPieceInfo cur_db_info = new WorkPieceInfo(); |
| | | cur_db_info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); |
| | | cur_db_info = db.WorkPieceInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); |
| | | if (cur_db_info == null || cur_db_info.WorkPieceID.Length < 1) |
| | | {//没有工件信息,不做更新 |
| | | Log4NetHelper.WriteErrorLog(type, $"工件{loginfo.WorkPieceID} 工件推出NOOK工序{loginfo.WorkingProcedure} 没有获取到工件信息不做更新"); |
| | | return; |
| | | Log4NetHelper.WriteErrorLog(type, $"工件{logMiddle.WorkPieceID} 工件推出NOOK工序{logMiddle.WorkingProcedure} 没有获取到工件信息,此时需要新增数据"); |
| | | //新增数据 【Editby shaocx,2024-09-07】 |
| | | WorkPieceInfoHelper.CreateWorkPieceInfoForPushOff(logMiddle, ref cur_db_info, ref isAddWorkPieceInfo); |
| | | } |
| | | else |
| | | {//更新表WorkPieceInfo |
| | | if (loginfo.WorkingProcedure.Equals("OP10")) |
| | | if (logMiddle.WorkingProcedure.Equals("OP10")) |
| | | { |
| | | /* |
| | | info.WorkPieceCurrentPosition = info.WorkingProcedureCurrent + "NOOK"; |
| | |
| | | cur_db_info.WorkingProcedureCurrent = set_WorkingProcedureCurrent; |
| | | cur_db_info.WorkPieceCurrentPosition = set_WorkingProcedureCurrent + "NOOK"; |
| | | loginfo2.WorkingProcedure = set_WorkingProcedureCurrent;//解决OP10,OP40同一个的问题 |
| | | loginfo.WorkingProcedure = set_WorkingProcedureCurrent; //解决OP10,OP40同一个的问题 |
| | | logMiddle.WorkingProcedure = set_WorkingProcedureCurrent; //解决OP10,OP40同一个的问题 |
| | | } |
| | | else |
| | | { |
| | | cur_db_info.WorkingProcedureCurrent = loginfo.WorkingProcedure; |
| | | cur_db_info.WorkPieceCurrentPosition = loginfo.WorkingProcedure + "NOOK"; |
| | | cur_db_info.WorkingProcedureCurrent = logMiddle.WorkingProcedure; |
| | | cur_db_info.WorkPieceCurrentPosition = logMiddle.WorkingProcedure + "NOOK"; |
| | | } |
| | | cur_db_info.WorkPieceState = (int)WorkPieceState.NOOKPush; |
| | | cur_db_info.UpdatedUserName = loginfo.MonitoringPoint; |
| | | SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref cur_db_info, loginfo.DataCapturePointCname); |
| | | cur_db_info.UpdatedUserName = logMiddle.MonitoringPoint; |
| | | SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref cur_db_info, logMiddle.DataCapturePointCname); |
| | | cur_db_info.UpdatedTime = DateTime.Now; |
| | | cur_db_info.Remarks = "工件NOOK推出"; |
| | | loginfo2.Remarks = cur_db_info.Remarks; |
| | |
| | | cur_db_info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime(); |
| | | } |
| | | cur_db_info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime(); |
| | | cur_db_info.WorkingProcedureCompleted = cur_db_info.WorkingProcedureCompleted + loginfo.WorkingProcedure;//已完成工序 |
| | | cur_db_info.WorkPieceCurrentPositionOrder = cur_db_info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2; |
| | | cur_db_info.WorkingProcedureCompleted = cur_db_info.WorkingProcedureCompleted + logMiddle.WorkingProcedure;//已完成工序 |
| | | cur_db_info.WorkPieceCurrentPositionOrder = cur_db_info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) / 2; |
| | | } |
| | | QualityDataInfo qualityData = null; |
| | | qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); |
| | | if (loginfo.WorkingProcedure.Equals("OP35")) |
| | | qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); |
| | | if (logMiddle.WorkingProcedure.Equals("OP35")) |
| | | {//为了解决OP35的采集到的质量信息是OK还NOOK的情况,OP35 NOOK时更新质量信息 |
| | | loginfo2.Remarks = $"OP35NOOK原质量信息{(cur_db_info.QualityState.HasValue ? cur_db_info.QualityState.Value.ToString() : "空")}"; |
| | | cur_db_info.QualityState = (int)QualityStateEnum.NG; |
| | | if (!cur_db_info.QualityState.Equals(((int)QualityStateEnum.OK).ToString())) |
| | | { |
| | | cur_db_info.QualityErrorInfo = $"{loginfo.WorkingProcedure}工序质量NOOK采集数据不合格{cur_db_info.QualityState}"; |
| | | cur_db_info.QualityErrorInfo = $"{logMiddle.WorkingProcedure}工序质量NOOK采集数据不合格{cur_db_info.QualityState}"; |
| | | } |
| | | else |
| | | { |
| | | cur_db_info.QualityErrorInfo = ""; |
| | | } |
| | | loginfo.QualityState = cur_db_info.QualityState; |
| | | logMiddle.QualityState = cur_db_info.QualityState; |
| | | |
| | | |
| | | if (qualityData != null) |
| | | { |
| | | qualityData.OP35QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; |
| | | qualityData.OP35QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; |
| | | qualityData.OP35QualityReceiveTime = DateTimeHelper.GetDateTime(); |
| | | db.QualityDataInfoLog.Add(WorkPieceInfoManager.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(); |
| | | var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID |
| | | && o.WorkingProcedureCurrent == logMiddle.WorkingProcedure && o.OperationType == OperationType.生产.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault(); |
| | | if (pro != null && pro.WorkPieceID.Length > 0) |
| | | { |
| | | pro.EndTime = DateTimeHelper.GetDateTime(); |
| | | pro.Remarks = "NOOK结束"; |
| | | pro.UpdatedUserName = loginfo.MonitoringPoint; |
| | | pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname; |
| | | pro.UpdatedUserName = logMiddle.MonitoringPoint; |
| | | pro.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname; |
| | | pro.UpdatedTime = DateTimeHelper.GetDateTime(); |
| | | } |
| | | else |
| | |
| | | add_process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(cur_db_info); |
| | | QualityStateHelper.ResetQualityNoOkForNewProcess(ref add_process); |
| | | add_process.Id = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | | add_process.StartTime = DateTimeHelper.GetDateTime().AddSeconds(-SystemBussinessHelper.MoNiTimeForWorkingProcedure(loginfo.WorkingProcedure)); |
| | | add_process.StartTime = DateTimeHelper.GetDateTime().AddSeconds(-SystemBussinessHelper.MoNiTimeForWorkingProcedure(logMiddle.WorkingProcedure)); |
| | | add_process.EndTime = DateTimeHelper.GetDateTime(); |
| | | //不再默认赋值为合格 【Editby shaocx,2024-08-16】 |
| | | add_process.QualityState = WorkPieceInfoManager.GetQualityStateValue(loginfo.QualityState); |
| | | add_process.QualityState = WorkPieceInfoManager.GetQualityStateValue(logMiddle.QualityState); |
| | | |
| | | add_process.CreatedUserName = loginfo.MonitoringPoint; |
| | | add_process.DataCapturePointCname = loginfo.DataCapturePointCname; |
| | | add_process.CreatedUserName = logMiddle.MonitoringPoint; |
| | | add_process.DataCapturePointCname = logMiddle.DataCapturePointCname; |
| | | add_process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); |
| | | add_process.UpdatedUserName = loginfo.MonitoringPoint; |
| | | add_process.UpdateDataCapturePointCname = loginfo.DataCapturePointCname; |
| | | add_process.UpdatedUserName = logMiddle.MonitoringPoint; |
| | | add_process.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname; |
| | | add_process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); |
| | | add_process.OperationType = OperationType.生产.ToString(); |
| | | add_process.Remarks = "NOOK结束"; |
| | |
| | | |
| | | QualityStateHelper.SetQualityStateForNoOk(ref cur_db_info, ref pro, ref qualityData); |
| | | |
| | | if (isAddWorkPieceInfo) |
| | | { |
| | | db.WorkPieceInfo.Add(cur_db_info); |
| | | } |
| | | |
| | | db.WorkPieceInfoLog.Add(WorkPieceInfoManager.GetAddWorkPieceInfoLog(cur_db_info)); |
| | | |
| | | } |
| | | else |
| | | { |
| | | loginfo2.Remarks = $"工件NOOK推出读取二维码{loginfo.WorkPieceID ?? "空"}异常"; |
| | | Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}工件NOOK推出读码标记 读取工件码数据[{loginfo.WorkPieceID ?? "空"}]时异常:"); |
| | | loginfo2.Remarks = $"工件NOOK推出读取二维码{logMiddle.WorkPieceID ?? "空"}异常"; |
| | | Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}工件NOOK推出读码标记 读取工件码数据[{logMiddle.WorkPieceID ?? "空"}]时异常:"); |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | loginfo2.Remarks = $"读取二维码{loginfo.WorkPieceID ?? "空"}更新数据异常{e.Message}"; |
| | | loginfo2.Remarks = $"读取二维码{logMiddle.WorkPieceID ?? "空"}更新数据异常{e.Message}"; |
| | | } |
| | | |
| | | |