Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }