Esempio n. 1
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            var info = RenewalInfo.Get(this.ProjectId);

            switch (status)
            {
            case TaskWorkStatus.K2ProcessApproved:
            {
                using (TransactionScope tranScope = new TransactionScope())
                {
                    ProjectProgress.SetProgress(ProjectId, "40%");
                    ProjectInfo.FinishNode(ProjectId, this.WorkflowCode, NodeCode.Finish);
                    var anlysisProj = ProjectInfo.FirstOrDefault(e => e.FlowCode == FlowCode.Renewal_Analysis &&
                                                                 e.Status == ProjectStatus.UnFinish && e.ProjectId == ProjectId);
                    if (anlysisProj != null)
                    {
                        info.GenerateSubmitTask(FlowCode.Renewal_Analysis);
                    }
                    else
                    {
                        //Renewal Tool重新Edit并完成后,系统自动重新生成一次Renewal Analysis文件
                        var anlysis = RenewalAnalysis.Get(ProjectId);
                        if (anlysis != null)
                        {
                            anlysis.GenerateAttachment();
                        }
                    }
                    tranScope.Complete();
                }
            }
            break;
            }
        }
Esempio n. 2
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            var info = RenewalInfo.Get(ProjectId);

            switch (status)
            {
            case TaskWorkStatus.K2ProcessApproved:
                ProjectProgress.SetProgress(ProjectId, "50%");
                ProjectInfo.FinishNode(ProjectId, FlowCode.Renewal_Analysis, NodeCode.Finish, ProjectStatus.Finished);
                if (info.RenewalYears > 2)
                {
                    if (!ProjectInfo.FlowHaveTask(ProjectId, FlowCode.Renewal_ClearanceReport))
                    {
                        info.GenerateSubmitTask(FlowCode.Renewal_ClearanceReport);
                    }
                }
                else
                {
                    ProjectInfo.FinishProject(this.ProjectId, FlowCode.Renewal_ClearanceReport);
                    if (!ProjectInfo.FlowHaveTask(ProjectId, FlowCode.Renewal_ConfirmLetter))
                    {
                        info.GenerateSubmitTask(FlowCode.Renewal_ConfirmLetter);
                    }
                }

                break;

            case TaskWorkStatus.K2ProcessDeclined:
                break;
            }
        }
Esempio n. 3
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            using (var scope = new TransactionScope())
            {
                switch (status)
                {
                case TaskWorkStatus.K2ProcessApproved:
                    ProjectInfo.FinishNode(this.ProjectId, FlowCode.Closure_WOCheckList, NodeCode.Closure_WOCheckList_Approve, ProjectStatus.Finished);
                    //ProjectInfo.UpdateProjectStatus(this.ProjectId, FlowCode.Closure_WOCheckList, ProjectStatus.Finished);
                    //如果是从ClosurePackage Edit之后撤回Task的,添加ClosurePackage的Task
                    if (TaskWork.Count(i => i.RefID == task.RefID && i.TypeCode == FlowCode.Closure_ClosurePackage && i.Status == TaskWorkStatus.Cancel) > 0)
                    {
                        if (ProjectInfo.Any(e => e.ProjectId == task.RefID && e.Status == ProjectStatus.Finished && e.FlowCode == FlowCode.Closure_LegalReview))
                        {
                            var package = new ClosurePackage();
                            package.GeneratePackageTask(task.RefID);
                        }
                    }
                    //如果是从ExecutiveSummary Edit之后撤回Task的,添加ExecutiveSummary的Task
                    else if (TaskWork.Count(i => i.RefID == task.RefID && i.TypeCode == FlowCode.Closure_ExecutiveSummary && i.Status == TaskWorkStatus.Cancel) > 0)
                    {
                        var executiveSummary = new ClosureExecutiveSummary();
                        executiveSummary.GenerateExecutiveSummaryTask(task.RefID);
                    }
                    break;
                }

                scope.Complete();
            }
        }
