private void UpdateDetail(string year, List <Dictionary <string, object> > childrenDics, string templateCode) { //行 foreach (var child in childrenDics) { //列 foreach (var key in child.Keys) { //月份列 if (!key.Contains(yearAndMonthColPre)) { continue; } //排除plan if (key.Contains(yearAndMonthColValueSuf)) { continue; } //排除delta if (key.Contains(yearAndMonthColRealDeltaSuf)) { continue; } string month = key.Replace(yearAndMonthColPre, ""); DateTime bDate = new DateTime(Convert.ToInt32(year), Convert.ToInt32(month), 1); string templateID = child.GetValue("ID"); //唯一数据 S_F_CapitalAnalysis_Detail onlyOneDetail = entities.Set <S_F_CapitalAnalysis_Detail>().SingleOrDefault( a => a.TemplateID == templateID && a.TemplateCode == templateCode && a.BudgetDate == bDate); if (onlyOneDetail == null) { //没做过计划 continue; } onlyOneDetail.RealValue = Convert.ToDecimal(child.GetValue(key)); } var childChildrenDics = JsonHelper.ToList(child.GetValue("children")); UpdateDetail(year, childChildrenDics, templateCode); } }
protected override void OnFlowEnd(S_F_CapitalCompanyPlan entity, Workflow.Logic.Domain.S_WF_InsTaskExec taskExec, Workflow.Logic.Domain.S_WF_InsDefRouting routing) { var detailList = EPCEntites.Set <S_F_CapitalCompanyPlan_Detail>().Where(a => a.S_F_BudgetProjectID == entity.ID).ToList(); foreach (var detail in detailList) { //唯一数据 S_F_CapitalAnalysis_Detail onlyOneDetail = EPCEntites.Set <S_F_CapitalAnalysis_Detail>().SingleOrDefault( a => a.TemplateID == detail.TemplateID && a.TemplateCode == entity.TemplateCode && a.BudgetDate == detail.BudgetDate); //add if (onlyOneDetail == null) { onlyOneDetail = new S_F_CapitalAnalysis_Detail(); onlyOneDetail.ID = FormulaHelper.CreateGuid(); onlyOneDetail.TemplateCode = entity.TemplateCode; onlyOneDetail.TemplateID = detail.TemplateID; onlyOneDetail.ParentTemplateID = detail.ParentTemplateID; onlyOneDetail.FullTemplateID = detail.FullTemplateID; onlyOneDetail.IsReadOnly = detail.IsReadOnly; onlyOneDetail.SortIndex = detail.SortIndex; onlyOneDetail.Name = detail.Name; onlyOneDetail.BudgetDate = detail.BudgetDate; onlyOneDetail.Year = detail.Year; onlyOneDetail.Month = detail.Month; onlyOneDetail.CapitalPlanType = detail.CapitalPlanType; onlyOneDetail.SourceSQL = detail.SourceSQL; onlyOneDetail.RealSourceSQL = detail.RealSourceSQL; onlyOneDetail.SourceLink = detail.SourceLink; onlyOneDetail.RealSourceLink = detail.RealSourceLink; EPCEntites.Set <S_F_CapitalAnalysis_Detail>().Add(onlyOneDetail); } onlyOneDetail.BudgetValue = detail.BudgetValue; } }