コード例 #1
0
        public List <RoutineDTO> _StartRoutine(string id)
        {
            var userAccount = Request.RequestUri.ParseQueryString().Get("UserAccount");

            FormulaHelper.ContextSet("AgentUserLoginName", userAccount);

            List <ButtonInfo> buttonInfoList = flowService.JsonGetFlowButtons("", "");

            FormulaHelper.ContextRemoveByKey("AgentUserLoginName");


            var list = new List <RoutineDTO>();

            foreach (var btn in buttonInfoList)
            {
                if (btn.routingParams != null)
                {
                    var routine = new RoutineDTO();
                    routine.ID = btn.id;

                    if (btn.routingParams.selectMode == "SelectOneUser" || btn.routingParams.selectMode == "SelectOneUserInScope")
                    {
                        routine.OwnerType = OwnerType.Single;
                    }
                    else if (btn.routingParams.selectMode == "SelectMultiUser" ||
                             btn.routingParams.selectMode == "SelectMultiUserInScope" ||
                             btn.routingParams.selectMode == "SelectOneOrg" ||
                             btn.routingParams.selectMode == "SelectMultiOrg")
                    {
                        routine.OwnerType = OwnerType.Multi;
                    }
                    else
                    {
                        routine.OwnerType = OwnerType.None;
                    }
                    routine.OwnerUserIDs     = btn.routingParams.userIDs;
                    routine.RoutineName      = btn.text;
                    routine.MustInputComment = btn.routingParams.mustInputComment;

                    list.Add(routine);
                }
            }
            return(list);
        }
コード例 #2
0
        public TaskDTO _GetTaskDetail(string id)
        {
            var formInstanceID = Request.RequestUri.ParseQueryString().Get("FormInstanceID");
            var userID         = Request.RequestUri.ParseQueryString().Get("UserID");
            var userAccount    = Request.RequestUri.ParseQueryString().Get("UserAccount");

            FormulaHelper.ContextSet("AgentUserLoginName", userAccount);

            S_WF_InsTaskExec task = GetTaskExec(id);
            TaskDTO          dto  = new TaskDTO();

            dto.ID                = task.ID;
            dto.CreateTime        = task.CreateTime;
            dto.FlowName          = task.S_WF_InsFlow.FlowName;
            dto.TaskName          = task.S_WF_InsTask.TaskName;
            dto.FlowCategory      = task.S_WF_InsFlow.FlowCategory;
            dto.FormInstanceID    = task.S_WF_InsFlow.FormInstanceID;
            dto.FormInstanceCode  = task.S_WF_InsFlow.S_WF_InsDefFlow.TableName;
            dto.FormDic           = task.S_WF_InsFlow.FormDic;
            dto.SendTaskUserNames = task.S_WF_InsTask.SendTaskUserNames;
            dto.CreateUserID      = task.S_WF_InsFlow.CreateUserID;
            dto.CreateUserName    = task.S_WF_InsFlow.CreateUserName;

            //新加字段
            dto.ExecTime     = task.ExecTime;
            dto.IsFinished   = task.ExecTime.HasValue;
            dto.TaskUserID   = task.ExecUserID;
            dto.TaskUserName = task.ExecUserName;
            dto.FlowDefCode  = task.S_WF_InsFlow.S_WF_InsDefFlow.Code;

            dto.Routines = GetRountineList(formInstanceID, id, dto.FormDic);


            dto.DefStepID   = task.S_WF_InsTask.S_WF_InsDefStep.DefStepID;
            dto.DefStepName = task.S_WF_InsTask.S_WF_InsDefStep.Name;

            dto.HideAdvice = task.S_WF_InsTask.S_WF_InsDefStep.HideAdvice == "1";

            FormulaHelper.ContextRemoveByKey("AgentUserLoginName");
            return(dto);
        }
コード例 #3
0
        public List <RoutineDTO> GetRountineLists(string formInstanceID, string id, [FromBody] PostSubmitTaskDTO taskDto)
        {
            var userAccount = Request.RequestUri.ParseQueryString().Get("UserAccount");

            FormulaHelper.ContextSet("AgentUserLoginName", userAccount);

            string            formdata       = JsonHelper.ToJson(taskDto.FormDic);
            FlowService       flowservice    = new FlowService(this, taskDto.FormDic, "", id);
            List <ButtonInfo> buttonInfoList = new List <ButtonInfo>();

            if (string.IsNullOrEmpty(id))
            {
                buttonInfoList = flowservice.JsonGetFlowButtons("", "");
                var list = new List <RoutineDTO>();
                foreach (var btn in buttonInfoList)
                {
                    if (btn.routingParams != null)
                    {
                        var routine = new RoutineDTO();
                        routine.ID = btn.id;
                        if (btn.routingParams.userIDs == "")
                        {
                            if (btn.routingParams.selectMode == "SelectOneUser")
                            {
                                routine.OwnerType = OwnerType.Single;
                            }
                            else if (btn.routingParams.selectMode == "SelectMultiUser")
                            {
                                routine.OwnerType = OwnerType.Multi;
                            }
                            else if (!string.IsNullOrEmpty(btn.routingParams.userIDsFromField) ||
                                     !string.IsNullOrEmpty(btn.routingParams.orgIDFromField) ||
                                     !string.IsNullOrEmpty(btn.routingParams.roleIDsFromField))
                            {
                                routine.OwnerType = OwnerType.None;
                            }
                            else
                            {
                                routine.OwnerType = OwnerType.None;
                            }
                        }
                        else
                        {
                            if (btn.routingParams.selectMode == "SelectOneUserInScope" || btn.routingParams.selectMode == "SelectOnePrjUser")
                            {
                                routine.OwnerType = OwnerType.Single;
                            }
                            else if (btn.routingParams.selectMode == "SelectMultiUserInScope" || btn.routingParams.selectMode == "SelectMultiPrjUser")
                            {
                                routine.OwnerType = OwnerType.Multi;
                            }
                            else
                            {
                                routine.OwnerType = OwnerType.Special;
                            }

                            if (btn.routingParams.selectAgain)
                            {
                                if (btn.routingParams.selectMode == "SelectOneUserInScope" || btn.routingParams.selectMode == "SelectOnePrjUser" || btn.routingParams.selectMode == "SelectOneUser")
                                {
                                    routine.OwnerType = OwnerType.Single;
                                    if (btn.routingParams.selectMode == "SelectOneUser")
                                    {
                                        routine.OwnerUserIDs = "";
                                    }
                                }
                                else if (btn.routingParams.selectMode == "SelectMultiUserInScope" || btn.routingParams.selectMode == "SelectMultiPrjUser" || btn.routingParams.selectMode == "SelectMultiUser")
                                {
                                    routine.OwnerType = OwnerType.Multi;
                                    if (btn.routingParams.selectMode == "SelectMultiUser")
                                    {
                                        routine.OwnerUserIDs = "";
                                    }
                                }
                            }
                        }
                        routine.OwnerUserIDs     = btn.routingParams.userIDs;
                        routine.RoutineName      = btn.text;
                        routine.MustInputComment = btn.routingParams.mustInputComment;

                        list.Add(routine);
                    }
                }
                return(list);
            }
            else
            {
                buttonInfoList = flowservice.JsonGetFlowButtons(formInstanceID, id, true);
            }


            FormulaHelper.ContextRemoveByKey("AgentUserLoginName");
            List <RoutineDTO> Routines       = new List <RoutineDTO>();
            List <RoutineDTO> staticRoutines = new List <RoutineDTO>();

            for (var i = 0; i < buttonInfoList.Count; i++)
            {
                RoutineDTO routine;
                var        item = buttonInfoList[i];

                if (item.id == "btnDoBack" || item.id == "btnDoBackFirst" || item.id == "btnDoBackFirstReturn")
                {
                    routine = new RoutineDTO
                    {
                        ID          = item.id,
                        RoutineName = item.text,
                    };
                    routine.OwnerType    = OwnerType.None;
                    routine.OwnerUserIDs = "";
                    staticRoutines.Add(routine);
                    continue;
                }
                else if (item.id == "btnDelegate" || item.id == "btnAsk")
                {
                    routine = new RoutineDTO
                    {
                        ID          = item.id,
                        RoutineName = item.text,
                    };
                    routine.OwnerType    = OwnerType.Single;
                    routine.OwnerUserIDs = "";
                    staticRoutines.Add(routine);
                    continue;
                }
                else if (item.id == "btnCirculate")
                {
                    routine = new RoutineDTO
                    {
                        ID          = item.id,
                        RoutineName = item.text,
                    };
                    routine.OwnerType    = OwnerType.Multi;
                    routine.OwnerUserIDs = "";
                    staticRoutines.Add(routine);
                    continue;
                }
                else if (item.id == "btnView" || item.id == "btnReply" || item.id == "btnWithdrawAsk" || item.id == "btnWithdraw" || item.id == "btnDelete")
                {
                    routine = new RoutineDTO
                    {
                        ID          = item.id,
                        RoutineName = item.text,
                    };
                    routine.OwnerType    = OwnerType.None;
                    routine.OwnerUserIDs = "";
                    staticRoutines.Add(routine);
                    continue;
                }
                else if (item.id.StartsWith("btn"))
                {
                    //buttonInfoList.Remove(item);
                    //这句注释掉,否则循环都乱了
                    continue;
                }


                routine = new RoutineDTO
                {
                    ID               = item.id,
                    RoutineName      = item.text,
                    MustInputComment = item.routingParams.mustInputComment,
                    SelectAgain      = item.routingParams.selectAgain,
                    DefaultComment   = item.routingParams.defaultComment
                };
                Routines.Add(routine);
                routine.OwnerType    = OwnerType.None;
                routine.OwnerUserIDs = item.routingParams.userIDs;

                if (item.routingParams.flowComplete == true) //移动端在流程结束时不再选人
                {
                    routine.OwnerType    = OwnerType.None;
                    routine.OwnerUserIDs = "";
                    continue;
                }


                if (item.routingParams.routingID.Contains(','))//分支路由不用选人
                {
                    routine.OwnerType = OwnerType.None;
                    continue;
                }

                if (item.routingParams.userIDs == "")
                {
                    if (item.routingParams.selectMode == "SelectOneUser")
                    {
                        routine.OwnerType = OwnerType.Single;
                    }
                    else if (item.routingParams.selectMode == "SelectMultiUser")
                    {
                        routine.OwnerType = OwnerType.Multi;
                    }
                    else if (!string.IsNullOrEmpty(item.routingParams.userIDsFromField) ||
                             !string.IsNullOrEmpty(item.routingParams.orgIDFromField) ||
                             !string.IsNullOrEmpty(item.routingParams.roleIDsFromField))
                    {
                        routine.OwnerType = OwnerType.None;
                    }
                    else
                    {
                        routine.OwnerType = OwnerType.None;
                    }
                }
                else
                {
                    if (item.routingParams.selectMode == "SelectOneUserInScope" || item.routingParams.selectMode == "SelectOnePrjUser")
                    {
                        routine.OwnerType = OwnerType.Single;
                    }
                    else if (item.routingParams.selectMode == "SelectMultiUserInScope" || item.routingParams.selectMode == "SelectMultiPrjUser")
                    {
                        routine.OwnerType = OwnerType.Multi;
                    }
                    else
                    {
                        routine.OwnerType = OwnerType.Special;
                    }

                    if (item.routingParams.selectAgain)
                    {
                        if (item.routingParams.selectMode == "SelectOneUserInScope" || item.routingParams.selectMode == "SelectOnePrjUser" || item.routingParams.selectMode == "SelectOneUser")
                        {
                            routine.OwnerType = OwnerType.Single;
                            if (item.routingParams.selectMode == "SelectOneUser")
                            {
                                routine.OwnerUserIDs = "";
                            }
                        }
                        else if (item.routingParams.selectMode == "SelectMultiUserInScope" || item.routingParams.selectMode == "SelectMultiPrjUser" || item.routingParams.selectMode == "SelectMultiUser")
                        {
                            routine.OwnerType = OwnerType.Multi;
                            if (item.routingParams.selectMode == "SelectMultiUser")
                            {
                                routine.OwnerUserIDs = "";
                            }
                        }
                    }
                }
            }

            //排序需要与PC端一致,故反过来
            for (int i = 0; i < staticRoutines.Count; i++)
            {
                Routines.Add(staticRoutines[i]);
            }

            return(Routines);
        }