Esempio n. 4
0
 public static TaskWork GetTaskWork(string projectId, string userAccount, TaskWorkStatus status, string sourceCode, string typeCode)
 {
     return(FirstOrDefault(e => e.ReceiverAccount.Equals(userAccount) &&
                           e.Status == status && e.SourceCode.Equals(sourceCode) &&
                           e.TypeCode.Equals(typeCode) &&
                           e.RefID.Equals(projectId)));
 }
Esempio n. 5
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            using (var scope = new TransactionScope())
            {
                switch (status)
                {
                case TaskWorkStatus.K2ProcessApproved:

                    //ClosureTool的最后一步在K2中,但不属于审批
                    task.ActionName = "";
                    task.Update();

                    ProjectInfo.FinishNode(this.ProjectId, FlowCode.Closure_ClosureTool, NodeCode.Closure_ClosureTool_Generate, ProjectStatus.Finished);
                    if (!ClosureExecutiveSummary.Any(i => i.ProjectId == this.ProjectId && i.IsHistory == false))
                    {
                        var esEntity = new ClosureExecutiveSummary();
                        esEntity.ProjectId      = this.ProjectId;
                        esEntity.Id             = Guid.NewGuid();
                        esEntity.CreateTime     = DateTime.Now;
                        esEntity.CreatorAccount = ClientCookie.UserCode;
                        ClosureExecutiveSummary.Add(esEntity);
                    }
                    break;
                }

                scope.Complete();
            }
        }
Esempio n. 6
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            var info = RenewalInfo.Get(ProjectId);

            switch (status)
            {
            case TaskWorkStatus.K2ProcessApproved:
                ProjectInfo.FinishNode(ProjectId, FlowCode.Renewal_LLNegotiation, NodeCode.Finish, ProjectStatus.Finished);
                if (ProjectInfo.IsFlowFinished(ProjectId, FlowCode.Renewal_Letter))
                {
                    ProjectProgress.SetProgress(ProjectId, "30%");
                    if (info.NeedProjectCostEst)
                    {
                        if (!ProjectInfo.IsFlowStarted(ProjectId, FlowCode.Renewal_ConsInfo))
                        {
                            info.GenerateSubmitTask(FlowCode.Renewal_ConsInfo);
                        }
                    }
                    else
                    {
                        ProjectInfo.FinishNode(ProjectId, FlowCode.Renewal_ConsInfo, NodeCode.Finish, ProjectStatus.Finished);
                        if (!ProjectInfo.IsFlowStarted(ProjectId, FlowCode.Renewal_Tool))
                        {
                            info.GenerateSubmitTask(FlowCode.Renewal_Tool);
                        }
                    }
                }
                break;

            case TaskWorkStatus.K2ProcessDeclined:
                break;
            }
        }
Esempio n. 7
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            var info = RenewalInfo.Get(this.ProjectId);

            switch (status)
            {
            case TaskWorkStatus.K2ProcessApproved:
            {
                ProjectProgress.SetProgress(ProjectId, "90%");
                var taskcontract = TaskWork.Search(e => e.RefID == ProjectId && e.TypeCode == FlowCode.Renewal_ContractInfo).FirstOrDefault();
                if (taskcontract == null)
                {
                    info.GenerateSubmitTask(FlowCode.Renewal_ContractInfo);
                }
                var taskSiteinfo = TaskWork.Search(e => e.RefID == ProjectId && e.TypeCode == FlowCode.Renewal_SiteInfo).FirstOrDefault();
                if (taskSiteinfo == null)
                {
                    info.GenerateSubmitTask(FlowCode.Renewal_SiteInfo);
                }

                ProjectInfo.CompleteMainIfEnable(ProjectId);
                ProjectInfo.FinishNode(ProjectId, WorkflowCode, NodeCode.Renewal_Package_Approval);
            }
            break;

            case TaskWorkStatus.K2ProcessDeclined:
            {
                ProjectInfo.UpdateProjectStatus(ProjectId, FlowCode.Renewal, ProjectStatus.Rejected);
                ProjectInfo.Reject(ProjectId, FlowCode.Renewal_Package);
            }
            break;
            }
        }
