|
@@ -1386,6 +1386,7 @@ namespace TEAMModelBI.Controllers.Census
|
|
|
jsonElement.TryGetProperty("tmdId", out JsonElement tmdId);
|
|
|
jsonElement.TryGetProperty("areaId", out JsonElement areaId);
|
|
|
|
|
|
+ //IES5實體學校
|
|
|
StringBuilder sql = new($"select value(c) from c");
|
|
|
|
|
|
if (!string.IsNullOrEmpty($"{role}") && !string.IsNullOrEmpty($"{tmdId}") && string.IsNullOrEmpty($"{areaId}"))
|
|
@@ -1415,6 +1416,27 @@ namespace TEAMModelBI.Controllers.Census
|
|
|
}
|
|
|
|
|
|
//虛擬學校
|
|
|
+ ////取得虛擬學校學區名稱
|
|
|
+ List<string> vrAreaIdList = new List<string>();
|
|
|
+ StringBuilder sqlVrArea = new($"SELECT DISTINCT VALUE c.areaId FROM c WHERE IS_DEFINED(c.areaId) AND NOT IS_NULL(c.areaId) AND c.areaId != ''");
|
|
|
+ await foreach (string item in cosmosClient.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<string>(queryText: sqlVrArea.ToString(), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey("VirtualBase") }))
|
|
|
+ {
|
|
|
+ vrAreaIdList.Add(item);
|
|
|
+ }
|
|
|
+ Dictionary<string, string> areaDic = new Dictionary<string, string>();
|
|
|
+ string vrAreaListStr = JsonSerializer.Serialize(vrAreaIdList);
|
|
|
+ StringBuilder sqlArea = new($"SELECT c.id, c.name FROM c WHERE ARRAY_CONTAINS({vrAreaListStr}, c.id, true)");
|
|
|
+ await foreach (var item in cosmosClient.GetContainer(Constant.TEAMModelOS, "Normal").GetItemQueryStreamIterator(queryText: sqlArea.ToString(), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey("Base-Area") }))
|
|
|
+ {
|
|
|
+ var json = await JsonDocument.ParseAsync(item.ContentStream);
|
|
|
+ foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray())
|
|
|
+ {
|
|
|
+ string arId = obj.GetProperty("id").GetString();
|
|
|
+ string arName = obj.GetProperty("name").GetString();
|
|
|
+ areaDic.Add(arId, arName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //取得虛擬學校資料
|
|
|
StringBuilder sqlV = new($"select value(c) from c");
|
|
|
if (!string.IsNullOrEmpty($"{areaId}") && !string.IsNullOrEmpty($"{role}"))
|
|
|
{
|
|
@@ -1422,6 +1444,10 @@ namespace TEAMModelBI.Controllers.Census
|
|
|
}
|
|
|
await foreach (var item in cosmosClient.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<BIRelation>(queryText: sqlV.ToString(), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey("VirtualBase") }))
|
|
|
{
|
|
|
+ if(!string.IsNullOrWhiteSpace(item.areaId) && areaDic.ContainsKey(item.areaId))
|
|
|
+ {
|
|
|
+ item.areaName = areaDic[item.areaId];
|
|
|
+ }
|
|
|
scInfos.Add(item);
|
|
|
}
|
|
|
|