Przeglądaj źródła

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

OnePsycho 3 lat temu
rodzic
commit
5b2f589e7b
25 zmienionych plików z 215 dodań i 64 usunięć
  1. 8 1
      TEAMModelBI/Controllers/BISchool/ProductController.cs
  2. 108 0
      TEAMModelBI/Controllers/Student/StuActivityController.cs
  3. 1 0
      TEAMModelOS.FunctionV4/CosmosDB/TriggerCorrect.cs
  4. 1 0
      TEAMModelOS.FunctionV4/CosmosDB/TriggerExam.cs
  5. 1 0
      TEAMModelOS.FunctionV4/CosmosDB/TriggerExamLite.cs
  6. 2 0
      TEAMModelOS.FunctionV4/CosmosDB/TriggerHomework.cs
  7. 2 0
      TEAMModelOS.FunctionV4/CosmosDB/TriggerStudy.cs
  8. 2 0
      TEAMModelOS.FunctionV4/CosmosDB/TriggerSurvey.cs
  9. 1 0
      TEAMModelOS.FunctionV4/CosmosDB/TriggerVote.cs
  10. 3 2
      TEAMModelOS.SDK/Models/Service/ActivityService.cs
  11. 1 1
      TEAMModelOS.SDK/TEAMModelOS.SDK.csproj
  12. 23 23
      TEAMModelOS/ClientApp/src/common/BaseLayout.vue
  13. 32 7
      TEAMModelOS/ClientApp/src/view/train/TrainDetail.vue
  14. 5 5
      TEAMModelOS/Controllers/Both/LessonRecordController.cs
  15. 2 2
      TEAMModelOS/Controllers/Client/HiScanController.cs
  16. 2 2
      TEAMModelOS/Controllers/Client/HiTAControlller.cs
  17. 2 2
      TEAMModelOS/Controllers/Client/HiTeachController.cs
  18. 2 2
      TEAMModelOS/Controllers/Common/ExamController.cs
  19. 3 3
      TEAMModelOS/Controllers/Common/ExamLiteController.cs
  20. 1 1
      TEAMModelOS/Controllers/Common/HomeworkController.cs
  21. 1 1
      TEAMModelOS/Controllers/Common/StudyController.cs
  22. 1 1
      TEAMModelOS/Controllers/Common/SurveyController.cs
  23. 1 1
      TEAMModelOS/Controllers/Common/VoteController.cs
  24. 4 4
      TEAMModelOS/Controllers/Common/WorkController.cs
  25. 6 6
      TEAMModelOS/Controllers/Teacher/TeacherCommonController.cs

+ 8 - 1
TEAMModelBI/Controllers/BISchool/ProductController.cs

@@ -109,7 +109,14 @@ namespace TEAMModelBI.Controllers.BISchool
                 }
             }
 
-            return Ok(new { state = 200, serials, services, hards, productSum });
+            //学校教室
+            List<Room> rooms = new List<Room>();
+            await foreach (var item in clientContainer.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<Room>(queryText: $"select value(c) from c ", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Room-{schoolCode}") }))
+            {
+                rooms.Add(item);
+            }
+
+            return Ok(new { state = 200, serials, services, hards, productSum , rooms });
         }
     }
 }

+ 108 - 0
TEAMModelBI/Controllers/Student/StuActivityController.cs

@@ -0,0 +1,108 @@
+using Azure.Cosmos;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Options;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.Json;
+using System.Threading.Tasks;
+using TEAMModelOS.Models;
+using TEAMModelOS.SDK.DI;
+using TEAMModelOS.SDK.Extension;
+using TEAMModelOS.SDK.Models;
+
+namespace TEAMModelBI.Controllers.Student
+{
+    [Route("stuactivity")]
+    [ApiController]
+    public class StuActivityController : ControllerBase
+    {
+
+        private readonly AzureCosmosFactory _azureCosmos;
+        private readonly AzureStorageFactory _azureStorage;
+        private readonly DingDing _dingDing;
+        private readonly Option _option;
+
+        public StuActivityController(AzureCosmosFactory azureCosmos, AzureStorageFactory azureStorage, DingDing dingDing, IOptionsSnapshot<Option> option)
+        {
+            _azureCosmos = azureCosmos;
+            _azureStorage = azureStorage;
+            _dingDing = dingDing;
+            _option = option?.Value;
+        }
+
+        /// <summary>
+        /// 学生活动中间表ClassIds去重
+        /// </summary>
+        /// <param name="jsonElement"></param>
+        /// <returns></returns>
+        [HttpPost("get-classIds")]
+        public async Task<IActionResult> CorrectActivityClassIds()
+        {
+            try
+            {
+                var cosmosClient = _azureCosmos.GetCosmosClient();
+                //string sqlTxt = "SELECT select c.id,c.code,c.classIds FROM c  where c.pk='Activity' and c.classIds <> []";
+                string sqlTxt = "select c.id,c.code,c.classIds from c where c.school='cswznb' and c.classIds <> []";
+                List<CorrectStu> correctStus = new List<CorrectStu>();
+                await foreach (var item in cosmosClient.GetContainer("TEAMModelOS", "Student").GetItemQueryStreamIterator(queryText: sqlTxt, requestOptions: new QueryRequestOptions() { }))
+                {
+                    using var json = await JsonDocument.ParseAsync(item.ContentStream);
+                    foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray())
+                    {
+                        obj.TryGetProperty("id", out JsonElement tempTd);
+                        obj.TryGetProperty("code", out JsonElement code);
+                        obj.TryGetProperty("classIds", out JsonElement _classIds);
+                        List<string> templist = _classIds.ToObject<List<string>>();
+
+                        //List<string> newList = templist.Distinct().ToList(); //Equals实现去重  
+                        //List<string> newLis1 = templist.Where((x, i) => templist.FindIndex(z => z == x) == i).ToList(); //Lambda表达式去重 
+                        HashSet<string> hashSet = new HashSet<string>(templist);//哈希自动去重
+                        if (hashSet.Count != templist.Count)
+                        {
+                            CorrectStu correctList = new CorrectStu() { id = $"{tempTd}", code = $"{code}", classIds = hashSet.ToList() };
+                            correctStus.Add(correctList);
+                        }
+                    }
+                }
+
+                if (correctStus.Count > 0)
+                {
+                    foreach (var correct in correctStus)
+                    {
+                        StuActivity stuActivity = await cosmosClient.GetContainer("TEAMModelOS", "Student").ReadItemAsync<StuActivity>(correct.id, new PartitionKey(correct.code));
+                        if (stuActivity != null)
+                        {
+                            stuActivity.classIds = correct.classIds;
+
+                            await cosmosClient.GetContainer("TEAMModelOS", "Student").ReplaceItemAsync<StuActivity>(stuActivity, stuActivity.id, new PartitionKey(stuActivity.code));
+                        }
+                    }
+
+                    return Ok(new { state = 200, msg = "去重成功" });
+                }
+                else
+                {
+                    return Ok(new { state = 201, msg = "学生活动中间表无重复班级ID" });
+                }
+
+            }
+            catch (Exception ex)
+            {
+                await _dingDing.SendBotMsg($"BI,{_option.Location} /stuactivity/get-classIds \n {ex.Message}{ex.StackTrace}", GroupNames.成都开发測試群組);
+                return Ok(new { state = 401 });
+            }
+        }
+
+        public record CorrectStu
+        {
+            public string id { get; set; }
+
+            public string code { get; set; }
+
+            public List<string> classIds { get; set; }
+        }
+
+    }
+}