Esempio n. 8
0
 public override void Finish(TaskWorkStatus status, TaskWork task)
 {
     switch (status)
     {
     case TaskWorkStatus.K2ProcessApproved:
         ProjectInfo.FinishNode(ProjectId, FlowCode.TempClosure_LegalReview, NodeCode.TempClosure_LegalReview_Approve, ProjectStatus.Finished);
         break;
     }
 }
Esempio n. 9
0
 public override void Finish(TaskWorkStatus status, TaskWork task)
 {
     using (var scope = new TransactionScope())
     {
         switch (status)
         {
         case TaskWorkStatus.K2ProcessApproved:
             ProjectInfo.FinishNode(ProjectId, WorkflowCode, NodeCode.Finish);
             ProjectInfo.CompleteMainIfEnable(ProjectId);
             break;
         }
         scope.Complete();
     }
 }
Esempio n. 10
0
 public override void Finish(TaskWorkStatus status, TaskWork task)
 {
     using (var scope = new TransactionScope())
     {
         switch (status)
         {
         case TaskWorkStatus.K2ProcessApproved:
             ProjectInfo.FinishNode(ProjectId, WorkflowCode, NodeCode.MajorLease_FinanceAnalysis_Confirm, ProjectStatus.Finished);
             var majorLeasePackage = new MajorLeaseChangePackage();
             majorLeasePackage.GeneratePackageTask(ProjectId);
             break;
         }
         scope.Complete();
     }
 }
Esempio n. 11
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            switch (status)
            {
            case TaskWorkStatus.K2ProcessApproved:
                ProjectInfo.FinishNode(ProjectId, FlowCode.MajorLease_ConsInfo,
                                       NodeCode.MajorLease_ConsInfo_Confirm, ProjectStatus.Finished);

                var majorLeasePackage = new MajorLeaseChangePackage();
                majorLeasePackage.GeneratePackageTask(ProjectId);

                UpdateConsInvtCheckingStatus();

                break;
            }
        }
Esempio n. 12
0
 public override void Finish(TaskWorkStatus status, TaskWork task)
 {
     using (var scope = new TransactionScope())
     {
         switch (status)
         {
         case TaskWorkStatus.K2ProcessApproved:
             ProjectInfo.FinishNode(ProjectId, FlowCode.Rebuild_LegalReview, NodeCode.Finish);
             var rbdPackage = new RebuildPackage();
             rbdPackage.ProjectId = ProjectId;
             rbdPackage.GeneratePackageTask();
             break;
         }
         scope.Complete();
     }
 }
Esempio n. 13
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            using (var scope = new TransactionScope())
            {
                switch (status)
                {
                case TaskWorkStatus.K2ProcessApproved:
                    ProjectInfo.FinishNode(ProjectId, FlowCode.Reimage_Summary, NodeCode.Finish, ProjectStatus.Finished);

                    var reimagePackage = ReimagePackage.Get(ProjectId);
                    reimagePackage.GeneratePackageTask(ProjectId);
                    break;
                }

                scope.Complete();
            }
        }
