Browse Source

Merge branch 'develop5.0-tmd' of http://52.130.252.100:10000/TEAMMODEL/TEAMModelOS into develop5.0-tmd

CrazyIter_Bin 3 years ago
parent
commit
d0f7b8760e

+ 115 - 6
TEAMModeBI/Controllers/BISchool/BatchAreaController.cs

@@ -193,10 +193,10 @@ namespace TEAMModeBI.Controllers.BISchool
                 List<Task<ItemResponse<Ability>>> abilities = new List<Task<ItemResponse<Ability>>>();      //存储数据
                 List<Task<ItemResponse<AbilityTask>>> abilityTasks  = new List<Task<ItemResponse<AbilityTask>>>();  //存储章节
 
-                List<Ability> abilities1 = null;      //存储数据  测试使用,后期删除
-                List<AbilityTask> abilityTasks1 = null;  //存储章节 测试使用,后期删除
-                List<StandardFile> standardFiles = null;    // 显示新的政策文件 //测试使用,后期删除
-                List<AreaSetting> areaSettings = null;       // 显示新的区域配置 //测试使用,后期删除
+                List<Ability> abilities1 = new List<Ability>();      //存储数据  测试使用,后期删除
+                List<AbilityTask> abilityTasks1 = new List<AbilityTask>();  //存储章节 测试使用,后期删除
+                List<StandardFile> standardFiles = new List<StandardFile>();    // 显示新的政策文件 //测试使用,后期删除
+                List<AreaSetting> areaSettings = new List<AreaSetting>();       // 显示新的区域配置 //测试使用,后期删除
 
                 //分区键
                 string partitionCode = "copyAbility-mark";
@@ -435,6 +435,72 @@ namespace TEAMModeBI.Controllers.BISchool
             }
         }
 
