public static bool InsertDB(ExeclRow entity, SqlConnection conn, ref string msg) { //基本信息 cl_Product productModel = new cl_Product(); productModel.ProductGUID = Guid.NewGuid(); productModel.ProductCode = entity.Code; productModel.ProductName = entity.Name; productModel.ProductTypeCode = entity.TypeCode; productModel.Unit = entity.Unit; productModel.QuotaAttributeNameList = entity.QuotaAttributeNameList; productModel.Source = "工具导入"; productModel.CreateTime = DateTime.Now; productModel.LastMenderDate = DateTime.Now; productModel.PutInStorageState = "已入库"; productModel.Remarks = entity.Remake; //扩展信息 cl_Product_Ext productExtModel = new cl_Product_Ext(); productExtModel.ID = Guid.NewGuid(); productExtModel.ProductGUID = productModel.ProductGUID; productExtModel.brandName = entity.BrandName; productExtModel.DHHQ = entity.ProductTime; productExtModel.YBFHQ = entity.ExampleTime; productExtModel.ProductModel = entity.ModelName; productExtModel.Specifications = entity.Format; //枚举信息 Tuple <List <p_Product2QuotaAttribute>, List <p_ProductAttributeValue> > tupleResult = AttributeInsertList(entity, productModel); List <p_Product2QuotaAttribute> product2QuotaAttributeList = tupleResult.Item1; List <p_ProductAttributeValue> productAttributeValueList = tupleResult.Item2; using (SqlTransaction transaction = conn.BeginTransaction()) { try { DataBaseCommand.SaveProduct(productModel, conn, transaction); //保存产品 DataBaseCommand.SaveProductExt(productExtModel, conn, transaction); //保存扩展信息 DataBaseCommand.SaveProduct2QuotaAttribute(product2QuotaAttributeList, conn, transaction); //保存枚举值产品关系 DataBaseCommand.SavaProductAttributeValue(productAttributeValueList, conn, transaction); //保存文本信息 DataBaseCommand.UpdateCodeFormatInfo(productModel.ProductCode, productModel.ProductGUID, conn, transaction); transaction.Commit(); msg = "成功"; return(true); } catch (Exception ex) { transaction.Rollback(); msg = ex.Message; Logger.GetLogger(ex.Message).Error(ex); return(false); } } }
/// <summary> /// 保存产品信息 /// </summary> /// <param name="model"></param> /// <param name="conn"></param> /// <param name="transaction"></param> /// <returns></returns> public static int SaveProduct(cl_Product model, SqlConnection conn, SqlTransaction transaction = null) { string sql = @"INSERT INTO [dbo].[cl_Product] ([ProductGUID] ,[ProductCode] ,[ProductName] ,[ProductSpec] ,[Unit] ,[Price] ,[PictureName] ,[Remarks] ,[BelongBUNameList] ,[ProductCodeFormat] ,[IsStrategy] ,[CreatedBy] ,[CreatedByGUID] ,[CreateTime] ,[LastMender] ,[LastMenderDate] ,[LastMenderGUID] ,[ProductTypeCode] ,[PutInStorageByGUID] ,[PutInStorageState] ,[QuotaAttributeNameList] ,[Source]) VALUES (@ProductGUID ,@ProductCode ,@ProductName ,@ProductSpec ,@Unit ,@Price ,@PictureName ,@Remarks ,@BelongBUNameList ,@ProductCodeFormat ,@IsStrategy ,@CreatedBy ,@CreatedByGUID ,@CreateTime ,@LastMender ,@LastMenderDate ,@LastMenderGUID ,@ProductTypeCode ,@PutInStorageByGUID ,@PutInStorageState ,@QuotaAttributeNameList ,@Source)"; return(conn.Execute(sql, model, transaction)); }
public static Tuple <List <p_Product2QuotaAttribute>, List <p_ProductAttributeValue> > AttributeInsertList(ExeclRow entity, cl_Product productModel) { //枚举信息 List <p_Product2QuotaAttribute> product2QuotaAttributeList = new List <p_Product2QuotaAttribute>(); List <p_ProductAttributeValue> productAttributeValueList = new List <p_ProductAttributeValue>(); foreach (Attribute item in entity.Attributes) { if (item.ControlType == "枚举") { p_Product2QuotaAttribute product2QuotaAttributeModel = new p_Product2QuotaAttribute(); product2QuotaAttributeModel.Product2QuotaAttributeGUID = Guid.NewGuid(); product2QuotaAttributeModel.ProductGUID = productModel.ProductGUID; product2QuotaAttributeModel.ProductTypeQuotaGUID = item.ProductTypeQuotaGUID; product2QuotaAttributeModel.ProductTypeQuotaAttributeGUID = item.ProductTypeQuotaAttributeGUID; product2QuotaAttributeList.Add(product2QuotaAttributeModel); } else if (item.ControlType == "文本") { p_ProductAttributeValue productAttributeValueModel = new p_ProductAttributeValue(); productAttributeValueModel.ProductTypeQuotaAttributeExtGUID = Guid.NewGuid(); productAttributeValueModel.ProductGUID = productModel.ProductGUID; productAttributeValueModel.ProductTypeQuotaGUID = item.ProductTypeQuotaGUID; productAttributeValueModel.ControlType = "2"; productAttributeValueModel.QuotaAttributeValue = item.Value; productAttributeValueList.Add(productAttributeValueModel); //文本的关系表绑定 p_Product2QuotaAttribute product2QuotaAttributeModel = new p_Product2QuotaAttribute(); product2QuotaAttributeModel.Product2QuotaAttributeGUID = Guid.NewGuid(); product2QuotaAttributeModel.ProductGUID = productModel.ProductGUID; product2QuotaAttributeModel.ProductTypeQuotaGUID = item.ProductTypeQuotaGUID; product2QuotaAttributeModel.ProductTypeQuotaAttributeGUID = productAttributeValueModel.ProductTypeQuotaAttributeExtGUID;//将文本分类的值关联到中间表 product2QuotaAttributeList.Add(product2QuotaAttributeModel); } } return(Tuple.Create <List <p_Product2QuotaAttribute>, List <p_ProductAttributeValue> >(product2QuotaAttributeList, productAttributeValueList)); }