Esempio n. 14
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            using (var scope = new TransactionScope())
            {
                switch (status)
                {
                case TaskWorkStatus.K2ProcessApproved:
                    ProjectInfo.FinishNode(ProjectId, FlowCode.Reimage_ConsInfo, NodeCode.Reimage_ConsInfo_Confirm, ProjectStatus.Finished);

                    var reimagePackage = ReimagePackage.Get(ProjectId);
                    reimagePackage.GeneratePackageTask(ProjectId);

                    var reimageInfo = ReimageInfo.FirstOrDefault(e => e.ProjectId == ProjectId);

                    if (reimageInfo != null)
                    {
                        if (!TaskWork.Any(e => e.RefID == ProjectId &&
                                          e.TypeCode == FlowCode.Reimage_Summary &&
                                          e.Status == TaskWorkStatus.UnFinish &&
                                          e.ActivityName == NodeCode.Start))
                        {
                            var    reimageSummary = ReimageSummary.GetReimageSummaryInfo(ProjectId);
                            string filePath;
                            reimageSummary.GenerateExcel(out filePath);

                            if (!ProjectInfo.Any(e => e.ProjectId == ProjectId &&
                                                 e.FlowCode == FlowCode.Reimage_Summary &&
                                                 e.Status == ProjectStatus.Finished))
                            {
                                var summaryTask = reimageInfo.GenerateTaskWork(
                                    FlowCode.Reimage_Summary,
                                    FlowCode.Reimage_Summary,
                                    FlowCode.Reimage_Summary,
                                    string.Format(@"/Reimage/Main#/Summary?projectId={0}", ProjectId));

                                summaryTask.Add();
                            }
                        }
                    }
                    break;
                }

                scope.Complete();
            }
        }
Esempio n. 15
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            var info = RenewalInfo.Get(this.ProjectId);

            Log4netHelper.WriteErrorLog(status.ToString());
            switch (status)
            {
            case TaskWorkStatus.K2ProcessApproved:
            {
                Log4netHelper.WriteErrorLog("111111111");
                ProjectProgress.SetProgress(ProjectId, "80%");
                info.GenerateSubmitTask(FlowCode.Renewal_Package);
                ProjectInfo.FinishNode(this.ProjectId, this.WorkflowCode, NodeCode.Renewal_LegalApproval_Approval, ProjectStatus.Finished);
                Log4netHelper.WriteErrorLog("22222222");
            }
            break;
            }
        }
Esempio n. 16
0
 public override void Finish(TaskWorkStatus status, TaskWork task)
 {
     using (var scope = new TransactionScope())
     {
         switch (status)
         {
         case TaskWorkStatus.K2ProcessApproved:
             RenewalInfo renInfo   = RenewalInfo.Search(e => e.ProjectId.Equals(ProjectId)).FirstOrDefault();
             var         pmTaskUrl = string.Format(@"/Renewal/Main#/GBMemo/Process/Notify?projectId={0}", ProjectId);
             var         pmTask    = renInfo.GenerateTaskWork(WorkflowCode, "Renewal GBMemo", "Renewal GBMemo", pmTaskUrl);
             pmTask.ActivityName = "Notify";
             pmTask.ActionName   = "Notify";
             TaskWork.Add(pmTask);
             break;
         }
         scope.Complete();
     }
 }
Esempio n. 17
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            var info = RenewalInfo.Get(ProjectId);

            switch (status)
            {
            case TaskWorkStatus.K2ProcessApproved:
                ProjectProgress.SetProgress(ProjectId, "60%");
                ProjectInfo.FinishNode(ProjectId, this.WorkflowCode, NodeCode.Finish, ProjectStatus.Finished);
                if (!ProjectInfo.FlowHaveTask(ProjectId, FlowCode.Renewal_ConfirmLetter))
                {
                    info.GenerateSubmitTask(FlowCode.Renewal_ConfirmLetter);
                }
                break;

            case TaskWorkStatus.K2ProcessDeclined:
                break;
            }
        }
Esempio n. 18
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            switch (status)
            {
            case TaskWorkStatus.K2ProcessDeclined:
                ProjectInfo.UpdateProjectStatus(ProjectId, FlowCode.TempClosure, ProjectStatus.Rejected);
                ProjectInfo.UpdateProjectStatus(ProjectId, FlowCode.TempClosure_ClosurePackage, ProjectStatus.Rejected);
                break;

            case TaskWorkStatus.K2ProcessApproved:
                ProjectInfo.FinishNode(ProjectId, FlowCode.TempClosure_ClosurePackage, NodeCode.TempClosure_ClosurePackage_Approve);
                var closureMemo = new TempClosureMemo();
                closureMemo.GenerateClosureMemoTask(ProjectId);

                var tempClosureReopenMemo = new TempClosureReopenMemo();
                tempClosureReopenMemo.GenerateReopenTask(ProjectId);
                break;
            }
        }
