12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- 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, ThirdApisService _thirdApisService,string PXID) {
- List<string> abilityNos = null ;
- var config= setting.accessConfig.ToObject<JsonElement>();
- config.TryGetProperty("config", out JsonElement _config);
- if ($"{_config}".Equals("scsyxpt"))
- {
- // abilityNos = await ScApisService.GetDiagnosisListByProject_V2(new { accessConfig = setting.accessConfig, pxid = PXID }.ToJsonString());
- }
- //获取能力点
- 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;
- }
-
- }
- }
|