From 632036d358a7d50b3bf7c0f9d7e4fc0eb9f337cf Mon Sep 17 00:00:00 2001
From: tanglong <842690096@qq.com>
Date: Mon, 27 Apr 2026 16:01:33 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=88=90=E7=BB=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../SportsHall/ISportsHallService.cs | 7 +++
.../Services/SportsHall/SportsHallService.cs | 47 +++++++++++++++
.../SportsHallStudentsTestDataUpdateParam.cs | 57 +++++++++++++++++++
.../SportsHall/SportsHallController.cs | 11 ++++
4 files changed, 122 insertions(+)
create mode 100644 VOL.Model/School/Request/SportsHallStudentsTestDataUpdateParam.cs
diff --git a/VOL.Business/IServices/SportsHall/ISportsHallService.cs b/VOL.Business/IServices/SportsHall/ISportsHallService.cs
index f58df29..f4f2415 100644
--- a/VOL.Business/IServices/SportsHall/ISportsHallService.cs
+++ b/VOL.Business/IServices/SportsHall/ISportsHallService.cs
@@ -47,5 +47,12 @@ namespace VOL.Business.IServices.SportsHall
///
///
Task ScorePush(SportsHallStudentsTestParam paramDto);
+
+ ///
+ /// 成绩修正
+ ///
+ ///
+ ///
+ Task ScoreUpdate(SportsHallStudentsTestDataUpdateParam paramDto);
}
}
diff --git a/VOL.Business/Services/SportsHall/SportsHallService.cs b/VOL.Business/Services/SportsHall/SportsHallService.cs
index 1fd104a..06ac952 100644
--- a/VOL.Business/Services/SportsHall/SportsHallService.cs
+++ b/VOL.Business/Services/SportsHall/SportsHallService.cs
@@ -587,5 +587,52 @@ namespace VOL.Business.Services.SportsHall
await _sportsTestResultRepository.DbContext.Database
.ExecuteSqlRawAsync(sql.ToString(), parameters.ToArray());
}
+
+ ///
+ /// 成绩修成
+ ///
+ ///
+ ///
+ public async Task ScoreUpdate(SportsHallStudentsTestDataUpdateParam paramDto)
+ {
+ // 获取该学生每个项目的最新一条记录
+ var list = await _sportsTestResultRepository.DbContext.Set()
+ .Where(s => s.SchoolCode == "202506170049" && s.StudentNo == paramDto.StudentNo)
+ .GroupBy(x => x.CategoryValue)
+ .Select(g => g.OrderByDescending(x => x.ScoreTime).FirstOrDefault())
+ .ToListAsync();
+
+ if (list == null || !list.Any())
+ return;
+
+ foreach (var entity in list)
+ {
+ switch (entity.CategoryValue)
+ {
+ case (int)SportsTestItemType.BMI:
+ entity.Value = paramDto.BMIValue;
+ break;
+ case (int)SportsTestItemType.VitalCapacity:
+ entity.Value = paramDto.VitalCapacityValue;
+ break;
+ case (int)SportsTestItemType.Sit_And_Reach:
+ entity.Value = paramDto.Sit_And_ReachValue;
+ break;
+ case (int)SportsTestItemType.OneMinuteJumpRope:
+ entity.Value = paramDto.OneMinuteJumpRopeValue;
+ break;
+ case (int)SportsTestItemType.One_Minute_Sit_Up:
+ entity.Value = paramDto.One_Minute_Sit_UpValue;
+ break;
+ case (int)SportsTestItemType.StandingLongJump:
+ entity.Value = paramDto.StandingLongJumpValue;
+ break;
+ }
+ }
+
+ _sportsTestResultRepository.UpdateRange(list);
+
+ await _sportsTestResultRepository.DbContext.SaveChangesAsync();
+ }
}
}
diff --git a/VOL.Model/School/Request/SportsHallStudentsTestDataUpdateParam.cs b/VOL.Model/School/Request/SportsHallStudentsTestDataUpdateParam.cs
new file mode 100644
index 0000000..29b0e37
--- /dev/null
+++ b/VOL.Model/School/Request/SportsHallStudentsTestDataUpdateParam.cs
@@ -0,0 +1,57 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace VOL.Model.School.Request
+{
+ ///
+ /// 运动馆体测成绩修正
+ ///
+ public class SportsHallStudentsTestDataUpdateParam
+ {
+ ///
+ ///学号
+ ///
+ [Display(Name = "学号")]
+ public string StudentNo { get; set; }
+
+ ///
+ /// 体重指数(BMI)
+ ///
+ [Display(Name = "BMI")]
+ public float BMIValue { get; set; }
+
+ ///
+ /// 肺活量
+ ///
+ [Display(Name = "肺活量")]
+ public float VitalCapacityValue { get; set; }
+
+ ///
+ /// 坐位体前屈
+ ///
+ [Display(Name = "坐位体前屈")]
+ public float Sit_And_ReachValue { get; set; }
+
+ ///
+ /// 1分钟跳绳
+ ///
+ [Display(Name = "一分钟跳绳")]
+ public int OneMinuteJumpRopeValue { get; set; }
+
+ ///
+ /// 1分钟仰卧起坐(女)
+ ///
+ [Display(Name = "一分钟仰卧起坐")]
+ public int One_Minute_Sit_UpValue { get; set; }
+
+ ///
+ /// 立定跳远
+ ///
+ [Display(Name = "立定跳远")]
+ public float StandingLongJumpValue { get; set; }
+ }
+}
diff --git a/VOL.WebApi/Controllers/SportsHall/SportsHallController.cs b/VOL.WebApi/Controllers/SportsHall/SportsHallController.cs
index 1a62731..f4d033d 100644
--- a/VOL.WebApi/Controllers/SportsHall/SportsHallController.cs
+++ b/VOL.WebApi/Controllers/SportsHall/SportsHallController.cs
@@ -91,5 +91,16 @@ namespace VOL.WebApi.Controllers.SportsHall
return Ok("推送成功");
}
+ ///
+ /// 成绩修正
+ ///
+ ///
+ ///
+ [HttpPost(nameof(ScoreUpdate))]
+ public async Task ScoreUpdate([FromBody] SportsHallStudentsTestDataUpdateParam paramDto)
+ {
+ await _sportsHallService.ScoreUpdate(paramDto);
+ return Ok("更新成功");
+ }
}
}