+ 1 - 0
TEAMModelOS.FunctionV4/CosmosDB/TriggerCorrect.cs

@@ -25,6 +25,7 @@ namespace TEAMModelOS.FunctionV4
         {
             if ((tdata.status != null && tdata.status.Value == 404))
             {
+                await client.GetContainer(Constant.TEAMModelOS, "Common").DeleteItemStreamAsync(tdata.id, new PartitionKey(tdata.code));
                 ActivityList data = input.ToObject<ActivityList>();
                 await ActivityService.DeleteActivity(_coreAPIHttpService, client, _dingDing, data);
                 return;

+ 1 - 0
TEAMModelOS.FunctionV4/CosmosDB/TriggerExam.cs

@@ -28,6 +28,7 @@ namespace TEAMModelOS.FunctionV4
             {
                 if ((data.status != null && data.status.Value == 404))
                 {
+                    await client.GetContainer(Constant.TEAMModelOS, "Common").DeleteItemStreamAsync( data.id, new PartitionKey( data.code));
                     ActivityList activity = input.ToObject<ActivityList>();
                     await ActivityService.DeleteActivity(_coreAPIHttpService, client, _dingDing, activity);
                     return;

+ 1 - 0
TEAMModelOS.FunctionV4/CosmosDB/TriggerExamLite.cs

@@ -27,6 +27,7 @@ namespace TEAMModelOS.FunctionV4
             {
                 if ((tdata.status != null && tdata.status.Value == 404))
                 {
+                    await client.GetContainer(Constant.TEAMModelOS, "Common").DeleteItemStreamAsync(tdata.id, new PartitionKey(tdata.code));
                     ActivityList data = input.ToObject<ActivityList>();
                     await ActivityService.DeleteActivity(_coreAPIHttpService, client, _dingDing, data);
                     return;

+ 2 - 0
TEAMModelOS.FunctionV4/CosmosDB/TriggerHomework.cs

@@ -27,8 +27,10 @@ namespace TEAMModelOS.FunctionV4
             {
                 if ((tdata.status != null && tdata.status.Value == 404) )
                 {
+                    await client.GetContainer(Constant.TEAMModelOS, "Common").DeleteItemStreamAsync(tdata.id, new PartitionKey(tdata.code));
                     ActivityList data = input.ToObject<ActivityList>();
                     await ActivityService.DeleteActivity(_coreAPIHttpService, client, _dingDing, data);
+                   
                     return;
                 }
                 var adid = tdata.id;

+ 2 - 0
TEAMModelOS.FunctionV4/CosmosDB/TriggerStudy.cs

@@ -27,8 +27,10 @@ namespace TEAMModelOS.FunctionV4
             {
                 if ((tdata.status != null && tdata.status.Value == 404)  || tdata.publish == 1)
                 {
+                    await client.GetContainer(Constant.TEAMModelOS, "Common").DeleteItemStreamAsync(tdata.id, new PartitionKey(tdata.code));
                     ActivityList data = input.ToObject<ActivityList>();
                     await ActivityService.DeleteActivity(_coreAPIHttpService, client, _dingDing, data);
+                    
                     return;
                 }
                 var adid = tdata.id;

+ 2 - 0
TEAMModelOS.FunctionV4/CosmosDB/TriggerSurvey.cs

@@ -33,10 +33,12 @@ namespace TEAMModelOS.FunctionV4
             {
                 if ((tdata.status != null && tdata.status.Value == 404) )
                 {
+                    await client.GetContainer(Constant.TEAMModelOS, "Common").DeleteItemStreamAsync(tdata.id, new PartitionKey(tdata.code));
                     ActivityList data = input.ToObject<ActivityList>();
                     await ActivityService.DeleteActivity(_coreAPIHttpService, client, _dingDing, data);
                     _azureRedis.GetRedisClient(8).KeyDelete($"Survey:Record:{tdata.id}");
                     _azureRedis.GetRedisClient(8).KeyDelete($"Survey:Submit:{tdata.id}");
+
                     return;
                 }
                 var adid = tdata.id;

+ 1 - 0
TEAMModelOS.FunctionV4/CosmosDB/TriggerVote.cs

@@ -30,6 +30,7 @@ namespace TEAMModelOS.FunctionV4
             {
                 if ((tdata.status != null && tdata.status.Value == 404) )
                 {
+                    await client.GetContainer(Constant.TEAMModelOS, "Common").DeleteItemStreamAsync(tdata.id, new PartitionKey(tdata.code));
                     ActivityList data = input.ToObject<ActivityList>();
                     await ActivityService. DeleteActivity(_coreAPIHttpService, client, _dingDing, data);
                     _azureRedis.GetRedisClient(8).KeyDelete($"Vote:Record:{tdata.id}");

+ 3 - 2
TEAMModelOS.SDK/Models/Service/ActivityService.cs

@@ -23,7 +23,8 @@ namespace TEAMModelOS.SDK
         {
             try
             {
-                var query = $"SELECT distinct c.owner, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime   FROM c  where  c.pk='{type}' " +
+                var query = $"SELECT distinct c.owner, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime   FROM c  " +
+                    $"where (c.status<>404 or IS_DEFINED(c.status) = false ) and  c.pk='{type}' " +
                     $" and (( array_contains(c.classes,'{groupChange.listid}')) or ( array_contains(c.stuLists,'{groupChange.listid}'))or ( array_contains(c.tchLists,'{groupChange.listid}')))";
                 //$"and A1 in('{groupChange.listid}') ";
                 List<MQActivity> datas = new List<MQActivity>();
@@ -44,7 +45,7 @@ namespace TEAMModelOS.SDK
                     foreach (var techer in teachers)
                     {
                         var queryTech = $"SELECT distinct c.owner, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime   FROM c " +
-                            $" where c.school='{groupChange.school}'   and   c.pk='{type}'" +
+                            $" where (c.status<>404 or IS_DEFINED(c.status) = false ) and  c.school='{groupChange.school}'   and   c.pk='{type}'" +
                             $" and (( array_contains(c.classes,'{groupChange.listid}')) or ( array_contains(c.stuLists,'{groupChange.listid}')))";
                         //  $" and A1 in('{groupChange.listid}') ";
                         await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryIterator<MQActivity>(queryText: queryTech,

+ 1 - 1
TEAMModelOS.SDK/TEAMModelOS.SDK.csproj

@@ -12,7 +12,7 @@
 
   <ItemGroup>
     <PackageReference Include="CHTCHSConv" Version="1.0.0" />
-    <PackageReference Include="HTEXLib" Version="5.2202.231" />
+    <PackageReference Include="HTEXLib" Version="5.2203.41" />
     <PackageReference Include="AspectCore.Extensions.Reflection" Version="2.2.0" />
     <PackageReference Include="Azure.Cosmos" Version="4.0.0-preview3" />
     <PackageReference Include="Azure.Identity" Version="1.5.0" />

+ 23 - 23
TEAMModelOS/ClientApp/src/common/BaseLayout.vue

@@ -27,20 +27,20 @@
                             <div v-for="(item,index) in schoolMenu" :key="index">
                                 <Submenu :name="item.subName" v-if="$access.ability(item.role,item.permission).validateAll && item.child.length && item.isShow" v-show="(index == 0 && $store.state.userInfo.hasSchool) || index > 0">
                                     <template slot="title">
-                                        <Tooltip :content="item.name" placement="right" transfer v-show="isCollapsed">
-                                            <Icon :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="16" />
-                                        </Tooltip>
+                                        <!-- <Tooltip :content="item.name" placement="right" transfer v-show="isCollapsed"> -->
+                                            <Icon v-show="isCollapsed" :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="16" />
+                                        <!-- </Tooltip> -->
                                         <Icon v-show="!isCollapsed" :custom="item.icon" :class="isCollapsed ? 'collapse-icon-size':''" size="16" />
                                         <span>{{item.name}}</span>
                                     </template>
                                     <MenuItem :name="menuItem.menuName" :to="menuItem.router" v-for="(menuItem,i) in item.child" :key="i" v-show="$access.ability(menuItem.role,menuItem.permission).validateAll && menuItem.isShow">
-                                    <Tooltip :content="menuItem.name" placement="right" transfer v-show="isCollapsed">
-                                        <Icon class="sub-menu-icon" :custom="menuItem.icon" size="16" />
-                                    </Tooltip>
+                                    <!-- <Tooltip :content="menuItem.name" placement="right" transfer v-show="isCollapsed"> -->
+                                        <Icon v-show="isCollapsed" class="sub-menu-icon" :custom="menuItem.icon" size="16" />
+                                    <!-- </Tooltip> -->
                                     <Icon v-show="!isCollapsed" class="sub-menu-icon" :custom="menuItem.icon" size="16" />
                                     <span>
                                         {{menuItem.name}}
-                                        <Tooltip v-show="menuItem.info" :content="menuItem.info" transfer theme="light" max-width="180">
+                                        <Tooltip v-if="menuItem.info" :content="menuItem.info" transfer theme="light" max-width="180">
                                             <Icon type="ios-information-circle-outline" color="#1cc0f3" />
                                         </Tooltip>
                                         <span style="margin-left: 2px;font-size: 12px;vertical-align: text-top;color:#ff7c00">
@@ -50,13 +50,13 @@
                                     </MenuItem>
                                 </Submenu>
                                 <MenuItem :name="item.menuName" v-else-if="$access.ability(item.role,item.permission).validateAll && item.isShow" :to="item.router">
-                                <Tooltip :content="item.name" placement="right" transfer v-show="isCollapsed">
-                                    <Icon :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="16" />
-                                </Tooltip>
+                                <!-- <Tooltip :content="item.name" placement="right" transfer v-show="isCollapsed"> -->
+                                    <Icon v-show="isCollapsed" :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="16" />
+                                <!-- </Tooltip> -->
                                 <Icon v-show="!isCollapsed" :custom="item.icon" :class="isCollapsed ? 'collapse-icon-size':''" size="16" />
                                 <span>
                                     {{item.name}}
-                                    <Tooltip v-show="item.info" :content="item.info" theme="light" transfer max-width="180">
+                                    <Tooltip v-if="item.info" :content="item.info" theme="light" transfer max-width="180">
                                         <Icon type="ios-information-circle-outline" color="#1cc0f3" />
                                     </Tooltip>
                                     <span style="color: rgb(255, 124, 0);margin-left: 2px;font-size: 12px;vertical-align: text-top;">
@@ -71,20 +71,20 @@
                         <div v-for="(item,index) in teacherMenu" :key="index">
                             <Submenu :name="item.subName" v-if="$access.ability(item.role,item.permission).validateAll && item.child.length && item.isShow" v-show="(index == 0 && $store.state.userInfo.hasSchool) || index > 0">
                                 <template slot="title">
-                                    <Tooltip :content="item.name" placement="right" transfer v-show="isCollapsed">
-                                        <Icon :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="16" />
-                                    </Tooltip>
+                                    <!-- <Tooltip :content="item.name" placement="right" transfer v-show="isCollapsed"> -->
+                                        <Icon v-show="isCollapsed" :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="16" />
+                                    <!-- </Tooltip> -->
                                     <Icon v-show="!isCollapsed" :custom="item.icon" :class="isCollapsed ? 'collapse-icon-size':''" size="16" />
                                     <span>{{item.name}}</span>
                                 </template>
                                 <MenuItem :name="menuItem.menuName" :to="menuItem.router" v-for="(menuItem,i) in item.child" :key="i" v-show="$access.ability(menuItem.role,menuItem.permission).validateAll && menuItem.isShow">
-                                <Tooltip :content="menuItem.name" placement="right" transfer v-show="isCollapsed">
-                                    <Icon class="sub-menu-icon" :custom="menuItem.icon" size="18" />
-                                </Tooltip>
+                                <!-- <Tooltip :content="menuItem.name" placement="right" transfer v-show="isCollapsed"> -->
+                                    <Icon v-show="isCollapsed" class="sub-menu-icon" :custom="menuItem.icon" size="18" />
+                                <!-- </Tooltip> -->
                                 <Icon v-show="!isCollapsed" class="sub-menu-icon" :custom="menuItem.icon" size="16" />
                                 <span>
                                     {{menuItem.name}}
-                                    <Tooltip v-show="menuItem.info" :content="menuItem.info" transfer theme="light" max-width="180">
+                                    <Tooltip v-if="menuItem.info" :content="menuItem.info" transfer theme="light" max-width="180">
                                         <Icon type="ios-information-circle-outline" color="#1cc0f3" />
                                     </Tooltip>
                                     <span style="margin-left: 2px;font-size: 12px;vertical-align: text-top;color:#ff7c00">
@@ -94,14 +94,14 @@
                                 </MenuItem>
                             </Submenu>
                             <MenuItem :name="item.menuName" v-else-if="$access.ability(item.role,item.permission).validateAll && item.isShow" :to="item.router">
-                            <Tooltip :content="item.name" placement="right" transfer v-show="isCollapsed">
-                                <Icon :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="16" />
-                            </Tooltip>
+                            <!-- <Tooltip :content="item.name" placement="right" transfer v-show="isCollapsed"> -->
+                                <Icon v-show="isCollapsed" :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="16" />
+                            <!-- </Tooltip> -->
                             <Icon v-show="!isCollapsed" :custom="item.icon" :class="isCollapsed ? 'collapse-icon-size':''" size="16" />
                             <span>
                                 {{item.name}}
-                                <Tooltip v-show="item.info" :content="item.info" theme="light" transfer max-width="180">
-                                    <Icon type="ios-information-circle-outline" color="#1cc0f3" />
+                                <Tooltip v-if="item.info" :content="item.info" theme="light" transfer max-width="180">
+                                    <Icon  type="ios-information-circle-outline" color="#1cc0f3" />
                                 </Tooltip>
                                 <span style="color: aqua;margin-left: 2px;font-size: 12px;margin-top:3px">
                                     {{item.tag}}

+ 32 - 7
TEAMModelOS/ClientApp/src/view/train/TrainDetail.vue

@@ -272,7 +272,7 @@
                                     </span>
                                 </p>
                             </div>
-                            <i-circle :percent="signData.rate" stroke-color="#19be6b" :size="100">
+                            <i-circle :percent="+signData.rate" stroke-color="#19be6b" :size="100">
                                 <p style="font-size:30px;">{{signData.rate}}%</p>
                                 <p style="font-size:12px;margin-top:10px">
                                     {{$t('train.detail.signRate')}}
@@ -307,7 +307,7 @@
                                     </span>
                                 </p>
                             </div>
-                            <i-circle :percent="hwData.rate" stroke-color="#ff9900" :size="100">
+                            <i-circle :percent="+hwData.rate" stroke-color="#ff9900" :size="100">
                                 <p style="font-size:30px;">{{hwData.rate}}%</p>
                                 <p style="font-size:12px;margin-top:10px">{{$t('train.detail.sunmitRate')}}</p>
                             </i-circle>
@@ -340,7 +340,7 @@
                                     </span>
                                 </p>
                             </div>
-                            <i-circle :percent="surveyData.rate" stroke-color="#ff9900" :size="100">
+                            <i-circle :percent="+surveyData.rate" stroke-color="#ff9900" :size="100">
                                 <p style="font-size:30px;">{{surveyData.rate}}%</p>
                                 <p style="font-size:12px;margin-top:10px">{{$t('train.detail.sunmitRate')}}</p>
                             </i-circle>
@@ -373,7 +373,7 @@
                                     </span>
                                 </p>
                             </div>
-                            <i-circle :percent="examData.rate" stroke-color="#ff9900" :size="100">
+                            <i-circle :percent="+examData.rate" stroke-color="#ff9900" :size="100">
                                 <p style="font-size:30px;">{{examData.rate}}%</p>
                                 <p style="font-size:12px;margin-top:10px">{{$t('train.detail.sunmitRate')}}</p>
                             </i-circle>
@@ -415,7 +415,7 @@
                                     </span>
                                 </p>
                             </div>
-                            <i-circle :percent="hourData.rate" :size="100">
+                            <i-circle :percent="+hourData.rate" :size="100">
                                 <p style="font-size:30px;">{{hourData.rate || 0}}%</p>
                                 <p style="font-size:12px;margin-top:10px">{{$t('train.detail.passRate')}}</p>
                             </i-circle>
@@ -1486,7 +1486,6 @@ export default {
                                         code: this.trainInfo.areaId
                                     }
                                     let resData = await this.$api.train.findSummaryTrain(params)
-                                    console.log(111, resData)
                                     this.checkData = resData.records
                                 } catch (e) {
                                     this.$Message.error('获取签到数据失败')
@@ -1551,7 +1550,9 @@ export default {
                                         slot: 'action',
                                         align: 'center'
                                     })
-                                    this.getTeachers()
+                                    // 现在研修会记录发布活动时的名单,不需要单独活动名单(解决名单调整问题)
+                                    // this.getTeachers()
+                                    this.handleData(res.ufos)
                                 }
                             }
                         }
@@ -1590,6 +1591,30 @@ export default {
                 }
             )
         },
+        handleData(teachers) {
+            if (teachers && teachers.length) {
+                teachers.forEach(teacher => {
+                    let data = this.checkData.find(t => t.tId === teacher.id)
+                    if (data) {
+                        teacher.signTime = data.signTime
+                        teacher.sign = data.sign
+                        teacher.status = data.status
+                    } else {
+                        teacher.status = 0
+                    }
+                })
+                this.tableData = teachers
+                if (this.trainInfo.settings.includes('survey')) {
+                    this.getSurveyInfo()
+                }
+                if (this.trainInfo.settings.includes('exam')) {
+                    this.getExamInfo()
+                }
+                if (this.trainInfo.settings.includes('hw')) {
+                    this.getWorkInfo()
+                }
+            }
+        },
         // 获取老师列表
         getTeachers(ids) {
             if (this.trainInfo.tchLists) {

+ 5 - 5
TEAMModelOS/Controllers/Both/LessonRecordController.cs

@@ -199,7 +199,7 @@ namespace TEAMModelOS.Controllers
                         LessonRecord lessonRecord ;
                         var doc = JsonDocument.Parse(response.ContentStream);
                         lessonRecord = doc.RootElement.ToObject<LessonRecord>();
-                        lessonRecord.status = -1;
+                        lessonRecord.status =404;
                         await client.GetContainer(Constant.TEAMModelOS, tbname).ReplaceItemAsync(lessonRecord, lessonRecord.id, new PartitionKey(lessonRecord.code));
                         var ActiveTask = _configuration.GetValue<string>("Azure:ServiceBus:ActiveTask");
                         var messageChange = new ServiceBusMessage(request.ToJsonString());
@@ -219,7 +219,7 @@ namespace TEAMModelOS.Controllers
 
 
         /// <summary>
-        /// 获取开课记录 (c.status<>-1 or IS_DEFINED(c.status)=false )
+        /// 获取开课记录 (c.status<>404 or IS_DEFINED(c.status)=false )
         /// </summary>
         /// <param name="request"></param>
         /// <returns></returns>
@@ -268,7 +268,7 @@ namespace TEAMModelOS.Controllers
                 return BadRequest();
             }
             int count=0;
-            cosmosDbQuery.QueryText = cosmosDbQuery.QueryText.Replace("where", " where (c.status<>-1 or IS_DEFINED(c.status) = false ) and  ");
+            cosmosDbQuery.QueryText = cosmosDbQuery.QueryText.Replace("where", " where (c.status<>404 or IS_DEFINED(c.status) = false ) and  ");
             await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, tbname).GetItemQueryIterator<int>(queryDefinition: cosmosDbQuery.CosmosQueryDefinition, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey(code) }))
             {
                 count = item;
@@ -351,7 +351,7 @@ namespace TEAMModelOS.Controllers
             List<LessonRecord> lessonRecords = new List<LessonRecord>();
             try
             {
-                cosmosDbQuery.QueryText = cosmosDbQuery.QueryText.Replace("where", " where (c.status<>-1 or IS_DEFINED(c.status) = false ) and  ");
+                cosmosDbQuery.QueryText = cosmosDbQuery.QueryText.Replace("where", " where (c.status<>404 or IS_DEFINED(c.status) = false ) and  ");
                 await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, tbname)
                    .GetItemQueryStreamIterator(queryDefinition: cosmosDbQuery.CosmosQueryDefinition, continuationToken: continuationToken,
                    requestOptions: new QueryRequestOptions() { MaxItemCount = pageCount, PartitionKey = new PartitionKey(code) }))
@@ -520,7 +520,7 @@ namespace TEAMModelOS.Controllers
             Dictionary<string, object> dict = GetLessonCond(request);
             AzureCosmosQuery cosmosDbQuery = SQLHelper.GetSQL(dict, sql);
             List<LessonRecord> lessonRecords = new List<LessonRecord>();
-            cosmosDbQuery.QueryText = cosmosDbQuery.QueryText.Replace("where", " where (c.status<>-1 or IS_DEFINED(c.status) = false ) and  ");
+            cosmosDbQuery.QueryText = cosmosDbQuery.QueryText.Replace("where", " where (c.status<>404 or IS_DEFINED(c.status) = false ) and  ");
             await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, tbname)
                .GetItemQueryStreamIterator(queryDefinition: cosmosDbQuery.CosmosQueryDefinition,
                requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey(code) }))

+ 2 - 2
TEAMModelOS/Controllers/Client/HiScanController.cs

@@ -299,7 +299,7 @@ namespace TEAMModelOS.Controllers.Core
         {
             List<ExamRcd> examRcds = new List<ExamRcd>();
             int i = 1;
-            StringBuilder sql = new StringBuilder($"SELECT  * FROM c  where  (c.progress='going' or c.progress='finish') and c.scope='{scope}' ");
+            StringBuilder sql = new StringBuilder($"SELECT  * FROM c  where (c.status<>404 or IS_DEFINED(c.status) = false ) and   (c.progress='going' or c.progress='finish') and c.scope='{scope}' ");
             if (!string.IsNullOrEmpty(school))
             {
                 sql.Append($"  and c.school='{school}' ");
@@ -489,7 +489,7 @@ namespace TEAMModelOS.Controllers.Core
         {
             ExamData examRcds = null;
     
-            StringBuilder sql = new StringBuilder($"SELECT  value(c) FROM c  join papers in c.papers where  c.owner='{owner}'  and papers.sheetNo='{sheetNo}' ");
+            StringBuilder sql = new StringBuilder($"SELECT  value(c) FROM c  join papers in c.papers where (c.status<>404 or IS_DEFINED(c.status) = false ) and   c.owner='{owner}'  and papers.sheetNo='{sheetNo}' ");
             if (!string.IsNullOrEmpty(school))
             {
                 sql.Append($"  and c.school='{school}' ");

+ 2 - 2
TEAMModelOS/Controllers/Client/HiTAControlller.cs

@@ -409,7 +409,7 @@ namespace TEAMModelOS.Controllers.Client
                     //進行中的活動數
                     int activityCount = 0;
                     List<string> examIdList = new List<string>();
-                    await foreach (var actitem in clientc.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryStreamIterator(queryText: $"SELECT COUNT(1) AS count FROM c WHERE c.progress = 'going'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Exam-{id}") }))
+                    await foreach (var actitem in clientc.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryStreamIterator(queryText: $"SELECT COUNT(1) AS count FROM c where (c.status<>404 or IS_DEFINED(c.status) = false ) and  c.progress = 'going'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Exam-{id}") }))
                     {
                         using var json = await JsonDocument.ParseAsync(actitem.ContentStream);
                         if (json.RootElement.TryGetProperty("_count", out JsonElement count) && count.GetUInt16() > 0)
@@ -420,7 +420,7 @@ namespace TEAMModelOS.Controllers.Client
                             }
                         }
                     }
-                    await foreach (var actitem in clientc.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryStreamIterator(queryText: $"SELECT COUNT(1) AS count FROM c WHERE c.progress = 'going'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Homework-{id}") }))
+                    await foreach (var actitem in clientc.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryStreamIterator(queryText: $"SELECT COUNT(1) AS count FROM c where (c.status<>404 or IS_DEFINED(c.status) = false ) and  c.progress = 'going'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Homework-{id}") }))
                     {
                         using var json = await JsonDocument.ParseAsync(actitem.ContentStream);
                         if (json.RootElement.TryGetProperty("_count", out JsonElement count) && count.GetUInt16() > 0)

+ 2 - 2
TEAMModelOS/Controllers/Client/HiTeachController.cs

@@ -313,7 +313,7 @@ namespace TEAMModelOS.Controllers.Client
                 List<object> exams = new List<object>();
                 //取得評測ID List (HiTeach只取source='1'(課中评量) && progress = 'going'(進行中))
                 List<string> examIdList = new List<string>();
-                await foreach (var exam in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryStreamIterator(queryText: $"SELECT c.id FROM c WHERE c.source = '1' AND c.progress = 'going'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Exam-{id}") }))
+                await foreach (var exam in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryStreamIterator(queryText: $"SELECT c.id FROM c where (c.status<>404 or IS_DEFINED(c.status) = false ) and  c.source = '1' AND c.progress = 'going'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Exam-{id}") }))
                 {
                     using var json = await JsonDocument.ParseAsync(exam.ContentStream);
                     if (json.RootElement.TryGetProperty("_count", out JsonElement count) && count.GetUInt16() > 0)
@@ -326,7 +326,7 @@ namespace TEAMModelOS.Controllers.Client
                 }
                 //取得有作答的評測班級
                 Dictionary<string, List<string>> examClassFinDic = new Dictionary<string, List<string>>();
