/// <summary> /// 上传数据 /// </summary> public static void UploadData() { try { ThreadUploadDataState = ThreadState.Running; //CLog.WriteSysLog("UploadData:Start..."); while (ThreadUploadFlag) { try { int BatchCount = GetBatchCount(); int MaterialCount = GetMarterialCount(); bool BatchStatus = BatchCount > 0; bool MaterialStatus = MaterialCount > 0; if (!BatchStatus && !MaterialStatus) { int Time = 60 * Minutes; for (int i = 0; i < Time; i++) { if (!ThreadUploadFlag) { break; } Thread.Sleep(1000); } if (ThreadUploadFlag) { continue; } else { break; } } else if (BatchStatus && Opt.GlobalNetStatus()) { UploadBatchTable(); } else if (MaterialStatus && Opt.GlobalNetStatus()) { UploadMaterialTable(); } } catch (Exception ex) { CLog.WriteErrLog("UploadDataing Exception:" + ex.Message); } } } catch (Exception ex) { CLog.WriteErrLog("UploadData Exception:" + ex.Message); } ThreadUploadDataState = ThreadState.Stop; }
/// <summary> /// 应用更新 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnApply_Click(object sender, EventArgs e) { try { int rst = 0; if (Opt.GlobalNetStatus())//网络状态良好的情况下 { rst = ResultDAL.Update(BaseVariable.ResultTableName, this.lblHJCode.Text, this.lblProductCode.Text, "", "", "", RequestParam); rst = ResultDAL.Update(BaseVariable.ResultTableName, this.lblHJCode.Text, this.lblProductCode.Text, BaseVariable.DeviceEntity.ProductType, BaseVariable.UserEntity.UserID, BaseVariable.DeviceEntity.StationID, RequestParam); } if (rst == 1) { //重新加载数据 foreach (ListViewItem item in this.lvMaterial.Items) { item.SubItems[2].Text = "";//扫描条码 item.ForeColor = Color.Black; } this.lblTip.Text = "更新成功!请扫描合件条码"; Audio.SoundTip(2);//正确提示音 this.lblHJCode.Text = ""; this.lblMaterialCode.Text = ""; this.lblBarCode.Text = ""; scantype = ScanType.MATERIALCODE; IsHjScan = true; RequestParam.Clear(); } else if (rst == 201) { this.lblTip.Text = "合件不存在!"; Audio.SoundTip(0);//失败提示音 } else { this.lblTip.Text = "更新失败!"; Audio.SoundTip(0);//失败提示音 } } catch (Exception ex) { CLog.WriteErrLog(ex.Message); } }
/// <summary> /// 返修设置 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void bntBack_Click(object sender, EventArgs e) { try { if (!Opt.GlobalNetStatus()) { MessageBox.Show("离线模式下不能记录返修,待在线模式下返修!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1); } else { FrmRepair form = new FrmRepair(); form.frmMain = this; form.ShowDialog(); form.Dispose(); } } catch (Exception ex) { CLog.WriteErrLog("[FrmMain.bntBack]" + ex.Message); } }
/// <summary> /// 下载数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnDnData_Click(object sender, EventArgs e) { try { if (!Opt.GlobalNetStatus()) { MessageBox.Show("离线模式下不能下载数据,待在线模式下下载数据!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1); } else { FrmDataSync form = new FrmDataSync(SyncType.Download); form.ShowDialog(); form.Dispose(); LoadForm(); //加载产品特征码列表 Opt.LoadProductInfo(); } } catch (Exception ex) { CLog.WriteErrLog("[FrmMain.btnDnData]" + ex.Message); } }
/// <summary> /// 应用更新 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnApply_Click(object sender, EventArgs e) { try { if (IsOK) { this.lblTip.Text = "未录入数据!!!"; Audio.SoundTip(0);//失败提示音 return; } if (!string.IsNullOrEmpty(this.cmbMaterialCode.Text) && this.cmbMaterialCode.Text.Trim() != "" && !string.IsNullOrEmpty(this.tbMaterialBatchNo.Text) && this.tbMaterialBatchNo.Text.Trim() != "" && !string.IsNullOrEmpty(this.tbMaterialBatchNum.Text) && this.tbMaterialBatchNum.Text.Trim() != "" && !string.IsNullOrEmpty(this.tbBarCode.Text) && this.tbBarCode.Text.Trim() != "") { if (IsEdit) { #region //添加合件验证 if (!Opt.ValidatePartCode(this.cmbMaterialCode.Text, this.tbBarCode.Text.Trim())) { Audio.SoundTip(0); this.lblTip.Text = "扫描的合件不匹配,请重新录入"; return; } if (string.IsNullOrEmpty(this.tbBarCode.Text)) { Audio.SoundTip(0); this.lblTip.Text = "请录入合件条码"; return; } if (string.IsNullOrEmpty(this.tbMaterialBatchNo.Text)) { Audio.SoundTip(0); this.lblTip.Text = "请录入批次流水号"; return; } if (string.IsNullOrEmpty(this.tbMaterialBatchNum.Text)) { Audio.SoundTip(0); this.lblTip.Text = "请录入包装数量"; return; } else { int num = 0; try { num = int.Parse(this.tbMaterialBatchNum.Text); } catch (Exception) { num = 0; scantype = ScanType.PacketNumber; } if (num == 0) { this.lblTip.Text = "扫描包装数量不是数字或=0"; return; } } //if (string.IsNullOrEmpty(this.tbSupplier.Text)) //{ // Audio.SoundTip(0); // this.lblTip.Text = "请录入供应商编码"; // return; //} #endregion } BatchNoMDL model = MaterialInfoList[this.cmbMaterialCode.Text.Trim()] as BatchNoMDL; if (model == null) { return; } string barcode = this.tbBarCode.Text.Trim(); string batchno = this.tbMaterialBatchNo.Text.Trim(); string supplier = this.tbSupplier.Text.Trim(); int batchnum = model.BatchNum; if (!string.IsNullOrEmpty(this.tbMaterialBatchNum.Text.Trim())) { try { int num = int.Parse(this.tbMaterialBatchNum.Text.Trim()); batchnum = num; } catch (Exception) { } } model.BarCode = barcode; model.BatchNo = batchno; model.Supplier = supplier; model.BatchNum = batchnum; model.ProductType = BaseVariable.DeviceEntity.ProductType; bool flag = false; //结果标识 if (Opt.GlobalNetStatus()) //存储到服务器 { flag = batchDAL.Insert(model); } else//存储到服务器 { flag = lBatchDAL.Add(model); } if (flag) { IsOK = true; scantype = ScanType.MATERIALCODE; this.lblTip.Text = "更新成功,请扫描批次条码"; Audio.SoundTip(2);//正确提示音 } else { this.lblTip.Text = "更新失败,请重试"; Audio.SoundTip(0);//失败提示音 } } else { this.lblTip.Text = "批次相关信息不能为空"; } } catch (Exception ex) { CLog.WriteErrLog("[Frmbatch.Apply]" + ex.Message); } }
/// <summary> /// 数据上传提示 /// </summary> public void TipDataUpload() { try { string productType = BaseVariable.DeviceEntity.ProductType; //制动泵 int BrakeResultCount = 0; //踏板 int PedalResultCount = 0; //散热器 int RadiatorResultCount = 0; int BatchCount = 0; //添加前桥和后桥 int FrontAxleResultCount = 0; int RearAxleResultCount = 0; //添加副仪表板 int AuxiliaryFasiaResultCount = 0; switch (productType) { case "踏板": PedalResultCount = lPedalResultDAL.GetRecordCount(""); break; case "制动泵": BrakeResultCount = lBrakeResultDAL.GetRecordCount(""); break; case "散热器": RadiatorResultCount = lRadiatorResultDAL.GetRecordCount(""); break; case "前桥": FrontAxleResultCount = lFrontAxleResultDAL.GetRecordCount(""); break; case "后桥": RearAxleResultCount = lRearAxleResultDAL.GetRecordCount(""); break; case "副仪表板": AuxiliaryFasiaResultCount = lAuxiliaryFasiaResultDAL.GetRecordCount(""); break; } BatchCount = lBatchDAL.GetRecordCount(""); int total = BatchCount + BrakeResultCount + PedalResultCount + RadiatorResultCount + FrontAxleResultCount + RearAxleResultCount + AuxiliaryFasiaResultCount; if (!Opt.GlobalNetStatus() && total > 0) { string msg = string.Format("当前有{0}条数据需要上传,请在网络好的情况下手动上传!", total); MessageBox.Show(msg, "温馨提示", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); return; } if (total > 0) { string msg = string.Format("当前有{0}条数据需要上传,是否现在上传?", total); if (MessageBox.Show(msg, "温馨提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { FrmDataSync form = new FrmDataSync(SyncType.Upload); form.ShowDialog(); form.Dispose(); return; } } } catch (Exception ex) { CLog.WriteErrLog("Use UploadTip Exception:" + ex.Message); } }
/// <summary> /// 防错追溯,将信息添加到数据库 /// </summary> private bool ScanResultToDb() { try { if (CurrnetScanType == 1 || (productModel.HaveSub && RequestParam.Count > 0)) { //获取批次信息 //GetBatchInfoToParam(); bool flag = false; //结果标识 if (Opt.GlobalNetStatus()) //网络状态良好的情况下 { DateTime time = DateTime.Now; flag = ResultDAL.Insert(BaseVariable.ResultTableName, this.lblHJCode.Text, this.lblProductCode.Text, this.productModel.ProductType, BaseVariable.UserEntity.UserID, BaseVariable.DeviceEntity.StationID, CurrnetScanType, RequestParam); this.WirteTimeSpanLog(DateTime.Now - time, LogType.RD); } else { flag = SaveToLocal();//存储到本地数据库中 } if (!flag) { flag = SaveToLocal();//存储到本地数据库中 } if (flag) { this.lblOK.Text = "OK"; this.Tip("扫描合件条码"); this.lblOK.ForeColor = Color.Green; CurrentCount++; this.lblCurrentCount.Text = CurrentCount.ToString(); return(true); } } this.lblOK.Text = "NG"; this.Tip("请重新操作"); this.lblOK.ForeColor = Color.Red; } catch (Exception ex) { bool rst = SaveToLocal();//存储到本地数据库中 if (rst) { this.lblOK.Text = "OK"; this.Tip("扫描合件条码"); this.lblOK.ForeColor = Color.Green; CurrentCount++; this.lblCurrentCount.Text = CurrentCount.ToString(); return(true); } else { this.lblOK.Text = "NG"; this.Tip("请重新操作"); this.lblOK.ForeColor = Color.Red; } CLog.WriteErrLog("[FrmScan.ScanResultToDB]" + ex.Message); } finally { this.WirteTimeSpanLog(new TimeSpan(0, 0, 0, 0, (int)watch.ElapsedMilliseconds), LogType.V1); watch.Reset(); //BatchTip();//批次信息提醒 } return(false); }
/// <summary> /// 获取当前条码是否存在 /// 1.合件号;2.零件号(是一一追溯的零件) /// </summary> /// <param name="type">1:合件,2:零件</param> /// <param name="barcode">要验证的条码</param> /// <param name="materialfiled">字段名</param> public bool ValidateScanIsExist(int Type, string BarCode, string Filed) { Stopwatch existWatch = new Stopwatch(); try { /* * 人物:xudy * 时间:2015-01-18 * 内容:修改了条件,讲userid、barcode换为tid */ if (Opt.GlobalNetStatus())//从服务器获取数据 { existWatch.Start(); //string requestUrl = BaseVariable.RequestURL + "Result.ashx"; //Dictionary<string, object> dict = new Dictionary<string, object>(); //dict.Add("do", "validate"); //dict.Add("Type", Type); //dict.Add("TableName", BaseVariable.ResultTableName); //dict.Add("BarCode", BarCode); //dict.Add("ProductCode", this.productModel.ProductCode); //dict.Add("Filed", Filed); //string str = Http.POST(requestUrl, dict); //var obj = JsonHelper.JsonDeSerializer<ReturnInfo>(str); //ReturnInfo ReturnData = (ReturnInfo)obj; //if (ReturnData != null && ReturnData.Code == "1") //{ // return true; //} return(ResultDAL.Validate(BaseVariable.ResultTableName, BarCode, this.productModel.ProductCode, Type, Filed)); } else//从本地获取数据 { string sql = ""; switch (Type) { case 1: //合件 sql = string.Format("select tid from {0} where barcode='{1}' and productcode='{2}'", BaseVariable.ResultTableName, BarCode, this.productModel.ProductCode); break; case 2: //子件 sql = string.Format("select tid from {0} where {2}='{1}'", BaseVariable.ResultTableName, BarCode, Filed); break; } object obj = LocalDbDAL.ExecuteScaler(sql); if (obj != null && !string.IsNullOrEmpty(obj.ToString())) { return(true); } } return(false); } catch (Exception ex) { CLog.WriteErrLog(ex.Message); return(false); } finally { LogType ty = LogType.Y1; switch (Type) { case 1: //合件 ty = LogType.Y1; break; case 2: //子件 ty = LogType.Y2; break; } this.WirteTimeSpanLog(new TimeSpan(0, 0, 0, 0, (int)existWatch.ElapsedMilliseconds), ty); existWatch.Stop(); } }
/// <summary> /// 批次信息提醒 /// </summary> private void BatchTip() { if (BaseVariable.DeviceEntity.ProductType != "踏板" && BaseVariable.DeviceEntity.ProductType != "制动泵" && Opt.GlobalNetStatus()) { bool flag = Opt.CheckBatchStatus(this.productModel.ProductCode); if (flag) { Tip("有批次零件需要更新"); } } }