using Azure.Cosmos; using HTEXLib.COMM.Helpers; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.Json; using System.Threading.Tasks; using TEAMModelOS.SDK.DI; using TEAMModelOS.SDK.Extension; namespace TEAMModelOS.SDK.Models { public static class ThirdService { public static async Task<(string accessConfig, Area area, AreaSetting setting)> GetAccessConfig(CosmosClient client,string standard) { Area area = null; await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Normal"). GetItemQueryIterator($"select value(c) from c where c.standard='{standard}'", requestOptions: new QueryRequestOptions { PartitionKey = new PartitionKey("Base-Area") })) { area = item; break; } AreaSetting setting = null; if (area != null) { try { setting = await client.GetContainer(Constant.TEAMModelOS, "Normal").ReadItemAsync(area.id, new PartitionKey("AreaSetting")); } catch (CosmosException) { setting = null; } } if (setting == null|| string.IsNullOrEmpty(setting.accessConfig)) { return (null,null,null); } else { return (setting.accessConfig,area,setting); } } public static async Task> GetDiagnosisList(CosmosClient client, string standard,DingDing dingDing, AreaSetting setting, ThirdApisService _thirdApisService,string PXID) { List abilityNos = null ; var config= setting.accessConfig.ToObject(); config.TryGetProperty("config", out JsonElement _config); if ($"{_config}".Equals("scsyxpt")) { // abilityNos = await ScApisService.GetDiagnosisListByProject_V2(new { accessConfig = setting.accessConfig, pxid = PXID }.ToJsonString()); } //获取能力点 List abilities = null; if (abilityNos.IsNotEmpty()) { abilities = new List(); StringBuilder sql = new StringBuilder($"select value(c) from c where c.no in {string.Join(",", abilityNos.Select(x => $"'{x}'"))}"); await foreach (var item in client.GetContainer("TEAMModelOS", "Normal") .GetItemQueryIterator(queryText: sql.ToString(), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Ability-{standard}") })) { abilities.Add(item); } } return abilities; } } }