/// <summary>
        /// 获取最终的节点ID
        /// </summary>
        /// <param name="model">连线条件字典集合</param>
        /// <returns></returns>
        public async Task <Guid?> GetFinalNodeId(string sysname, FlowLineFinalNodeDto model)
        {
            string url      = string.Format(_appSettings.Value.MsApplication.url + _appSettings.Value.WorkFlow.GetFinalNodeId, sysname);
            var    content  = new StringContent(model.ToJson(), System.Text.Encoding.UTF8, "application/json");
            var    response = await _apiClient.PostAsync(url, content);

            response.EnsureSuccessStatusCode();
            string res = await response.Content.ReadAsStringAsync();

            Guid?finalnodeid = JsonConvert.DeserializeObject <Guid?>(res);

            return(finalnodeid);
        }
예제 #2
0
        /// <summary>
        /// 获取最终的节点ID
        /// </summary>
        /// <param name="data">连线条件字典集合</param>
        /// <returns></returns>
        public async Task <Guid?> GetFinalNodeId(FlowLineFinalNodeDto model)
        {
            Guid?finalid = null;

            foreach (var item in model.Data)
            {
                var dbflowsql = await databaseFixture.Db.OaWorkflowsql.FindByIdAsync(item.Value);

                string            mysql        = dbflowsql.FlowSQL;
                var               dbparamnames = dbflowsql.Param.Split(',');
                DynamicParameters dbArgs       = new DynamicParameters();
                foreach (string param in dbparamnames)
                {
                    if (param.ToLower().Equals("userid", StringComparison.OrdinalIgnoreCase))//当前用户ID特殊处理
                    {
                        dbArgs.Add(param, model.UserId);
                    }
                    else
                    {
                        foreach (var key in model.Param.Keys)
                        {
                            if (key.ToLower() == param.ToLower())
                            {
                                dbArgs.Add(param, model.Param[key]);
                                break;
                            }
                        }
                    }
                }
                var res = await databaseFixture.Db.Connection.QueryAsync <int>(mysql, dbArgs);

                if (res != null && res.Any())
                {
                    finalid = item.Key;
                    break;
                }
            }
            return(finalid);
        }
예제 #3
0
 public async Task <Guid?> GetFinalNodeId([FromBody] FlowLineFinalNodeDto model)
 {
     return(await flowService.GetFinalNodeId(model));
 }