| | |
| | | public static readonly string path = ConfigHelper.GetConfigString("OP80QualityData");//OP80的地址 |
| | | public static readonly string query_WorkingProcedureCurrent = "OP80"; |
| | | public static readonly string _DataCapturePointCode = "OP8002"; |
| | | public static readonly string _DataCapturePointName = "OP80质量数据采集"; |
| | | public static readonly string _EquipmentId = "EOP80"; |
| | | public static readonly LogType logType = LogType.PLCOP80_QC; |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | private void Do_One(bool isAdd_WorkPieceInfo, bool isAdd_WorkPieceProcess, bool isAdd_QualityDataInfo, List<FileInfo> allFiles, DbModel db, WorkPieceInfo info, WorkPieceProcess pieceProcess, QualityDataInfo qualityData, |
| | | private void Do_One(bool isAdd_WorkPieceInfo, bool isAdd_WorkPieceProcess, bool isAdd_QualityDataInfo, List<FileInfo> allFiles, DbModel db, WorkPieceInfo info, |
| | | WorkPieceProcess pieceProcess, QualityDataInfo qualityData, |
| | | List<FileInfo> findFiles) |
| | | { |
| | | try |
| | |
| | | logMiddle.EquipmentID = _dataCaptureConfig.EquipmentID; ; |
| | | logMiddle.Remarks = logMiddle.WorkingProcedure; |
| | | logMiddle.MonitoringPoint = _DataCapturePointCode; |
| | | //logMiddle.CreatedUserName = _DataCapturePointCode; |
| | | SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref logMiddle, DataCapturePointCode, DataCapturePointCname); |
| | | logMiddle.CreatedTime = DateTimeHelper.GetDateTime(); |
| | | logMiddle.CreatedUserName = _DataCapturePointCode; |
| | | logMiddle.UpdatedTime = DateTimeHelper.GetDateTime(); |
| | | logMiddle.UpdatedUserName = Environment.MachineName + "自动" + Thread.CurrentThread.ManagedThreadId.ToString(); |
| | | logMiddle.IsDeleted = false; |
| | |
| | | } |
| | | else |
| | | { |
| | | logMiddle.Remarks = (logMiddle.Remarks ?? "") + $"OP80下线完成读取文件{file.FullName}异常,行数不是2行"; |
| | | logMiddle.Remarks = $"OP80下线完成读取文件{file.FullName}异常,行数不是2行"; |
| | | } |
| | | |
| | | |
| | | //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表 |
| | | info.OP80NewCode = logMiddle.OP80NewCode;//更新成品吗 |
| | | |
| | | info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG); |
| | | logMiddle.QualityState = info.QualityState; |
| | | //根据质量数据判断是否合格/不合格 【Editby shaocx,2024-06-25】 |
| | | WorkPieceInfoManager.SetLogMiddleForQuality(ref logMiddle); |
| | | |
| | | //赋值不合格原因 |
| | | //TODO:需要配置OP80质量不合格的原因是啥?? |
| | | WorkPieceInfoManager.SetQualityNoOk_WorkPieceInfo(logMiddle, ref info); |
| | | //如果OP80下线,已经更改了质检状态,并且质检状态等于不合格,则这里就不要继续更改质检状态了 【Editby shaocx,2024-08-28】 |
| | | bool isNeedUpdateQualityState = true; |
| | | var ooDateTime = Convert.ToDateTime("0001-01-01"); |
| | | if (pieceProcess.EndTime != ooDateTime && pieceProcess.QualityState == (int)QualityStateEnum.NG) |
| | | { |
| | | isNeedUpdateQualityState = false; |
| | | } |
| | | if (isNeedUpdateQualityState) |
| | | { |
| | | info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityStateEnum.OK : QualityStateEnum.NG); |
| | | logMiddle.QualityState = info.QualityState; |
| | | //根据质量数据判断是否合格/不合格 【Editby shaocx,2024-06-25】 |
| | | WorkPieceInfoManager.SetLogMiddleForQuality(ref logMiddle); |
| | | |
| | | info.QualityStateUpdateUser = logMiddle.UpdatedUserName; |
| | | info.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime; |
| | | info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); |
| | | //赋值不合格原因 |
| | | WorkPieceInfoManager.SetQualityNoOk_WorkPieceInfo(logMiddle, ref info); |
| | | |
| | | info.QualityStateUpdateUser = logMiddle.UpdatedUserName; |
| | | info.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime; |
| | | info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); |
| | | |
| | | } |
| | | //var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == wplog.WorkPieceID).FirstOrDefault(); |
| | | //if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1) |
| | | //{//插入QualityDataInfo表 |
| | |
| | | //修改QualityDataInfo表 //重复收到质量信息,会覆盖之前的 |
| | | EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(logMiddle, qualityData, WorkPieceInfoManager.GetQualityDataInfoUpdate(logMiddle, logMiddle.WorkingProcedure, logMiddle.MonitoringPoint));//指定修改字段 |
| | | |
| | | //单独处理 质量数据的状态 |
| | | if (isNeedUpdateQualityState) |
| | | { |
| | | qualityData.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityStateEnum.OK : QualityStateEnum.NG); |
| | | } |
| | | else |
| | | {//必然是不合格 |
| | | qualityData.QualityState = (int)(QualityStateEnum.NG); |
| | | } |
| | | qualityData.OP80QualityState = qualityData.QualityState.ToString(); |
| | | |
| | | qualityData.EquipmentID = _EquipmentId; |
| | | qualityData.QualityStateUpdateUser = info.UpdatedUserName; |
| | | qualityData.QualityReceiveTime = info.UpdatedTime.Value.LocalDateTime; |
| | | qualityData.QualityStateUpdateMode = info.QualityStateUpdateMode; |
| | | qualityData.OP80QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; |
| | | |
| | | qualityData.OP80QualityReceiveTime = DateTimeHelper.GetDateTime(); |
| | | qualityData.OP80QualityFilePath = logMiddle.OP80QualityFilePath; |
| | | long op80id = qualityData.Id; |
| | |
| | | { |
| | | pieceProcess.QualityDataInfoID = op80id; |
| | | } |
| | | loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"质量:{logMiddle.QualityStateStr ?? "空"}"; |
| | | if (!info.QualityState.Equals(((int)QualityState.OK).ToString())) |
| | | loginfo2.Remarks = $"质量:{logMiddle.QualityStateStr ?? "空"}"; |
| | | if (!info.QualityState.Equals(((int)QualityStateEnum.OK).ToString())) |
| | | { |
| | | info.QualityErrorInfo = $"{logMiddle.WorkingProcedure}工序质量采集数据不合格"; |
| | | } |
| | |
| | | pieceProcess.GetQcDataCount = (pieceProcess.GetQcDataCount ?? 0) + 1; |
| | | pieceProcess.GetQcDataFlag_Remark = "找到文件"; |
| | | pieceProcess.GetQcDataFlag = 1; |
| | | pieceProcess.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK; |
| | | //赋值不合格原因 |
| | | //TODO:需要配置OP80质量不合格的原因是啥?? |
| | | WorkPieceInfoManager.SetQualityNoOk_WorkPieceProcess(logMiddle, ref pieceProcess); |
| | | |
| | | if (isNeedUpdateQualityState) |
| | | { |
| | | //不再默认赋值为合格 【Editby shaocx,2024-08-16】 |
| | | pieceProcess.QualityState = WorkPieceInfoManager.GetQualityStateValue(info.QualityState); |
| | | |
| | | //赋值不合格原因 |
| | | //TODO:需要配置OP80质量不合格的原因是啥?? |
| | | WorkPieceInfoManager.SetQualityNoOk_WorkPieceProcess(logMiddle, ref pieceProcess); |
| | | } |
| | | |
| | | pieceProcess.EndTime = file.LastWriteTime;//下线时间改为 文件最后修改时间 【Editby shaocx,2024-06-17】 |
| | | |
| | |
| | | WorkingProcedureCurrent = query_WorkingProcedureCurrent, |
| | | EquipmentID = _EquipmentId, |
| | | CreatedTime = DateTime.Now, |
| | | CreatedUserName = _DataCapturePointCode |
| | | CreatedUserName = _DataCapturePointCode, |
| | | DataCapturePointCname= _DataCapturePointName |
| | | }; |
| | | } |
| | | |
| | |
| | | isAdd_WorkPieceProcess = true; |
| | | process = new WorkPieceProcess(); |
| | | process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info); |
| | | QualityStateHelper.ResetQualityNoOkForNewProcess(ref process); |
| | | process.Id = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | | process.WorkingProcedureCurrent = query_WorkingProcedureCurrent; |
| | | process.StartTime = DateTimeHelper.GetDateTime(); |
| | | process.EndTime = file.LastWriteTime; |
| | | process.CreatedUserName = _DataCapturePointCode; |
| | | process.DataCapturePointCname = DataCapturePointCname; |
| | | process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); |
| | | process.UpdatedUserName = _DataCapturePointCode; |
| | | process.UpdateDataCapturePointCname = DataCapturePointCname; |
| | | process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); |
| | | process.OperationType = OperationType.生产.ToString(); |
| | | process.Remarks = ""; |