Esempio n. 19
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            switch (status)
            {
            case TaskWorkStatus.K2ProcessApproved:
                ProjectInfo.FinishNode(this.ProjectId, FlowCode.Closure_LegalReview, NodeCode.Closure_LegalReview_LegalConfirm, ProjectStatus.Finished);
                //ProjectInfo.UpdateProjectStatus(this.ProjectId, FlowCode.Closure_LegalReview, ProjectStatus.Finished);
                if (ProjectInfo.Any(e => e.ProjectId == ProjectId &&
                                    e.Status == ProjectStatus.Finished &&
                                    e.FlowCode == FlowCode.Closure_ExecutiveSummary))
                {
                    var package = new ClosurePackage();
                    package.GeneratePackageTask(ProjectId);
                    package.GeneratePackage(ProjectId);
                }

                break;
            }
        }
Esempio n. 20
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            using (var scope = new TransactionScope())
            {
                switch (status)
                {
                case TaskWorkStatus.K2ProcessApproved:
                    ProjectInfo.FinishNode(this.ProjectId, FlowCode.Closure_ExecutiveSummary, NodeCode.Closure_ExecutiveSummary_Generate, ProjectStatus.Finished);
                    if (ProjectInfo.Any(e => e.ProjectId == ProjectId &&
                                        e.Status == ProjectStatus.Finished &&
                                        e.FlowCode == FlowCode.Closure_LegalReview))
                    {
                        var package = new ClosurePackage();
                        package.GeneratePackageTask(ProjectId);
                        package.GeneratePackage(ProjectId);
                    }
                    break;
                }

                scope.Complete();
            }
        }
Esempio n. 21
0
 public override void Finish(TaskWorkStatus status, TaskWork task)
 {
     switch (status)
     {
     case TaskWorkStatus.K2ProcessApproved:
     {
         ProjectInfo.FinishNode(ProjectId, this.WorkflowCode, NodeCode.Finish);
         ProjectInfo.FinishNode(ProjectId, FlowCode.Renewal_LLNegotiation, NodeCode.Renewal_LLNegotiation_ConfirmLetter);
         if (!ProjectInfo.IsFlowStarted(ProjectId, FlowCode.Renewal_ConsInfo))
         {
             var info = RenewalInfo.Get(task.RefID);
             if (ProjectInfo.IsFlowFinished(ProjectId, FlowCode.Renewal_LLNegotiation))
             {
                 ProjectProgress.SetProgress(ProjectId, "30%");
                 if (info.NeedProjectCostEst)
                 {
                     if (!ProjectInfo.IsFlowStarted(ProjectId, FlowCode.Renewal_ConsInfo))
                     {
                         info.GenerateSubmitTask(FlowCode.Renewal_ConsInfo);
                     }
                 }
                 else
                 {
                     ProjectInfo.FinishNode(ProjectId, FlowCode.Renewal_ConsInfo, NodeCode.Finish, ProjectStatus.Finished);
                     if (!ProjectInfo.IsFlowStarted(ProjectId, FlowCode.Renewal_Tool))
                     {
                         info.GenerateSubmitTask(FlowCode.Renewal_Tool);
                     }
                 }
             }
         }
         TaskWork.Finish(t => t.TypeCode == this.WorkflowCode && t.RefID == this.ProjectId && t.Status == TaskWorkStatus.UnFinish);
     }
     break;
     }
 }
