schangxiang@126.com
2024-09-03 3e324486599007039995ee4a27dbda1a4981257e
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -612,6 +612,8 @@
                            #endregion
                            //UpdateKnifeToolLift(db, loginfo);//更新刀具寿命信息
                        }
                        pieceInfo.WorkingProcedureCurrent = logMiddle.WorkingProcedure;//更新当前工序  【Editby shaocx,2024-09-03】
                        pieceInfo.WorkPieceState = (int)WorkPieceState.WIP;//推出后和SPC抽检后 质量录入时状态修改回在制品
                        pieceInfo.EquipmentID = logMiddle.EquipmentID;
                        pieceInfo.QualityStateUpdateUser = logMiddle.UpdatedUserName;
@@ -689,8 +691,8 @@
                                    if (qualityData.OP30QualityStateCH3 == ((int)QualityState.NG).ToString())
                                    {
                                        logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30涨断工位力矩大;
                                        logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30涨断工位力矩大.ToString();
                                        logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30涨断工位力矩超差;
                                        logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30涨断工位力矩超差.ToString();
                                        //赋值不合格原因
                                        SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
                                    }
@@ -703,8 +705,8 @@
                                    if (qualityData.OP30QualityStateCH4 == ((int)QualityState.NG).ToString())
                                    {
                                        logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30预拧紧工位力矩大;
                                        logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30预拧紧工位力矩大.ToString();
                                        logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30预拧紧工位力矩超差;
                                        logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30预拧紧工位力矩超差.ToString();
                                        //赋值不合格原因
                                        SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
                                    }
@@ -717,8 +719,8 @@
                                    if (qualityData.OP30QualityStateCH5 == ((int)QualityState.NG).ToString())
                                    {
                                        logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30终拧紧工位力矩大;
                                        logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30终拧紧工位力矩大.ToString();
                                        logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30终拧紧工位力矩超差;
                                        logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30终拧紧工位力矩超差.ToString();
                                        //赋值不合格原因
                                        SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
                                    }
@@ -731,8 +733,8 @@
                                    if (qualityData.OP30QualityStateCH6 == ((int)QualityState.NG).ToString())
                                    {
                                        logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30压衬套工位力矩大;
                                        logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30压衬套工位力矩大.ToString();
                                        logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30压衬套工位力矩超差;
                                        logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30压衬套工位力矩超差.ToString();
                                        //赋值不合格原因
                                        SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
                                    }
@@ -767,7 +769,11 @@
                            qualityData.OP80QualityReceiveTime = DateTimeHelper.GetDateTime();
                        }
                        var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID && o.WorkingProcedureCurrent == pieceInfo.WorkingProcedureCurrent && o.OperationType == OperationType.生产.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
                        var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID
                        //修正:查询的工序是当前线程的工序,而不是当前数据的工序 【Editby shaocx,2024-09-03】
                        //&& o.WorkingProcedureCurrent == pieceInfo.WorkingProcedureCurrent
                        && o.WorkingProcedureCurrent == logMiddle.WorkingProcedure
                        && o.OperationType == OperationType.生产.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
                        if (pro == null || pro.WorkPieceID.Length < 1 || logMiddle.MonitoringPoint.Equals("OP1002") || logMiddle.MonitoringPoint.Equals("OP1003") || logMiddle.MonitoringPoint.Contains("OP2002"))
                        {// OP10 没有上线扫码枪,约定用测量完成信号当上线标记,所以上线需要修改的字段放这里
                         //上线是每次都插入
@@ -853,8 +859,8 @@
                }
                catch (Exception ex)
                {
                    loginfo2.Remarks = $"质量检测完成{logMiddle.WorkPieceID ?? "空"}更新数据异常{ex.Message}++{ex.StackTrace}";
                    Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}工序监控读码标记 读取工件码数据[{logMiddle.WorkPieceID ?? "空"}]时异常:");
                    loginfo2.Remarks = $"质量检测完成,更新数据异常{ex.Message}";
                    Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}质量检测完成 工件码数据[{logMiddle.WorkPieceID ?? "空"}]时异常:" + ex.Message, ex);
                }
                finally
                {
@@ -2428,10 +2434,10 @@
                //特殊逻辑:按照OP30的顺序判断
                if (logMiddle.QualityNoOk != null && qualityNoOk != null
                    && (
                      qualityNoOk == (int)QualityNoOkEnum.OP30压衬套工位力矩大
                      || qualityNoOk == (int)QualityNoOkEnum.OP30涨断工位力矩大
                      || qualityNoOk == (int)QualityNoOkEnum.OP30终拧紧工位力矩大
                      || qualityNoOk == (int)QualityNoOkEnum.OP30预拧紧工位力矩大
                      qualityNoOk == (int)QualityNoOkEnum.OP30压衬套工位力矩超差
                      || qualityNoOk == (int)QualityNoOkEnum.OP30涨断工位力矩超差
                      || qualityNoOk == (int)QualityNoOkEnum.OP30终拧紧工位力矩超差
                      || qualityNoOk == (int)QualityNoOkEnum.OP30预拧紧工位力矩超差
                    )
                    )
                {
@@ -2720,7 +2726,7 @@
            {//合格/不合格由 QualityStateStr值判断
                if (logMiddle.QualityState == (int)QualityState.NG)
                {
                    qualityNoOkEnum = QualityNoOkEnum.OP35滚压力不合格;
                    qualityNoOkEnum = QualityNoOkEnum.OP35滚压力超差;
                }
                else
                {