-                await foreach (var exam in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryStreamIterator(queryText: $"SELECT  c.examId, c.info.id as classId FROM c WHERE ARRAY_CONTAINS({JsonSerializer.Serialize(examIdList)}, c.examId) AND c.progress=true", requestOptions: new QueryRequestOptions() { }))
+                await foreach (var exam in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryStreamIterator(queryText: $"SELECT  c.examId, c.info.id as classId FROM c where (c.status<>404 or IS_DEFINED(c.status) = false ) and  ARRAY_CONTAINS({JsonSerializer.Serialize(examIdList)}, c.examId) AND c.progress=true", requestOptions: new QueryRequestOptions() { }))
                 {
                     var jsonecr = await JsonDocument.ParseAsync(exam.ContentStream);
                     if (jsonecr.RootElement.TryGetProperty("_count", out JsonElement count) && count.GetUInt16() > 0)

+ 2 - 2
TEAMModelOS/Controllers/Common/ExamController.cs

@@ -482,7 +482,7 @@ namespace TEAMModelOS.Controllers
                     };
                     await _azureStorage.Save<SchoolYear>(sy);
                 }
-                var query = $"select c.id,c.name,c.code,c.period,c.startTime,c.endTime,c.stuCount,c.type,c.progress,c.examType,c.createTime,c.source, c.subjects, c.grades,c.owner, c.scope,c.classes,c.sRate,c.lostStu,c.sStatus from c ";
+                var query = $"select c.id,c.name,c.code,c.period,c.startTime,c.endTime,c.stuCount,c.type,c.progress,c.examType,c.createTime,c.source, c.subjects, c.grades,c.owner, c.scope,c.classes,c.sRate,c.lostStu,c.sStatus from c where (c.status<>404 or IS_DEFINED(c.status) = false )";
                 if (requert.TryGetProperty("classIds", out JsonElement classIds))
                 {
                     List<string> ids = classIds.ToObject<List<string>>();
@@ -500,7 +500,7 @@ namespace TEAMModelOS.Controllers
                         strs.Add($"array_contains(c.classes,'{ssr}')");
                     }
                     string ss = string.Join(" or ", strs);
