ThirdService.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using Azure.Cosmos;
  2. using HTEXLib.COMM.Helpers;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Text.Json;
  8. using System.Threading.Tasks;
  9. using TEAMModelOS.SDK.DI;
  10. using TEAMModelOS.SDK.Extension;
  11. namespace TEAMModelOS.SDK.Models
  12. {
  13. public static class ThirdService
  14. {
  15. public static async Task<(string accessConfig, Area area, AreaSetting setting)> GetAccessConfig(CosmosClient client,string standard) {
  16. Area area = null;
  17. await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Normal").
  18. GetItemQueryIterator<Area>($"select value(c) from c where c.standard='{standard}'", requestOptions: new QueryRequestOptions { PartitionKey = new PartitionKey("Base-Area") }))
  19. {
  20. area = item;
  21. break;
  22. }
  23. AreaSetting setting = null;
  24. if (area != null)
  25. {
  26. try
  27. {
  28. setting = await client.GetContainer(Constant.TEAMModelOS, "Normal").ReadItemAsync<AreaSetting>(area.id, new PartitionKey("AreaSetting"));
  29. }
  30. catch (CosmosException)
  31. {
  32. setting = null;
  33. }
  34. }
  35. if (setting == null|| string.IsNullOrEmpty(setting.accessConfig))
  36. {
  37. return (null,null,null);
  38. }
  39. else {
  40. return (setting.accessConfig,area,setting);
  41. }
  42. }
  43. public static async Task<List<Ability>> GetDiagnosisList(CosmosClient client, string standard,DingDing dingDing, AreaSetting setting, ThirdApisService _thirdApisService,string PXID) {
  44. List<string> abilityNos = null ;
  45. var config= setting.accessConfig.ToObject<JsonElement>();
  46. config.TryGetProperty("config", out JsonElement _config);
  47. if ($"{_config}".Equals("scsyxpt"))
  48. {
  49. // abilityNos = await ScApisService.GetDiagnosisListByProject_V2(new { accessConfig = setting.accessConfig, pxid = PXID }.ToJsonString());
  50. }
  51. //获取能力点
  52. List<Ability> abilities = null;
  53. if (abilityNos.IsNotEmpty()) {
  54. abilities = new List<Ability>();
  55. StringBuilder sql = new StringBuilder($"select value(c) from c where c.no in {string.Join(",", abilityNos.Select(x => $"'{x}'"))}");
  56. await foreach (var item in client.GetContainer("TEAMModelOS", "Normal")
  57. .GetItemQueryIterator<Ability>(queryText: sql.ToString(), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Ability-{standard}") }))
  58. {
  59. abilities.Add(item);
  60. }
  61. }
  62. return abilities;
  63. }
  64. }
  65. }