CrazyIter_Bin 9 months ago
parent
commit
83214dd65f

+ 3 - 3
TEAMModelBI/TEAMModelBI.csproj

@@ -65,9 +65,9 @@
 		<SpaRoot>ClientApp\</SpaRoot>
 		<SpaRoot>ClientApp\</SpaRoot>
 		<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
 		<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
 		<UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
 		<UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
-		<Version>5.2408.14</Version>
-		<AssemblyVersion>5.2408.14.1</AssemblyVersion>
-		<FileVersion>5.2408.14.1</FileVersion>
+		<Version>5.2408.28</Version>
+		<AssemblyVersion>5.2408.28.1</AssemblyVersion>
+		<FileVersion>5.2408.28.1</FileVersion>
 		<Description>TEAMModelBI(BI)</Description>
 		<Description>TEAMModelBI(BI)</Description>
 		<PackageReleaseNotes>BI版本说明版本切换标记2022000908</PackageReleaseNotes>
 		<PackageReleaseNotes>BI版本说明版本切换标记2022000908</PackageReleaseNotes>
 		<PackageId>TEAMModelBI</PackageId>
 		<PackageId>TEAMModelBI</PackageId>

+ 52 - 5
TEAMModelOS.Function/IESServiceBusTrigger.cs

@@ -1467,10 +1467,11 @@ namespace TEAMModelOS.Function
 
 
                                     //读取TimeLine.json
                                     //读取TimeLine.json
                                     List<int> PickupMemberIds = new List<int>();
                                     List<int> PickupMemberIds = new List<int>();
+                                    TimeLineData timeLineData = new TimeLineData();
                                     try
                                     try
                                     {
                                     {
                                         BlobDownloadResult timeLineBlobDownload = await _azureStorage.GetBlobContainerClient(blobname).GetBlobClient($"/records/{_lessonId}/IES/TimeLine.json").DownloadContentAsync();
                                         BlobDownloadResult timeLineBlobDownload = await _azureStorage.GetBlobContainerClient(blobname).GetBlobClient($"/records/{_lessonId}/IES/TimeLine.json").DownloadContentAsync();
-                                        TimeLineData timeLineData = timeLineBlobDownload.Content.ToObjectFromJson<TimeLineData>();
+                                        timeLineData = timeLineBlobDownload.Content.ToObjectFromJson<TimeLineData>();
                                         lessonRecord.hitaClientCmpCount = timeLineData.events.Where(z => !string.IsNullOrWhiteSpace(z.WrkCmpSrcType) && z.WrkCmpSrcType.Equals("HitaClientCmp")).Count();
                                         lessonRecord.hitaClientCmpCount = timeLineData.events.Where(z => !string.IsNullOrWhiteSpace(z.WrkCmpSrcType) && z.WrkCmpSrcType.Equals("HitaClientCmp")).Count();
                                         //lessonRecord.collateTaskCount = lessonRecord.hitaClientCmpCount;
                                         //lessonRecord.collateTaskCount = lessonRecord.hitaClientCmpCount;
                                         List<TimeLineEvent> timeLineEvents = timeLineData.events.FindAll(z => !string.IsNullOrWhiteSpace(z.Event) && z.Event.Equals("PickupResult"));
                                         List<TimeLineEvent> timeLineEvents = timeLineData.events.FindAll(z => !string.IsNullOrWhiteSpace(z.Event) && z.Event.Equals("PickupResult"));
@@ -1491,6 +1492,7 @@ namespace TEAMModelOS.Function
                                         }
                                         }
                                     }
                                     }
                                     //读取Task.json
                                     //读取Task.json
+                                    ///Event 过滤类型 : 'WrkSpaceLoad', 'WrkCmp'  文件:Task.json  根据clientWorks 中的seatID 匹配base.json 中的 student
                                     List<TaskData> taskDatas = new List<TaskData>();
                                     List<TaskData> taskDatas = new List<TaskData>();
                                     try
                                     try
                                     {
                                     {
@@ -1504,12 +1506,54 @@ namespace TEAMModelOS.Function
                                             await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")},Task.json转换异常,{ex.Message}{ex.StackTrace},{lessonRecord.id}", GroupNames.成都开发測試群組);
                                             await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")},Task.json转换异常,{ex.Message}{ex.StackTrace},{lessonRecord.id}", GroupNames.成都开发測試群組);
                                         }
                                         }
                                     }
                                     }
