Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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("");
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
                }
            }
        }
Пример #9
0
        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);
        }
Пример #10
0
        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);
                }
            }
        }
Пример #11
0
        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);
        }
Пример #12
0
        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();
            }
        }
Пример #13
0
        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);
            }
        }
Пример #14
0
        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);
        }
Пример #15
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;
            }
        }
Пример #16
0
        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);
        }
Пример #17
0
        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);
        }