Esempio n. 22
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            RenewalInfo info = RenewalInfo.Get(this.ProjectId);

            switch (status)
            {
            case TaskWorkStatus.K2ProcessApproved:
                //var toolUploadTask = TaskWork.FirstOrDefault(t => t.RefID == ProjectId
                //        && t.TypeCode == FlowCode.Renewal_Tool
                //        && t.ReceiverAccount == info.AssetActorAccount
                //        && t.ActivityName == "AssetActor"
                //        && t.Status == TaskWorkStatus.Cancel);
                //if (toolUploadTask != null)
                //{
                //    toolUploadTask.Status = TaskWorkStatus.UnFinish;
                //    toolUploadTask.Update();
                //}
                //else if (!ProjectInfo.IsFlowStarted(this.ProjectId, FlowCode.Renewal_Tool))
                //{
                //    info.GenerateSubmitTask(FlowCode.Renewal_Tool);
                //}
                var  tool = RenewalTool.Get(ProjectId);
                Guid entityId;
                var  toolProj = ProjectInfo.FirstOrDefault(e => e.Status == ProjectStatus.Finished && e.ProjectId == ProjectId && e.FlowCode == FlowCode.Renewal_Tool);
                if (toolProj != null)
                {
                    NoticeToActor(info.AssetActorAccount, info.USCode);
                    tool.Edit();
                    entityId = tool.NewEntityId;
                }
                else
                {
                    entityId = tool.Id;
                    ProjectInfo.Reset(this.ProjectId, FlowCode.Renewal_Tool);
                    info.GenerateSubmitTask(FlowCode.Renewal_Tool);
                }


                var entity = RenewalToolWriteOffAndReinCost.FirstOrDefault(w => w.ToolId == entityId);
                if (entity == null)
                {
                    entity        = new RenewalToolWriteOffAndReinCost();
                    entity.Id     = Guid.NewGuid();
                    entity.ToolId = tool.Id;
                    entity.Add();
                }
                var writeOffAmount = WriteOffAmount.GetByConsInfoId(this.Id);
                var reinCost       = ReinvestmentCost.GetByConsInfoId(this.Id);
                if (writeOffAmount != null)
                {
                    entity.REWriteOff   = DataConverter.ToDecimal(writeOffAmount.REWriteOff);
                    entity.LHIWriteOff  = DataConverter.ToDecimal(writeOffAmount.LHIWriteOff);
                    entity.ESSDWriteOff = DataConverter.ToDecimal(writeOffAmount.ESSDWriteOff);
                }
                else
                {
                    entity.REWriteOff   = 0;
                    entity.LHIWriteOff  = 0;
                    entity.ESSDWriteOff = 0;
                }
                if (reinCost != null)
                {
                    entity.RECost   = DataConverter.ToDecimal(reinCost.RECostNorm);
                    entity.LHICost  = DataConverter.ToDecimal(reinCost.LHINorm);
                    entity.ESSDCost = DataConverter.ToDecimal(reinCost.ESSDNorm);
                }
                else
                {
                    entity.RECost   = 0;
                    entity.LHICost  = 0;
                    entity.ESSDCost = 0;
                }
                Log4netHelper.WriteInfo(JsonConvert.SerializeObject(new { desc = "renewal tool info:", entityId, tool, writeOffAmount, reinCost, Id }));
                entity.Update();
                if (HasReinvenstment)
                {
                    ProjectInfo.FinishNode(this.ProjectId, this.WorkflowCode, NodeCode.Renewal_ConsInfo_Approval);
                }

                break;

            case TaskWorkStatus.K2ProcessDeclined:
                break;
            }
            task.Finish();
        }
