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); }
/// <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("未开发完"); } } }
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); }