public override string Edit() { //取消未处理完成的任务(主要是Package最后一个环节办理完后,不走K2流程生成的1条回到Actor的任务) var oldTask = TaskWork.Search(i => i.SourceCode == FlowCode.Closure && i.TypeCode == FlowCode.Closure_ClosurePackage && i.RefID == this.ProjectId && i.Status == TaskWorkStatus.UnFinish).ToArray(); foreach (var taskItem in oldTask) { taskItem.Status = TaskWorkStatus.Cancel; } TaskWork.Update(oldTask); //var taskWork = TaskWork.FirstOrDefault(e => e.ReceiverAccount == ClientCookie.UserCode // && e.SourceCode == FlowCode.Closure // && e.TypeCode == FlowCode.Closure_ClosurePackage && e.RefID == this.ProjectId); //taskWork.Status = TaskWorkStatus.UnFinish; //taskWork.StatusNameZHCN = "任务"; //taskWork.StatusNameENUS = "任务"; //var closureEntity = ClosureInfo.GetByProjectId(this.ProjectId); //taskWork.ReceiverAccount = closureEntity.AssetActorAccount; //taskWork.ReceiverNameENUS = closureEntity.AssetActorNameENUS; //taskWork.ReceiverNameZHCN = closureEntity.AssetActorNameZHCN; //taskWork.Id = Guid.NewGuid(); //taskWork.CreateTime = DateTime.Now; //taskWork.Url = TaskWork.BuildUrl(FlowCode.Closure_ClosurePackage, this.ProjectId, ""); //taskWork.ActivityName = NodeCode.Start; //taskWork.ActionName = SetTaskActionName(ProjectId); //taskWork.ProcInstID = null; //taskWork.FinishTime = null; //TaskWork.Add(taskWork); var url = GeneratePackageTask(ProjectId); this.IsHistory = true; this.Save(); var objectCopy = new ObjectCopy(); var newEntity = objectCopy.AutoCopy(this); newEntity.Id = Guid.NewGuid(); newEntity.ProcInstID = 0; newEntity.IsHistory = false; newEntity.Add(); var projectEntity = ProjectInfo.Get(this.ProjectId, FlowCode.Closure_ClosurePackage); projectEntity.Status = ProjectStatus.UnFinish; ProjectInfo.Update(projectEntity); ProjectInfo.Reset(ProjectId, FlowCode.Closure_ClosurePackage); ProjectInfo.Reset(ProjectId, FlowCode.Closure); var attList = Attachment.Search(e => e.RefTableID == this.Id.ToString() && e.RefTableName == ClosurePackage.TableName).AsNoTracking().ToList(); var newList = new List <Attachment>(); foreach (var att in attList) { var newAtt = objectCopy.AutoCopy(att); newAtt.RefTableID = newEntity.Id.ToString(); newAtt.ID = Guid.NewGuid(); newList.Add(newAtt); } Attachment.Add(newList.ToArray()); return(url); }
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 override string Edit() { using (var tranScope = new TransactionScope()) { var info = RenewalInfo.Get(this.ProjectId); var consInfo = Duplicator.AutoCopy(this); consInfo.Id = Guid.NewGuid(); consInfo.IsHistory = false; consInfo.CreateUserAccount = ClientCookie.UserCode; consInfo.Add(); IsHistory = true; this.Update(); ProjectInfo.Reset(ProjectId, this.WorkflowCode); var attachments = Attachment.GetList(this.TableName, Id.ToString(), string.Empty); attachments.ForEach(att => { att.RefTableID = consInfo.Id.ToString(); att.ID = Guid.NewGuid(); }); Attachment.Add(attachments.ToArray()); var reinBasic = ReinvestmentBasicInfo.GetByConsInfoId(this.Id); if (reinBasic != null) { var newReinBasic = Duplicator.AutoCopy(reinBasic); newReinBasic.Id = 0; newReinBasic.ConsInfoID = consInfo.Id; newReinBasic.Add(); } var wf = WriteOffAmount.GetByConsInfoId(this.Id); if (wf != null) { var newWf = Duplicator.AutoCopy(wf); newWf.Id = Guid.NewGuid(); newWf.ConsInfoID = consInfo.Id; newWf.Add(); } var reinCost = ReinvestmentCost.GetByConsInfoId(this.Id); if (reinCost != null) { var newReinCost = Duplicator.AutoCopy(reinCost); newReinCost.Id = Guid.NewGuid(); newReinCost.ConsInfoID = consInfo.Id; newReinCost.Add(); } var oldTasks = TaskWork.Search(t => t.RefID == ProjectId && t.Status == TaskWorkStatus.UnFinish && new string[] { FlowCode.Renewal_ConsInfo, FlowCode.Renewal_Tool }.Contains(t.TypeCode)).ToList(); oldTasks.ForEach(t => { t.Status = TaskWorkStatus.Cancel; }); TaskWork.Update(oldTasks.ToArray()); var toolUploadTask = TaskWork.FirstOrDefault(t => t.RefID == ProjectId && t.TypeCode == FlowCode.Renewal_Tool && t.ReceiverAccount == info.AssetActorAccount && t.ActivityName == "AssetActor" && t.Status == TaskWorkStatus.UnFinish); if (toolUploadTask != null) { toolUploadTask.Status = TaskWorkStatus.Cancel; toolUploadTask.Update(); } CompleteRenewalToolTask(); var task = info.GenerateSubmitTask(this.WorkflowCode); tranScope.Complete(); return(task.Url); } }