-                    query = $"select c.id,c.name,c.code,c.period,c.startTime,c.endTime,c.stuCount,c.type,c.progress,c.examType,c.createTime, c.source,c.subjects, c.grades,c.owner, c.scope,c.classes,c.sRate,c.lostStu,c.sStatus from c where ({ss})";
+                    query = $"select c.id,c.name,c.code,c.period,c.startTime,c.endTime,c.stuCount,c.type,c.progress,c.examType,c.createTime, c.source,c.subjects, c.grades,c.owner, c.scope,c.classes,c.sRate,c.lostStu,c.sStatus from c where ({ss}) and (c.status<>404 or IS_DEFINED(c.status) = false )";
                 };
 
                 string continuationToken = string.Empty;

+ 3 - 3
TEAMModelOS/Controllers/Common/ExamLiteController.cs

@@ -201,7 +201,7 @@ namespace TEAMModelOS.Controllers.Common
             {
                 if (!requert.TryGetProperty("code", out JsonElement code)) return BadRequest();
                 var client = _azureCosmos.GetCosmosClient();
-                var query = $"select c.id,c.name,c.createTime from c ";
+                var query = $"select c.id,c.name,c.createTime from c where (c.status<>404 or IS_DEFINED(c.status) = false )   ";
                 string continuationToken = string.Empty;
                 string token = default;
                 //是否需要进行分页查询,默认不分页
@@ -297,7 +297,7 @@ namespace TEAMModelOS.Controllers.Common
                 if (!requert.TryGetProperty("code", out JsonElement code)) return BadRequest();
                 if (!requert.TryGetProperty("tId", out JsonElement tId)) return BadRequest();
                 var client = _azureCosmos.GetCosmosClient();
-                var query = $"select c.id,c.name,c.createTime,A0.time from c join A0 in c.teachers where A0.id = '{tId}'";
+                var query = $"select c.id,c.name,c.createTime,A0.time from c join A0 in c.teachers where (c.status<>404 or IS_DEFINED(c.status) = false ) and  A0.id = '{tId}'";
                 List<object> exams = new();
                 await foreach (var item in client.GetContainer("TEAMModelOS", "Common").GetItemQueryStreamIterator(queryText: query, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"ExamLite-{code}") }))
                 {
@@ -334,7 +334,7 @@ namespace TEAMModelOS.Controllers.Common
                 if (!requert.TryGetProperty("tId", out JsonElement tId)) return BadRequest();
                 var client = _azureCosmos.GetCosmosClient();
                 List<object> exams = new();
-                await foreach (var item in client.GetContainer("TEAMModelOS", "Common").GetItemQueryStreamIterator(queryText: $"select value(c) from c join A0 in c.teachers where A0.id = '{tId}' and c.id = '{id}'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"ExamLite-{code}") }))
+                await foreach (var item in client.GetContainer("TEAMModelOS", "Common").GetItemQueryStreamIterator(queryText: $"select value(c) from c join A0 in c.teachers where (c.status<>404 or IS_DEFINED(c.status) = false ) and  A0.id = '{tId}' and c.id = '{id}'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"ExamLite-{code}") }))
                 {
                     using var json = await JsonDocument.ParseAsync(item.ContentStream);
                     if (json.RootElement.TryGetProperty("_count", out JsonElement count) && count.GetUInt16() > 0)

+ 1 - 1
TEAMModelOS/Controllers/Common/HomeworkController.cs

@@ -269,7 +269,7 @@ namespace TEAMModelOS.Controllers.Learn
                     }
                 };
                 List<Homework> homeworks = new List<Homework>();
-                var query = $"select c.owner, c.id,c.name,c.code,c.startTime,c.endTime,c.progress,c.classes,c.scope,c.school from c where  c.createTime >= {stimestamp} and c.createTime <= {etimestamp}  {progresssql } and c.ttl=-1 ";
+                var query = $"select c.owner, c.id,c.name,c.code,c.startTime,c.endTime,c.progress,c.classes,c.scope,c.school from c where (c.status<>404 or IS_DEFINED(c.status) = false ) and   c.createTime >= {stimestamp} and c.createTime <= {etimestamp}  {progresssql } and c.ttl=-1 ";
                 if (string.IsNullOrEmpty(school))
                 {
                     query = $"{query} and c.scope='private' ";

+ 1 - 1
TEAMModelOS/Controllers/Common/StudyController.cs

@@ -384,7 +384,7 @@ namespace TEAMModelOS.Controllers.Common
             {
                 if (!requert.TryGetProperty("code", out JsonElement code)) return BadRequest();
                 var client = _azureCosmos.GetCosmosClient();
-                var query = $"select c.id,c.img,c.name,c.type,c.startTime,c.endTime,c.presenter,c.topic,c.address,c.owner,c.progress from c ";
+                var query = $"select c.id,c.img,c.name,c.type,c.startTime,c.endTime,c.presenter,c.topic,c.address,c.owner,c.progress from c where (c.status<>404 or IS_DEFINED(c.status) = false )    ";
                 string continuationToken = string.Empty;
                 string token = default;
                 //是否需要进行分页查询,默认不分页

+ 1 - 1
TEAMModelOS/Controllers/Common/SurveyController.cs

@@ -258,7 +258,7 @@ namespace TEAMModelOS.Controllers
                 }; 
                 List<Survey> surveys = new List<Survey>();
                 var client = _azureCosmos.GetCosmosClient();
-                var query = $"select c.owner, c.id,c.name,c.code,c.startTime,c.endTime,c.progress,c.classes,c.scope,c.school from c where  c.ttl=-1  {stimestamp}  {etimestamp}  {progresssql }   ";
+                var query = $"select c.owner, c.id,c.name,c.code,c.startTime,c.endTime,c.progress,c.classes,c.scope,c.school from c where (c.status<>404 or IS_DEFINED(c.status) = false ) and   c.ttl=-1  {stimestamp}  {etimestamp}  {progresssql }   ";
                 if (string.IsNullOrEmpty(school)) {
                     query = $"{query} and c.scope='private' ";
                 }

+ 1 - 1
TEAMModelOS/Controllers/Common/VoteController.cs

@@ -248,7 +248,7 @@ namespace TEAMModelOS.Controllers
                 };
                 List<Vote> votes = new List<Vote>();
                 var client = _azureCosmos.GetCosmosClient();
-                var query = $"select c.owner,c.id,c.name,c.code,c.startTime,c.endTime,c.progress ,c.scope,c.school from c where c.ttl=-1 {stimestamp} {etimestamp}  {progresssql }   ";
+                var query = $"select c.owner,c.id,c.name,c.code,c.startTime,c.endTime,c.progress ,c.scope,c.school from c where (c.status<>404 or IS_DEFINED(c.status) = false ) and  c.ttl=-1 {stimestamp} {etimestamp}  {progresssql }   ";
                 if (string.IsNullOrEmpty(school))
                 {
                     query = $"{query} and c.scope='private' ";

+ 4 - 4
TEAMModelOS/Controllers/Common/WorkController.cs

@@ -200,7 +200,7 @@ namespace TEAMModelOS.Controllers.Common
             {
                 if (!requert.TryGetProperty("code", out JsonElement code)) return BadRequest();
                 var client = _azureCosmos.GetCosmosClient();
-                var query = $"select c.id,c.name,c.createTime from c ";
+                var query = $"select c.id,c.name,c.createTime from c where (c.status<>404 or IS_DEFINED(c.status) = false ) ";
                 string continuationToken = string.Empty;
                 string token = default;
                 //是否需要进行分页查询,默认不分页
@@ -261,7 +261,7 @@ namespace TEAMModelOS.Controllers.Common
                 if (!requert.TryGetProperty("code", out JsonElement code)) return BadRequest();
                 var client = _azureCosmos.GetCosmosClient();
                 List<Homework> works = new();
-                await foreach (var item in client.GetContainer("TEAMModelOS", "Common").GetItemQueryIterator<Homework>(queryText: $"select value(c) from c where c.id = '{id}'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Homework-{code}") }))
+                await foreach (var item in client.GetContainer("TEAMModelOS", "Common").GetItemQueryIterator<Homework>(queryText: $"select value(c) from c where (c.status<>404 or IS_DEFINED(c.status) = false ) and  c.id = '{id}'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Homework-{code}") }))
                 {
                     works.Add(item);
                 }
@@ -289,7 +289,7 @@ namespace TEAMModelOS.Controllers.Common
                 if (!requert.TryGetProperty("code", out JsonElement code)) return BadRequest();
                 if (!requert.TryGetProperty("tId", out JsonElement tId)) return BadRequest();
                 var client = _azureCosmos.GetCosmosClient();
-                var query = $"select c.id,c.name,c.createTime,A0.time from c join A0 in c.teachers where A0.id = '{tId}'";
+                var query = $"select c.id,c.name,c.createTime,A0.time from c join A0 in c.teachers where (c.status<>404 or IS_DEFINED(c.status) = false ) and  A0.id = '{tId}'";
                 List<object> works = new();
                 await foreach (var item in client.GetContainer("TEAMModelOS", "Common").GetItemQueryStreamIterator(queryText: query, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Homework-{code}") }))
                 {
@@ -326,7 +326,7 @@ namespace TEAMModelOS.Controllers.Common
                 if (!requert.TryGetProperty("tId", out JsonElement tId)) return BadRequest();
                 var client = _azureCosmos.GetCosmosClient();
                 List<object> works = new();
-                await foreach (var item in client.GetContainer("TEAMModelOS", "Common").GetItemQueryStreamIterator(queryText: $"select value(c) from c join A0 in c.teachers where A0.id = '{tId}' and c.id = '{id}'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Homework-{code}") }))
+                await foreach (var item in client.GetContainer("TEAMModelOS", "Common").GetItemQueryStreamIterator(queryText: $"select value(c) from c join A0 in c.teachers  where (c.status<>404 or IS_DEFINED(c.status) = false ) and  A0.id = '{tId}' and c.id = '{id}'", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Homework-{code}") }))
                 {
                     using var json = await JsonDocument.ParseAsync(item.ContentStream);
                     if (json.RootElement.TryGetProperty("_count", out JsonElement count) && count.GetUInt16() > 0)

+ 6 - 6
TEAMModelOS/Controllers/Teacher/TeacherCommonController.cs

@@ -96,7 +96,7 @@ namespace TEAMModelOS.Controllers
                 int acount = 0;
                 if (!string.IsNullOrWhiteSpace(school) && classes.ToList().IsNotEmpty())
                 {
-                    string querySchool = $" SELECT distinct c.owner, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime   FROM c {joinSqlClasses}   where   {pksql}    {classesSql}";
+                    string querySchool = $" SELECT distinct c.owner, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime   FROM c {joinSqlClasses}   where   {pksql}    {classesSql}  and    (c.status<>404 or IS_DEFINED(c.status) = false )   ";
                     //查询数据归属学校的
                     await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryIterator<MQActivity>(querySchool, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"{type}-{school}") }))
                     {
@@ -115,7 +115,7 @@ namespace TEAMModelOS.Controllers
 
                 if (!string.IsNullOrWhiteSpace(school) && stulist.ToList().IsNotEmpty())
                 {
-                    string querySchool = $" SELECT distinct c.owner, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime   FROM c {joinSqlStulist}   where   {pksql}    {stuListsSql}";
+                    string querySchool = $" SELECT distinct c.owner, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime   FROM c {joinSqlStulist}   where   {pksql}    {stuListsSql} and   (c.status<>404 or IS_DEFINED(c.status) = false )   ";
                     //查询数据归属学校的
                     await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryIterator<MQActivity>(querySchool, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"{type}-{school}") }))
                     {
@@ -126,7 +126,7 @@ namespace TEAMModelOS.Controllers
                         acount += 1;
                     }
                 }
-                string queryTeacher = $" SELECT distinct c.owner, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime  FROM c   where   {pksql}  ";
+                string queryTeacher = $" SELECT distinct c.owner, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime  FROM c   where   {pksql} and   (c.status<>404 or IS_DEFINED(c.status) = false )    ";
                 //查询数据归属个人的
                 await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryIterator<MQActivity>(queryTeacher, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"{type}-{id}") }))
                 {
@@ -291,7 +291,7 @@ namespace TEAMModelOS.Controllers
             if (!string.IsNullOrWhiteSpace(school) && classes.IsNotEmpty())
             {
                 //string querySchool = $" SELECT distinct  value c   FROM c {joinSqlClasses} {joinSqlSubjects}  where {stimesql}  {etimesql}  {progresssql}  {typesql}  {andSqlSubjects}  {tgSql}";
-                string querySchoolclss = $" SELECT distinct c.owner,c.sStatus, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime,c.source,c.type   FROM c {joinSqlClasses}   where   {pksql}    {classesSql}";
+                string querySchoolclss = $" SELECT distinct c.owner,c.sStatus, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime,c.source,c.type   FROM c {joinSqlClasses}   where   {pksql}    {classesSql}  and   (c.status<>404 or IS_DEFINED(c.status) = false )   ";
                 //查询数据归属学校的
                 await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryStreamIterator(querySchoolclss, continuationToken: continuationTokenSchool, requestOptions: new QueryRequestOptions() { MaxItemCount = topcout, PartitionKey = new PartitionKey($"{type}-{school}") }))
                 {
@@ -310,7 +310,7 @@ namespace TEAMModelOS.Controllers
                         }
                     }
                 }
