소스 검색

[BI]学校信息中间件查询接口 追加取得學校產品欄位
[IES5]國際站新課程架構資料遷移接口 單校執行改為全站所有學校都執行

jeff 1 년 전
부모
커밋
56de270094
2개의 변경된 파일25개의 추가작업 그리고 2개의 파일을 삭제
  1. 22 1
      TEAMModelBI/Controllers/Census/SchoolController.cs
  2. 3 1
      TEAMModelOS/Controllers/XTest/DataMigrationController.cs

+ 22 - 1
TEAMModelBI/Controllers/Census/SchoolController.cs

@@ -1432,11 +1432,32 @@ namespace TEAMModelBI.Controllers.Census
             }
 
             //List<string> scId = await CommonFind.FindScIds(cosmosClient, "select value(c.id) from c ", "Base");
-
+            //取得學校BI統計中間件
             List<BIRelation> scInfos = new();
+            List<string> schIds = new();
             await foreach (var item in cosmosClient.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<BIRelation>(queryText: sql.ToString(), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey("BIRel") }))
             {
                 scInfos.Add(item);
+                schIds.Add(item.id);
+            }
+            //取得學校產品列表
+            if(schIds.Count > 0)
+            {
+                string schIdListStr = JsonSerializer.Serialize(schIds);
+                StringBuilder sqlPSum = new($"SELECT * FROM c WHERE ARRAY_CONTAINS({schIdListStr}, c.id, true)");
+                await foreach (SchoolProductSum item in cosmosClient.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<SchoolProductSum>(queryText: sqlPSum.ToString(), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey("ProductSum") }))
+                {
+                    List<string> serialProdList = item.serial.Select(s => s.prodCode).ToList();
+                    List<string> serviceProdList = item.service.Select(s => s.prodCode).ToList();
+                    List<string> hardProdList = item.hard.Select(s => s.prodCode).ToList();
+                    BIRelation scInfo = scInfos.Where(s => s.id.Equals(item.id)).FirstOrDefault();
+                    if(scInfo != null)
+                    {
+                        scInfo.serial = serialProdList;
+                        scInfo.service = serviceProdList;
+                        scInfo.hard = hardProdList;
+                    }
+                }
             }
 
             //虛擬學校

+ 3 - 1
TEAMModelOS/Controllers/XTest/DataMigrationController.cs

@@ -69,11 +69,13 @@ namespace TEAMModelOS.Controllers
             //参数  schoolId  periodId(可选)   是否迁移历史数据 history=0;
             try
             {
+                //if(!request.TryGetProperty("schoolId", out JsonElement _schoolId)) return BadRequest();
+                //string schoolId = _schoolId.GetString();
                 List<Course> schoolCourses = new List<Course>();
                 HashSet<string> schoolIds = new HashSet<string>();
                 StringBuilder sql = new StringBuilder($"select value c from c where c.pk='Course' ");
                 await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School)
-                    .GetItemQueryIterator<Course>(queryText: sql.ToString(),requestOptions:new QueryRequestOptions() { PartitionKey=new PartitionKey("Course-hbgl") }))
+                    .GetItemQueryIterator<Course>(queryText: sql.ToString()))
                 {