+
+
+
+                                    //读取互评信息
+                                    //Event 过滤类型  'RatingStart'
+                                    //smartRateSummary.mutualSummary.mutualType 互评【All(每人多件评分)  Two(随机分配互评)  Self(自评)】 smartRateSummary.meteor_VoteSummary 投票 
+                                    //读取IRS.json
+                                    List<SmartRatingData> smartRatingDatas = new List<SmartRatingData>();
+                                    try
+                                    {
+                                        BlobDownloadResult smartRatingBlobDownload = await _azureStorage.GetBlobContainerClient(blobname).GetBlobClient($"/records/{_lessonId}/IES/IRS.json").DownloadContentAsync();
+                                        smartRatingDatas = smartRatingBlobDownload.Content.ToObjectFromJson<List<SmartRatingData>>();
+
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        if (!ex.Message.Contains("The specified blob does not exist"))
+                                        {
+                                            await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")},IRS.json转换异常,{ex.Message}{ex.StackTrace},{lessonRecord.id}", GroupNames.成都开发測試群組);
+                                        }
+                                    }
+                                    //读取互动信息
+                                    //Event 过滤类型  'PopQuesLoad', 'ReAtmpAnsStrt', 'BuzrAns','BuzrLoad'
+                                    //TimeLine.json 中找到对应类型,根据Pgid 去 IRS.json 中找到对应数据,从clientAnswers 的下标对应 base.json 中的 student 找到对应学生信息 clientAnswers.length > 1 则表示有二次作答
                                     //读取IRS.json
                                     //读取IRS.json
-                                    List<IRSData> iRSDatas = new List<IRSData>();
+                                    List<IRSData> irsDatas = new List<IRSData>();
                                     try
                                     try
                                     {
                                     {
                                         BlobDownloadResult irsBlobDownload = await _azureStorage.GetBlobContainerClient(blobname).GetBlobClient($"/records/{_lessonId}/IES/IRS.json").DownloadContentAsync();
                                         BlobDownloadResult irsBlobDownload = await _azureStorage.GetBlobContainerClient(blobname).GetBlobClient($"/records/{_lessonId}/IES/IRS.json").DownloadContentAsync();
-                                        iRSDatas = irsBlobDownload.Content.ToObjectFromJson<List<IRSData>>();
+                                        irsDatas = irsBlobDownload.Content.ToObjectFromJson<List<IRSData>>();
+
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        if (!ex.Message.Contains("The specified blob does not exist"))
+                                        {
+                                            await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")},IRS.json转换异常,{ex.Message}{ex.StackTrace},{lessonRecord.id}", GroupNames.成都开发測試群組);
+                                        }
+                                    }
+                                    //读取协作信息
+                                    ///Event 过滤类型  'CoworkLoad'
+                                    //TimeLine.json 中找到对应类型,根据Pgid 去 Cowork.json 中找到对应数据
+
+                                    List<CoworkData> coworkDatas = new List<CoworkData>();
+                                    try
+                                    {
+                                        BlobDownloadResult irsBlobDownload = await _azureStorage.GetBlobContainerClient(blobname).GetBlobClient($"/records/{_lessonId}/IES/Cowork.json").DownloadContentAsync();
+                                        coworkDatas = irsBlobDownload.Content.ToObjectFromJson<List<CoworkData>>();
 
 
                                     }
                                     }
                                     catch (Exception ex)
                                     catch (Exception ex)
@@ -1520,14 +1564,17 @@ namespace TEAMModelOS.Function
                                         }
                                         }
                                     }
                                     }
 
 
+                                    //读取base.json信息
                                     //如果有更新 则去读取/{_lessonId}/IES/base.json
                                     //如果有更新 则去读取/{_lessonId}/IES/base.json
