|
|
@ -11,6 +11,9 @@ using Tiobon.Core.Common; |
|
|
|
using Tiobon.Core.Model; |
|
|
|
using Tiobon.Core.Model; |
|
|
|
using AgileObjects.AgileMapper; |
|
|
|
using AgileObjects.AgileMapper; |
|
|
|
using Tiobon.Core.Common.Helper; |
|
|
|
using Tiobon.Core.Common.Helper; |
|
|
|
|
|
|
|
using Newtonsoft.Json.Linq; |
|
|
|
|
|
|
|
using MathNet.Numerics.Distributions; |
|
|
|
|
|
|
|
using Microsoft.EntityFrameworkCore.Metadata.Internal; |
|
|
|
|
|
|
|
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
|
|
|
|
|
|
|
@ -39,17 +42,63 @@ public class Ghre_TeacherChangeServices : BaseServices<Ghre_TeacherChange, Ghre_ |
|
|
|
|
|
|
|
|
|
|
|
public override async Task<ServicePageResult<Ghre_TeacherChangeDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) |
|
|
|
public override async Task<ServicePageResult<Ghre_TeacherChangeDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var result = await base.QueryFilterPage(filter, condition, IsEnable); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var data = result.result.DT_TableDataT1; |
|
|
|
if (string.IsNullOrWhiteSpace(filter.orderBy)) |
|
|
|
|
|
|
|
filter.orderBy = "CreateTime1 DESC"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (filter.pageSize == 0) |
|
|
|
|
|
|
|
filter.pageSize = 10000; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var sql = @$"SELECT * FROM (SELECT A.*,
|
|
|
|
|
|
|
|
ISNULL ((SELECT CASE WHEN {filter.langId} = 1 THEN UserName ELSE UserEname END |
|
|
|
|
|
|
|
FROM Ghrs_User B |
|
|
|
|
|
|
|
WHERE B.UserId = A.CreateBy), |
|
|
|
|
|
|
|
'') CreateDataInfo, |
|
|
|
|
|
|
|
ISNULL ((SELECT CASE WHEN {filter.langId} = 1 THEN UserName ELSE UserEname END |
|
|
|
|
|
|
|
FROM Ghrs_User B |
|
|
|
|
|
|
|
WHERE B.UserId = A.UpdateBy), |
|
|
|
|
|
|
|
'') UpdateDataInfo, |
|
|
|
|
|
|
|
ISNULL (A.UpdateTime, A.CreateTime) CreateTime1, |
|
|
|
|
|
|
|
ISNULL (C.SchoolName, D.DeptName) DeptOrSchoolName |
|
|
|
|
|
|
|
FROM Ghre_TeacherChange A |
|
|
|
|
|
|
|
LEFT JOIN Ghre_Teacher B ON A.TeacherId = B.Id |
|
|
|
|
|
|
|
LEFT JOIN Ghre_School C ON B.SchoolId = C.Id |
|
|
|
|
|
|
|
LEFT JOIN Ghro_Dept D ON B.DeptID = D.DeptID) A";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
string conditions = " 1=1 "; |
|
|
|
|
|
|
|
if (filter.jsonParam != null) |
|
|
|
|
|
|
|
foreach (JProperty jProperty in filter.jsonParam.Properties()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var name = jProperty.Name; |
|
|
|
|
|
|
|
var value = jProperty.Value.ToString(); |
|
|
|
|
|
|
|
if (name == "page" || name == "pageSize") |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(value)) |
|
|
|
|
|
|
|
conditions = DealConditions(condition, name, value); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (IsEnable == true) |
|
|
|
|
|
|
|
sql += " WHERE IsEnable = 1"; |
|
|
|
|
|
|
|
else if (IsEnable == false) |
|
|
|
|
|
|
|
sql += " WHERE IsEnable = 0"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(condition)) |
|
|
|
|
|
|
|
conditions += " AND " + condition; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int total = 0; |
|
|
|
|
|
|
|
var data = Db.SqlQueryable<Ghre_TeacherChangeDto>(sql) |
|
|
|
|
|
|
|
.Where(conditions) |
|
|
|
|
|
|
|
.OrderBy(filter.orderBy) |
|
|
|
|
|
|
|
.ToPageList(filter.pageNum, filter.pageSize, ref total); |
|
|
|
|
|
|
|
|
|
|
|
var teacherIds = data.Where(x => x.TeacherId != null).Select(x => x.TeacherId).Distinct().ToList(); |
|
|
|
var teacherIds = data.Where(x => x.TeacherId != null).Select(x => x.TeacherId).Distinct().ToList(); |
|
|
|
var teachers = await Db.Queryable<Ghre_Teacher>().Where(x => teacherIds.Contains(x.Id)).Select(x => new { x.Id, x.SchoolId, x.DeptID, x.TeacherType, TeacherName = x.TeacherName + " (" + x.TeacherNo + ")" }).ToListAsync(); |
|
|
|
var teachers = await Db.Queryable<Ghre_Teacher>().Where(x => teacherIds.Contains(x.Id)).Select(x => new { x.Id, x.SchoolId, x.DeptID, x.TeacherType, TeacherName = x.TeacherName + " (" + x.TeacherNo + ")" }).ToListAsync(); |
|
|
|
var schoolIds = teachers.Where(x => x.SchoolId != null).Select(x => x.SchoolId.Value).Distinct().ToList(); |
|
|
|
//var schoolIds = teachers.Where(x => x.SchoolId != null).Select(x => x.SchoolId.Value).Distinct().ToList(); |
|
|
|
var deptIDs = teachers.Where(x => x.DeptID != null).Select(x => x.DeptID).Distinct().ToList(); |
|
|
|
//var deptIDs = teachers.Where(x => x.DeptID != null).Select(x => x.DeptID).Distinct().ToList(); |
|
|
|
|
|
|
|
|
|
|
|
var depts = await Db.Queryable<Ghro_Dept>().Where(x => deptIDs.Contains(x.DeptID)).Select(x => new { x.DeptID, x.DeptName }).ToListAsync(); |
|
|
|
//var depts = await Db.Queryable<Ghro_Dept>().Where(x => deptIDs.Contains(x.DeptID)).Select(x => new { x.DeptID, x.DeptName }).ToListAsync(); |
|
|
|
var schools = await Db.Queryable<Ghre_School>().Where(x => schoolIds.Contains(x.Id)).Select(x => new { x.Id, x.SchoolName }).ToListAsync(); |
|
|
|
//var schools = await Db.Queryable<Ghre_School>().Where(x => schoolIds.Contains(x.Id)).Select(x => new { x.Id, x.SchoolName }).ToListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
data.ForEach(async x => |
|
|
|
data.ForEach(async x => |
|
|
|
{ |
|
|
|
{ |
|
|
@ -59,14 +108,13 @@ public class Ghre_TeacherChangeServices : BaseServices<Ghre_TeacherChange, Ghre_ |
|
|
|
x.OriginTeacherLevelLabel = await GetParaLabel("TrainingTeacherLevel", x.OriginTeacherLevel); |
|
|
|
x.OriginTeacherLevelLabel = await GetParaLabel("TrainingTeacherLevel", x.OriginTeacherLevel); |
|
|
|
x.ChangeTypeLabel = await GetParaLabel("TrainingTeacherChangeType", x.ChangeType); |
|
|
|
x.ChangeTypeLabel = await GetParaLabel("TrainingTeacherChangeType", x.ChangeType); |
|
|
|
x.OriginChangeTypeLabel = await GetParaLabel("TrainingTeacherChangeType", x.OriginChangeType); |
|
|
|
x.OriginChangeTypeLabel = await GetParaLabel("TrainingTeacherChangeType", x.OriginChangeType); |
|
|
|
x.DeptOrSchoolName = x.TeacherType == "Out" ? schools.FirstOrDefault(o => o.Id == teacher?.SchoolId)?.SchoolName : depts.FirstOrDefault(o => o.DeptID == teacher?.DeptID)?.DeptName; |
|
|
|
//x.DeptOrSchoolName = x.TeacherType == "Out" ? schools.FirstOrDefault(o => o.Id == teacher?.SchoolId)?.SchoolName : depts.FirstOrDefault(o => o.DeptID == teacher?.DeptID)?.DeptName; |
|
|
|
x.TeacherName = teacher?.TeacherName; |
|
|
|
x.TeacherName = teacher?.TeacherName; |
|
|
|
x.OriginChangeDate1 = DateTimeHelper.ConvertToDayString(x.OriginChangeDate); |
|
|
|
x.OriginChangeDate1 = DateTimeHelper.ConvertToDayString(x.OriginChangeDate); |
|
|
|
x.ChangeDate1 = DateTimeHelper.ConvertToDayString(x.ChangeDate); |
|
|
|
x.ChangeDate1 = DateTimeHelper.ConvertToDayString(x.ChangeDate); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
result.result.DT_TableDataT1 = data; |
|
|
|
return new ServicePageResult<Ghre_TeacherChangeDto>(filter.pageNum, total, filter.pageSize, data); |
|
|
|
return result; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public override async Task<ServiceFormResult<Ghre_TeacherChangeDto>> QueryForm(QueryForm body) |
|
|
|
public override async Task<ServiceFormResult<Ghre_TeacherChangeDto>> QueryForm(QueryForm body) |
|
|
|