Пример #1
0
 /// <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;
 }
Пример #2
0
 /// <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);
     }
 }
Пример #3
0
 /// <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);
     }
 }
Пример #4
0
        /// <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);
            }
        }
Пример #5
0
        /// <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);
            }
        }
Пример #6
0
        /// <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);
            }
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        /// <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();
            }
        }
Пример #9
0
 /// <summary>
 /// 批次信息提醒
 /// </summary>
 private void BatchTip()
 {
     if (BaseVariable.DeviceEntity.ProductType != "踏板" && BaseVariable.DeviceEntity.ProductType != "制动泵" && Opt.GlobalNetStatus())
     {
         bool flag = Opt.CheckBatchStatus(this.productModel.ProductCode);
         if (flag)
         {
             Tip("有批次零件需要更新");
         }
     }
 }