DAL - 保存多张表的资料
DAL - 保存多张表的资料
客户产品资料
DAL层Update方法保存多张表资料
DAL层代码
C# 全选
/// <summary>
/// 保存多张表资料
/// </summary>
/// <param name="input">提交的数据模型</param>
/// <returns></returns>
public bool Update(ProductUpdateModel input)
{
try
{
_Database.BeginTransaction();
//新增客户产品,自动生成产品序号
if (input.MasterDataUpdate.listAdded.Count > 0)
{
input.MasterDataUpdate.listAdded.First().ProductCode =
DocNoHelper.GetDataSN(_Database, "CP", true, 8, "", _Loginer.Account);//生成客户产品编码
}
//提交主表:纸盒资料
base.Update(input.MasterDataUpdate, _Database, false);
//获取当前盒式编码,作为外键值
var ProductCode = input.MasterDataUpdate.VisibleList.First().ProductCode;
#region 提交明细表:产品物料
SetCommonValue<dt_CustomerProductMaterials>(input.ProductMaterialsList);
if (input.ProductMaterialsList != null)
{
foreach (var v in input.ProductMaterialsList)
{
//新增记录,设置默认值
if (v.isid.IsEmpty()) v.isid = IdHelper.GetId();
if (v.ProductCode.IsEmpty()) v.ProductCode = ProductCode;
}
//删除旧数据
_Database.Remove<dt_CustomerProductMaterials>(w => w.ProductCode == ProductCode);
//保存数据
_Database.Add(input.ProductMaterialsList);
}
#endregion
#region 提交明细表:产品工艺
SetCommonValue<dt_CustomerProductCraft>(input.ProductCraftList);
if (input.ProductCraftList != null)
{
foreach (var v in input.ProductCraftList)
{
//新增记录,设置默认值
if (v.isid.IsEmpty()) v.isid = IdHelper.GetId();
if (v.ProductCode.IsEmpty()) v.ProductCode = ProductCode;
}
//删除旧数据
_Database.Remove<dt_CustomerProductCraft>(w => w.ProductCode == ProductCode);
//保存数据
_Database.Add(input.ProductCraftList);
}
#endregion
#region 提交明细表:打包要求
SetCommonValue<dt_CustomerProductPacking>(input.ProductPackingList);
if (input.ProductPackingList != null)
{
foreach (var v in input.ProductPackingList)
{
//新增记录,设置默认值
if (v.isid.IsEmpty()) v.isid = IdHelper.GetId();
if (v.ProductCode.IsEmpty()) v.ProductCode = ProductCode;
}
//删除旧数据
_Database.Remove<dt_CustomerProductPacking>(w => w.ProductCode == ProductCode);
//保存数据
_Database.Add(input.ProductPackingList);
}
#endregion
#region 提交明细表:产品工序
SetCommonValue<dt_CustomerProductProcess>(input.ProductProcessList);
if (input.ProductProcessList != null)
{
foreach (var v in input.ProductProcessList)
{
//新增记录,设置默认值
if (v.isid.IsEmpty()) v.isid = IdHelper.GetId();
if (v.ProductCode.IsEmpty()) v.ProductCode = ProductCode;
}
//删除旧数据
_Database.Remove<dt_CustomerProductProcess>(w => w.ProductCode == ProductCode);
//保存数据
_Database.Add(input.ProductProcessList);
}
#endregion
#region 提交明细表:唛头文件
if (input.ProductLogoFilesList != null)
{
foreach (var v in input.ProductLogoFilesList)
{
//新增记录,设置默认值
if (v.FileID.IsEmpty())
{
v.FileID = IdHelper.GetId();
v.DocID = ProductCode;
v.DocType = "Carton";
}
}
//删除旧数据
_Database.Remove<tb_AttachFile>(w => w.DocType == "Carton" && w.DocID == ProductCode);
//保存数据
_Database.Add(input.ProductLogoFilesList);
}
#endregion
_Database.CommitTransaction();
return true;
}
catch (System.Exception)
{
_Database.RollbackTransaction();
throw;
}
}
ProductUpdateModel 组合模型
C# 全选
/// <summary>
/// 客户产品资料-保存数据模型
/// </summary>
public class ProductUpdateModel
{
//主表数据
public MasterDataUpdate<dt_CustomerProduct> MasterDataUpdate { get; set; }
/// <summary>
/// 明细表数据
/// </summary>
public List<dt_CustomerProductMaterials> ProductMaterialsList { get; set; }
public List<dt_CustomerProductCraft> ProductCraftList { get; set; }
public List<dt_CustomerProductPacking> ProductPackingList { get; set; }
public List<dt_CustomerProductProcess> ProductProcessList { get; set; }
public List<tb_AttachFile> ProductLogoFilesList { get; set; }
/// <summary>
/// 对应销售单明细
/// </summary>
public List<tb_SOs> ProductSubInfoList { get; set; }
}
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
CSFrameworkV6 C/S框架网