-                string querySchoollist = $" SELECT distinct c.owner,c.sStatus, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime ,c.source,c.type  FROM c {joinSqlStulist}   where   {pksql}    {stuListsSql}";
+                string querySchoollist = $" SELECT distinct c.owner,c.sStatus, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime ,c.source,c.type  FROM c {joinSqlStulist}   where   {pksql}    {stuListsSql} and   (c.status<>404 or IS_DEFINED(c.status) = false )   ";
                 await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryStreamIterator(querySchoollist, continuationToken: continuationTokenSchool, requestOptions: new QueryRequestOptions() { MaxItemCount = topcout, PartitionKey = new PartitionKey($"{type}-{school}") }))
                 {
                     using var json = await JsonDocument.ParseAsync(item.ContentStream);
@@ -340,7 +340,7 @@ namespace TEAMModelOS.Controllers
 
                 }
             }
-            string queryTeacher = $" SELECT distinct c.owner,c.sStatus, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime ,c.source,c.type FROM c   where   {pksql}  ";
+            string queryTeacher = $" SELECT distinct c.owner,c.sStatus, c.id,c.code, c.classes,c.stuLists,c.subjects,c.progress,c.scope,c.startTime,c.school,c.creatorId,c.name,c.pk ,c.endTime ,c.source,c.type FROM c   where   {pksql}  and   (c.status<>404 or IS_DEFINED(c.status) = false )     ";
             //查询数据归属学校的
             await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryStreamIterator(queryTeacher, continuationToken: continuationTokenSchool, requestOptions: new QueryRequestOptions() { MaxItemCount = topcout, PartitionKey = new PartitionKey($"{type}-{id}") }))
             {