DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -214,40 +214,53 @@ info.WorkingProcedureCurrent = loginfo.WorkingProcedure; info.Remarks = 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) { pro.EndTime = DateTimeHelper.GetDateTime(); pro.UpdatedUserName = loginfo.MonitoringPoint; pro.UpdatedTime = DateTimeHelper.GetDateTime(); pro.Remarks = (pro.Remarks ?? "") + "又一次上线,更新结束时间"; if (pro.WorkingProcedureCurrent == loginfo.WorkingProcedure) {//表示工序相同 isNeedAddNewProcess = false; pro.Remarks = (pro.Remarks ?? "") + "又一次上线,更新结束时间"; } else { 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(); //不再默认赋值为合格 【Editby shaocx,2024-08-16】 //process.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK;//默认合格,已处理 process.QualityState = GetQualityStateValue(info.QualityState); if (process.WorkingProcedureCurrent == WorkingProcedureForHMI.OP70.ToString()) { //特殊处理OP70,因为OP70没有测量,默认合格 [Editby shaocx,2024-07-03] process.QualityState = (int)QualityState.OK;//默认合格,OP70默认是合格 } 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")) if (isNeedAddNewProcess) { process.EndTime = process.StartTime; //每次扫描上线都插入追溯表 WorkPieceProcess new_process = new WorkPieceProcess(); new_process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info); new_process.StartTime = DateTimeHelper.GetDateTime(); //不再默认赋值为合格 【Editby shaocx,2024-08-16】 //process.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK;//默认合格,已处理 new_process.QualityState = GetQualityStateValue(info.QualityState); if (new_process.WorkingProcedureCurrent == WorkingProcedureForHMI.OP70.ToString()) { //特殊处理OP70,因为OP70没有测量,默认合格 [Editby shaocx,2024-07-03] new_process.QualityState = (int)QualityState.OK;//默认合格,OP70默认是合格 } new_process.Id = Yitter.IdGenerator.YitIdHelper.NextId(); new_process.CreatedUserName = loginfo.MonitoringPoint; new_process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); new_process.UpdatedUserName = loginfo.MonitoringPoint; new_process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); new_process.OperationType = OperationType.生产.ToString(); new_process.Remarks = ""; if (loginfo.WorkingProcedure.Equals("OP05")) { new_process.EndTime = new_process.StartTime; } db.WorkPieceProcess.Add(new_process); } db.WorkPieceProcess.Add(process); //db.Database.AutoTransactionsEnabled = false;// 同一个SaveChanges默认事务, 关闭默认事务:... 好像不能用啊,后面再研究吧 if (isAddWorkPieceInfo) DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_01.cs
@@ -47,44 +47,44 @@ { if (SystemValue.isStartedImitateModel) { var plcService = PLCManger.GetSinglePLCService(_dataCaptureConfig); //var plcService = PLCManger.GetSinglePLCService(_dataCaptureConfig); WorkPieceLog wplog = new WorkPieceLog(); wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId(); wplog.WorkingProcedure = WorkingProcedure; wplog.EquipmentID = WorkingProcedure; wplog.Remarks = WorkingProcedure; wplog.MonitoringPoint = DataCapturePointCode; wplog.CreatedTime = DateTimeHelper.GetDateTime(); wplog.CreatedUserName = DataCapturePointCode; wplog.IsDeleted = false; //var valuecol = plcService.ReadValuePoint("2050", "28", 25, typeof(string)); //WorkPieceLog wplog = new WorkPieceLog(); //wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId(); //wplog.WorkingProcedure = WorkingProcedure; //wplog.EquipmentID = WorkingProcedure; //wplog.Remarks = WorkingProcedure; //wplog.MonitoringPoint = DataCapturePointCode; //wplog.CreatedTime = DateTimeHelper.GetDateTime(); //wplog.CreatedUserName = DataCapturePointCode; //wplog.IsDeleted = false; ////var valuecol = plcService.ReadValuePoint("2050", "28", 25, typeof(string)); wplog.EquipmentID = _dataCaptureConfig.EquipmentID; wplog.WorkPieceID = WorkPieceID; wplog.UpdatedTime = DateTimeHelper.GetDateTime(); wplog.UpdatedUserName = DataCapturePointCode; wplog.OnlineTime = DateTimeHelper.GetDateTime();//给上线时间用 //wplog.EquipmentID = _dataCaptureConfig.EquipmentID; //wplog.WorkPieceID = WorkPieceID; //wplog.UpdatedTime = DateTimeHelper.GetDateTime(); //wplog.UpdatedUserName = DataCapturePointCode; //wplog.OnlineTime = DateTimeHelper.GetDateTime();//给上线时间用 //var valueid = plcService.ReadValuePoint(_dataCaptureConfig.DbNumber, _dataCaptureConfig.Offset, _dataCaptureConfig.DataCaptureColumnLength.Value, PLCManger.GetTypeForString(_dataCaptureConfig.DataCaptureColumnType)); //wplog.WorkPieceID = PLCManger.GetWorkPieceIDForPLC(_dataCaptureConfig, plcService); if (wplog.WorkPieceID.Length != 22) {//获取到的工件号异常 return; } else {//获取其他配置的待采集项 ////var valueid = plcService.ReadValuePoint(_dataCaptureConfig.DbNumber, _dataCaptureConfig.Offset, _dataCaptureConfig.DataCaptureColumnLength.Value, PLCManger.GetTypeForString(_dataCaptureConfig.DataCaptureColumnType)); ////wplog.WorkPieceID = PLCManger.GetWorkPieceIDForPLC(_dataCaptureConfig, plcService); //if (wplog.WorkPieceID.Length != 22) //{//获取到的工件号异常 // return; //} //else //{//获取其他配置的待采集项 //foreach (var col in colConfig.Where(o => o.DataCapturePointCode == DataCapturePointCode)) //{ // var valuecol = plcService.ReadValuePoint(col.DbNumber, col.Offset, col.DataCaptureColumnLength.Value, PLCManger.GetTypeForString(col.DataCaptureColumnType)); // wplog.GetType().GetProperty(col.DataCaptureColumnTabelName).SetValue(wplog, valuecol);//给动态字段赋值 // //foreach (var col in colConfig.Where(o => o.DataCapturePointCode == DataCapturePointCode)) // //{ // // var valuecol = plcService.ReadValuePoint(col.DbNumber, col.Offset, col.DataCaptureColumnLength.Value, PLCManger.GetTypeForString(col.DataCaptureColumnType)); // // wplog.GetType().GetProperty(col.DataCaptureColumnTabelName).SetValue(wplog, valuecol);//给动态字段赋值 //} } //读取二维码后更新数据库 WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), plcService, _dataCaptureConfig.IsFeedback); // //} //} ////读取二维码后更新数据库 //WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), plcService, _dataCaptureConfig.IsFeedback); return;