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); } }
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); }