+
+                                    LessonBase lessonBase = null;
                                     try
                                     try
                                     {
                                     {
                                         // await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")},课堂id:{_lessonId} 收到更新", GroupNames.醍摩豆服務運維群組);
                                         // await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")},课堂id:{_lessonId} 收到更新", GroupNames.醍摩豆服務運維群組);
                                         BlobDownloadResult baseblobDownload = await _azureStorage.GetBlobContainerClient(blobname).GetBlobClient($"/records/{_lessonId}/IES/base.json").DownloadContentAsync();
                                         BlobDownloadResult baseblobDownload = await _azureStorage.GetBlobContainerClient(blobname).GetBlobClient($"/records/{_lessonId}/IES/base.json").DownloadContentAsync();
                                         //attendState
                                         //attendState
                                         string basejson = baseblobDownload.Content.ToString().Replace("\"Uncall\"", "0").Replace("Uncall", "0");
                                         string basejson = baseblobDownload.Content.ToString().Replace("\"Uncall\"", "0").Replace("Uncall", "0");
-                                        LessonBase lessonBase = null;
+                                     
                                         try
                                         try
                                         {
                                         {
                                             lessonBase = basejson.ToObject<LessonBase>();
                                             lessonBase = basejson.ToObject<LessonBase>();
@@ -1672,7 +1719,7 @@ namespace TEAMModelOS.Function
 
 
                                         await BlobService.RefreshBlobRoot(new BlobRefreshMessage { progress = "update", root = "records", name = $"{blobname}" }, _serviceBus, _configuration, _azureRedis);
                                         await BlobService.RefreshBlobRoot(new BlobRefreshMessage { progress = "update", root = "records", name = $"{blobname}" }, _serviceBus, _configuration, _azureRedis);
                                         msgs.Add(update);
                                         msgs.Add(update);
-                                        DoLessonStudentRecord(_dingDing, _snowflakeId, lessonRecord, scope, client, school, tmdid, teacher, _serviceBus, _azureStorage, _configuration, lessonBase, _azureRedis, PickupMemberIds, taskDatas, iRSDatas);
+                                        DoLessonStudentRecord(_dingDing, _snowflakeId, lessonRecord, scope, client, school, tmdid, teacher, _serviceBus, _azureStorage, _configuration, lessonBase, _azureRedis, PickupMemberIds, taskDatas, irsDatas);
 
 
                                     }
                                     }
                                     catch (Exception ex)
                                     catch (Exception ex)

+ 3 - 3
TEAMModelOS.Function/TEAMModelOS.Function.csproj

@@ -5,9 +5,9 @@
     <OutputType>Exe</OutputType>
     <OutputType>Exe</OutputType>
     <ImplicitUsings>enable</ImplicitUsings>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Nullable>enable</Nullable>
-	<Version>5.2408.14</Version>
-	<AssemblyVersion>5.2408.14.1</AssemblyVersion>
-	<FileVersion>5.2408.14.1</FileVersion>
+	<Version>5.2408.28</Version>
+	<AssemblyVersion>5.2408.28.1</AssemblyVersion>
+	<FileVersion>5.2408.28.1</FileVersion>
 	<PackageId>TEAMModelOS.FunctionV4</PackageId>
 	<PackageId>TEAMModelOS.FunctionV4</PackageId>
 	<Authors>teammodel</Authors>
 	<Authors>teammodel</Authors>
 	<Company>醍摩豆(成都)信息技术有限公司</Company>
 	<Company>醍摩豆(成都)信息技术有限公司</Company>

+ 102 - 8
TEAMModelOS.SDK/Models/Cosmos/Common/LessonRecord.cs

@@ -229,24 +229,83 @@ namespace TEAMModelOS.SDK.Models
         /// 课例来源 0 本公司  1 第三方公司    是因支持VR/AR那边课例
         /// 课例来源 0 本公司  1 第三方公司    是因支持VR/AR那边课例
         /// </summary>
         /// </summary>
         public int source { get; set; } = 0;
         public int source { get; set; } = 0;
+
+    }
+    /// <summary>
+    /// 协同作业数据 Cowork.json 文件数据
+    /// </summary>
+    public class CoworkData 
+    {
+        public string pageID { get; set; }
+        public string name { get; set; }
+        //协作类型 All: '全体协作',    Group: '分组协作',      : '差异化协作',    差异化协作的简码是什么?  
+        public string coworkType { get; set; }
+        public List<CoworkGroupInfo> coworkGroupInfoList { get; set; }= new List<CoworkGroupInfo>();
     }
     }
 
 
