From 1920c6ba9c42866ffffbdd83d0053ad16ca5e256 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=82=A5=E7=BE=8A?= <1048382248@qq.com> Date: Mon, 8 Dec 2025 17:55:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20Excel=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=AD=A6=E7=94=9F=E4=BF=A1=E6=81=AF=E6=97=B6=20=E5=85=B3?= =?UTF-8?q?=E8=81=94=E8=A1=A8=E6=97=A0=E6=95=B0=E6=8D=AE=E7=9A=84=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=89=80=E4=BB=A5=E5=AF=BC=E8=87=B4=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=B8=BA=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/SchoolBusinessController.cs | 4 +- .../Controllers/StudentController.cs | 59 +++++++++++++------ Learn.Archives.API/appsettings.json | 4 +- 3 files changed, 45 insertions(+), 22 deletions(-) diff --git a/Learn.Archives.API/Controllers/SchoolBusinessController.cs b/Learn.Archives.API/Controllers/SchoolBusinessController.cs index 54ee941..610217d 100644 --- a/Learn.Archives.API/Controllers/SchoolBusinessController.cs +++ b/Learn.Archives.API/Controllers/SchoolBusinessController.cs @@ -138,7 +138,6 @@ namespace Learn.Archives.API.Controllers //处理数据 var errorExcelInfo = new List(); var insertInfo = new List(); - var db = schoolService.Context; foreach (var imp in dataList) { var school = await schoolService.GetFirstAsync(s => s.Name == imp.School); @@ -167,7 +166,8 @@ namespace Learn.Archives.API.Controllers .Select(s => s.Name).ToArrayAsync(); if (adminArr == null || adminArr.Length!= adminNameArr.Length) { - imp.Error = $"赴校人员未能完全识别成功"; + var nStr = string.Join(',', adminNameArr.Where(s => !adminArr.Contains(s))); + imp.Error = $"赴校人员未能完全识别成功 ->{nStr}"; errorExcelInfo.Add(imp); continue; } diff --git a/Learn.Archives.API/Controllers/StudentController.cs b/Learn.Archives.API/Controllers/StudentController.cs index 7ff87b2..a4d6d0f 100644 --- a/Learn.Archives.API/Controllers/StudentController.cs +++ b/Learn.Archives.API/Controllers/StudentController.cs @@ -456,25 +456,48 @@ namespace Learn.Archives.API.Controllers s.JoinTime, s.ExitTime, s.Remark}.Any(x => !(x == default || x == null))).ToList(); - // 测试IgnoreColumns是否真实有效 - await baseService.AsUpdateable(updateArr) - .UpdateColumns(s => new - { - s.AmountRelief, - s.ReliefApplication, - s.ReliefType, - s.ReliefSubTime, - s.StudentType, - s.Status, - s.JoinTime, - s.ExitTime, - s.Remark - }) - //更新忽略null并且忽略默认值 (比如int默认值是0就不更新) - .IgnoreColumns(ignoreAllNullColumns: true, ignoreAllDefaultValue: true) - .WhereColumns(it => new { it.UserCenterId }) - .ExecuteCommandAsync(); + //查询差异 + var addInfoUserArr = updateArr.Select(s => s.UserCenterId).ToArray(); + var hasUIdArr = await baseService.AsQueryable() + .Where(s => addInfoUserArr.Contains(s.UserCenterId)) + .Select(s => s.UserCenterId).ToArrayAsync(); + var hasUIdHash = hasUIdArr.ToHashSet(); + var updateData = new List(10); + var InsertData = new List(10); + foreach (var item in updateArr) + { + if (hasUIdHash.Contains(item.UserCenterId)) + updateData.Add(item); + else + InsertData.Add(item); + } + //开启事务 + baseService.Context.Ado + .UseTran(() => + { + baseService.InsertRange(InsertData); + baseService.AsUpdateable(updateData) + .UpdateColumns(s => new + { + s.AmountRelief, + s.ReliefApplication, + s.ReliefType, + s.ReliefSubTime, + s.StudentType, + s.Status, + s.JoinTime, + s.ExitTime, + s.Remark + }) + //更新忽略null并且忽略默认值 (比如int默认值是0就不更新) + //如果修改为0会出现修改不了的问题 + .IgnoreColumns(ignoreAllNullColumns: true, ignoreAllDefaultValue: true) + .WhereColumns(it => new { it.UserCenterId }) + .ExecuteCommand(); + return true; + }, ex => { throw ex; }); } + //写入选科方向 if (userCenterUpdate.Count > 0) await userService.AsUpdateable(userCenterUpdate) .UpdateColumns(s => new diff --git a/Learn.Archives.API/appsettings.json b/Learn.Archives.API/appsettings.json index 304f3df..dd9d908 100644 --- a/Learn.Archives.API/appsettings.json +++ b/Learn.Archives.API/appsettings.json @@ -13,8 +13,8 @@ }, "DB": { "ConnectionString": "AllowLoadLocalInfile=true;Server=58.17.132.2;User ID=marking;Password=qwe123!@#;Database=learn.archives;CharSet=utf8mb4;Port=43306;pooling=true;SslMode=None;", - //正式库 - //"ConnectionString": "AllowLoadLocalInfile=true;Server=rm-2vc20nd3d11g0oh6g2o.rwlb.cn-chengdu.rds.aliyuncs.com;User ID=marking;Password=poiuytPOIUYT098765)(*&^%;Port=3306;Database=learn.archives;CharSet=utf8mb4;pooling=true;SslMode=None", + //正式库 + //"ConnectionString": "AllowLoadLocalInfile=true;Server=archives-mysql.23544.com;User ID=archives;Password=MPsSSNuvFO7wBqADXC9zweh9tdOPNwm6;Port=3306;Database=learn.archives;CharSet=utf8mb4;pooling=true;SslMode=None", "SqlType": "MySql", "UpdateTable": false }, -- 2.40.1