Пример #1
0
 /// <summary>
 /// 获取材料信息
 /// </summary>
 public void GetMaterialInfo()
 {
     try
     {
         string MaterialList = "";
         if (RemoteMaterialHT.Count > 0)
         {
             RemoteMaterialHT.Clear();
         }
         DataTable table = bomDAL.GetList(string.Format("ProductType='{0}' AND ProductCode = '{1}' AND TraceType='{2}'", BaseVariable.DeviceEntity.ProductType, this.txtProductCode.Text, "批次追溯")).Tables[0];
         if (table != null)
         {
             foreach (DataRow row in table.Rows)
             {
                 ProductBomInfoMDL model = new ProductBomInfoMDL()
                 {
                     MaterialCode = row["MaterialCode"].ToString(),
                     MaterialName = row["MaterialName"].ToString(),
                     MaterialNum  = int.Parse(row["MaterialNum"].ToString())
                 };
                 RemoteMaterialHT.Add(row["MaterialCode"].ToString(), model);
                 MaterialList += "'" + row["MaterialCode"].ToString() + "',";
             }
             MaterialList = MaterialList.Substring(0, MaterialList.LastIndexOf(','));
             //从数据库获取当前批次材料信息
             batchTable = batchDAL.GetList(string.Format("MaterialCode IN({0})", MaterialList)).Tables[0];
             if (batchTable.Rows.Count != table.Rows.Count)
             {
                 this.Tip("材料条码信息不全");    //提示
                 IsAbleScan = false;
                 return;
             }
             else
             {
                 if (!IsAbleScan)
                 {
                     IsAbleScan = true;
                     this.Tip("材料条码信息通过");    //提示
                 }
             }
             BatchChangeTip();
         }
     }
     catch (Exception ex)
     {
         CLog.WriteErrLog("[FrmScan.GetmaterialInfo]" + ex.Message);
     }
 }
