2
schangxiang@126.com
2024-08-28 bfe84060137f41899d256c2a704228414b2b5219
2
已修改4个文件
92 ■■■■ 文件已修改
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/OP80QualityDataHandler.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/QualityStateHelper.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Model/Enums.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -1250,6 +1250,7 @@
                            info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
                            //*/
                            var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
                            if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1)
                            {//插入QualityDataInfo表
@@ -1335,6 +1336,8 @@
                            process.EndTime = DateTimeHelper.GetDateTime();
                            if (logMiddle.WorkingProcedure.Equals("OP80"))
                            {//OP80的质量数据是后来获取文件搞的
                             //质检数据,再考虑 另外两种状态  【Editby shaocx,2024-08-27】
                                QualityStateHelper.SetQualityStateForOP80(logMiddle, ref info, ref process);
                            }
                            else
                            {
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/OP80QualityDataHandler.cs
@@ -154,7 +154,8 @@
            }
        }
        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
@@ -326,19 +327,28 @@
                //更新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);
                //如果OP80下线,已经更改了质检状态,并且质检状态等于不合格,则这里就不要继续更改质检状态了 【Editby shaocx,2024-08-28】
                bool isNeedUpdateQualityState = true;
                var ooDateTime = Convert.ToDateTime("0001-01-01");
                if (pieceProcess.EndTime != ooDateTime && pieceProcess.QualityState == (int)QualityState.NG)
                {
                    isNeedUpdateQualityState = false;
                }
                if (isNeedUpdateQualityState)
                {
                    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);
                    //赋值不合格原因
                    WorkPieceInfoManager.SetQualityNoOk_WorkPieceInfo(logMiddle, ref info);
                info.QualityStateUpdateUser = logMiddle.UpdatedUserName;
                info.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime;
                info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
                    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表
@@ -374,13 +384,15 @@
                pieceProcess.GetQcDataFlag_Remark = "找到文件";
                pieceProcess.GetQcDataFlag = 1;
                //不再默认赋值为合格 【Editby shaocx,2024-08-16】
                //pieceProcess.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK;//默认合格,已处理
                pieceProcess.QualityState = WorkPieceInfoManager.GetQualityStateValue(info.QualityState);
                if (isNeedUpdateQualityState)
                {
                    //不再默认赋值为合格 【Editby shaocx,2024-08-16】
                    pieceProcess.QualityState = WorkPieceInfoManager.GetQualityStateValue(info.QualityState);
                //赋值不合格原因
                //TODO:需要配置OP80质量不合格的原因是啥??
                WorkPieceInfoManager.SetQualityNoOk_WorkPieceProcess(logMiddle, ref pieceProcess);
                    //赋值不合格原因
                    //TODO:需要配置OP80质量不合格的原因是啥??
                    WorkPieceInfoManager.SetQualityNoOk_WorkPieceProcess(logMiddle, ref pieceProcess);
                }
                pieceProcess.EndTime = file.LastWriteTime;//下线时间改为 文件最后修改时间 【Editby shaocx,2024-06-17】
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/QualityStateHelper.cs
@@ -15,6 +15,45 @@
    public class QualityStateHelper
    {
        /// <summary>
        /// OP80专门获取某些点位,配置质量状态
        /// </summary>
        /// <param name="logMiddle"></param>
        /// <param name="info"></param>
        /// <param name="pro"></param>
        public static void SetQualityStateForOP80(WorkPieceLogMiddle logMiddle, ref WorkPieceInfo info, ref WorkPieceProcess pro)
        {
            QualityState setQualityState = QualityState.OK;
            QualityNoOkEnum? qualityNoOkEnum = null;
            if (logMiddle.St5_Mark_OK == false)
            {
                qualityNoOkEnum = QualityNoOkEnum.OP80打标不合格;
                setQualityState = QualityState.NG;
            }
            else if (logMiddle.ST6_Camera_OK == false)
            {
                qualityNoOkEnum = QualityNoOkEnum.OP80打标识别不合格;
                setQualityState = QualityState.NG;
            }
            info.QualityState = (int)setQualityState;
            if (qualityNoOkEnum != null)
            {
                info.QualityNoOk = (int)qualityNoOkEnum;
                info.QualityNoOkReason = qualityNoOkEnum.ToString();
            }
            pro.QualityState = (int)setQualityState;
            if (qualityNoOkEnum != null)
            {
                pro.QualityNoOk = (int)qualityNoOkEnum;
                pro.QualityNoOkReason = qualityNoOkEnum.ToString();
            }
        }
        /// <summary>
        /// NOOK推出时,更新质量状态 【Editby shaocx,2024-08-23】
        /// </summary>
        /// <param name="value"></param>
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Model/Enums.cs
@@ -114,6 +114,10 @@
        OP80大头端重量超差 = 27,
        OP80小头端重量超差 = 28,
        OP80打标不合格 = 30,
        OP80打标识别不合格 = 31,
    }
    /// <summary>