1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- 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<Area>($"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<AreaSetting>(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<List<Ability>> GetDiagnosisList(CosmosClient client, string standard,DingDing dingDing, AreaSetting setting, HttpTrigger httpTrigger, HashSet<string> pxids, TEAMModelOS.Models.Option _option) {
- List<string> abilityNos = new List<string>() ;
- var config= setting.accessConfig.ToObject<JsonElement>();
- config.TryGetProperty("config", out JsonElement _config);
- if ($"{_config}".Equals("scsyxpt"))
- {
- foreach (var pxid in pxids) {
- Dictionary<string, object> dict = new Dictionary<string, object>() { { "accessConfig", setting.accessConfig },{ "pxid",pxid } };
- (int status, string json) = await httpTrigger.RequestHttpTrigger(dict, _option.Location, "GetDiagnosisListByProject_V2");
- if (status == 200)
- {
- List<string> nos = json.ToObject<List<string>>();
- if (nos.IsNotEmpty()) {
- abilityNos.AddRange(nos);
- }
- }
- }
- }
- //获取能力点
- List<Ability> abilities = null;
- if (abilityNos.IsNotEmpty()) {
- abilities = new List<Ability>();
- 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<Ability>(queryText: sql.ToString(), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Ability-{standard}") }))
- {
- abilities.Add(item);
- }
- }
- return abilities;
- }
-
- }
- }
|