+    public class CoworkGroupInfo
+    {
+        public string title { get; set; }
+        public string source { get; set; }
+        public string snapshot { get; set; }
+        /// <summary>
+        /// 小组成员及小组 ["1","2","3", "4",  "5",  "6", "G1"]
+        /// </summary>
+        public List<string> members { get; set; } = new List<string>();
+        public double participateLevel { get; set; }
+        /// <summary>
+        ///{"1":12,"2":9,"3":9,"4":9,"5":9,"6":9,"g1":0,"g2":0,"g3":0,"g4":0,"g5":0,"g6":0}
+        /// </summary>
+        public Dictionary<string, double> participateLevelList { get; set; } = new Dictionary<string, double>();
+    }
+    /// <summary>
+    /// 智慧评分 SmartRating.json 文件数据
+    /// </summary>
+    public class SmartRatingData
+    {
+        
+    }
+    /// <summary>
+    /// Task.json
+    /// </summary>
     public class TaskData { 
     public class TaskData { 
-        public string jobName { get; set; }
+        //public string jobName { get; set; }
+        /// <summary>
+        /// 页面ID
+        /// </summary>
         public string pageID { get; set; }
         public string pageID { get; set; }
+        /// <summary>
+        ///任务回传数
+        /// </summary>
         public int reciveCount { get; set; }
         public int reciveCount { get; set; }
-        public string duration { get; set; }
-        public string collateType { get; set; }
+        //public string duration { get; set; }
+        //public string collateType { get; set; }
+        /// <summary>
+        /// 任务的终端回传数据
+        /// </summary>
         public List<ClientWork> clientWorks { get; set; } = new List<ClientWork>();
         public List<ClientWork> clientWorks { get; set; } = new List<ClientWork>();
     }
     }
     public class ClientWork { 
     public class ClientWork { 
         public List<string> blobFiles { get; set; }= new List<string>();
         public List<string> blobFiles { get; set; }= new List<string>();
+        /// <summary>
+        /// 座位号
+        /// </summary>
         public int seatID  { get; set; }
         public int seatID  { get; set; }
+        /// <summary>
+        /// 小组id
+        /// </summary>
         public string groupID { get; set; }
         public string groupID { get; set; }
+        /// <summary>
+        /// 是否是小组
+        /// </summary>
         public bool isGroupItem { get; set; }
         public bool isGroupItem { get; set; }
-        public string reciveTime { get; set; }
-        public int displayIndex {  get; set; }
+        //public string reciveTime { get; set; }
+        // public int displayIndex {  get; set; }
     }
     }
+
+    /// <summary>
+    /// IRSData
+    /// </summary>
     public class IRSData
     public class IRSData
     {
     {
         public string pageID { get; set; }
         public string pageID { get; set; }
@@ -255,18 +314,53 @@ namespace TEAMModelOS.SDK.Models
         public Dictionary<string, List<List<string>>> clientAnswers { get; set; } = new Dictionary<string, List<List<string>>>();
         public Dictionary<string, List<List<string>>> clientAnswers { get; set; } = new Dictionary<string, List<List<string>>>();
 
 
     }
     }
