コード例 #1
0
ファイル: CtlNodeBaseModel.cs プロジェクト: zwxscu/ZAOJU3
        protected bool UploadMesdetailData(LOCAL_MES_STEP_INFO_DETAILModel m)
        {
            //if (mesDA.MesDetailExist(m.RECID))
            //{
            //    m.RECID = System.Guid.NewGuid().ToString();
            //}
            FT_MES_STEP_INFO_DETAILModel ftM = new FT_MES_STEP_INFO_DETAILModel();

            ftM.DATA_NAME        = m.DATA_NAME;
            ftM.DATA_VALUE       = m.DATA_VALUE;
            ftM.LAST_MODIFY_TIME = m.LAST_MODIFY_TIME;
            ftM.RECID            = m.RECID;
            ftM.SERIAL_NUMBER    = m.SERIAL_NUMBER;
            ftM.STATUS           = m.STATUS;
            ftM.STEP_NUMBER      = m.STEP_NUMBER;
            ftM.TRX_TIME         = m.TRX_TIME;
            try
            {
                int reTryMax     = 10;
                int reTryCounter = 0;
                while (!mesDA.AddMesDetailinfo(ftM))
                {
                    Thread.Sleep(1000);
                    reTryCounter++;
                    if (reTryCounter > reTryMax)
                    {
                        logRecorder.AddDebugLog(this.nodeName, string.Format("上传详细数据到MES失败,条码:{0},工位:{1}", ftM.SERIAL_NUMBER, ftM.STEP_NUMBER));
                        return(false);
                    }
                }
                logRecorder.AddDebugLog(this.nodeName, string.Format("上传详细数据到MES成功,条码:{0},工位:{1}", ftM.SERIAL_NUMBER, ftM.STEP_NUMBER));
                return(true);
            }
            catch (Exception ex)
            {
                logRecorder.AddDebugLog(this.nodeName, string.Format("上传详细数据失败,MES数据库访问异常,条码:{0},工位:{1},{2}", ftM.SERIAL_NUMBER, ftM.STEP_NUMBER, ex.Message));
                return(false);
            }
        }