Пример #2
0
 //4.bom表
 #region  载BOM表
 private void DownloadBOM()
 {
     try
     {
         DataTable table = productBomDAL.GetDataTable(BaseVariable.DeviceEntity.ProductType, "", "", "0");
         if (table != null && table.Rows.Count > 0)
         {
             int count = table.Rows.Count;
             this.progressBar.Maximum = count;
             this.progressBar.Value   = 0;
             for (int i = 0; i < count; i++)
             {
                 DataRow           row   = table.Rows[i];
                 ProductBomInfoMDL model = productBomDAL.DataRowToModel(row);
                 bool rst = lProductBomDAL.Add(model);
                 this.progressBar.Value = i;
             }
         }
     }
     catch (Exception ex)
     {
         CLog.WriteErrLog(ex.Message);
     }
 }
 /// <summary>
 /// 获取产品BOM信息
 /// </summary>
 private void Select()
 {
     try
     {
         string sql          = " 1=1 ";
         string method       = context.Request.Params["method"].ToString();
         string ProductType  = context.Request.Params["ProductType"].ToString();
         string ProductCode  = context.Request.Params["ProductCode"].ToString();
         string MaterialCode = context.Request.Params["MaterialCode"].ToString();
         string TraceType    = context.Request.Params["TraceType"].ToString();
         if (!string.IsNullOrEmpty(ProductType))
         {
             sql += string.Format(" AND ProductType = '{0}'", ProductType);
         }
         if (!string.IsNullOrEmpty(ProductCode))
         {
             sql += string.Format(" AND ProductCode = '{0}'", ProductCode);
         }
         if (!string.IsNullOrEmpty(MaterialCode))
         {
             sql += string.Format(" AND MaterialCode = '{0}'", MaterialCode);
         }
         if (!string.IsNullOrEmpty(TraceType))
         {
             if (TraceType == "1")
             {
                 TraceType = "'扫描追溯'";
             }
             else if (TraceType == "2")
             {
                 TraceType = "'批次追溯'";
             }
             else
             {
                 TraceType = "'扫描追溯','批次追溯'";
             }
             sql += string.Format(" AND TraceType in ({0})", TraceType);
         }
         if (method == "model")
         {
             string TID = context.Request.Params["TID"].ToString();
             if (!string.IsNullOrEmpty(TID))
             {
                 sql += string.Format(" AND TID = {0}", TID);
             }
             ProductBomInfoMDL model = DataDAL.GetModel(sql);
             if (model != null)
             {
                 ReturnData.Code = "1";
                 ReturnData.Msg  = "OK";
                 ReturnData.Data = model;
             }
         }
         else if (method == "search")
         {
             sql += " ORDER BY TID ASC";
             DataSet set = DataDAL.GetList(sql);
             if (set != null && set.Tables.Count > 0)
             {
                 DataTable table = set.Tables[0];
                 if (table != null && table.Rows.Count > 0)
                 {
                     //object obj = TableHelper.TableToObj(table);
                     ReturnData.Code = "1";
                     ReturnData.Msg  = "OK";
                     ReturnData.Data = table;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         CLog.WriteErrLog(ex.Message);
     }
 }
Пример #4
0
        /// <summary>
        /// 添加批次信息
        /// </summary>
        private void Insert()
        {
            try
            {
                //string ProductCode = context.Request.Params["ProductCode"].ToString();
                string ProductType  = context.Request.Params["ProductType"].ToString();
                string MaterialCode = context.Request.Params["MaterialCode"].ToString();
                string BatchNo      = context.Request.Params["BatchNo"].ToString();
                string BatchNumStr  = context.Request.Params["BatchNum"].ToString();
                string Supplier     = context.Request.Params["Supplier"].ToString();
                int    BatchNum     = 0;
                bool   b            = int.TryParse(BatchNumStr, out BatchNum);

                BatchNoMDL Model = null;
                string     sql   = string.Format("materialcode='{0}'", MaterialCode);
                Model = DataDAL.GetModel(sql);
                if (Model != null)
                {
                    Model.BatchNo  = BatchNo;
                    Model.BatchNum = (b && BatchNum > 0) ? BatchNum : Model.BatchNum;
                    Model.StockNum = Model.BatchNum;
                    Model.Supplier = Supplier;

                    this.Update(Model);
                    return;
                }
                else
                {
                    Model = new BatchNoMDL();
                    sql   = string.Format("producttype='{0}' AND materialcode='{1}'", ProductType, MaterialCode);
                    ProductBomInfoDAL pb   = new ProductBomInfoDAL();
                    ProductBomInfoMDL info = pb.GetModel(sql);

                    if (b && BatchNum > 0)
                    {
                        Model.BatchNum = BatchNum;
                    }
                    else
                    {
                        if (info != null || info.BatchNum.ToString().Trim() != "")
                        {
                            Model.BatchNum = int.Parse(info.BatchNum.ToString());
                        }
                        else
                        {
                            Model.BatchNum = 1;
                        }
                    }
                    Model.StockNum     = Model.BatchNum;
                    Model.MaterialCode = MaterialCode;
                    Model.MaterialName = info.MaterialName;
                    Model.BatchNo      = BatchNo;
                    Model.Supplier     = Supplier;

                    bool flag = DataDAL.Add(Model);
                    if (flag)
                    {
                        ReturnData.Code = "1";
                        ReturnData.Msg  = "OK";
                    }

                    BatchNoHisDAL HisDAL   = new BatchNoHisDAL();
                    BatchNoHisMDL HisModel = new BatchNoHisMDL();
                    HisModel.MaterialCode = Model.MaterialCode;
                    HisModel.BatchNo      = BatchNo;
                    HisModel.BatchNum     = Model.BatchNum;
                    HisModel.Supplier     = Model.Supplier;
                    HisModel.CreateTime   = DateTime.Now;
                    flag = HisDAL.Add(HisModel);
                }
            }
            catch (Exception ex)
            {
                CLog.WriteErrLog(ex.Message + ex.StackTrace);
            }
        }
Пример #5
0
        /// <summary>
        /// 防错追溯,将信息添加到数据库
        /// </summary>
        private void ScanResultToDb()
        {
            try
            {
                if (resultModel != null)
                {
                    bool rst = false;
                    if (!BaseVariable.NetworkStatus || !BaseVariable.ServerStatus)        //离线状态
                    {
                        resultModel.createtime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        PedalResultMDL IsExistLocal = lResultDAL.GetModel(string.Format("barcode='{0}' and productcode='{1}'", this.txtHJCode.Text, this.txtProductCode.Text));
                        if (IsExistLocal != null && !IsExistLocal.tid.ToString().Equals("0"))
                        {
                            resultModel.tid = IsExistLocal.tid;
                            string sql = DataExistToDb(false);
                            rst = LocalDbDAL.ExecuteSql(sql);        //存到本地数据库
                        }
                        else
                        {
                            rst = lResultDAL.Add(resultModel);        //添加到本地数据库
                        }
                    }
                    else        //在线状态
                    {
                        //添加批量追溯信息
                        GetBatchInfoToModel();

                        //同步到数据库:在没有同步到远程数据库时记录到本地数据库
                        #region  步到数据库
                        resultModel.createtime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        rst = false;        //更新到远程服务器数据库是否成功
                        PedalResultMDL IsExistRomote = resultDAL.GetModel(string.Format("barcode='{0}' and productcode='{1}'", this.txtHJCode.Text, this.txtProductCode.Text));
                        //更新到远程服务器数据库
                        if (IsExistRomote != null && !IsExistRomote.tid.ToString().Equals("0"))
                        {
                            resultModel.tid        = IsExistRomote.tid;
                            resultModel.createtime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                            //封装更新字段
                            string sql = DataExistToDb(true);
                            //sql += string.Format("CreateTime='{0}',", resultModel.CreateTime);
                            rst = CommonDAL.ExecuteSql(sql, null);        //存到远程服务器数据库
                        }
                        else
                        {
                            rst = resultDAL.Add(resultModel);        //添加到远程服务器数据库
                        }
                        //更新到本地数据库
                        //rst = false;
                        if (!rst)
                        {
                            PedalResultMDL IsExistLocal = lResultDAL.GetModel(string.Format("barcode='{0}' and productcode='{1}'", this.txtHJCode.Text, this.txtProductCode.Text));
                            if (IsExistLocal != null && !IsExistLocal.tid.ToString().Equals("0"))
                            {
                                resultModel.tid = IsExistLocal.tid;
                                string sql = DataExistToDb(true);
                                rst = LocalDbDAL.ExecuteSql(sql);        //存到本地数据库
                            }
                            else
                            {
                                rst = lResultDAL.Add(resultModel);        //添加到本地数据库
                            }
                        }
                        //批次材料数量更新
                        foreach (DictionaryEntry item in RemoteMaterialHT)        // 遍历哈希表
                        {
                            string            code = item.Key.ToString();
                            ProductBomInfoMDL obj  = item.Value as ProductBomInfoMDL;
                            //var obj = item.Value;
                            BatchNoMDL model = LocalMaterialHT[code] as BatchNoMDL;
                            model.StockNum -= obj.MaterialNum;
                            batchDAL.Update(model);        //更新数据
                        }
                        #endregion
                        if (rst)
                        {
                            this.lblOK.Text      = "OK";
                            this.lblOK.ForeColor = Color.Green;
                        }
                        else
                        {
                            this.lblOK.Text      = "NG";
                            this.lblOK.ForeColor = Color.Red;
                        }
                        BatchChangeTip();        //批次数量提示
                    }
                }
                else
                {
                    this.Tip("记录错误");
                }
            }
            catch (Exception ex)
            {
                CLog.WriteErrLog("[FrmScan.ScanResultToDB]" + ex.Message);
            }
        }