+    /// <summary>
+    /// TimeLine.json
+    /// </summary>
     public class TimeLineData {
     public class TimeLineData {
       public   List<TimeLineEvent> events { get; set; } = new List<TimeLineEvent>();
       public   List<TimeLineEvent> events { get; set; } = new List<TimeLineEvent>();
     }
     }
     public class TimeLineEvent
     public class TimeLineEvent
     {
     {
-        public double Time{ get; set; }
-        public int EventId { get; set; }
+        /// <summary>
+        /// 时间点
+        /// </summary>
+        //  public double Time{ get; set; }
+        /// <summary>
+        /// 事件ID
+        /// </summary>
+        // public int EventId { get; set; }
+        /// <summary>
+        /// 事件
+        /// 推送相关 在Push.json处理 DifObjPush  差异化推送,FastPgPush 同一推送
+        /// 互动相关 在IRS.json处理 'PopQuesLoad'互动问答 , 'ReAtmpAnsStrt' 二次作答 , 'BuzrAns'  抢权(新), 'BuzrLoad'抢权(旧), PickupResult   挑人算不算互动??  读取PickupMemberId "[\r\n  35\r\n]"
+        /// 测验相关 在IRS.json处理 SPQStrt 测验模式
+        /// 任务相关 在Task.json处理 'WrkSpaceLoad' 作品收集, 'WrkCmp' 作品贴上  是什么操作
+        /// 评分相关 在SmartRating.json 处理 'SmartRating' 评分模式,分 投票Voting 和 GrandRating  星光大评分(All每人多件评分,Two随机分配互评, Self自评)    
+        /// 协作相关 在Cowork.json 处理   CoworkLoad 协作类型   coworkType   All: '全体协作',    Group: '分组协作',   其他的为  : '差异化协作',
+        /// </summary>
         public string Event { get; set; }
         public string Event { get; set; }
+        /// <summary>
+        ///   WrkCmp 作品贴上
+        /// </summary>
         public string WrkCmpSrcType { get; set; }
         public string WrkCmpSrcType { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
         public int  WrkCmpCount { get; set; }
         public int  WrkCmpCount { get; set; }
+        /// <summary>
+        /// 类型
+        /// </summary>
         public int WrkType { get; set; }
         public int WrkType { get; set; }
         public string PickupMemberId { get; set; }
         public string PickupMemberId { get; set; }
+        /// <summary>
+        /// 页面id
+        /// </summary>
+        public string Pgid { get; set;}
+        /// <summary>
+        /// 評分類型
+        /// </summary>
+        public string RatingType { get; set; }
     }
     }
     public class LearningCategory {
     public class LearningCategory {
         /// <summary>
         /// <summary>
@@ -335,7 +429,7 @@ namespace TEAMModelOS.SDK.Models
         public int disDCount { get; set; } = 0;
         public int disDCount { get; set; } = 0;
     }
     }
     /// <summary>
     /// <summary>
-    /// /{_lessonId}/IES/TimeLine.json 课堂记录基础信息
+    /// /{_lessonId}/IES/base.json 课堂记录基础信息
     /// </summary>
     /// </summary>
     public class LessonBase {
     public class LessonBase {
         /// <summary>
         /// <summary>

+ 56 - 9
TEAMModelOS.SDK/Models/Cosmos/Common/StudentScoreRecord.cs

@@ -47,19 +47,12 @@ namespace TEAMModelOS.SDK.Models.Cosmos.Common
 
 
         public List<StudentLessonRecord> lessonRecords { get; set; } = new List<StudentLessonRecord>();
         public List<StudentLessonRecord> lessonRecords { get; set; } = new List<StudentLessonRecord>();
         //单独记录 组计分,个人积分,互动分,
         //单独记录 组计分,个人积分,互动分,
-        /// <summary>
-        /// //组计分
-        /// </summary>
-        public double gscore { get; set; }
+
         /// <summary>
         /// <summary>
         ///  //个人计分
         ///  //个人计分
         /// </summary>
         /// </summary>
         public double pscore { get; set; }
         public double pscore { get; set; }
         /// <summary>
         /// <summary>
-        /// //互动计分
-        /// </summary>
-        public double tscore { get; set; } 
-        /// <summary>
         /// 互动参与率
         /// 互动参与率
         /// </summary>
         /// </summary>
         public double interactRate { get; set; }
         public double interactRate { get; set; }
@@ -72,9 +65,47 @@ namespace TEAMModelOS.SDK.Models.Cosmos.Common
         /// </summary>
         /// </summary>
         public double attendRate { get; set; }
         public double attendRate { get; set; }
         /// <summary>
         /// <summary>
+        /// //互动计分
+        /// </summary>
+        public double tscore { get; set; }
+        /// <summary>
+        /// //组计分
+        /// </summary>
+        public double gscore { get; set; }
+        /// <summary>
         /// 组任务参与率
         /// 组任务参与率
         /// </summary>
         /// </summary>
         public double groupTaskRate { get; set; }
         public double groupTaskRate { get; set; }
+        /// <summary>
+        /// 互评参与率, 实际评论数/需要评论的数量
+        /// </summary>
+        public double commentRate { get; set; }
+        /// <summary>
+        /// 协作参与率(小组协作,个人协作,差异化协作)
+        /// </summary>
+        public double cooperationRate { get; set; }
+
+        /// <summary>
+        /// 合作能力表现
+        /// </summary>
+        public double grate { get; set; } = 60;
+        /// <summary>
+        /// 学习成效表现
+        /// </summary>
+        public double prate { get; set; } = 60;
+        /// <summary>
+        /// 学习态度表现
+        /// </summary>
+        public double trate { get; set; } = 60;
+        /// <summary>
+        /// 协作能力表现
+        /// </summary>
+        public double xrate { get; set; } = 60;
+        /// <summary>
+        /// 评价能力表现
+        /// </summary>
+        public double crate { get; set; } = 60;
+       
     }
     }
 
 
 
 
@@ -101,6 +132,12 @@ namespace TEAMModelOS.SDK.Models.Cosmos.Common
         public double gscore { get; set; } //组计分
         public double gscore { get; set; } //组计分
         public double pscore { get; set; }  //个人计分
         public double pscore { get; set; }  //个人计分
         public double tscore { get; set; } //互动计分
         public double tscore { get; set; } //互动计分
+
+        public double xrate { get; set; } = 60;
+        public double crate { get; set; } = 60;
+        public double grate { get; set; } = 60;
+        public double prate { get; set; } = 60;
+        public double trate { get; set; } = 60;
     }
     }
 
 
 
 
