Example #1
0
        public static CPFlowInstanceTask InitFromInstanceAndPhase(CPFlowInstance ins,
                                                                  CPFlowInstanceTask curTask,
                                                                  CPFlowPhase phase,
                                                                  CPFlowPhaseTaskRevUser revUser,
                                                                  List <CPFlowPhaseLink> phaseAllLinkCol)
        {
            CPFlowInstanceTask newTask = new CPFlowInstanceTask();

            newTask.InsId     = ins.InsId;
            newTask.FlowVerId = ins.FlowVerId;
            newTask.FlowId    = ins.FlowId;
            newTask.FlowName  = ins.FlowName;
            newTask.InsTitle  = ins.InsTitle;
            //有多条路由进入,则默认设置成不激活,否则设置成激活
            if (phaseAllLinkCol.Where(c => c.EndPhaseId.Equals(phase.PhaseId)).ToList().Count > 1)
            {
                newTask.TaskState = CPFlowEnum.TaskStateEnum.NotActive;
            }
            else
            {
                newTask.TaskState = CPFlowEnum.TaskStateEnum.AlreadyActivated;
            }
            newTask.TaskMakeType = CPFlowEnum.TaskMakeTypeEnum.Submit;
            if (phase.PhaseType == CPFlowEnum.PhaseTypeEnum.Circulation)
            {
                newTask.TaskType = CPFlowEnum.TaskTypeEnum.MissionTask;
            }
            else
            {
                newTask.TaskType = CPFlowEnum.TaskTypeEnum.NormalTask;
            }
            newTask.SubmitPhaseIds    = curTask.RevPhaseId.ToString();
            newTask.SubmitPhaseNames  = curTask.RevPhaseName;
            newTask.SubmitTaskIds     = curTask.TaskId.ToString();
            newTask.SubmitUserIds     = curTask.RevUserId.ToString();
            newTask.SubmitUserNames   = curTask.RevUserName;
            newTask.RevPhaseId        = phase.PhaseId;
            newTask.RevPhaseName      = phase.PhaseName;
            newTask.RevUserId         = revUser.RevUserId;
            newTask.RevUserName       = revUser.RevUserName;
            newTask.RevSourceUserId   = revUser.RevSourceUserId;
            newTask.RevSourceUserName = revUser.RevSourceUserName;
            newTask.RevTime           = DateTime.Now;
            newTask.RevUserIsView     = false;
            return(newTask);
        }
Example #2
0
 /// <summary>
 /// 初始化用户信息
 /// </summary>
 public void InitTaskDefaultRevUser(CPFlowInstance curIns, int CurUserId)
 {
     if (this.TaskRevUser == null || this.TaskRevUser.Count <= 0)
     {
         if (this.TaskRevUser == null)
         {
             this.TaskRevUser = new List <CPFlowPhaseTaskRevUser>();
         }
         bool bInit = false;
         #region 针对分支汇聚节点,当前面有办理用户选择了人时,后面的办理用户就直接默认选择了的用户,或者针对回退后再提交到这个节点时,默认也是取上次办理的用户
         List <CPFlowInstanceTask> taskCol = CPFlowEngine.Instance(CurUserId).GetInstanceTask(curIns.InsId, this.PhaseId);
         taskCol.ForEach(t => {
             if (this.TaskRevUser.Where(c => c.RevUserId.Equals(t.RevUserId.Value)).ToList().Count <= 0)
             {
                 CPFlowPhaseTaskRevUser u = new CPFlowPhaseTaskRevUser();
                 u.RevUserId         = t.RevUserId.Value;
                 u.RevUserName       = t.RevUserName;
                 u.RevSourceUserId   = u.RevUserId;
                 u.RevSourceUserName = u.RevUserName;
                 this.TaskRevUser.Add(u);
                 bInit = true;
             }
         });
         if (!bInit)
         {
             List <CPFlowInstanceLog> logCol = CPFlowEngine.Instance(CurUserId).GetInstanceLog(curIns.InsId, this.PhaseId);
             logCol.ForEach(t => {
                 if (this.TaskRevUser.Where(c => c.RevUserId.Equals(t.RevUserId.Value)).ToList().Count <= 0)
                 {
                     CPFlowPhaseTaskRevUser u = new CPFlowPhaseTaskRevUser();
                     u.RevUserId         = t.RevUserId.Value;
                     u.RevUserName       = t.RevUserName;
                     u.RevSourceUserId   = u.RevUserId;
                     u.RevSourceUserName = u.RevUserName;
                     this.TaskRevUser.Add(u);
                     bInit = true;
                 }
             });
         }
         #endregion
         //如果没有传入指定的用户,则取默认办理用户
         if (bInit == false && string.IsNullOrEmpty(this.DefaultUserIds) == false)
         {
             string[]   idCol      = this.DefaultUserIds.Split(',');
             string[]   nameCol    = this.DefaultUserNames.Split(',');
             List <int> addedIdCol = new List <int>();
             for (int i = 0; i < idCol.Length; i++)
             {
                 if (addedIdCol.Contains(int.Parse(idCol[i])) == false)
                 {
                     addedIdCol.Add(int.Parse(idCol[i]));
                     if (this.TaskRevUser.Where(c => c.RevUserId.Equals(int.Parse(idCol[i]))).ToList().Count <= 0)
                     {
                         this.TaskRevUser.Add(new CPFlowPhaseTaskRevUser()
                         {
                             RevUserId         = int.Parse(idCol[i]),
                             RevUserName       = nameCol[i],
                             RevSourceUserId   = int.Parse(idCol[i]),
                             RevSourceUserName = nameCol[i]
                         });
                     }
                 }
             }
         }
         if (bInit == false && string.IsNullOrEmpty(this.DefaultRoleIds) == false)
         {
             throw new Exception("未开发完");
         }
     }
 }
Example #3
0
        public static CPFlowInstanceLogUnique InitFromLogAndInstance(CPFlowInstanceLog log, CPFlowInstance instance)
        {
            Mapper.Initialize(cfg =>
            {
                cfg.CreateMap <CPFlowInstanceLog, CPFlowInstanceLogUnique>().ForMember(dest => dest.Id, opt =>
                {
                    opt.Ignore();
                });;
            });

            CPFlowInstanceLogUnique logUnique = AutoMapper.Mapper.Map <CPFlowInstanceLogUnique>(log);

            logUnique.CreateUserId   = instance.CreateUserId;
            logUnique.CreateUserName = instance.CreateUserName;
            logUnique.CreateTime     = instance.CreateTime;
            logUnique.InsState       = instance.InsState;
            logUnique.InsStateTitle  = instance.InsStateTitle;
            logUnique.InsEndTime     = instance.InsEndTime;
            logUnique.ManaPhaseIds   = log.RevUserId.ToString();
            logUnique.ManaPhaseNames = log.RevUserName.ToString();
            logUnique.ManaUserId     = log.RevUserId;
            logUnique.MainFormPk     = instance.MainFormPk;
            return(logUnique);
        }