コード例 #2
0
ファイル: LineMonitorPresenter.cs プロジェクト: zwxscu/ZAOJU3
        //private void MesUploadProc()
        //{
        //    try
        //    {
        //        //按照MES工艺路线要求,又考虑到实际工位布局顺序跟MES工艺路线并不一致,确定如下上传顺序:
        //        //气密2-零秒点火-气密1,3->一次试火->二次试火->外观检测->包装下线
        //        //MES工位顺序:RQ-ZA041->RQ-ZA030->RQ-ZA040->RQ-ZA050,RQ-ZA051,RQ-ZA052,RQ-ZA053->RQ-ZA060->RQ-ZA070->RQ-ZA080
        //        //1 先传RQ-ZA041
        //        string[] mesProcessSeq = new string[] { "RQ-ZA041", "RQ-ZA030", "RQ-ZA040", "RQ-ZA050", "RQ-ZA051", "RQ-ZA052", "RQ-ZA053", "RQ-ZA060", "RQ-ZA070"};
        //        string[] fireTryA = new string[]{ "RQ-ZA050", "RQ-ZA051", "RQ-ZA052", "RQ-ZA053"};
        //        List<string> strConditions = new List<string>();
        //        for(int i=0;i<mesProcessSeq.Count();i++)
        //        {
        //            strConditions.Add(string.Format("UPLOAD_FLAG = 0 and STEP_NUMBER='{0}' order by TRX_TIME asc",mesProcessSeq[i]));
        //        }
        //        for(int i=0;i<strConditions.Count;i++)
        //        {
        //            string strWhere = strConditions[i];
        //            List<LOCAL_MES_STEP_INFOModel> models = localMesBasebll.GetModelList(strWhere);
        //            if(models == null || models.Count()<1)
        //            {
        //                continue;
        //            }
        //            if(0==i)
        //            {
        //                 foreach (LOCAL_MES_STEP_INFOModel m in models)
        //                {
        //                    UploadMesbasicData(m);
        //                }
        //            }
        //            else
        //            {
        //                foreach (LOCAL_MES_STEP_INFOModel m in models)
        //                {
        //                    //检测上道工艺是否上传完成
        //                    string strCheckWhere = "";
        //                    if ("RQ-ZA040" == mesProcessSeq[i]) //气密1,3
        //                    {
        //                        //要求气密1,3都检测完一起上传
        //                        string strCond1 = string.Format("UPLOAD_FLAG=0 and SERIAL_NUMBER='{0}' and AutoStationName='气密检查1'", m.SERIAL_NUMBER);
        //                        string strCond2 = string.Format("UPLOAD_FLAG=0 and SERIAL_NUMBER='{0}' and AutoStationName='气密检查3'", m.SERIAL_NUMBER);
        //                        if((!localMesBasebll.ExistByCondition(strCond1)) || (!localMesBasebll.ExistByCondition(strCond2)))
        //                        {
        //                            continue;
        //                        }
        //                        strCheckWhere = string.Format("UPLOAD_FLAG = 1 and STEP_NUMBER='{0}' and SERIAL_NUMBER='{1}' order by TRX_TIME asc", mesProcessSeq[i - 1], m.SERIAL_NUMBER);
        //                    }
        //                    else if (fireTryA.Contains(mesProcessSeq[i])) //一次试火
        //                    {
        //                        strCheckWhere = string.Format("UPLOAD_FLAG = 1 and STEP_NUMBER='{0}' and SERIAL_NUMBER='{1}' order by TRX_TIME asc", "RQ-ZA040", m.SERIAL_NUMBER);
        //                    }
        //                    else if ("RQ-ZA060"==mesProcessSeq[i]) //二次试火
        //                    {
        //                        strCheckWhere = string.Format("UPLOAD_FLAG = 1 and (STEP_NUMBER='RQ-ZA050' or STEP_NUMBER='RQ-ZA051' or STEP_NUMBER='RQ-ZA052' or STEP_NUMBER='RQ-ZA053') and SERIAL_NUMBER='{0}' order by TRX_TIME asc", m.SERIAL_NUMBER);
        //                    }
        //                    else
        //                    {
        //                         strCheckWhere = string.Format("UPLOAD_FLAG = 1 and STEP_NUMBER='{0}' and SERIAL_NUMBER='{1}' order by TRX_TIME asc", mesProcessSeq[i-1],m.SERIAL_NUMBER);

        //                    }
        //                  //  List<LOCAL_MES_STEP_INFOModel> preuploadModels = localMesBasebll.GetModelList(strCheckWhere);
        //                    if (localMesBasebll.ExistByCondition(strCheckWhere))
        //                    {
        //                        UploadMesbasicData(m);
        //                    }
        //                    else
        //                    {
        //                        continue;
        //                    }
        //                }
        //            }

        //        }
        //        //logRecorder.AddDebugLog(this.objectName,"MES 数据上传测试!");
        //        for (int i = 0; i < strConditions.Count; i++)
        //        {
        //            string strWhere = strConditions[i];
        //            List<LOCAL_MES_STEP_INFO_DETAILModel> models = localMesDetailbll.GetModelList(strWhere);
        //            if (models == null || models.Count() < 1)
        //            {
        //                continue;
        //            }
        //            if (0==i)
        //            {
        //                foreach (LOCAL_MES_STEP_INFO_DETAILModel m in models)
        //                {
        //                    UploadMesdetailData(m);
        //                }
        //            }
        //            else
        //            {
        //                foreach (LOCAL_MES_STEP_INFO_DETAILModel m in models)
        //                {
        //                    //检测上道工艺是否上传完成
        //                    string strCheckWhere = "";
        //                    if ("RQ-ZA040" == mesProcessSeq[i]) //气密1,3
        //                    {
        //                        //要求气密1,3都检测完一起上传
        //                        string strCond1 = string.Format("UPLOAD_FLAG=0 and SERIAL_NUMBER='{0}' and AutoStationName='气密检查1'", m.SERIAL_NUMBER);
        //                        string strCond2 = string.Format("UPLOAD_FLAG=0 and SERIAL_NUMBER='{0}' and AutoStationName='气密检查3'", m.SERIAL_NUMBER);
        //                        if(!localMesDetailbll.ExistByCondition(strCond1) || (!localMesDetailbll.ExistByCondition(strCond2)))
        //                        {
        //                            continue;
        //                        }
        //                    }
        //                    else if (fireTryA.Contains(mesProcessSeq[i]))
        //                    {
        //                        strCheckWhere = string.Format("UPLOAD_FLAG = 1 and STEP_NUMBER='{0}' and SERIAL_NUMBER='{1}' order by TRX_TIME asc", "RQ-ZA040", m.SERIAL_NUMBER);
        //                    }
        //                    else if (mesProcessSeq[i] == "RQ-ZA060")
        //                    {
        //                        strCheckWhere = string.Format("UPLOAD_FLAG = 1 and (STEP_NUMBER='RQ-ZA050' or STEP_NUMBER='RQ-ZA051' or STEP_NUMBER='RQ-ZA052' or STEP_NUMBER='RQ-ZA053') and SERIAL_NUMBER='{0}' order by TRX_TIME asc", m.SERIAL_NUMBER);
        //                    }
        //                    else
        //                    {
        //                        strCheckWhere = string.Format("UPLOAD_FLAG = 1 and STEP_NUMBER='{0}' and SERIAL_NUMBER='{1}' order by TRX_TIME asc", mesProcessSeq[i - 1], m.SERIAL_NUMBER);

        //                    }
        //                    if (localMesDetailbll.ExistByCondition(strCheckWhere))
        //                    {
        //                        UploadMesdetailData(m);
        //                    }
        //                    else
        //                    {
        //                        continue;
        //                    }
        //                }
        //            }
        //        }

        //    }
        //    catch (Exception ex)
        //    {
        //        logRecorder.AddLog(new LogModel(objectName, ex.ToString(), EnumLoglevel.错误));

        //    }

        //}

        //private void UploadMesbasicData(LOCAL_MES_STEP_INFOModel m)
        //{
        //    if (mesDA.MesBaseExist(m.RECID))
        //    {
        //        m.UPLOAD_FLAG = true;
        //        localMesBasebll.Update(m);
        //        return;
        //    }
        //    FT_MES_STEP_INFOModel ftM = new FT_MES_STEP_INFOModel();

        //    ftM.CHECK_RESULT = m.CHECK_RESULT;
        //    ftM.DEFECT_CODES = m.DEFECT_CODES;
        //    ftM.LAST_MODIFY_TIME = System.DateTime.Now; //m.LAST_MODIFY_TIME;
        //    ftM.REASON = m.REASON;
        //    ftM.RECID = m.RECID;
        //    ftM.SERIAL_NUMBER = m.SERIAL_NUMBER;
        //    ftM.STATUS = m.STATUS;
        //    ftM.STEP_MARK = m.STEP_MARK;
        //    ftM.STEP_NUMBER = m.STEP_NUMBER;
        //    ftM.TRX_TIME = System.DateTime.Now;//m.TRX_TIME;
        //    ftM.USER_NAME = m.USER_NAME;
        //    mesDA.AddMesBaseinfo(ftM);
        //    logRecorder.AddDebugLog(objectName, string.Format("上传基本数据到MES成功,条码:{0},工位:{1}", ftM.SERIAL_NUMBER, ftM.STEP_NUMBER));
        //    m.UPLOAD_FLAG = true;
        //    localMesBasebll.Update(m);
        //}
        private void UploadMesdetailData(LOCAL_MES_STEP_INFO_DETAILModel m)
        {
            if (mesDA.MesDetailExist(m.RECID))
            {
                m.UPLOAD_FLAG = true;
                localMesDetailbll.Update(m);
                return;
            }
            FT_MES_STEP_INFO_DETAILModel ftM = new FT_MES_STEP_INFO_DETAILModel();

            ftM.DATA_NAME        = m.DATA_NAME;
            ftM.DATA_VALUE       = m.DATA_VALUE;
            ftM.LAST_MODIFY_TIME = System.DateTime.Now; //m.LAST_MODIFY_TIME;
            ftM.RECID            = m.RECID;
            ftM.SERIAL_NUMBER    = m.SERIAL_NUMBER;
            ftM.STATUS           = m.STATUS;
            ftM.STEP_NUMBER      = m.STEP_NUMBER;
            ftM.TRX_TIME         = System.DateTime.Now;// m.TRX_TIME;
            mesDA.AddMesDetailinfo(ftM);
            logRecorder.AddDebugLog(objectName, string.Format("上传详细数据到MES成功,条码:{0},工位:{1}", ftM.SERIAL_NUMBER, ftM.STEP_NUMBER));
            m.UPLOAD_FLAG = true;
            localMesDetailbll.Update(m);
        }