@@ -143,6 +180,9 @@ namespace TEAMModelOS.SDK.Models.Cosmos.Common
         public double gscore { get; set; } //组计分
         public double gscore { get; set; } //组计分
         public double pscore { get; set; }  //个人计分
         public double pscore { get; set; }  //个人计分
         public double tscore { get; set; } //互动计分
         public double tscore { get; set; } //互动计分
+
+        public double xscore { get; set; } = 60;
+        public double cscore { get; set; } = 60;
         /// <summary>
         /// <summary>
         /// 课例时间
         /// 课例时间
         /// </summary>
         /// </summary>
@@ -163,7 +203,14 @@ namespace TEAMModelOS.SDK.Models.Cosmos.Common
         /// 组任务参与率
         /// 组任务参与率
         /// </summary>
         /// </summary>
         public double groupTaskRate { get; set; }
         public double groupTaskRate { get; set; }
-
+        /// <summary>
+        /// 互评参与率, 实际评论数/需要评论的数量
+        /// </summary>
+        public double commentRate { get; set; }
+        /// <summary>
+        /// 协作参与率(小组协作,个人协作,差异化协作)
+        /// </summary>
+        public double cooperationRate { get; set; }
         /// <summary>
         /// <summary>
         /// 名单信息
         /// 名单信息
         /// </summary>
         /// </summary>

+ 3 - 3
TEAMModelOS.SDK/TEAMModelOS.SDK.csproj

@@ -1,9 +1,9 @@
 <Project Sdk="Microsoft.NET.Sdk">
 <Project Sdk="Microsoft.NET.Sdk">
 	<PropertyGroup>
 	<PropertyGroup>
 		<TargetFramework>net8.0</TargetFramework>
 		<TargetFramework>net8.0</TargetFramework>
-		<Version>5.2408.14</Version>
-		<AssemblyVersion>5.2408.14.1</AssemblyVersion>
-		<FileVersion>5.2408.14.1</FileVersion>
+		<Version>5.2408.28</Version>
+		<AssemblyVersion>5.2408.28.1</AssemblyVersion>
+		<FileVersion>5.2408.28.1</FileVersion>
 		<PackageReleaseNotes>发版</PackageReleaseNotes>
 		<PackageReleaseNotes>发版</PackageReleaseNotes>
 	</PropertyGroup>
 	</PropertyGroup>
 
 

+ 45 - 6
TEAMModelOS/Controllers/Student/OverallEducationController.cs

@@ -342,13 +342,14 @@ namespace TEAMModelOS.Controllers
                     }
                     }
                     dimensionScore.pscore = pdata_score;
                     dimensionScore.pscore = pdata_score;
                    
                    
-                    //态度
+                    //态度=》学习态度
                     double attitude = 0.1;
                     double attitude = 0.1;
-                    //合作
+                    //合作=》合作能力
                     double cooperate = 0.1;
                     double cooperate = 0.1;
-                    //能力
+                    //能力=》  //协作能力     //评价能力
+
                     double ability = 0.1;
                     double ability = 0.1;
-                    //水平
+                    //水平=》学习成效
                     double standard = 0.7;
                     double standard = 0.7;
                     var attitudeWeight = schoolSetting.overallEducationSetting.intelligenceWeight.Find(x => x.code.Equals("attitude"));
                     var attitudeWeight = schoolSetting.overallEducationSetting.intelligenceWeight.Find(x => x.code.Equals("attitude"));
                     attitude = attitudeWeight != null ? attitudeWeight.value : attitude;
                     attitude = attitudeWeight != null ? attitudeWeight.value : attitude;
@@ -496,6 +497,7 @@ namespace TEAMModelOS.Controllers
                     classDimensionScore.tscore = Math.Round(classData.list.Average(x => x.tscore),2);
                     classDimensionScore.tscore = Math.Round(classData.list.Average(x => x.tscore),2);
                     classDimensionScore.gscore = Math.Round(classData.list.Average(x => x.gscore),2);
                     classDimensionScore.gscore = Math.Round(classData.list.Average(x => x.gscore),2);
                     classDimensionScore.exam = Math.Round(classData.list.Average(x => x.exam), 2);
                     classDimensionScore.exam = Math.Round(classData.list.Average(x => x.exam), 2);