Esempio n. 23
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            using (var scope = new TransactionScope())
            {
                switch (status)
                {
                case TaskWorkStatus.K2ProcessApproved:
                    var imgInfo = ReimageInfo.Search(e => e.ProjectId.Equals(ProjectId)).FirstOrDefault();
                    ProjectInfo.FinishNode(ProjectId, FlowCode.Reimage_GBMemo, NodeCode.Finish, ProjectStatus.Finished);
                    if (IsInOperation)
                    {
                        ProjectInfo.FinishNode(ProjectId, FlowCode.Reimage_ReopenMemo, NodeCode.Finish, ProjectStatus.Finished);
                        ProjectInfo.FinishNode(ProjectId, FlowCode.Reimage_TempClosureMemo, NodeCode.Finish, ProjectStatus.Finished);
                    }
                    else
                    {
                        var taskUrlReopen = string.Format(@"/Reimage/Main#/ReopenMemo?projectId={0}", ProjectId);
                        var taskReopen    = imgInfo.GenerateTaskWork(FlowCode.Reimage_ReopenMemo, "Reopen Memo", "Reopen Memo", taskUrlReopen);
                        taskReopen.ActivityName = NodeCode.Start;
                        taskReopen.ActionName   = SetTaskActionName(ProjectId);
                        //TaskWork.Add(taskReopen);
                        if (rmgInfo.ReopenDate.HasValue)
                        {
                            ScheduleLog.GenerateTaskSchedule(rmgInfo.ReopenDate.Value.AddDays(-7), taskReopen, ClientCookie.UserCode, ProjectId, FlowCode.Reimage_ReopenMemo, rmgInfo.USCode);
                        }
                        ProjectInfo.Reset(ProjectId, FlowCode.Reimage_ReopenMemo);

                        var taskUrlClosure = string.Format(@"/Reimage/Main#/TempClosureMemo?projectId={0}", ProjectId);
                        var taskClosure    = imgInfo.GenerateTaskWork(FlowCode.Reimage_TempClosureMemo, "TempClosure Memo", "TempClosure Memo", taskUrlClosure);
                        taskClosure.ActivityName = NodeCode.Start;
                        taskClosure.ActionName   = SetTaskActionName(ProjectId);
                        TaskWork.Add(taskClosure);
                        ProjectInfo.Reset(ProjectId, FlowCode.Reimage_TempClosureMemo);
                    }

                    var consCheckingTask = TaskWork.FirstOrDefault(e => e.RefID == ProjectId && e.TypeCode == FlowCode.Reimage_ConsInvtChecking && e.Status == TaskWorkStatus.UnFinish);
                    var checkingProj     = ProjectInfo.FirstOrDefault(e => e.ProjectId == ProjectId && e.FlowCode == FlowCode.Reimage_ConsInvtChecking);
                    if (consCheckingTask == null && checkingProj != null &&
                        checkingProj.Status != ProjectStatus.Finished)
                    {
                        var consInvtChecking = new ReimageConsInvtChecking();
                        consInvtChecking.ProjectId = task.RefID;
                        consInvtChecking.GenerateConsInvtCheckingTask(true);
                    }

                    ProjectInfo.CompleteMainIfEnable(ProjectId);
                    var pmTaskUrl = string.Format(@"/Reimage/Main#/GBMemo/Process/Notify?projectId={0}", ProjectId);
                    var pmTask    = imgInfo.GenerateTaskWork(WorkflowCode, "Reimage GBMemo", "Reimage GBMemo", pmTaskUrl);
                    pmTask.ActivityName = "Notify";
                    pmTask.ActionName   = "Notify";
                    TaskWork.Add(pmTask);

                    GenerateSiteInfoTask();
                    break;

                case TaskWorkStatus.K2ProcessDeclined:
                    ProjectInfo.UpdateProjectStatus(ProjectId, FlowCode.Reimage, ProjectStatus.Rejected);
                    ProjectInfo.UpdateProjectStatus(ProjectId, FlowCode.Reimage_GBMemo, ProjectStatus.Rejected);
                    break;
                }
                scope.Complete();
            }
        }
Esempio n. 24
0
        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;
            }
        }
Esempio n. 25
0
 public virtual void Finish(TaskWorkStatus status, TaskWork task)
 {
 }