コード例 #3
0
ファイル: CtlNodeBaseModel.cs プロジェクト: zwxscu/ZAOJU3
        protected bool AsyUploadMesdata(string productBarcode, string[] mesProcessSeq, ref string reStr)
        {
            try
            {
                // int uploadDelay = 2000;//上传延迟5秒
                List <string> strConditions = new List <string>();
                for (int i = 0; i < mesProcessSeq.Count(); i++)
                {
                    strConditions.Add(string.Format("SERIAL_NUMBER='{0}' and UPLOAD_FLAG = 0 and STEP_NUMBER='{1}' order by TRX_TIME asc", productBarcode, mesProcessSeq[i]));
                    string strWhere = strConditions[i];
                    List <LOCAL_MES_STEP_INFOModel> models = localMesBasebll.GetModelList(strWhere);
                    if (models == null || models.Count() < 1)
                    {
                        continue;
                    }
                    string process = mesProcessSeq[i];
                    if (process == "RQ-ZA240")
                    {
                        if (models.Count() > 1)
                        {
                            LOCAL_MES_STEP_INFOModel model1  = models[0];
                            LOCAL_MES_STEP_INFOModel model2  = models[1];
                            LOCAL_MES_STEP_INFOModel uploadM = model1.Clone() as LOCAL_MES_STEP_INFOModel;

                            if (model1.CHECK_RESULT == 1 || model2.CHECK_RESULT == 1)
                            {
                                uploadM.CHECK_RESULT = 1;
                                if (model1.CHECK_RESULT == 1 && model2.CHECK_RESULT == 1)
                                {
                                    uploadM.DEFECT_CODES += (";" + model2.DEFECT_CODES);
                                }
                                else if (model2.CHECK_RESULT == 1)
                                {
                                    uploadM.DEFECT_CODES = model2.DEFECT_CODES;
                                }
                            }

                            if (!UploadMesbasicData(uploadM))
                            {
                                return(false);
                            }

                            model1.UPLOAD_FLAG = true;
                            model2.UPLOAD_FLAG = true;
                            localMesBasebll.Update(model1);
                            localMesBasebll.Update(model2);
                            //Thread.Sleep(uploadDelay);
                        }
                        else if (models.Count() == 1)
                        {
                            if (!UploadMesbasicData(models[0]))
                            {
                                return(false);
                            }
                            models[0].UPLOAD_FLAG = true;
                            localMesBasebll.Update(models[0]);
                            // Thread.Sleep(uploadDelay);
                        }
                    }
                    else
                    {
                        foreach (LOCAL_MES_STEP_INFOModel m in models)
                        {
                            if (!UploadMesbasicData(m))
                            {
                                return(false);
                            }
                            m.UPLOAD_FLAG = true;
                            localMesBasebll.Update(m);
                            // Thread.Sleep(uploadDelay);
                        }
                    }
                }
                //for (int i = 0; i < strConditions.Count; i++)
                //{


                //}
                for (int i = 0; i < strConditions.Count; i++)
                {
                    string strWhere = strConditions[i];
                    List <LOCAL_MES_STEP_INFO_DETAILModel> models = localMesDetailbll.GetModelList(strWhere);
                    if (models == null || models.Count() < 1)
                    {
                        continue;
                    }
                    string process = mesProcessSeq[i];
                    if (process == "RQ-ZA240")
                    {
                        if (models.Count() > 1)
                        {
                            LOCAL_MES_STEP_INFO_DETAILModel model1  = models[0];
                            LOCAL_MES_STEP_INFO_DETAILModel model2  = models[1];
                            LOCAL_MES_STEP_INFO_DETAILModel uploadM = model1.Clone() as LOCAL_MES_STEP_INFO_DETAILModel;
                            uploadM.DATA_VALUE += (";" + model2.DATA_VALUE);
                            if (!UploadMesdetailData(uploadM))
                            {
                                return(false);
                            }
                            model1.UPLOAD_FLAG = true;
                            model2.UPLOAD_FLAG = true;
                            localMesDetailbll.Update(model1);
                            localMesDetailbll.Update(model2);
                            //  Thread.Sleep(uploadDelay);
                        }
                        else if (models.Count() == 1)
                        {
                            if (!UploadMesdetailData(models[0]))
                            {
                                return(false);
                            }
                            models[0].UPLOAD_FLAG = true;
                            localMesDetailbll.Update(models[0]);
                            // Thread.Sleep(uploadDelay);
                        }
                    }
                    else
                    {
                        foreach (LOCAL_MES_STEP_INFO_DETAILModel m in models)
                        {
                            if (!UploadMesdetailData(m))
                            {
                                return(false);
                            }
                            m.UPLOAD_FLAG = true;
                            localMesDetailbll.Update(m);
                            // Thread.Sleep(uploadDelay);
                        }
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                reStr = ex.ToString();
                this.ThrowErrorStat(ex.ToString(), EnumNodeStatus.设备故障);
                return(false);
            }
        }
コード例 #4
0
ファイル: CtlNodeBaseModel.cs プロジェクト: zwxscu/ZAOJU3
        protected virtual bool MesDatalocalSave(string productBarcode, int checkResult, string detectCodes, string dataValues, int step_mark)
        {
            string strWhere = string.Format("SERIAL_NUMBER='{0}' and AutoStationName='{1}' and UPLOAD_FLAG=0", productBarcode, this.nodeName);
            List <LOCAL_MES_STEP_INFOModel> unuploads = mesInfoBllLocal.GetModelList(strWhere);

            if (unuploads != null && unuploads.Count > 0)
            {
                foreach (LOCAL_MES_STEP_INFOModel m in unuploads)
                {
                    if (!mesInfoBllLocal.Delete(m.RECID))
                    {
                        return(false);
                    }
                }
            }
            //1 存储基本信息
            LOCAL_MES_STEP_INFOModel infoModel = new LOCAL_MES_STEP_INFOModel();

            infoModel.CHECK_RESULT     = checkResult;
            infoModel.DEFECT_CODES     = detectCodes;
            infoModel.LAST_MODIFY_TIME = System.DateTime.Now;
            infoModel.RECID            = System.Guid.NewGuid().ToString();
            infoModel.SERIAL_NUMBER    = productBarcode;
            infoModel.STEP_NUMBER      = this.mesNodeID; //mes工位号
            infoModel.TRX_TIME         = System.DateTime.Now;
            infoModel.UPLOAD_FLAG      = false;
            infoModel.USER_NAME        = "";
            infoModel.STATUS           = 0;
            infoModel.STEP_MARK        = step_mark;
            infoModel.AutoStationName  = this.nodeName;
            if (!mesInfoBllLocal.Add(infoModel))
            {
                return(false);
            }
            //2存储细节数据
            List <LOCAL_MES_STEP_INFO_DETAILModel> unuploadsDetial = mesDetailBllLocal.GetModelList(strWhere);

            if (unuploadsDetial != null && unuploadsDetial.Count > 0)
            {
                foreach (LOCAL_MES_STEP_INFO_DETAILModel m in unuploadsDetial)
                {
                    mesDetailBllLocal.Delete(m.RECID);
                }
            }
            LOCAL_MES_STEP_INFO_DETAILModel detailModel = new LOCAL_MES_STEP_INFO_DETAILModel();

            detailModel.DATA_NAME        = this.mesNodeName; //
            detailModel.DATA_VALUE       = dataValues;
            detailModel.LAST_MODIFY_TIME = System.DateTime.Now;
            detailModel.RECID            = System.Guid.NewGuid().ToString();
            detailModel.SERIAL_NUMBER    = currentStat.ProductBarcode;
            detailModel.STATUS           = 0;
            detailModel.STEP_NUMBER      = this.mesNodeID; //
            detailModel.TRX_TIME         = System.DateTime.Now;
            detailModel.UPLOAD_FLAG      = false;
            detailModel.AutoStationName  = this.nodeName;

            if (!mesDetailBllLocal.Add(detailModel))
            {
                return(false);
            }

            return(true);
        }