+
                     double  intelligenceScore = Math.Round(classData.list.Average(x => x.intelligence), 2);
                     double  intelligenceScore = Math.Round(classData.list.Average(x => x.intelligence), 2);
                     schoolSetting.overallEducationSetting.reviewLevel.ForEach(z => {
                     schoolSetting.overallEducationSetting.reviewLevel.ForEach(z => {
                         if (z.value[0] <= intelligenceScore && z.value[1] > intelligenceScore)
                         if (z.value[0] <= intelligenceScore && z.value[1] > intelligenceScore)
@@ -703,13 +705,18 @@ namespace TEAMModelOS.Controllers
                             subject_painting=0,
                             subject_painting=0,
                             tscore=60,
                             tscore=60,
                             virtue=60,
                             virtue=60,
+                            crate=60,
+                            xrate=60,
+                            grate=60,
+                            prate=60,
+                            trate=60,
                         };
                         };
                     }
                     }
                     else {
                     else {
                         studentDimension.stuExamScores= stuExamScores;
                         studentDimension.stuExamScores= stuExamScores;
                     }
                     }
                     var classDimension = classDimensions.Find(z => z.classId.Equals(student.classId));
                     var classDimension = classDimensions.Find(z => z.classId.Equals(student.classId));
-                    studentStatistics= new { studentDimension, inClass = classDimension, inGrade = new { grade_gscore_avg, grade_pscore_avg, grade_tscore_avg } };
+                    studentStatistics= new { studentDimension, inClass = classDimension, inGrade = new { grade_gscore_avg, grade_pscore_avg, grade_tscore_avg , grade_xrate_avg =0, grade_crate_avg = 0 , grade_grate_avg= grade_gscore_avg, grade_prate_avg= grade_pscore_avg, grade_trate_avg = grade_tscore_avg, } };
                     studentOverallEducation = overallEducations.FindAll(x => x.studentId.Equals($"{_studentId}")).FirstOrDefault();
                     studentOverallEducation = overallEducations.FindAll(x => x.studentId.Equals($"{_studentId}")).FirstOrDefault();
                     if (studentOverallEducation==null)
                     if (studentOverallEducation==null)
                     {
                     {
@@ -737,9 +744,22 @@ namespace TEAMModelOS.Controllers
                     grade_pscore_avg,
                     grade_pscore_avg,
                     grade_tscore_avg,
                     grade_tscore_avg,
                     grade_gscore_avg,
                     grade_gscore_avg,
+
+                    grade_prate_avg= grade_pscore_avg,
+                    grade_trate_avg= grade_tscore_avg,
+                    grade_grate_avg= grade_gscore_avg,
+                    grade_xrate_avg = 60,
+                    grade_crate_avg = 60,
+
                     pscore_avg,
                     pscore_avg,
                     tscore_avg,
                     tscore_avg,
                     gscore_avg,
                     gscore_avg,
+
+                    prate_avg = pscore_avg,
+                    trate_avg = tscore_avg,
+                    grate_avg = gscore_avg,
+                    xrate_avg =60,
+                    crate_avg=60,
                     classDimensions,
                     classDimensions,
                     dimensions=dimensions.OrderByDescending(x => x.score),
                     dimensions=dimensions.OrderByDescending(x => x.score),
                     data_count,
                     data_count,
@@ -760,7 +780,8 @@ namespace TEAMModelOS.Controllers
                     subject_painting_rate60,
                     subject_painting_rate60,
                     studentCount = students.Count(),
                     studentCount = students.Count(),
                     studentOverallEducation,
                     studentOverallEducation,
-                    studentStatistics
+                    studentStatistics,
+                    
                 });
                 });
             }
             }
             catch (Exception ex)
             catch (Exception ex)
@@ -798,6 +819,11 @@ namespace TEAMModelOS.Controllers
             public double gscore { get; set; }
             public double gscore { get; set; }
             public double pscore { get; set; }
             public double pscore { get; set; }
             public double tscore { get; set; }
             public double tscore { get; set; }
