|
@@ -67,8 +67,21 @@ namespace TEAMModelOS.Controllers
|
|
trains.ForEach(x => {
|
|
trains.ForEach(x => {
|
|
x.finalScore = finalScore;
|
|
x.finalScore = finalScore;
|
|
teacherTrains.Add(client.GetContainer(Constant.TEAMModelOS, "Teacher").ReplaceItemAsync(x, x.id, new PartitionKey(x.code)));
|
|
teacherTrains.Add(client.GetContainer(Constant.TEAMModelOS, "Teacher").ReplaceItemAsync(x, x.id, new PartitionKey(x.code)));
|
|
- });
|
|
|
|
- await Task.WhenAll(teacherTrains);
|
|
|
|
|
|
+ });
|
|
|
|
+ int pagesize = 50;
|
|
|
|
+ if (teacherTrains.Count <= pagesize)
|
|
|
|
+ {
|
|
|
|
+ await Task.WhenAll(teacherTrains);
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ int pages = (teacherTrains.Count + pagesize) / pagesize; //256是批量操作最大值,pages = (total + max -1) / max;
|
|
|
|
+ for (int i = 0; i < pages; i++)
|
|
|
|
+ {
|
|
|
|
+ var listssb = teacherTrains.Skip((i) * pagesize).Take(pagesize).ToList();
|
|
|
|
+ await Task.WhenAll(listssb);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
return Ok(new { status=200});
|
|
return Ok(new { status=200});
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
@@ -187,24 +200,48 @@ namespace TEAMModelOS.Controllers
|
|
//增加评审人员总人数,学习总人数。
|
|
//增加评审人员总人数,学习总人数。
|
|
trains.Add(StatisticsService.StatisticsSchool(school.id, setting, area, client, _dingDing, null));
|
|
trains.Add(StatisticsService.StatisticsSchool(school.id, setting, area, client, _dingDing, null));
|
|
}
|
|
}
|
|
- (List<TeacherTrain> trains, List<RGroupList> yxtrain)[] tasks = await Task.WhenAll(trains);
|
|
|
|
- tasks.ToList().ForEach(x => {
|
|
|
|
- teacherTrains.AddRange(x.trains);
|
|
|
|
- schoolInfos.ForEach(y => {
|
|
|
|
- var list = x.yxtrain.Find(z => z.school.Equals(y.schoolId));
|
|
|
|
- if (list != null) {
|
|
|
|
- y.trainCount = list.members.Count;
|
|
|
|
- }
|
|
|
|
|
|
+ int pagesize = 100;
|
|
|
|
+ if (trains.Count <= pagesize)
|
|
|
|
+ {
|
|
|
|
+ (List<TeacherTrain> trains, List<RGroupList> yxtrain)[] tasks = await Task.WhenAll(trains);
|
|
|
|
+ tasks.ToList().ForEach(x => {
|
|
|
|
+ teacherTrains.AddRange(x.trains);
|
|
|
|
+ schoolInfos.ForEach(y => {
|
|
|
|
+ var list = x.yxtrain.Find(z => z.school.Equals(y.schoolId));
|
|
|
|
+ if (list != null)
|
|
|
|
+ {
|
|
|
|
+ y.trainCount = list.members.Count;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
});
|
|
});
|
|
- });
|
|
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ int pages = (trains.Count + pagesize) / pagesize; //256是批量操作最大值,pages = (total + max -1) / max;
|
|
|
|
+ for (int i = 0; i < pages; i++)
|
|
|
|
+ {
|
|
|
|
+ var listssb = trains.Skip((i) * pagesize).Take(pagesize).ToList();
|
|
|
|
+ (List<TeacherTrain> trains, List<RGroupList> yxtrain)[] tasks = await Task.WhenAll(listssb);
|
|
|
|
+ tasks.ToList().ForEach(x => {
|
|
|
|
+ teacherTrains.AddRange(x.trains);
|
|
|
|
+ schoolInfos.ForEach(y => {
|
|
|
|
+ var list = x.yxtrain.Find(z => z.school.Equals(y.schoolId));
|
|
|
|
+ if (list != null)
|
|
|
|
+ {
|
|
|
|
+ y.trainCount = list.members.Count;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
long totalTime=teacherTrains.Select(x => x.totalTime).Sum();
|
|
long totalTime=teacherTrains.Select(x => x.totalTime).Sum();
|
|
int hgcount = teacherTrains.Where(x => x.finalScore==1||x.finalScore==2).Count();
|
|
int hgcount = teacherTrains.Where(x => x.finalScore==1||x.finalScore==2).Count();
|
|
var teacherAilities = teacherTrains.SelectMany(x => x.currency.teacherAilities);
|
|
var teacherAilities = teacherTrains.SelectMany(x => x.currency.teacherAilities);
|
|
-
|
|
|
|
return Ok(new { teacherTrains, setting, schools= schoolInfos , totalTime, hgcount, teacherAilities, teacherCount = countArea, appraiseCount = appraiseArea });
|
|
return Ok(new { teacherTrains, setting, schools= schoolInfos , totalTime, hgcount, teacherAilities, teacherCount = countArea, appraiseCount = appraiseArea });
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
{
|
|
{
|
|
|
|
+ await _dingDing.SendBotMsg($"OS,{_option.Location},UpsertSubmitScore/UpsertSubmitScore()\n{ex.Message}\n{ex.StackTrace}", GroupNames.醍摩豆服務運維群組);
|
|
return BadRequest(new { ex.Message, ex.StackTrace });
|
|
return BadRequest(new { ex.Message, ex.StackTrace });
|
|
|
|
|
|
}
|
|
}
|
|
@@ -506,7 +543,7 @@ namespace TEAMModelOS.Controllers
|
|
int voteAreaDoneCount = 0;
|
|
int voteAreaDoneCount = 0;
|
|
int examAreaDoneCount = 0;
|
|
int examAreaDoneCount = 0;
|
|
int videoTime = 0;
|
|
int videoTime = 0;
|
|
- List<string> abilityIds = new List<string>();
|
|
|
|
|
|
+ HashSet<string> abilityIds = new HashSet<string>();
|
|
await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Teacher")
|
|
await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Teacher")
|
|
.GetItemQueryIterator<AbilitySub>(queryText: $"select value(c) from c ", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"AbilitySub-{_school}-{_tmdid}") }))
|
|
.GetItemQueryIterator<AbilitySub>(queryText: $"select value(c) from c ", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"AbilitySub-{_school}-{_tmdid}") }))
|
|
{
|
|
{
|
|
@@ -535,7 +572,7 @@ namespace TEAMModelOS.Controllers
|
|
}
|
|
}
|
|
abilityIds.Add(item.id);
|
|
abilityIds.Add(item.id);
|
|
}
|
|
}
|
|
- if (abilityIds.IsNotEmpty())
|
|
|
|
|
|
+ if (abilityIds.Count>0)
|
|
{
|
|
{
|
|
string queryText = $"SELECT c.stds FROM c WHERE c.id IN ({string.Join(",", abilityIds.Select(o => $"'{o}'"))})";
|
|
string queryText = $"SELECT c.stds FROM c WHERE c.id IN ({string.Join(",", abilityIds.Select(o => $"'{o}'"))})";
|
|
await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Normal")
|
|
await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Normal")
|