public void GenerateConsInvtCheckingTask(bool isScheduled = false) { var rbdInfo = RebuildInfo.Search(e => e.ProjectId.Equals(ProjectId)).AsNoTracking().FirstOrDefault(); if (rbdInfo == null) { throw new Exception("Could not find the Rebuild Info, please check it!"); } var taskUrl = string.Format(@"/Rebuild/Main#/ConsInvtChecking?projectId={0}", ProjectId); var task = rbdInfo.GenerateTaskWork(WorkflowCode, WorkflowCode, WorkflowCode, taskUrl); task.ActivityName = NodeCode.Start; task.ActionName = SetTaskActionName(ProjectId); if (!isScheduled) { TaskWork.Add(task); } else { if (rbdInfo.ConstCompletionDate.HasValue) { ScheduleLog.GenerateTaskSchedule(rbdInfo.ConstCompletionDate.Value.AddDays(60), task, ClientCookie.UserCode, ProjectId, FlowCode.Rebuild_ConsInvtChecking, rbdInfo.USCode); } } }
public override string Edit() { var taskUrl = string.Format("/Rebuild/Main#/LegalReview?projectId={0}", ProjectId); using (var scope = new TransactionScope()) { var rbdInfo = RebuildInfo.Search(e => e.ProjectId.Equals(ProjectId)).FirstOrDefault(); if (rbdInfo == null) { throw new Exception("Could not find the Rebuild Info, please check it!"); } TaskWork.Cancel(t => t.RefID == ProjectId && t.Status == TaskWorkStatus.UnFinish && t.TypeCode == this.WorkflowCode);//取消老的流程实例的所有未完成任务 var task = rbdInfo.GenerateTaskWork(WorkflowCode, "RebuildLegalReview", "RebuildLegalReview", taskUrl); task.ActivityName = NodeCode.Start; task.ActionName = SetTaskActionName(ProjectId); TaskWork.Add(task); var package = RebuildPackage.GetRebuildPackageInfo(ProjectId); if (package != null) { package.ProjectId = ProjectId; package.CompleteActorPackageTask(rbdInfo.AssetActorAccount); } IsHistory = true; Update(this); ProjectInfo.Reset(ProjectId, WorkflowCode); Mapper.CreateMap <RebuildLegalReview, RebuildLegalReview>(); var newLeaseLR = Mapper.Map <RebuildLegalReview>(this); newLeaseLR.Id = Guid.Empty; newLeaseLR.ProcInstID = null; newLeaseLR.IsHistory = false; newLeaseLR.Comments = null; newLeaseLR.Save("Edit"); CopyAttachment(Id.ToString(), newLeaseLR.Id.ToString()); CopyAppUsers(Id.ToString(), newLeaseLR.Id.ToString()); scope.Complete(); } return(taskUrl); }
public override string Edit() { var taskUrl = string.Format("/Rebuild/Main#/GBMemo?projectId={0}", ProjectId); using (var scope = new TransactionScope()) { var rbdInfo = RebuildInfo.Search(e => e.ProjectId.Equals(ProjectId)).FirstOrDefault(); if (rbdInfo == null) { throw new Exception("Could not find the Rebuild Info, please check it!"); } var task = rbdInfo.GenerateTaskWork(WorkflowCode, "Rebuild GBMemo", "Rebuild GBMemo", taskUrl); task.ActivityName = NodeCode.Start; task.ActionName = SetTaskActionName(ProjectId); TaskWork.Add(task); ProjectInfo.Reset(ProjectId, WorkflowCode); if (IsInOperation) { ProjectInfo.Reset(ProjectId, FlowCode.Rebuild_ReopenMemo); ProjectInfo.Reset(ProjectId, FlowCode.Rebuild_TempClosureMemo); } else { CompleteNotFinishTask(); } CompleteNotifyTask(ProjectId); IsHistory = true; Update(this); Mapper.CreateMap <GBMemo, GBMemo>(); var entity = Mapper.Map <GBMemo>(this); entity.Id = Guid.Empty; entity.ProcInstID = null; entity.IsHistory = false; entity.Comments = null; entity.Save("Edit"); CopyAppUsers(Id.ToString(), entity.Id.ToString()); scope.Complete(); } return(taskUrl); }
public override void Finish(TaskWorkStatus status, TaskWork task) { using (var scope = new TransactionScope()) { switch (status) { case TaskWorkStatus.K2ProcessApproved: RebuildInfo rbdInfo = RebuildInfo.Search(e => e.ProjectId.Equals(ProjectId)).FirstOrDefault(); ProjectInfo.FinishNode(ProjectId, FlowCode.Rebuild_GBMemo, NodeCode.Finish, ProjectStatus.Finished); if (IsInOperation) { //CompleteNotFinishTask(); ProjectInfo.FinishNode(ProjectId, FlowCode.Rebuild_ReopenMemo, NodeCode.Finish, ProjectStatus.Finished); ProjectInfo.FinishNode(ProjectId, FlowCode.Rebuild_TempClosureMemo, NodeCode.Finish, ProjectStatus.Finished); } else { var taskUrlReopen = string.Format(@"/Rebuild/Main#/ReopenMemo?projectId={0}", ProjectId); var taskReopen = rbdInfo.GenerateTaskWork(FlowCode.Rebuild_ReopenMemo, "Reopen Memo", "Reopen Memo", taskUrlReopen); taskReopen.ActivityName = NodeCode.Start; taskReopen.ActionName = SetTaskActionName(ProjectId); //TaskWork.Add(taskReopen); if (rbdInfo.ReopenDate.HasValue) { ScheduleLog.GenerateTaskSchedule(rbdInfo.ReopenDate.Value.AddDays(-7), taskReopen, ClientCookie.UserCode, ProjectId, FlowCode.Rebuild_ReopenMemo, rbdInfo.USCode); } ProjectInfo.Reset(ProjectId, FlowCode.Rebuild_ReopenMemo); var taskUrlClosure = string.Format(@"/Rebuild/Main#/TempClosureMemo?projectId={0}", ProjectId); var taskClosure = rbdInfo.GenerateTaskWork(FlowCode.Rebuild_TempClosureMemo, "TempClosure Memo", "TempClosure Memo", taskUrlClosure); taskClosure.ActivityName = NodeCode.Start; taskClosure.ActionName = SetTaskActionName(ProjectId); TaskWork.Add(taskClosure); ProjectInfo.Reset(ProjectId, FlowCode.Rebuild_TempClosureMemo); } var consCheckingTask = TaskWork.FirstOrDefault(e => e.RefID == ProjectId && e.TypeCode == FlowCode.Rebuild_ConsInvtChecking && e.Status == TaskWorkStatus.UnFinish); var checkingProj = ProjectInfo.FirstOrDefault(e => e.ProjectId == ProjectId && e.FlowCode == FlowCode.Rebuild_ConsInvtChecking); if (consCheckingTask == null && checkingProj != null && checkingProj.Status != ProjectStatus.Finished) { var consInvtChecking = new RebuildConsInvtChecking(); consInvtChecking.ProjectId = task.RefID; consInvtChecking.GenerateConsInvtCheckingTask(true); } ProjectInfo.CompleteMainIfEnable(ProjectId); var pmTaskUrl = string.Format(@"/Rebuild/Main#/GBMemo/Process/Notify?projectId={0}", ProjectId); var pmTask = rbdInfo.GenerateTaskWork(WorkflowCode, "Rebuild GBMemo", "Rebuild GBMemo", pmTaskUrl); pmTask.ActivityName = "Notify"; pmTask.ActionName = "Notify"; TaskWork.Add(pmTask); break; case TaskWorkStatus.K2ProcessDeclined: ProjectInfo.UpdateProjectStatus(ProjectId, FlowCode.Rebuild, ProjectStatus.Rejected); ProjectInfo.UpdateProjectStatus(ProjectId, FlowCode.Rebuild_GBMemo, ProjectStatus.Rejected); break; } scope.Complete(); } }