public TaskWork GenerateTaskWork(string strFlowCode, string strFlowENName, string strFlowCNName, string strUrl) { TaskWork taskWork = new TaskWork(); taskWork.SourceCode = FlowCode.MajorLease; taskWork.SourceNameZHCN = FlowCode.MajorLease; taskWork.SourceNameENUS = FlowCode.MajorLease; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; var title = TaskWork.BuildTitle(ProjectId, StoreNameZHCN, StoreNameENUS); taskWork.Title = title; taskWork.RefID = ProjectId; taskWork.StoreCode = USCode; taskWork.TypeCode = strFlowCode; taskWork.TypeNameENUS = strFlowENName; taskWork.TypeNameZHCN = strFlowCNName; taskWork.ReceiverAccount = PMAccount; taskWork.ReceiverNameENUS = PMNameENUS; taskWork.ReceiverNameZHCN = PMNameZHCN; taskWork.Id = Guid.NewGuid(); taskWork.Url = strUrl; taskWork.CreateTime = DateTime.Now; taskWork.CreateUserAccount = CreateUserAccount; taskWork.Sequence = 0; taskWork.ActivityName = "Start"; return(taskWork); }
public void GenerateSiteInfoTask() { var taskWork = new TaskWork(); taskWork.SourceCode = FlowCode.Reimage; taskWork.SourceNameENUS = FlowCode.Reimage; taskWork.SourceNameZHCN = FlowCode.Reimage; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; taskWork.RefID = ProjectId; taskWork.Id = Guid.NewGuid(); taskWork.CreateTime = DateTime.Now; var reimageInfo = ReimageInfo.FirstOrDefault(e => e.ProjectId == ProjectId); if (reimageInfo == null) { throw new Exception("Cannot find the relative reimage info!"); } taskWork.Title = TaskWork.BuildTitle(ProjectId, reimageInfo.StoreNameZHCN, reimageInfo.StoreNameENUS); taskWork.TypeCode = FlowCode.Reimage_SiteInfo; taskWork.TypeNameENUS = FlowCode.Reimage_SiteInfo; taskWork.TypeNameZHCN = FlowCode.Reimage_SiteInfo; taskWork.ReceiverAccount = reimageInfo.PMAccount; taskWork.ReceiverNameENUS = reimageInfo.PMNameENUS; taskWork.ReceiverNameZHCN = reimageInfo.PMNameZHCN; taskWork.Url = string.Format(@"/Reimage/Main#/SiteInfo/Process/Approval?projectId={0}&action={1}", ProjectId, "Confirm"); taskWork.StoreCode = reimageInfo.USCode; taskWork.ActivityName = NodeCode.Start; taskWork.ActionName = SetTaskActionName(ProjectId); TaskWork.Add(taskWork); }
public TaskWork GenerateTask(string flowCode, string url, string receiver, string reveiverENUS, string receiverZHCN, string activityName) { TaskWork taskWork = new TaskWork(); var source = FlowInfo.Get(FlowCode.Renewal); var taskType = FlowInfo.Get(flowCode); taskWork.SourceCode = source.Code; taskWork.SourceNameZHCN = source.NameZHCN; taskWork.SourceNameENUS = source.NameENUS; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; var title = TaskWork.BuildTitle(ProjectId, StoreNameZHCN, StoreNameENUS); taskWork.Title = title; taskWork.RefID = ProjectId; taskWork.StoreCode = USCode; taskWork.TypeCode = taskType.Code; taskWork.TypeNameENUS = taskType.NameENUS; taskWork.TypeNameZHCN = taskType.NameZHCN; taskWork.ReceiverAccount = receiver; taskWork.ReceiverNameENUS = reveiverENUS; taskWork.ReceiverNameZHCN = receiverZHCN; taskWork.Id = Guid.NewGuid(); taskWork.Url = url; taskWork.CreateTime = DateTime.Now; taskWork.CreateUserAccount = receiver; taskWork.Sequence = 0; taskWork.ActivityName = activityName; taskWork.Add(); return(taskWork); }
public string GeneratePackageTask(string projectId) { if (!TaskWork.Any(i => i.RefID == projectId && i.TypeCode == FlowCode.Closure_ClosurePackage && i.Status == TaskWorkStatus.UnFinish)) { var taskWork = new TaskWork(); taskWork.SourceCode = FlowCode.Closure; taskWork.SourceNameENUS = taskWork.SourceCode; taskWork.SourceNameZHCN = "关店流程"; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; taskWork.RefID = projectId; taskWork.Id = Guid.NewGuid(); taskWork.CreateTime = DateTime.Now; taskWork.CreateUserAccount = ClientCookie.UserCode; var closureInfo = ClosureInfo.GetByProjectId(projectId); taskWork.Title = TaskWork.BuildTitle(projectId, closureInfo.StoreNameZHCN, closureInfo.StoreNameENUS); taskWork.TypeCode = WorkflowCode; taskWork.TypeNameENUS = "ClosurePackage"; taskWork.TypeNameZHCN = "ClosurePackage"; taskWork.ReceiverAccount = closureInfo.AssetActorAccount; taskWork.ReceiverNameENUS = closureInfo.AssetActorNameENUS; taskWork.ReceiverNameZHCN = closureInfo.AssetActorNameZHCN; taskWork.ActivityName = "Start"; taskWork.Url = string.Format(@"/Closure/Main#/ClosurePackage?projectId={0}", projectId); taskWork.StoreCode = closureInfo.USCode; TaskWork.Add(taskWork); return(taskWork.Url); } return(""); }
public void GenerateExecutiveSummaryTask(string projectId) { var taskWork = new TaskWork(); taskWork.Id = Guid.NewGuid(); taskWork.CreateTime = DateTime.Now; taskWork.CreateUserAccount = ClientCookie.UserCode; var closureInfo = ClosureInfo.GetByProjectId(projectId); taskWork.StoreCode = closureInfo.USCode; taskWork.SourceCode = FlowCode.Closure; taskWork.SourceNameZHCN = "关店流程"; taskWork.SourceNameENUS = taskWork.SourceCode; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; taskWork.RefID = projectId; taskWork.TypeCode = FlowCode.Closure_ExecutiveSummary; taskWork.TypeNameENUS = "ExecutiveSummary"; taskWork.TypeNameZHCN = "ExecutiveSummary"; taskWork.ReceiverAccount = closureInfo.AssetActorAccount; taskWork.ReceiverNameENUS = closureInfo.AssetActorNameENUS; taskWork.ReceiverNameZHCN = closureInfo.AssetActorNameZHCN; taskWork.Title = TaskWork.BuildTitle(projectId, closureInfo.StoreNameZHCN, closureInfo.StoreNameENUS); taskWork.Url = string.Format(@"/Closure/Main#/ExecutiveSummary?projectId={0}", projectId); taskWork.ActivityName = "Start"; TaskWork.Add(taskWork); }
public static void GeneratePackageTask(string projectId) { var taskWork = new TaskWork(); taskWork.SourceCode = FlowCode.TempClosure; taskWork.SourceNameENUS = taskWork.SourceCode; taskWork.SourceNameZHCN = taskWork.SourceCode; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; taskWork.RefID = projectId; taskWork.Id = Guid.NewGuid(); taskWork.CreateTime = DateTime.Now; taskWork.CreateUserAccount = ClientCookie.UserCode; var tempClosure = TempClosureInfo.FirstOrDefault(i => i.ProjectId == projectId); if (tempClosure == null) { return; } taskWork.Title = TaskWork.BuildTitle(projectId, tempClosure.StoreNameENUS, tempClosure.StoreNameZHCN); taskWork.TypeCode = FlowCode.TempClosure_ClosurePackage; taskWork.TypeNameENUS = "Closure Package"; taskWork.TypeNameZHCN = "Closure Package"; taskWork.ReceiverAccount = tempClosure.AssetActorAccount; taskWork.ReceiverNameENUS = tempClosure.AssetActorNameENUS; taskWork.ReceiverNameZHCN = tempClosure.AssetActorNameZHCN; taskWork.Url = string.Format(@"/TempClosure/Main#/ClosurePackage?projectId={0}", projectId); taskWork.StoreCode = tempClosure.USCode; taskWork.ActivityName = "Start"; TaskWork.Add(taskWork); }
public void Confirm() { var tempClosureInfo = TempClosureInfo.Get(this.ProjectId); var url = "/TempClosure/Main#/ClosureMemo?projectId=" + this.ProjectId; var title = TaskWork.BuildTitle(this.ProjectId, tempClosureInfo.StoreNameZHCN, tempClosureInfo.StoreNameENUS); TaskWork.Finish(t => t.ReceiverAccount == ClientCookie.UserCode && t.RefID == this.ProjectId && t.Status == TaskWorkStatus.UnFinish && t.TypeCode == FlowCode.TempClosure_ClosurePackage); ProjectInfo.FinishNode(ProjectId, FlowCode.TempClosure_ClosurePackage, NodeCode.TempClosure_ClosurePackage_Upload, ProjectStatus.Finished); }
public void GenerateConsInvertTask(string projectId) { if (CheckIfUnfreezePackageWorkflow(projectId)) { if (!TaskWork.Any(e => e.RefID == projectId && e.TypeCode == WorkflowCode && e.Status == TaskWorkStatus.UnFinish)) { var taskWork = new TaskWork(); taskWork.SourceCode = FlowCode.Reimage; taskWork.SourceNameENUS = FlowCode.Reimage; taskWork.SourceNameZHCN = FlowCode.Reimage; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; taskWork.RefID = projectId; taskWork.Id = Guid.NewGuid(); taskWork.CreateTime = DateTime.Now; var reimageInfo = ReimageInfo.FirstOrDefault(e => e.ProjectId == projectId); if (reimageInfo == null) { throw new Exception("Cannot find the relative reimage info!"); } taskWork.Title = TaskWork.BuildTitle(projectId, reimageInfo.StoreNameZHCN, reimageInfo.StoreNameENUS); taskWork.TypeCode = WorkflowCode; taskWork.TypeNameENUS = WorkflowCode; taskWork.TypeNameZHCN = WorkflowCode; taskWork.ReceiverAccount = reimageInfo.PMAccount; taskWork.ReceiverNameENUS = reimageInfo.PMNameENUS; taskWork.ReceiverNameZHCN = reimageInfo.PMNameZHCN; taskWork.Url = string.Format(@"/Reimage/Main#/ConsInvtChecking?projectId={0}", projectId); taskWork.StoreCode = reimageInfo.USCode; taskWork.ActivityName = NodeCode.Start; taskWork.ActionName = SetTaskActionName(projectId); TaskWork.Add(taskWork); } } }
public void GenerateReopenTask(string projectId) { var taskWork = new TaskWork(); taskWork.SourceCode = FlowCode.TempClosure; taskWork.SourceNameENUS = taskWork.SourceCode; taskWork.SourceNameZHCN = taskWork.SourceCode; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; taskWork.RefID = projectId; taskWork.Id = Guid.NewGuid(); taskWork.CreateTime = DateTime.Now; taskWork.CreateUserAccount = ClientCookie.UserCode; var tempClosure = TempClosureInfo.FirstOrDefault(i => i.ProjectId == projectId); if (tempClosure == null) { return; } taskWork.Title = TaskWork.BuildTitle(projectId, tempClosure.StoreNameZHCN, tempClosure.StoreNameENUS); taskWork.TypeCode = FlowCode.TempClosure_ReopenMemo; taskWork.TypeNameENUS = "ReopenMemo"; taskWork.TypeNameZHCN = "ReopenMemo"; taskWork.ReceiverAccount = tempClosure.AssetActorAccount; taskWork.ReceiverNameENUS = tempClosure.AssetActorNameENUS; taskWork.ReceiverNameZHCN = tempClosure.AssetActorNameZHCN; taskWork.Url = string.Format(@"/TempClosure/Main#/ReopenMemo?projectId={0}", projectId); taskWork.StoreCode = tempClosure.USCode; taskWork.ActivityName = "Start"; //Re-open Date 前7天发出任务 ScheduleLog.GenerateTaskSchedule(tempClosure.ActualReopenDate.AddDays(-7), taskWork, ClientCookie.UserCode, projectId, FlowCode.TempClosure_ReopenMemo, tempClosure.USCode); }
public void GenerateClourseMemoTask(string projectId) { if (!TaskWork.Any(t => t.RefID == projectId && t.TypeCode == FlowCode.Closure_Memo)) { var taskWork = new TaskWork(); taskWork.SourceCode = FlowCode.Closure; taskWork.SourceNameENUS = taskWork.SourceCode; taskWork.SourceNameZHCN = "关店流程"; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; taskWork.RefID = projectId; taskWork.Id = Guid.NewGuid(); taskWork.CreateTime = DateTime.Now; var closureInfo = ClosureInfo.GetByProjectId(projectId); taskWork.Title = TaskWork.BuildTitle(projectId, closureInfo.StoreNameZHCN, closureInfo.StoreNameENUS); taskWork.TypeCode = FlowCode.Closure_Memo; taskWork.TypeNameENUS = "Closure Memo"; taskWork.TypeNameZHCN = "Closure Memo"; taskWork.ReceiverAccount = closureInfo.AssetActorAccount; taskWork.ReceiverNameENUS = closureInfo.AssetActorNameENUS; taskWork.ReceiverNameZHCN = closureInfo.AssetActorNameZHCN; taskWork.Url = string.Format(@"/Closure/Main#/ClosureMemo?projectId={0}", projectId); taskWork.ActivityName = "Start"; taskWork.StoreCode = closureInfo.USCode; //TaskWork.Add(taskWork); //关店前7天发起Memo流程 if (closureInfo.ActualCloseDate.HasValue) { ScheduleLog.GenerateTaskSchedule(closureInfo.ActualCloseDate.Value.AddDays(-7), taskWork, ClientCookie.UserCode, projectId, FlowCode.Closure_Memo, closureInfo.USCode); } } }
public override string Edit() { if (!PreEdit(this.ProjectId)) { return(""); } var closureEntity = ClosureInfo.GetByProjectId(this.ProjectId); var store = StoreBasicInfo.GetStorInfo(closureEntity.USCode); var taskWork = new TaskWork(); var source = FlowInfo.Get(FlowCode.Closure); var taskType = FlowInfo.Get(FlowCode.Closure_WOCheckList); taskWork.SourceCode = source.Code; taskWork.SourceNameZHCN = source.NameZHCN; taskWork.SourceNameENUS = source.NameENUS; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; taskWork.Title = TaskWork.BuildTitle(this.ProjectId, store.NameZHCN, store.NameENUS); taskWork.RefID = this.ProjectId; taskWork.StoreCode = closureEntity.USCode; taskWork.TypeCode = taskType.Code; taskWork.TypeNameENUS = taskType.NameENUS; taskWork.TypeNameZHCN = taskType.NameZHCN; taskWork.ReceiverAccount = closureEntity.PMAccount; taskWork.ReceiverNameENUS = closureEntity.PMNameENUS; taskWork.ReceiverNameZHCN = closureEntity.PMNameZHCN; taskWork.Id = Guid.NewGuid(); taskWork.CreateTime = DateTime.Now; taskWork.Url = TaskWork.BuildUrl(FlowCode.Closure_WOCheckList, this.ProjectId, ""); taskWork.ActivityName = NodeCode.Start; TaskWork.Add(taskWork); this.IsHistory = true; this.RefreshClosureTool = false; //TaskWork.SetTaskHistory(this.Id, this.ProcInstID); this.Save(); var objectCopy = new ObjectCopy(); var newWo = objectCopy.AutoCopy(this); newWo.Id = Guid.NewGuid(); newWo.ProcInstID = 0; newWo.Save(); var projectEntity = ProjectInfo.Get(this.ProjectId, FlowCode.Closure_WOCheckList); ProjectInfo.UnFinishNode(this.ProjectId, FlowCode.Closure_WOCheckList, NodeCode.Closure_WOCheckList_Approve, ProjectStatus.UnFinish); var attList = Attachment.Search(e => e.RefTableID == this.Id.ToString() && e.RefTableName == ClosureWOCheckList.TableName); var objCopy = new ObjectCopy(); var newList = new List <Attachment>(); foreach (var att in attList) { var newAtt = objCopy.AutoCopy(att); newAtt.RefTableID = newWo.Id.ToString(); newAtt.ID = Guid.NewGuid(); newList.Add(newAtt); } Attachment.AddList(newList); return(taskWork.Url); }
public static void Create(PostCreateWorkflow <TempClosureInfo> tempClosure) { using (TransactionScope tranScope = new TransactionScope()) { var store = StoreBasicInfo.GetStorInfo(tempClosure.Entity.USCode); tempClosure.Entity.Id = Guid.NewGuid(); tempClosure.Entity.CreateUserAccount = ClientCookie.UserCode; tempClosure.Entity.CreateTime = DateTime.Now; tempClosure.Entity.StoreNameENUS = store.NameENUS; tempClosure.Entity.StoreNameZHCN = store.NameZHCN; tempClosure.Entity.AssetRepAccount = tempClosure.Team.AssetRep.UserAccount; tempClosure.Entity.AssetRepNameENUS = tempClosure.Team.AssetRep.UserNameENUS; tempClosure.Entity.AssetRepNameZHCN = tempClosure.Team.AssetRep.UserNameZHCN; tempClosure.Entity.AssetActorAccount = tempClosure.Team.AssetActor.UserAccount; tempClosure.Entity.AssetActorNameENUS = tempClosure.Team.AssetActor.UserNameENUS; tempClosure.Entity.AssetActorNameZHCN = tempClosure.Team.AssetActor.UserNameZHCN; tempClosure.Entity.FinanceAccount = tempClosure.Team.Finance.UserAccount; tempClosure.Entity.FinanceNameENUS = tempClosure.Team.Finance.UserNameENUS; tempClosure.Entity.FinanceNameZHCN = tempClosure.Team.Finance.UserNameZHCN; tempClosure.Entity.PMAccount = tempClosure.Team.PM.UserAccount; tempClosure.Entity.PMNameENUS = tempClosure.Team.PM.UserNameENUS; tempClosure.Entity.PMNameZHCN = tempClosure.Team.PM.UserNameZHCN; tempClosure.Entity.LegalAccount = tempClosure.Team.Legal.UserAccount; tempClosure.Entity.LegalNameENUS = tempClosure.Team.Legal.UserNameENUS; tempClosure.Entity.LegalNameZHCN = tempClosure.Team.Legal.UserNameZHCN; tempClosure.Entity.AssetManagerAccount = tempClosure.Team.AssetMgr.UserAccount; tempClosure.Entity.AssetManagerNameENUS = tempClosure.Team.AssetMgr.UserNameENUS; tempClosure.Entity.AssetManagerNameZHCN = tempClosure.Team.AssetMgr.UserNameZHCN; tempClosure.Entity.CMAccount = tempClosure.Team.CM.UserAccount; tempClosure.Entity.CMNameENUS = tempClosure.Team.CM.UserNameENUS; tempClosure.Entity.CMNameZHCN = tempClosure.Team.CM.UserNameZHCN; var projectId = ProjectInfo.CreateMainProject(FlowCode.TempClosure, tempClosure.Entity.USCode, NodeCode.Start, tempClosure.Entity.CreateUserAccount); tempClosure.Entity.ProjectId = projectId; Add(tempClosure.Entity); List <ProjectUsers> projectUsers = new List <ProjectUsers>(); tempClosure.Team.AssetRep.Id = Guid.NewGuid(); tempClosure.Team.AssetRep.ProjectId = projectId; tempClosure.Team.AssetRep.CreateDate = DateTime.Now; tempClosure.Team.AssetRep.CreateUserAccount = ClientCookie.UserCode; tempClosure.Team.AssetRep.RoleCode = ProjectUserRoleCode.AssetRep; tempClosure.Team.AssetRep.RoleNameENUS = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.AssetRep, SystemLanguage.ENUS); tempClosure.Team.AssetRep.RoleNameZHCN = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.AssetRep, SystemLanguage.ZHCN); projectUsers.Add(tempClosure.Team.AssetRep); tempClosure.Team.AssetActor.Id = Guid.NewGuid(); tempClosure.Team.AssetActor.ProjectId = projectId; tempClosure.Team.AssetActor.CreateDate = DateTime.Now; tempClosure.Team.AssetActor.CreateUserAccount = ClientCookie.UserCode; tempClosure.Team.AssetActor.RoleCode = ProjectUserRoleCode.AssetActor; tempClosure.Team.AssetActor.RoleNameENUS = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.AssetActor, SystemLanguage.ENUS); tempClosure.Team.AssetActor.RoleNameZHCN = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.AssetActor, SystemLanguage.ZHCN); projectUsers.Add(tempClosure.Team.AssetActor); tempClosure.Team.Finance.Id = Guid.NewGuid(); tempClosure.Team.Finance.ProjectId = projectId; tempClosure.Team.Finance.CreateDate = DateTime.Now; tempClosure.Team.Finance.CreateUserAccount = ClientCookie.UserCode; tempClosure.Team.Finance.RoleCode = ProjectUserRoleCode.Finance; tempClosure.Team.Finance.RoleNameENUS = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.Finance, SystemLanguage.ENUS); tempClosure.Team.Finance.RoleNameZHCN = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.Finance, SystemLanguage.ZHCN); projectUsers.Add(tempClosure.Team.Finance); tempClosure.Team.PM.Id = Guid.NewGuid(); tempClosure.Team.PM.ProjectId = projectId; tempClosure.Team.PM.CreateDate = DateTime.Now; tempClosure.Team.PM.CreateUserAccount = ClientCookie.UserCode; tempClosure.Team.PM.RoleCode = ProjectUserRoleCode.PM; tempClosure.Team.PM.RoleNameENUS = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.PM, SystemLanguage.ENUS); tempClosure.Team.PM.RoleNameZHCN = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.PM, SystemLanguage.ZHCN); projectUsers.Add(tempClosure.Team.PM); tempClosure.Team.Legal.Id = Guid.NewGuid(); tempClosure.Team.Legal.ProjectId = projectId; tempClosure.Team.Legal.CreateDate = DateTime.Now; tempClosure.Team.Legal.CreateUserAccount = ClientCookie.UserCode; tempClosure.Team.Legal.RoleCode = ProjectUserRoleCode.Legal; tempClosure.Team.Legal.RoleNameENUS = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.Legal, SystemLanguage.ENUS); tempClosure.Team.Legal.RoleNameZHCN = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.Legal, SystemLanguage.ZHCN); projectUsers.Add(tempClosure.Team.Legal); tempClosure.Team.AssetMgr.Id = Guid.NewGuid(); tempClosure.Team.AssetMgr.ProjectId = projectId; tempClosure.Team.AssetMgr.CreateDate = DateTime.Now; tempClosure.Team.AssetMgr.CreateUserAccount = ClientCookie.UserCode; tempClosure.Team.AssetMgr.RoleCode = ProjectUserRoleCode.AssetManager; tempClosure.Team.AssetMgr.RoleNameENUS = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.AssetManager, SystemLanguage.ENUS); tempClosure.Team.AssetMgr.RoleNameZHCN = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.AssetManager, SystemLanguage.ZHCN); projectUsers.Add(tempClosure.Team.AssetMgr); tempClosure.Team.CM.Id = Guid.NewGuid(); tempClosure.Team.CM.ProjectId = projectId; tempClosure.Team.CM.CreateDate = DateTime.Now; tempClosure.Team.CM.CreateUserAccount = ClientCookie.UserCode; tempClosure.Team.CM.RoleCode = ProjectUserRoleCode.CM; tempClosure.Team.CM.RoleNameENUS = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.CM, SystemLanguage.ENUS); tempClosure.Team.CM.RoleNameZHCN = SystemCode.Instance.GetCodeName(ProjectUserRoleCode.CM, SystemLanguage.ZHCN); projectUsers.Add(tempClosure.Team.CM); ProjectUsers.Add(projectUsers.ToArray()); tempClosure.Viewers.ForEach(v => { v.Id = Guid.NewGuid(); v.ProjectId = projectId; v.CreateDate = DateTime.Now; v.CreateUserAccount = ClientCookie.UserCode; v.RoleCode = ProjectUserRoleCode.View; }); ProjectUsers.Add(tempClosure.Viewers.ToArray()); //tempClosure.NecessaryViewers.ForEach(v => //{ // v.Id = Guid.NewGuid(); // v.ProjectId = projectId; // v.CreateDate = DateTime.Now; // v.CreateUserAccount = ClientCookie.UserCode; // v.RoleCode = ProjectUserRoleCode.View; //}); //ProjectUsers.Add(tempClosure.NecessaryViewers.ToArray()); Remind.SendRemind(projectId, FlowCode.TempClosure, projectUsers); ProjectInfo.CreateSubProject(FlowCode.TempClosure_LegalReview, projectId, tempClosure.Entity.USCode, NodeCode.Start, ClientCookie.UserCode); TempClosureLegalReview.Create(projectId); ProjectInfo.CreateSubProject(FlowCode.TempClosure_ClosurePackage, projectId, tempClosure.Entity.USCode, NodeCode.Start, ClientCookie.UserCode); TempClosurePackage.Create(projectId); ProjectInfo.CreateSubProject(FlowCode.TempClosure_ClosureMemo, projectId, tempClosure.Entity.USCode, NodeCode.Start, ClientCookie.UserCode); ProjectInfo.CreateSubProject(FlowCode.TempClosure_ReopenMemo, projectId, tempClosure.Entity.USCode, NodeCode.Start, ClientCookie.UserCode); string taskUrl = TaskWork.BuildUrl(FlowCode.TempClosure_LegalReview, projectId, ""); string title = TaskWork.BuildTitle(projectId, store.NameZHCN, store.NameENUS); TaskWork.SendTask(projectId, title, store.StoreCode, taskUrl, tempClosure.Team.AssetActor, FlowCode.TempClosure, FlowCode.TempClosure_LegalReview, "Start"); ProjectNode.GenerateOnCreate(FlowCode.TempClosure, projectId); tranScope.Complete(); } }
public void GenerateConsInvtCheckingTask(string projectId) { //if (!TaskWork.Any(t => t.RefID == projectId && t.TypeCode == FlowCode.Closure_ConsInvtChecking && t.Status == TaskWorkStatus.UnFinish)) //{ // var taskWork = new TaskWork(); // taskWork.SourceCode = FlowCode.Closure; // taskWork.SourceNameENUS = taskWork.SourceCode; // taskWork.SourceNameZHCN = "对帐流程"; // taskWork.Status = TaskWorkStatus.UnFinish; // taskWork.StatusNameZHCN = "任务"; // taskWork.StatusNameENUS = "任务"; // taskWork.RefID = projectId; // taskWork.Id = Guid.NewGuid(); // taskWork.CreateTime = DateTime.Now; // var closureInfo = ClosureInfo.GetByProjectId(projectId); // taskWork.Title = TaskWork.BuildTitle(projectId, closureInfo.StoreNameZHCN, closureInfo.StoreNameENUS); // taskWork.TypeCode = WorkflowCode; // taskWork.TypeNameENUS = WorkflowCode; // taskWork.TypeNameZHCN = WorkflowCode; // taskWork.ReceiverAccount = closureInfo.PMAccount; // taskWork.ReceiverNameENUS = closureInfo.PMNameENUS; // taskWork.ReceiverNameZHCN = closureInfo.PMNameZHCN; // taskWork.Url = string.Format(@"/Closure/Main#/ConsInvtChecking?projectId={0}", projectId); // taskWork.StoreCode = closureInfo.USCode; // taskWork.ActivityName = "Start"; // TaskWork.Add(taskWork); //} var taskWork = new TaskWork(); taskWork.SourceCode = FlowCode.Closure; taskWork.SourceNameENUS = taskWork.SourceCode; taskWork.SourceNameZHCN = "对帐流程"; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; taskWork.RefID = projectId; taskWork.Id = Guid.NewGuid(); taskWork.CreateTime = DateTime.Now; var closureInfo = ClosureInfo.GetByProjectId(projectId); taskWork.Title = TaskWork.BuildTitle(projectId, closureInfo.StoreNameZHCN, closureInfo.StoreNameENUS); taskWork.TypeCode = WorkflowCode; taskWork.TypeNameENUS = "ConsInvtChecking"; taskWork.TypeNameZHCN = "ConsInvtChecking"; taskWork.ReceiverAccount = closureInfo.PMAccount; taskWork.ReceiverNameENUS = closureInfo.PMNameENUS; taskWork.ReceiverNameZHCN = closureInfo.PMNameZHCN; taskWork.Url = string.Format(@"/Closure/Main#/ConsInvtChecking?projectId={0}", projectId); taskWork.StoreCode = closureInfo.USCode; taskWork.ActivityName = "Start"; //关店后60天发起对账流程 if (closureInfo.ActualCloseDate.HasValue) { ScheduleLog.GenerateTaskSchedule(closureInfo.ActualCloseDate.Value.AddDays(60), taskWork, ClientCookie.UserCode, projectId, WorkflowCode, closureInfo.USCode); } }
public TaskWork GenerateTaskWork(string strFlowCode, string strFlowENName, string strFlowCNName, string strUrl) { TaskWork taskWork = new TaskWork(); taskWork.SourceCode = FlowCode.MajorLease; taskWork.SourceNameZHCN = FlowCode.MajorLease; taskWork.SourceNameENUS = FlowCode.MajorLease; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; var title = TaskWork.BuildTitle(ProjectId, StoreNameZHCN, StoreNameENUS); taskWork.Title = title; taskWork.RefID = ProjectId; taskWork.StoreCode = USCode; taskWork.TypeCode = strFlowCode; taskWork.TypeNameENUS = strFlowENName; taskWork.TypeNameZHCN = strFlowCNName; if (strFlowCode == FlowCode.MajorLease_LegalReview) { taskWork.ReceiverAccount = AssetActorAccount; taskWork.ReceiverNameENUS = AssetActorNameENUS; taskWork.ReceiverNameZHCN = AssetActorNameZHCN; } else if (strFlowCode == FlowCode.MajorLease_FinanceAnalysis) { taskWork.ReceiverAccount = FinanceAccount; taskWork.ReceiverNameENUS = FinanceNameENUS; taskWork.ReceiverNameZHCN = FinanceNameZHCN; } else if (strFlowCode == FlowCode.MajorLease_ConsInfo) { taskWork.ReceiverAccount = PMAccount; taskWork.ReceiverNameENUS = PMNameENUS; taskWork.ReceiverNameZHCN = PMNameZHCN; } else if (strFlowCode == FlowCode.MajorLease_Package) { taskWork.ReceiverAccount = AssetActorAccount; taskWork.ReceiverNameENUS = AssetActorNameENUS; taskWork.ReceiverNameZHCN = AssetActorNameZHCN; } else if (strFlowCode == FlowCode.MajorLease_ConsInvtChecking) { taskWork.ReceiverAccount = PMAccount; taskWork.ReceiverNameENUS = PMNameENUS; taskWork.ReceiverNameZHCN = PMNameZHCN; } else if (strFlowCode == FlowCode.MajorLease_GBMemo) { taskWork.ReceiverAccount = PMAccount; taskWork.ReceiverNameENUS = PMNameENUS; taskWork.ReceiverNameZHCN = PMNameZHCN; } taskWork.Id = Guid.NewGuid(); taskWork.Url = strUrl; taskWork.CreateTime = DateTime.Now; taskWork.CreateUserAccount = CreateUserAccount; taskWork.Sequence = 0; taskWork.ActivityName = "Start"; return(taskWork); }
public override void Finish(TaskWorkStatus status, TaskWork task) { switch (status) { case TaskWorkStatus.K2ProcessDeclined: ProjectInfo.UpdateProjectStatus(ProjectId, FlowCode.Closure, ProjectStatus.Rejected); //删除未处理完成的任务 var oldTask = TaskWork.Search(i => i.SourceCode == FlowCode.Closure && i.RefID == this.ProjectId && i.Status == TaskWorkStatus.UnFinish).ToArray(); foreach (var taskItem in oldTask) { taskItem.Status = TaskWorkStatus.Cancel; } TaskWork.Update(oldTask); ProjectInfo.UpdateProjectStatus(ProjectId, FlowCode.Closure_ClosurePackage, ProjectStatus.Rejected); break; case TaskWorkStatus.K2ProcessApproved: //ClosurePackage的最后一步在K2中,但不属于审批 task.ActionName = ""; task.Update(); ProjectInfo.FinishNode(this.ProjectId, FlowCode.Closure_ClosurePackage, NodeCode.Closure_ClosurePackage_ResourceUpload, ProjectStatus.Finished); //Package流程走完后,在Actor处生成一条任务,供Actor上传Signed Termination Agreement与Signed Package //GenerateSignedPackageTask(ProjectId); if (!TaskWork.Any(i => i.RefID == this.ProjectId && i.SourceCode == FlowCode.Closure && i.TypeCode == FlowCode.Closure_ContractInfo && i.Status != TaskWorkStatus.Cancel)) { TaskWork taskWorkContractInfo = new TaskWork(); taskWorkContractInfo.SourceCode = FlowCode.Closure; taskWorkContractInfo.SourceNameENUS = FlowCode.Closure; taskWorkContractInfo.SourceNameZHCN = "关店流程"; taskWorkContractInfo.Status = TaskWorkStatus.UnFinish; taskWorkContractInfo.StatusNameZHCN = "任务"; taskWorkContractInfo.StatusNameENUS = "任务"; taskWorkContractInfo.RefID = ProjectId; taskWorkContractInfo.Id = Guid.NewGuid(); taskWorkContractInfo.CreateTime = DateTime.Now; //ClosureInfo closure = new ClosureInfo(); var closureInfo = ClosureInfo.GetByProjectId(ProjectId); taskWorkContractInfo.Title = TaskWork.BuildTitle(ProjectId, closureInfo.StoreNameZHCN, closureInfo.StoreNameENUS); taskWorkContractInfo.TypeCode = FlowCode.Closure_ContractInfo; taskWorkContractInfo.TypeNameENUS = "ContractInfo"; taskWorkContractInfo.TypeNameZHCN = "ContractInfo"; taskWorkContractInfo.ReceiverAccount = closureInfo.AssetActorAccount; taskWorkContractInfo.ReceiverNameENUS = closureInfo.AssetActorNameENUS; taskWorkContractInfo.ReceiverNameZHCN = closureInfo.AssetActorNameZHCN; taskWorkContractInfo.Url = SiteInfo.GetProjectHandlerPageUrl(FlowCode.Closure_ContractInfo, closureInfo.ProjectId); taskWorkContractInfo.StoreCode = closureInfo.USCode; taskWorkContractInfo.ActivityName = "Start"; taskWorkContractInfo.Add(); } //为了方便测试,暂时做成Package走完立刻生成ConsInvtChecking和ClourseMemo //var consInvtChecking = new ClosureConsInvtChecking(); //consInvtChecking.GenerateConsInvtCheckingTask(ProjectId); var memo = new ClosureMemo(); memo.GenerateClourseMemoTask(ProjectId); //如果是Complete了的流程,Edit后流程走完需要重新把主流程状态改成Complete ProjectInfo.CompleteMainIfEnable(ProjectId); break; } }
public override string Edit() { if (!PreEdit(this.ProjectId)) { return(""); } var closureEntity = ClosureInfo.GetByProjectId(this.ProjectId); var store = StoreBasicInfo.GetStorInfo(closureEntity.USCode); var taskWork = new TaskWork(); var source = FlowInfo.Get(FlowCode.Closure); var taskType = FlowInfo.Get(FlowCode.Closure_ClosureTool); taskWork.SourceCode = source.Code; taskWork.SourceNameZHCN = source.NameZHCN; taskWork.SourceNameENUS = source.NameENUS; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; taskWork.Title = TaskWork.BuildTitle(this.ProjectId, store.NameZHCN, store.NameENUS); taskWork.RefID = this.ProjectId; taskWork.StoreCode = closureEntity.USCode; taskWork.TypeCode = taskType.Code; taskWork.TypeNameENUS = taskType.NameENUS; taskWork.TypeNameZHCN = taskType.NameZHCN; taskWork.ReceiverAccount = closureEntity.FinanceAccount; taskWork.ReceiverNameENUS = closureEntity.FinanceNameENUS; taskWork.ReceiverNameZHCN = closureEntity.FinanceNameZHCN; taskWork.Id = Guid.NewGuid(); taskWork.CreateTime = DateTime.Now; taskWork.ActivityName = NodeCode.Start; taskWork.ActionName = SetTaskActionName(ProjectId); taskWork.Url = TaskWork.BuildUrl(FlowCode.Closure_ClosureTool, this.ProjectId, ""); TaskWork.Add(taskWork); this.IsHistory = true; TaskWork.SetTaskHistory(this.Id, this.ProcInstID); this.Save(); var objectCopy = new ObjectCopy(); var newEntity = objectCopy.AutoCopy(this); newEntity.Id = Guid.NewGuid(); newEntity.ProcInstID = 0; newEntity.IsHistory = false; newEntity.Save(); //复制ImpactOtherStore信息 var impactOtherStores = ClosureToolImpactOtherStore.Search(i => i.ClosureId == this.Id).AsNoTracking().ToArray(); if (impactOtherStores.Length > 0) { foreach (var impactItem in impactOtherStores) { impactItem.Id = Guid.NewGuid(); impactItem.ClosureId = newEntity.Id; } ClosureToolImpactOtherStore.Add(impactOtherStores); } ProjectInfo.Reset(this.ProjectId, FlowCode.Closure_ClosureTool); var attList = Attachment.Search(e => e.RefTableID == this.Id.ToString() && e.RefTableName == ClosureTool.TableName).AsNoTracking().ToList(); var newList = new List <Attachment>(); foreach (var att in attList) { var newAtt = objCopy.AutoCopy(att); newAtt.RefTableID = newEntity.Id.ToString(); newAtt.ID = Guid.NewGuid(); newList.Add(newAtt); } Attachment.AddList(newList); return(taskWork.Url); }
public TaskWork GenerateTaskWork(string strFlowCode, string strFlowENName, string strFlowCNName, string strUrl) { var taskWork = new TaskWork { SourceCode = FlowCode.Reimage, SourceNameZHCN = FlowCode.Reimage, SourceNameENUS = FlowCode.Reimage, Status = 0, StatusNameZHCN = "任务", StatusNameENUS = "任务" }; var title = TaskWork.BuildTitle(ProjectId, StoreNameZHCN, StoreNameENUS); taskWork.Title = title; taskWork.RefID = ProjectId; taskWork.StoreCode = USCode; taskWork.TypeCode = strFlowCode; taskWork.TypeNameENUS = strFlowENName; taskWork.TypeNameZHCN = strFlowCNName; if (strFlowCode == FlowCode.Reimage_ConsInfo) { taskWork.ReceiverAccount = PMAccount; taskWork.ReceiverNameENUS = PMNameENUS; taskWork.ReceiverNameZHCN = PMNameZHCN; } else if (strFlowCode == FlowCode.Reimage_Summary) { taskWork.ReceiverAccount = AssetActorAccount; taskWork.ReceiverNameENUS = AssetActorNameENUS; taskWork.ReceiverNameZHCN = AssetActorNameZHCN; } else if (strFlowCode == FlowCode.Reimage_Package) { taskWork.ReceiverAccount = AssetActorAccount; taskWork.ReceiverNameENUS = AssetActorNameENUS; taskWork.ReceiverNameZHCN = AssetActorNameZHCN; } else if (strFlowCode == FlowCode.Reimage_ConsInvtChecking) { taskWork.ReceiverAccount = PMAccount; taskWork.ReceiverNameENUS = PMNameENUS; taskWork.ReceiverNameZHCN = PMNameZHCN; } else if (strFlowCode == FlowCode.Reimage_GBMemo) { taskWork.ReceiverAccount = PMAccount; taskWork.ReceiverNameENUS = PMNameENUS; taskWork.ReceiverNameZHCN = PMNameZHCN; } else if (strFlowCode == FlowCode.Reimage_ReopenMemo) { taskWork.ReceiverAccount = AssetActorAccount; taskWork.ReceiverNameENUS = AssetActorNameENUS; taskWork.ReceiverNameZHCN = AssetActorNameZHCN; } else if (strFlowCode == FlowCode.Reimage_TempClosureMemo) { taskWork.ReceiverAccount = AssetActorAccount; taskWork.ReceiverNameENUS = AssetActorNameENUS; taskWork.ReceiverNameZHCN = AssetActorNameZHCN; } taskWork.Id = Guid.NewGuid(); taskWork.Url = strUrl; taskWork.CreateTime = DateTime.Now; taskWork.CreateUserAccount = CreateUserAccount; taskWork.Sequence = 0; taskWork.ActivityName = NodeCode.Start; return(taskWork); }