+        /// <summary>
+        /// 创区后切换能力点, 先删除原来的能力点,后复制新的能力点   待完成
+        /// </summary>
+        /// <param name="jsonElement"></param>
+        /// <returns></returns>
+        [ProducesDefaultResponseType]
+        [HttpPost("cut-standard")]
+        public async Task<IActionResult> CutStandard(JsonElement jsonElement)
+        {
+            try
+            {
+                if (!jsonElement.TryGetProperty("oldstandard", out JsonElement _oldStandard)) return BadRequest();
+                if (!jsonElement.TryGetProperty("newStandard", out JsonElement _newStandard)) return BadRequest();
+
+                var cosmosClient = _azureCosmos.GetCosmosClient();
+
+                List<Ability> abilitys = new List<Ability>();
+                List<string> abilityIds = new List<string>();
+
+                //查询册别信息
+                await foreach (var tempAbility in cosmosClient.GetContainer(Constant.TEAMModelOS, "Normal").GetItemQueryIterator<Ability>(queryText: $"select value(c) from c", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Ability-{_oldStandard}") })) 
+                {
+                    abilitys.Add(tempAbility);   //查询出来册别添加至册别集合中
+                    abilityIds.Add(tempAbility.id);  //查询出来册别ID添加册别ID集合
+                }
+                //删除册别
+                if (abilityIds.IsNotEmpty())
+                {
+                    //var sresponse = await cosmosClient.GetContainer(Constant.TEAMModelOS, "Normal").DeleteItemsStreamAsync(abilityIds, $"Ability-{_oldStandard}");
+                }
+
+                List<AbilityTask> abilityTasks = new List<AbilityTask>();
+                List<string> abilityTaskIds = new List<string>();
+                foreach (var abilityId in abilityIds) 
+                {
+                    await foreach (var item in cosmosClient.GetContainer(Constant.TEAMModelOS, "Normal").GetItemQueryIterator<AbilityTask>(queryText: $"select value(c) from c where c.abilityId='{abilityId}'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"AbilityTask-{_oldStandard}") }))
+                    {
+                        abilityTasks.Add(item);   //查询出来章节信息添加至章节集合
+                        abilityTaskIds.Add(item.id);   //查询出来的章节信息ID添加到战绩集合
+                    }
+                }
+                //删除章节
+                if (abilityTaskIds.IsNotEmpty()) 
+                {
+                    //var sresponse = await cosmosClient.GetContainer(Constant.TEAMModelOS, "Normal").DeleteItemsStreamAsync(abilityTaskIds, $"AbilityTask-{_oldStandard}");
+                }
+
+
+
+
+
+
+                return Ok(new { state = 200, abilitys.Count, idscount= abilityIds.Count, taskcount = abilityTasks.Count });
+
+            }
+            catch (Exception ex)
+            {
+                await _dingDing.SendBotMsg($"BI,{_option.Location}   batcharea/cutstandard \r  {ex.Message}{ex.StackTrace}", GroupNames.醍摩豆服務運維群組);
+                return BadRequest();
+            }
+            
+        }
+
+
+
+
         /// <summary>
         /// 测试复制Blob中的文件  批量创区接口测试完成后删除
         /// </summary>
@@ -512,10 +578,12 @@ namespace TEAMModeBI.Controllers.BISchool
         }
 
         /// <summary>
-        /// 批量删除在复制文件 待完成
+        /// 批量删除在复制文件接口  正式完成后删除该接口
         /// </summary>
         /// <param name="jsonElement"></param>
         /// <returns></returns>
+        [ProducesDefaultResponseType]
+        [HttpPost("copyafterdel")]
         public async Task<IActionResult> CopyAfterDel(JsonElement jsonElement)
         {
 
@@ -524,12 +592,53 @@ namespace TEAMModeBI.Controllers.BISchool
             if (!jsonElement.TryGetProperty("copystandard", out JsonElement _copystandard)) return BadRequest();
 
             var blobClient = _azureStorage.GetBlobContainerClient($"{_cntr}");  //获取地址
-            await foreach (BlobItem blobItem in blobClient.GetBlobsAsync(BlobTraits.None, BlobStates.None,$"yxpt/{_delstandard}/"))
+
+            //先删除原有的文件
+            List<Task<Response<bool>>> DelList = new List<Task<Response<bool>>>();
+            await foreach (BlobItem blobItem in blobClient.GetBlobsAsync(BlobTraits.None, BlobStates.None, $"{_delstandard}/"))
+            {
+                //await blobClient.GetBlobClient(blobItem.Name).DeleteIfExistsAsync();
+                DelList.Add(blobClient.GetBlobBaseClient(blobItem.Name).DeleteIfExistsAsync());
+            }
+
+            if (DelList.Count <= 256)
+            {
+                await Task.WhenAll(DelList);
+            }
+            else
             {
+                int pages = (DelList.Count + 255) / 256;
+                for (int i = 0; i < pages; i++)
+                {
+                    List<Task<Response<bool>>> delList = DelList.Skip((i) * 256).Take(256).ToList();
+                    await Task.WhenAll(delList);
+                }
+            }
 
+            //在复制新的文件
+            List<Task<Response<BlobCopyInfo>>> CopyList = new List<Task<Response<BlobCopyInfo>>>();
+            await foreach (BlobItem blobItem in blobClient.GetBlobsAsync(BlobTraits.None, BlobStates.None, $"{_copystandard}/")) 
+            {
+                string oldurl = $"{blobItem.Name}".Replace($"{_copystandard}/", $"{_delstandard}/");  //替换旧文件
+                var copyUrlSas = _azureStorage.GetBlobSAS($"{_cntr}", blobItem.Name, BlobSasPermissions.Read | BlobSasPermissions.List);
 
+                //await blobClient.GetBlobClient(oldurl).SyncCopyFromUriAsync(new Uri(copyUrlSas));
+                CopyList.Add(blobClient.GetBlobClient(oldurl).SyncCopyFromUriAsync(new Uri(copyUrlSas)));
             }
 
+            if (CopyList.Count <= 256)
+            {
+                await Task.WhenAll(CopyList);
+            }
+            else
+            {
+                int pages = (CopyList.Count + 255) / 256;
+                for (int i = 0; i < pages; i++) 
+                {
+                    List<Task<Response<BlobCopyInfo>>> copyList = CopyList.Skip((i) * 256).Take(256).ToList();
+                    await Task.WhenAll(copyList);
+                }
+            }
 
             return Ok(new { state = 200 });
 

+ 1 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/ability.js

@@ -110,7 +110,7 @@ export default {
 		place1:'输入能力点名称...',
 		compulsory:'必修',
 		hour:'总学时',
-		count:'能力点数',
+		count:'成长值',
 		dimension:'维度',
 		paper:'自我检测试卷',
 		add:'新增试题',

+ 3 - 3
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/jyzx.js

@@ -129,7 +129,7 @@ export default{
         disByMe: "自评结果",
         disBySchool: "校评结果",
         spotCheck: "专家抽查",
-        testByMe: "自我检测结果",
+        testByMe: "自我练习结果",
         fine: "优秀",
         qualified: "合格",
         unqualified: "不合格",
@@ -137,8 +137,8 @@ export default{
         pass: "通过",
         noPass: "未通过",
         load: "提交材料",
-        againTest: "重新检测",
-        meTest: "自我检测",
+        againTest: "重新练习",
+        meTest: "自我练习",
         score: "前往评分",
         againScore: "重新评分",
         evaName: "评价人",

+ 1 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/ability.js

@@ -110,7 +110,7 @@ export default {
 		place1: '輸入能力點名稱...',
 		compulsory: '必修',
 		hour: '總學時',
-		count: '能力點數',
+		count: '成長值',
 		dimension: '維度',
 		paper: '自我檢測試卷',
 		add: '新增試題',

+ 3 - 3
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/jyzx.js

@@ -129,7 +129,7 @@ export default{
         disByMe: "自評結果",
         disBySchool: "校評結果",
         spotCheck: "專家抽查",
-        testByMe: "自我檢測結果",
+        testByMe: "自我練習結果",
         fine: "優秀",
         qualified: "合格",
         unqualified: "不合格",
@@ -137,8 +137,8 @@ export default{
         pass: "通過",
         noPass: "未通過",
         load: "上傳文件",
-        againTest: "重新檢測",
-        meTest: "自我檢測",
+        againTest: "重新練習",
+        meTest: "自我練習",
         score: "前往評分",
         againScore: "重新評分",
         evaName: "評估人",

+ 1 - 1
TEAMModelOS/ClientApp/src/view/abilityMgmt/Index.vue

@@ -259,7 +259,7 @@
 									<InputNumber :max="100" :min="1" v-model="addVolumeForm.hour"></InputNumber>
 								</FormItem>
 								<FormItem :label="$t('ability.mgmt.count')" prop="abilityCount">
-									<InputNumber :max="100" :min="1" v-model="addVolumeForm.abilityCount"></InputNumber>
+									<InputNumber :max="100" :min="1" v-model="addVolumeForm.abilityCount" disabled></InputNumber>
 								</FormItem>
 							</div>
 						</div>