Ejemplo n.º 1
0
        /// <summary>
        /// 保存采集数据
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public bool saveItemAndCalResultData(string dataStr, string resDataStr)
        {
            int count = 0;
            List <InspectItemData>         itemList         = JsonConvertHelper.DeserializeObject <List <InspectItemData> >(dataStr);
            List <InspectRealTimeItemData> realTimeItemList = JsonConvertHelper.DeserializeObject <List <InspectRealTimeItemData> >(dataStr);
            List <InspectResultData>       culResultList    = JsonConvertHelper.DeserializeObject <List <InspectResultData> >(resDataStr);

            //用于事务处理
            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                try
                {
                    //插入基本信息
                    count = session.Insert <InspectItemData>(itemList);
                    foreach (InspectRealTimeItemData irti in realTimeItemList)
                    {
                        List <DataParameter> dataParameter = new List <DataParameter>();
                        dataParameter.Add(new DataParameter {
                            ParameterName = "DeviceSN", DataType = DbType.String, Value = irti.DeviceSN
                        });
                        dataParameter.Add(new DataParameter {
                            ParameterName = "ItemCode", DataType = DbType.String, Value = irti.ItemCode
                        });
                        //更新实时记录表
                        int updCount = Convert.ToInt32(session.ExecuteSqlScalar("select count(0) from inspectrealtimedata where DeviceCode = @DeviceSN and ItemCode = @ItemCode ", dataParameter.ToArray()));
                        //如果返回数据为0说明记录不存在则插入一条新的记录
                        if (updCount == 0)
                        {
                            session.Insert(irti);
                        }
                        else
                        {
                            //更新值
                            dataParameter.Add(new DataParameter {
                                ParameterName = "InspectTime", DataType = DbType.DateTime, Value = irti.InspectTime
                            });
                            dataParameter.Add(new DataParameter {
                                ParameterName = "InspectData", DataType = DbType.String, Value = irti.InspectData
                            });
                            dataParameter.Add(new DataParameter {
                                ParameterName = "UpdateTime", DataType = DbType.DateTime, Value = irti.UpdateTime
                            });
                            session.ExecuteSqlScalar("update inspectrealtimedata set InspectTime = @InspectTime, InspectData = @InspectData, UpdateTime = @UpdateTime where DeviceCode = @DeviceSN and ItemCode = @ItemCode ", dataParameter.ToArray());
                        }
                    }

                    //测试时使用否则插入同一张表中数据会主键冲突
                    foreach (InspectResultData ird in culResultList)
                    {
                        List <DataParameter> dataParameter = new List <DataParameter>();
                        dataParameter.Add(new DataParameter {
                            ParameterName = "ID", DataType = DbType.String, Value = ird.ID
                        });
                        int dataCount = Convert.ToInt32(session.ExecuteSqlScalar("select count(0) from inspectcalcresult where ID = @ID ", dataParameter.ToArray()));
                        //如果返回数据为0说明记录不存在则插入一条新的记录
                        if (dataCount == 0)
                        {
                            count += session.Insert(ird);
                        }
                        else
                        {
                            count += session.Update(ird);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    //保存出错时回滚数据
                    session.RollbackTs();
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 入库
        /// </summary>
        /// <param name="bill">入库单</param>
        /// <returns></returns>
        public string InStorage(InStockBill bill)
        {
            string result = "";

            bill.ID         = Guid.NewGuid().ToString();
            bill.CREATEUSER = this.LoginUser.UserID;
            bill.CREATETIME = DateTime.Now;
            bill.UPDATEUSER = this.LoginUser.UserID;
            bill.UPDATETIME = bill.CREATETIME;

            int seq = 1;

            foreach (InStockDetail detail in bill.Details)
            {
                detail.ID         = Guid.NewGuid().ToString();
                detail.BillID     = bill.ID;
                detail.CREATEUSER = bill.CREATEUSER;
                detail.CREATETIME = bill.CREATETIME;
                detail.UPDATEUSER = bill.UPDATEUSER;
                detail.UPDATETIME = bill.UPDATETIME;
                detail.Seq        = seq;
                seq++;
            }

            StockDAL   stockDal = new StockDAL();
            InStockDAL isDal    = new InStockDAL();

            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                try
                {
                    stockDal.Session = session;
                    isDal.Session    = session;

                    foreach (InStockDetail detail in bill.Details)
                    {
                        WHMatAmount inStock = new WHMatAmount();
                        inStock.Warehouse     = bill.Warehouse;
                        inStock.SaveSite      = detail.SaveSite;
                        inStock.MatBarCode    = detail.MatBarCode;
                        inStock.MatID         = detail.MatID;
                        inStock.ProductAmount = detail.InAmount;
                        inStock.ProductPrice  = detail.InPrice;
                        inStock.ProductSum    = detail.InSum;
                        inStock.Unit          = detail.UnitCode;
                        inStock.MainAmount    = detail.MainUnitAmount;

                        if (string.IsNullOrEmpty(detail.MatBarCode) == false && string.IsNullOrEmpty(detail.ProduceDate) == false)
                        {
                            inStock.ProduceDate = DateTime.Parse(detail.ProduceDate);
                            //更新条码信息的生产日期
                            new WHMatDAL().UpdateIDCodeProduceDate(new MatIDCode {
                                IDCode = detail.MatBarCode, ProduceDate = detail.ProduceDate
                            });
                        }


                        stockDal.InStock(inStock);
                    }

                    isDal.Insert(bill);

                    session.CommitTs();
                }
                catch (Exception ex)
                {
                    session.RollbackTs();
                    throw ex;
                }
            }

            return(result);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 出库
        /// </summary>
        /// <param name="bill">出库单</param>
        /// <returns></returns>
        public string OutStorage(OutStockBill bill)
        {
            string result = "";

            bill.ID         = Guid.NewGuid().ToString();
            bill.CREATEUSER = this.LoginUser.UserID;
            bill.CREATETIME = DateTime.Now;
            bill.UPDATEUSER = this.LoginUser.UserID;
            bill.UPDATETIME = bill.CREATETIME;

            //设置明细
            int seq = 1;

            foreach (OutStockDetail detail in bill.Details)
            {
                detail.ID  = Guid.NewGuid().ToString("N");
                detail.Seq = seq;
                seq++;
                detail.BillID     = bill.ID;
                detail.CREATEUSER = bill.CREATEUSER;
                detail.CREATETIME = bill.CREATETIME;
                detail.UPDATEUSER = bill.UPDATEUSER;
                detail.UPDATETIME = bill.UPDATETIME;
            }

            StockDAL    stockDal = new StockDAL();
            OutStockDAL outDal   = new OutStockDAL();

            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                try
                {
                    stockDal.Session = session;
                    outDal.Session   = session;

                    foreach (OutStockDetail detail in bill.Details)
                    {
                        WHMatAmount outStock = new WHMatAmount();
                        outStock.Warehouse     = bill.Warehouse;
                        outStock.SaveSite      = detail.SaveSite;
                        outStock.MatBarCode    = detail.IDCode;
                        outStock.MatID         = detail.MatID;
                        outStock.ProductAmount = detail.OutAmount;
                        outStock.ProductPrice  = detail.OutPrice;
                        outStock.ProductSum    = detail.OutSum;
                        outStock.Unit          = detail.UnitCode;
                        outStock.MainAmount    = detail.MainUnitAmount;

                        result = stockDal.OutStock(outStock);

                        if (result != "")
                        {
                            break;
                        }
                    }

                    if (result != "")
                    {
                        session.RollbackTs();

                        return(result);
                    }

                    outDal.Insert(bill);

                    session.CommitTs();
                }
                catch (Exception ex)
                {
                    session.RollbackTs();
                    throw ex;
                }
            }

            return(result);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 入库(货品编号)
        /// </summary>
        /// <param name="bill">入库单</param>
        /// <returns></returns>
        public void InMatStorage(InStockBill bill)
        {
            //设置基本信息
            bill.BillNO   = this.GetNewBillNO();
            bill.BillDate = DateTime.Now;
            bill.Receiver = this.LoginUser.UserID;

            bill.ID         = Guid.NewGuid().ToString();
            bill.CREATEUSER = this.LoginUser.UserID;
            bill.CREATETIME = DateTime.Now;
            bill.UPDATEUSER = this.LoginUser.UserID;
            bill.UPDATETIME = bill.CREATETIME;

            int seq = 1;

            foreach (InStockDetail detail in bill.Details)
            {
                detail.ID         = Guid.NewGuid().ToString();
                detail.BillID     = bill.ID;
                detail.InAmount   = detail.MainUnitAmount;
                detail.CREATEUSER = bill.CREATEUSER;
                detail.CREATETIME = bill.CREATETIME;
                detail.UPDATEUSER = bill.UPDATEUSER;
                detail.UPDATETIME = bill.UPDATETIME;
                detail.Seq        = seq;
                seq++;
            }

            StockDAL   stockDal = new StockDAL();
            InStockDAL isDal    = new InStockDAL();

            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                try
                {
                    stockDal.Session = session;
                    isDal.Session    = session;

                    foreach (InStockDetail detail in bill.Details)
                    {
                        WHMatAmount inStock = new WHMatAmount();
                        inStock.Warehouse     = bill.Warehouse;
                        inStock.SaveSite      = detail.SaveSite;
                        inStock.MatBarCode    = detail.MatBarCode;
                        inStock.MatID         = detail.MatID;
                        inStock.ProductAmount = detail.InAmount;
                        inStock.ProductPrice  = detail.InPrice;
                        inStock.ProductSum    = detail.InSum;
                        inStock.Unit          = detail.UnitCode;
                        inStock.CreateUser    = this.LoginUser.UserID;
                        inStock.UpdateUser    = this.LoginUser.UserID;
                        inStock.MainAmount    = detail.MainUnitAmount;

                        stockDal.InStock(inStock);
                    }

                    isDal.Insert(bill);

                    session.CommitTs();
                }
                catch (Exception ex)
                {
                    session.RollbackTs();
                    throw ex;
                }
            }
        }