+            public double xrate { get; set; } = 60;
+            public double crate { get; set; } = 60;
+            public double grate { get; set; } = 60;
+            public double prate { get; set; } = 60;
+            public double trate { get; set; } = 60;
 
 
         }
         }
         public class ExamDimensionScore
         public class ExamDimensionScore
@@ -816,6 +842,13 @@ namespace TEAMModelOS.Controllers
             public double gscore { get; set; }
             public double gscore { get; set; }
             public double pscore { get; set; }
             public double pscore { get; set; }
             public double tscore { get; set; }
             public double tscore { get; set; }
+
+            public double grate { get; set; } = 60;
+            public double prate { get; set; } = 60;
+            public double trate { get; set; } = 60;
+            public double crate { get; set; } = 60;
+            public double xrate { get; set; } = 60;
+            
             public double exam { get; set; }
             public double exam { get; set; }
             public string intelligenceLevel { get; set; }
             public string intelligenceLevel { get; set; }
 
 
@@ -845,6 +878,12 @@ namespace TEAMModelOS.Controllers
             public double gscore { get; set; }
             public double gscore { get; set; }
             public double pscore { get; set; }
             public double pscore { get; set; }
             public double tscore { get; set; }
             public double tscore { get; set; }
+
+            public double grate { get; set; } = 60;
+            public double prate { get; set; } = 60;
+            public double trate { get; set; } = 60;
+            public double crate { get; set; } = 60;
+            public double xrate { get; set; } = 60;
             public int classRanking { get; set; }
             public int classRanking { get; set; }
             public int gradeRanking { get; set; }
             public int gradeRanking { get; set; }
             public string level { get; set; }
             public string level { get; set; }

+ 4 - 4
TEAMModelOS/TEAMModelOS.csproj

@@ -80,11 +80,11 @@
 		<SpaRoot>ClientApp\</SpaRoot>
 		<SpaRoot>ClientApp\</SpaRoot>
 		<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
 		<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
 		<UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
 		<UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
-		<Version>5.2408.21</Version>
-		<AssemblyVersion>5.2408.21.1</AssemblyVersion>
-		<FileVersion>5.2408.21.1</FileVersion>
+		<Version>5.2408.28</Version>
+		<AssemblyVersion>5.2408.28.1</AssemblyVersion>
+		<FileVersion>5.2408.28.1</FileVersion>
 		<Description>TEAMModelOS(IES5)</Description>
 		<Description>TEAMModelOS(IES5)</Description>
-		<PackageReleaseNotes>IES版本说明版本切换标记5.2408.21.1</PackageReleaseNotes>
+		<PackageReleaseNotes>IES版本说明版本切换标记5.2408.28.1</PackageReleaseNotes>
 		<PackageId>TEAMModelOS</PackageId>
 		<PackageId>TEAMModelOS</PackageId>
 		<Authors>teammodel</Authors>
 		<Authors>teammodel</Authors>
 		<Company>醍摩豆(成都)信息技术有限公司</Company>
 		<Company>醍摩豆(成都)信息技术有限公司</Company>

+ 1 - 1
TEAMModelOS/appsettings.Development.json

@@ -18,7 +18,7 @@
     "IdTokenSalt": "8263692E2213497BB55E74792B7900B4",
     "IdTokenSalt": "8263692E2213497BB55E74792B7900B4",
     "HttpTrigger": "https://teammodelosfunction-test.chinacloudsites.cn/api/",
     "HttpTrigger": "https://teammodelosfunction-test.chinacloudsites.cn/api/",
     //"HttpTrigger": "http://localhost:7071/api/"
     //"HttpTrigger": "http://localhost:7071/api/"
-    "Version": "5.2408.21.1"
+    "Version": "5.2408.28.1"
   },
   },
   "Azure": {
   "Azure": {
     // 测试站数据库
     // 测试站数据库

+ 1 - 1
TEAMModelOS/appsettings.json

@@ -18,7 +18,7 @@
     "Exp": 86400,
     "Exp": 86400,
     "IdTokenSalt": "8263692E2213497BB55E74792B7900B4",
     "IdTokenSalt": "8263692E2213497BB55E74792B7900B4",
     "HttpTrigger": "https://teammodelosfunction.chinacloudsites.cn/api/",
     "HttpTrigger": "https://teammodelosfunction.chinacloudsites.cn/api/",
-    "Version": "5.2408.21.1"
+    "Version": "5.2408.28.1"
   },
   },
   "Azure": {
   "Azure": {
     "Storage": {
     "Storage": {