Merge pull request '修复 Excel更新学生信息时 关联表无数据的更新所以导致功能为实现' (#54) from dev into staging
Reviewed-on: #54
This commit is contained in:
commit
cb6cfe271a
|
|
@ -138,7 +138,6 @@ namespace Learn.Archives.API.Controllers
|
||||||
//处理数据
|
//处理数据
|
||||||
var errorExcelInfo = new List<SchoolBusinessImportError>();
|
var errorExcelInfo = new List<SchoolBusinessImportError>();
|
||||||
var insertInfo = new List<SchoolBusiness>();
|
var insertInfo = new List<SchoolBusiness>();
|
||||||
var db = schoolService.Context;
|
|
||||||
foreach (var imp in dataList)
|
foreach (var imp in dataList)
|
||||||
{
|
{
|
||||||
var school = await schoolService.GetFirstAsync(s => s.Name == imp.School);
|
var school = await schoolService.GetFirstAsync(s => s.Name == imp.School);
|
||||||
|
|
@ -167,7 +166,8 @@ namespace Learn.Archives.API.Controllers
|
||||||
.Select(s => s.Name).ToArrayAsync();
|
.Select(s => s.Name).ToArrayAsync();
|
||||||
if (adminArr == null || adminArr.Length!= adminNameArr.Length)
|
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);
|
errorExcelInfo.Add(imp);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -456,25 +456,48 @@ namespace Learn.Archives.API.Controllers
|
||||||
s.JoinTime,
|
s.JoinTime,
|
||||||
s.ExitTime,
|
s.ExitTime,
|
||||||
s.Remark}.Any(x => !(x == default || x == null))).ToList();
|
s.Remark}.Any(x => !(x == default || x == null))).ToList();
|
||||||
// 测试IgnoreColumns是否真实有效
|
//查询差异
|
||||||
await baseService.AsUpdateable(updateArr)
|
var addInfoUserArr = updateArr.Select(s => s.UserCenterId).ToArray();
|
||||||
.UpdateColumns(s => new
|
var hasUIdArr = await baseService.AsQueryable()
|
||||||
{
|
.Where(s => addInfoUserArr.Contains(s.UserCenterId))
|
||||||
s.AmountRelief,
|
.Select(s => s.UserCenterId).ToArrayAsync();
|
||||||
s.ReliefApplication,
|
var hasUIdHash = hasUIdArr.ToHashSet();
|
||||||
s.ReliefType,
|
var updateData = new List<Student>(10);
|
||||||
s.ReliefSubTime,
|
var InsertData = new List<Student>(10);
|
||||||
s.StudentType,
|
foreach (var item in updateArr)
|
||||||
s.Status,
|
{
|
||||||
s.JoinTime,
|
if (hasUIdHash.Contains(item.UserCenterId))
|
||||||
s.ExitTime,
|
updateData.Add(item);
|
||||||
s.Remark
|
else
|
||||||
})
|
InsertData.Add(item);
|
||||||
//更新忽略null并且忽略默认值 (比如int默认值是0就不更新)
|
}
|
||||||
.IgnoreColumns(ignoreAllNullColumns: true, ignoreAllDefaultValue: true)
|
//开启事务
|
||||||
.WhereColumns(it => new { it.UserCenterId })
|
baseService.Context.Ado
|
||||||
.ExecuteCommandAsync();
|
.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)
|
if (userCenterUpdate.Count > 0)
|
||||||
await userService.AsUpdateable(userCenterUpdate)
|
await userService.AsUpdateable(userCenterUpdate)
|
||||||
.UpdateColumns(s => new
|
.UpdateColumns(s => new
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@
|
||||||
},
|
},
|
||||||
"DB": {
|
"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=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",
|
"SqlType": "MySql",
|
||||||
"UpdateTable": false
|
"UpdateTable": false
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue