Пример #1
0
 /// <summary>
 /// 获取第一个按钮的参数
 /// </summary>
 /// <param name="taskExecID"></param>
 /// <param name="formInstanceID"></param>
 /// <returns></returns>
 private RoutingParams GetFirstButtonRoutingParams(string id, string formInstanceID, string taskExecID)
 {
     if (routingList.ContainsKey(id))
     {
         return(routingList[id]);
     }
     else
     {
         List <ButtonInfo> lists = flowService.JsonGetFlowButtons(formInstanceID, taskExecID);
         if (lists.Count > 0)
         {
             var click = lists.First().onclick;
             System.Text.RegularExpressions.Regex           reg = new System.Text.RegularExpressions.Regex(@"(?<={).*?(?=})");
             System.Text.RegularExpressions.MatchCollection mc  = reg.Matches(click);
             foreach (System.Text.RegularExpressions.Match m in mc)
             {
                 click = "{" + m.Value + "}";
             }
             JavaScriptSerializer json         = new JavaScriptSerializer();
             RoutingParams        routingParam = json.Deserialize <RoutingParams>(click);
             routingList.Add(id, routingParam);
             return(routingParam);
         }
         else
         {
             return(null);
         }
     }
 }
Пример #2
0
        /// <summary>
        /// 批量审批详细
        /// </summary>
        /// <param name="taskExecID"></param>
        /// <param name="formInstanceID"></param>
        /// <returns></returns>
        public string DetailRouting()
        {
            List <string>        texts      = new List <string>();
            string               str        = "";
            string               selectJson = Request["data"];
            JavaScriptSerializer json       = new JavaScriptSerializer();
            List <FlowTask>      list       = json.Deserialize <List <FlowTask> >(selectJson);

            foreach (var item in list)
            {
                RoutingParams routing = GetFirstButtonRoutingParams(item.ID, item.FormInstanceID, item.TaskExecID);
                texts.Add(item.TaskName + "-路由(" + routing.routingName + ")");
            }
            if (texts.Count > 0)
            {
                for (var i = 0; i < texts.Count; i++)
                {
                    str += "<div style='text-align:left'>" + texts[i] + "</div>";
                }
                str = "<div class='scrollbar' style='max-height:200px;  overflow-y:auto;'>" + str + "</div>";
            }
            return(str);
        }
Пример #3
0
        /// <summary>
        /// 批量审批
        /// </summary>
        /// <param name="taskExecID"></param>
        /// <param name="formInstanceID"></param>
        /// <returns></returns>
        public int BatchApproval()
        {
            int success = 0;
            Dictionary <string, string> dic = null;
            string selectJson         = Request["data"];
            JavaScriptSerializer json = new JavaScriptSerializer();
            List <FlowTask>      list = json.Deserialize <List <FlowTask> >(selectJson);

            foreach (var item in list)
            {
                try
                {
                    RoutingParams routing = GetFirstButtonRoutingParams(item.ID, item.FormInstanceID, item.TaskExecID);
                    DataTable     table   = GetModelDT(item.FormInstanceID, false, item.TaskExecID, item.Code);
                    if (!(string.IsNullOrEmpty(routing.defaultComment) && routing.mustInputComment == true) && CheckBatchApproval(item.InsDefStepID, table))
                    {
                        if (!string.IsNullOrEmpty(routing.orgIDFromField))
                        {
                            List <string> userIDs  = routing.userIDs.Split(',').ToList();
                            List <string> fieldIds = routing.userIDsFromField.Split(',').ToList();
                            for (var i = 0; i < fieldIds.Count; i++)
                            {
                                var ids = table.Rows[0][fieldIds[i]].ToString().Split(',');
                                for (var j = 0; j < ids.Length; j++)
                                {
                                    if (!userIDs.Contains(ids[j]))
                                    {
                                        userIDs.Add(ids[j]);
                                    }
                                }
                            }
                            routing.userIDs = string.Join(",", userIDs.ToArray());
                            if (routing.userIDs.IndexOf(',') == 0)
                            {
                                routing.userIDs = routing.userIDs.Substring(1);
                            }
                        }
                        if (!string.IsNullOrEmpty(routing.orgIDFromField) || !string.IsNullOrEmpty(routing.roleIDsFromField))
                        {
                            if (routing.selectMode != "SelectOneOrg" && routing.selectMode != "SelectMultiOrg")
                            {
                                routing.userIDs = GetUserIDs(routing.roleIDs, routing.orgIDs, "");
                            }
                        }

                        var nextExecUserIDs = routing.userIDs.Trim().TrimEnd(',').TrimStart(',');
                        dic = SubmitBatchApproval(item.FormInstanceID, routing.routingID, item.TaskExecID, nextExecUserIDs, "", routing.roleIDs, routing.orgIDs, routing.defaultComment, item.Code);
                        if (dic.Keys.Count > 0)
                        {
                            dic.Add("DefaultComment", routing.defaultComment);

                            var ID              = dic["ID"];
                            var NextTaskExecID  = dic["NextTaskExecID"];
                            var NextRoutingID   = dic["NextRoutingID"];
                            var NextRoutingName = dic["NextRoutingName"];
                            var NextExecUserIDs = dic["NextExecUserIDs"];
                            var DefaultComment  = dic["DefaultComment"];
                            if (!string.IsNullOrEmpty(NextRoutingID))
                            {
                                SubmitBatchApproval(ID, NextRoutingID, NextTaskExecID, NextExecUserIDs, "", "", "", DefaultComment, item.Code);
                            }
                        }
                        success += 1;
                    }
                }
                catch (Exception ex)
                {
                }
            }

            return(success);
        }