Commit 382f26d5 by 陶然

新增性能分析

parent 4181e7df
......@@ -62,65 +62,67 @@ namespace Kivii.Finances.Transforms
try
{
foreach (var item in Items)
using (KiviiContext.Profiler("创建结算"))
{
if (item.Amount != item.Details.Sum(o => o.Amount) || item.AmountPlan != item.Details.Sum(o => o.AmountPlan)) throw new Exception("项目明细总费用和结算主体总费用不一致!");
var settlementKvid = Guid.NewGuid();
#region 生成财务 Settlement 主结算
var settlement = new Settlement();
settlement.PopulateWith(item);
settlement.Kvid = settlementKvid;
settlement.OwnerKvid = KiviiContext.CurrentMember.DepartmentKvid;
settlement.OwnerName = KiviiContext.CurrentMember.DepartmentName;
settlement.BizId = item.BizId;
settlement.BizKvid = item.BizKvid;
settlement.BizType = typeof(G).FullName;
settlement.OperateTime = item.OperateTime == DateTime.MinValue ? DateTime.Now : item.OperateTime;
settlement.OperatorName = KiviiContext.CurrentMember.FullName;
settlement.OperatorKvid = KiviiContext.CurrentMember.Kvid;
connF.Insert(settlement);
settlement.RemoveAllOnlyProperties();
rtns.Results.Add(settlement);
if (typeof(G) != typeof(Settlement))
foreach (var item in Items)
{
var entitySettlement = new EntitySettlement<G>();
entitySettlement.PopulateInstance(settlement);
connE.Insert(entitySettlement);
}
#endregion
if (item.Amount != item.Details.Sum(o => o.Amount) || item.AmountPlan != item.Details.Sum(o => o.AmountPlan)) throw new Exception("项目明细总费用和结算主体总费用不一致!");
var settlementKvid = Guid.NewGuid();
#region 生成财务 Settlement 主结算
var settlement = new Settlement();
settlement.PopulateWith(item);
settlement.Kvid = settlementKvid;
settlement.OwnerKvid = KiviiContext.CurrentMember.DepartmentKvid;
settlement.OwnerName = KiviiContext.CurrentMember.DepartmentName;
settlement.BizId = item.BizId;
settlement.BizKvid = item.BizKvid;
settlement.BizType = typeof(G).FullName;
settlement.OperateTime = item.OperateTime == DateTime.MinValue ? DateTime.Now : item.OperateTime;
settlement.OperatorName = KiviiContext.CurrentMember.FullName;
settlement.OperatorKvid = KiviiContext.CurrentMember.Kvid;
connF.Insert(settlement);
settlement.RemoveAllOnlyProperties();
rtns.Results.Add(settlement);
if (typeof(G) != typeof(Settlement))
{
var entitySettlement = new EntitySettlement<G>();
entitySettlement.PopulateInstance(settlement);
connE.Insert(entitySettlement);
}
#endregion
#region 回写更新G数据
var instance = Activator.CreateInstance(typeof(G)) as IEntityHasSettlement;
if (instance != null)
{
instance.Kvid = item.BizKvid;
instance.AmountSettlement = settlement.Amount;
instance.AddOnlyProperties(o => o.AmountSettlement);
connE.UpdateOnly(instance);
}
#endregion
#region 回写更新G数据
var instance = Activator.CreateInstance(typeof(G)) as IEntityHasSettlement;
if (instance != null)
{
instance.Kvid = item.BizKvid;
instance.AmountSettlement = settlement.Amount;
instance.AddOnlyProperties(o => o.AmountSettlement);
connE.UpdateOnly(instance);
}
#endregion
#region 生成泛型SettlementDetail
foreach (var detail in item.Details)
{
detail.SettlementKvid = settlementKvid;
detail.Quantity = detail.Quantity <= 0 ? 1 : detail.Quantity;
detail.QuantityUnit = detail.QuantityUnit.IsNullOrEmpty() ? "次" : detail.QuantityUnit;
detail.QuantityUnitPrice = detail.Amount / detail.Quantity;
detail.Currency = item.Currency;
detail.OperateTime = DateTime.Now;
detail.OperatorKvid = KiviiContext.CurrentMember.Kvid;
detail.OperatorName = KiviiContext.CurrentMember.FullName;
var entityDetail = new EntitySettlementDetail<G>();
entityDetail.PopulateInstance(detail);
connE.Insert(entityDetail);
#region 生成泛型SettlementDetail
foreach (var detail in item.Details)
{
detail.SettlementKvid = settlementKvid;
detail.Quantity = detail.Quantity <= 0 ? 1 : detail.Quantity;
detail.QuantityUnit = detail.QuantityUnit.IsNullOrEmpty() ? "次" : detail.QuantityUnit;
detail.QuantityUnitPrice = detail.Amount / detail.Quantity;
detail.Currency = item.Currency;
detail.OperateTime = DateTime.Now;
detail.OperatorKvid = KiviiContext.CurrentMember.Kvid;
detail.OperatorName = KiviiContext.CurrentMember.FullName;
var entityDetail = new EntitySettlementDetail<G>();
entityDetail.PopulateInstance(detail);
connE.Insert(entityDetail);
}
#endregion
}
#endregion
}
tranE?.Commit();
tranF?.Commit();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment