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