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("更新成功"); + } } }