protected override void OnFlowEnd(T_SC_DesignPlan entity, Workflow.Logic.Domain.S_WF_InsTaskExec taskExec, Workflow.Logic.Domain.S_WF_InsDefRouting routing) { if (entity != null) { List <S_P_MileStone> deleteMileStoneList = new List <S_P_MileStone>(); var projectEntities = FormulaHelper.GetEntities <ProjectEntities>(); var projectInfo = projectEntities.Set <S_I_ProjectInfo>().Find(entity.ProjectInfoID); var detailMileStoneList = entity.T_SC_DesignPlan_MilestoneList.ToList(); var selectCodes = detailMileStoneList.Select(a => a.Code).ToList(); deleteMileStoneList = projectInfo.S_P_MileStone.Where(a => a.WBSID == entity.SubProjectWBSID && !selectCodes.Contains(a.Code)).ToList(); entity.Push(); this.BusinessEntities.SaveChanges(); //同步关联的收款项的里程碑信息:时间、状态 var fo = new Basic.Controllers.MileStoneExecuteController(); //找到删除的里程碑的所有收款项,在这些收款项中去除当前里程碑,在同步这些收款项的里程碑信息 foreach (var item in deleteMileStoneList) { fo.UpdateReceiptObjByDelMeliStoneID(item.ID); } foreach (var item in projectInfo.S_P_MileStone.ToList()) { fo.SyncReceiptObj(item); } FormulaHelper.GetEntities <Market.Logic.Domain.MarketEntities>().SaveChanges(); } }
public JsonResult MileStoneSave(string MileStoneData, string ProjectInfoID, string WBSID) { string projectInfoID = this.Request["ProjectInfoID"]; var projectInfo = this.GetEntityByID <S_I_ProjectInfo>(projectInfoID); if (projectInfo == null) { throw new Formula.Exceptions.BusinessException("未能找到ID为【" + projectInfoID + "】的项目信息对象,无法保存里程碑信息"); } var list = JsonHelper.ToList(MileStoneData); var marketDB = SQLHelper.CreateSqlHelper(ConnEnum.Market); int Weight = 0; //同步关联的收款项的里程碑信息:时间、状态 var fo = new Basic.Controllers.MileStoneExecuteController(); foreach (var item in list) { if (!string.IsNullOrEmpty(item.GetValue("Weight"))) { if (Weight < Convert.ToInt32(item.GetValue("Weight"))) { Weight = Convert.ToInt32(item.GetValue("Weight")); } } if (item.GetValue("_state") == "removed") { continue; } S_P_MileStone mileStone; mileStone = this.GetEntityByID <S_P_MileStone>(item.GetValue("ID")); if (mileStone == null) { mileStone = this.CreateEmptyEntity <S_P_MileStone>(); } this.UpdateEntity(mileStone, item); mileStone.Save(); fo.SyncReceiptObj(mileStone); var receiptObjID = item.GetValue("ReceiptObjectID"); if (!String.IsNullOrEmpty(receiptObjID)) { string sql = "update S_C_ManageContract_ReceiptObj set MileStoneID='{0}',MileStoneState='{1}' WHERE ID in ('{2}') "; marketDB.ExecuteNonQuery(String.Format(sql, mileStone.ID, mileStone.State, receiptObjID.Replace(",", "','"))); } else { string sql = "update S_C_ManageContract_ReceiptObj set MileStoneID='',MileStoneState='' WHERE MileStoneID='{0}' "; marketDB.ExecuteNonQuery(String.Format(sql, mileStone.ID)); } } if (Weight > 100) { throw new Formula.Exceptions.BusinessException("权重不能大于100%"); } entities.SaveChanges(); FormulaHelper.GetEntities <Market.Logic.Domain.MarketEntities>().SaveChanges(); return(Json("")); }
public void Finish(string MileStoneData, string FinishDate) { var list = JsonHelper.ToList(MileStoneData); if (String.IsNullOrEmpty(FinishDate)) { throw new Formula.Exceptions.BusinessException("必须指定延迟日期"); } //同步关联的收款项的里程碑信息:时间、状态 var fo = new Basic.Controllers.MileStoneExecuteController(); foreach (var item in list) { var plan = this.GetEntityByID <S_P_MileStonePlan>(item.GetValue("ID")); if (plan == null) { throw new Formula.Exceptions.BusinessException("未能找到ID为【" + item.GetValue("ID") + "】的里程碑信息,无法进行变更操作"); } var date = Convert.ToDateTime(FinishDate.Trim('\"')); plan.Finish(date); fo.SyncReceiptObj(plan.S_P_MileStone); } this.entities.SaveChanges(); FormulaHelper.GetEntities <Market.Logic.Domain.MarketEntities>().SaveChanges(); }
/// <summary> /// 流程结束反写的业务逻辑 /// </summary> /// <param name="entity"></param> /// <param name="taskExec"></param> /// <param name="routing"></param> protected override void OnFlowEnd(T_EXE_MajorPutInfo entity, Workflow.Logic.Domain.S_WF_InsTaskExec taskExec, Workflow.Logic.Domain.S_WF_InsDefRouting routing) { if (entity != null) { entity.Publish(); } this.BusinessEntities.SaveChanges(); if (!string.IsNullOrEmpty(entity.CoopPlanID)) { var coopPlan = this.BusinessEntities.Set <S_P_CooperationPlan>().FirstOrDefault(c => c.ID == entity.CoopPlanID); if (coopPlan != null && !string.IsNullOrEmpty(coopPlan.MileStoneID)) { var mileStone = this.BusinessEntities.Set <S_P_MileStone>().FirstOrDefault(c => c.ID == coopPlan.MileStoneID); //同步关联的收款项的里程碑信息:时间、状态 var fo = new Basic.Controllers.MileStoneExecuteController(); fo.SyncReceiptObj(mileStone); } } }
protected override void OnFlowEnd(T_SC_SingleProjectScheme entity, Workflow.Logic.Domain.S_WF_InsTaskExec taskExec, Workflow.Logic.Domain.S_WF_InsDefRouting routing) { string formData = Request["FormData"]; Dictionary <string, string> dic = JsonHelper.ToObject <Dictionary <string, string> >(formData); var projectInfo = this.GetEntityByID <S_I_ProjectInfo>(entity.ProjectInfoID); var marketEntities = Formula.FormulaHelper.GetEntities <Market.Logic.Domain.MarketEntities>(); var marketProject = marketEntities.Set <Market.Logic.Domain.S_I_Project>().FirstOrDefault(d => d.ID == projectInfo.MarketProjectInfoID); if (projectInfo.ProjectMode.ExtentionObject.GetValue("Ext_TemporaryMode") == TrueOrFalse.True.ToString()) { var schemeDic = JsonHelper.ToObject <Dictionary <string, object> >(formData); var ignorKeys = new string[] { "CreateUserID", "CreateUser", "CreateDate", "State", "Major" }; schemeDic.RemoveWhere(a => ignorKeys.Contains(a.Key)); FormulaHelper.UpdateEntity(projectInfo, schemeDic); projectInfo.ReBuild(); marketProject.Phase = projectInfo.PhaseValue; marketProject.Name = projectInfo.Name; marketProject.Code = projectInfo.Code; marketProject.Phase = projectInfo.PhaseValue; marketProject.ProjectClass = projectInfo.ProjectClass; marketProject.Customer = projectInfo.CustomerID; marketProject.CustomerName = projectInfo.CustomerName; marketProject.CreateDate = DateTime.Now; marketProject.EngineeringInfo = projectInfo.EngineeringInfoID; marketProject.ChargerDept = projectInfo.ChargeDeptID; marketProject.ChargerDeptName = projectInfo.ChargeDeptName; marketProject.ChargerUser = projectInfo.ChargeUserID; marketProject.ChargerUserName = projectInfo.ChargeUserName; marketProject.Country = projectInfo.Country; marketProject.Province = projectInfo.Province; marketProject.City = projectInfo.City; marketProject.ProjectScale = projectInfo.ProjectLevel.HasValue ? projectInfo.ProjectLevel.Value.ToString() : ""; } List <S_P_MileStone> deleteMileStoneList = new List <S_P_MileStone>(); if (entity != null) { var selectCodes = entity.T_SC_SingleProjectScheme_MileStoneList.Select(a => a.Code).ToList(); deleteMileStoneList = projectInfo.S_P_MileStone.Where(a => !selectCodes.Contains(a.Code)).ToList(); entity.Push(dic); } if (marketProject != null) { marketProject.State = ProjectCommoneState.Execute.ToString(); } marketEntities.SaveChanges(); this.BusinessEntities.SaveChanges(); //同步关联的收款项的里程碑信息:时间、状态 var fo = new Basic.Controllers.MileStoneExecuteController(); //找到删除的里程碑的所有收款项,在这些收款项中去除当前里程碑,在同步这些收款项的里程碑信息 foreach (var item in deleteMileStoneList) { fo.UpdateReceiptObjByDelMeliStoneID(item.ID); } foreach (var item in projectInfo.S_P_MileStone.ToList()) { fo.SyncReceiptObj(item); } marketEntities.SaveChanges(); }
public JsonResult SaveCoopPlan(string List) { var projectInfoID = this.Request["ProjectInfoID"]; var subProjectID = this.Request["SchemeWBSID"]; var linkRoot = false; if (this.Request["LinkRoot"] != null) { linkRoot = this.Request["LinkRoot"].ToLower() == bool.TrueString.ToLower(); } var projectInfo = this.GetEntityByID <S_I_ProjectInfo>(projectInfoID); if (projectInfo == null) { throw new Formula.Exceptions.BusinessException("未能找到ID为【" + projectInfoID + "】的项目信息对象,无法进行互提资料策划"); } var relateWBSs = projectInfo.S_W_WBS.Where(a => !string.IsNullOrEmpty(a.RelateMileStone)).ToList(); var wbs = entities.Set <S_W_WBS>().FirstOrDefault(d => d.ID == subProjectID); if (wbs == null) { wbs = projectInfo.WBSRoot; } var CoopPlanList = UpdateList <S_P_CooperationPlan>(List); foreach (var item in CoopPlanList) { if (linkRoot && string.IsNullOrEmpty(item.WBSID)) { item.WBSID = projectInfo.WBSRoot.ID; } wbs.SaveCooperationPlan(item, true, linkRoot); //关联了这个提资计划的WBS var relateWBSByThiss = relateWBSs.Where(a => a.RelateMileStone.Contains(item.MileStoneID)); foreach (var w in relateWBSByThiss) { var relateMileStone = JsonHelper.ToList(w.RelateMileStone); var m = relateMileStone.FirstOrDefault(a => a.GetValue("ID") == item.MileStoneID); if (m != null) { m["Name"] = item.CooperationContent; m["PlanStart"] = item.PlanStartDate; m["PlanFinish"] = item.PlanFinishDate; } w.RelateMileStone = JsonHelper.ToJson(relateMileStone); if (item.PlanStartDate != null) { if (w.BasePlanStartDate == null) { w.BasePlanStartDate = item.PlanStartDate; } else if (w.BasePlanStartDate < item.PlanStartDate) { w.BasePlanStartDate = item.PlanStartDate; } if (w.PlanStartDate == null) { w.PlanStartDate = item.PlanStartDate; } else if (w.PlanStartDate < item.PlanStartDate) { w.PlanStartDate = item.PlanStartDate; } } if (item.PlanFinishDate != null) { if (w.BasePlanEndDate == null) { w.BasePlanEndDate = item.PlanFinishDate; } else if (w.BasePlanEndDate > item.PlanFinishDate) { w.BasePlanEndDate = item.PlanFinishDate; } if (w.PlanEndDate == null) { w.PlanEndDate = item.PlanFinishDate; } else if (w.PlanEndDate > item.PlanFinishDate) { w.PlanEndDate = item.PlanFinishDate; } } } } entities.SaveChanges(); //同步关联的收款项的里程碑信息:时间、状态 var fo = new Basic.Controllers.MileStoneExecuteController(); foreach (var item in projectInfo.S_P_MileStone.ToList()) { fo.SyncReceiptObj(item); } FormulaHelper.GetEntities <MarketEntities>().SaveChanges(); return(Json("")); }