Commit fdc38366 by wyc

考核类型继承修改

parent 0d4c6f66
......@@ -27,6 +27,7 @@ public class CopyService : IAutoInjection
private readonly PerforPerAssessSchemeItemsRepository _perforPerAssessSchemeItemsRepository;
private readonly PerforPerAssessSchemeTargetRepository _perforPerAssessSchemeTargetRepository;
private readonly PerforPerAssessIssueSchemeRepository _perforPerAssessIssueSchemeRepository;
private readonly PerforPerAttendanceDeptRepository _perforPerAttendanceDeptRepository;
public CopyService(
ILogger<ConfigService> logger,
......@@ -43,7 +44,8 @@ public class CopyService : IAutoInjection
PerforPerAssessSchemeRepository perforPerAssessSchemeRepository,
PerforPerAssessSchemeItemsRepository perforPerAssessSchemeItemsRepository,
PerforPerAssessSchemeTargetRepository perforPerAssessSchemeTargetRepository,
PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository
PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository,
PerforPerAttendanceDeptRepository perforPerAttendanceDeptRepository
)
{
_logger = logger;
......@@ -61,6 +63,7 @@ PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository
_perforPerAssessSchemeItemsRepository = perforPerAssessSchemeItemsRepository;
_perforPerAssessSchemeTargetRepository = perforPerAssessSchemeTargetRepository;
_perforPerAssessIssueSchemeRepository = perforPerAssessIssueSchemeRepository;
_perforPerAttendanceDeptRepository = perforPerAttendanceDeptRepository;
}
......@@ -261,10 +264,11 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId, bool delHistot
{
var flag = delHistotyData;
_logger.LogInformation($"copy attendanceType");
var UpdateattendanceTypes = _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == allot.ID);
if (delHistotyData && UpdateattendanceTypes != null && UpdateattendanceTypes.Any())
UpdateattendanceTypes.ForEach(t => t.AllotId = 0);
flag = _pperAttendanceTypeRepository.UpdateRange(UpdateattendanceTypes.ToArray());
var attendanceTypes = _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == allot.ID);
if (delHistotyData && attendanceTypes != null && attendanceTypes.Any())
flag = _pperAttendanceTypeRepository.RemoveRange(attendanceTypes.ToArray());
if (flag || attendanceTypes == null || !attendanceTypes.Any())
{
attendanceTypes = _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == -1);
......@@ -280,6 +284,30 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId, bool delHistot
_pperAttendanceTypeRepository.AddRange(newAttendanceTypes.ToArray());
}
}
var attendanceDepts = _perforPerAttendanceDeptRepository.GetEntities(t => t.AllotId == allot.ID);
var attendanceTypess = _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == allot.ID || t.AllotId == 0);
foreach (var item in attendanceDepts)
{
for (int i = 1; i <= 30; i++)
{
int? dayValue = (int?)typeof(per_attendance_dept).GetProperty("Day" + i.ToString("D2"))?.GetValue(item);
if (dayValue != null && dayValue > 0)
{
string attendanceName = attendanceTypess.FirstOrDefault(t => t.Id == dayValue)?.AttendanceName;
if (!string.IsNullOrEmpty(attendanceName))
{
int? attendanceId = attendanceTypess.FirstOrDefault(w => w.AttendanceName == attendanceName)?.Id;
if (attendanceId != null)
{
typeof(per_attendance_dept).GetProperty("Day" + i.ToString("D2"))?.SetValue(item, attendanceId);
}
}
}
}
}
flag = _perforPerAttendanceDeptRepository.UpdateRange(attendanceDepts.ToArray());
if (flag) { attendanceTypess = attendanceTypess.Where(t => t.AllotId == 0).ToList(); _pperAttendanceTypeRepository.RemoveRange(attendanceTypess.ToArray()); }
}
public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyData = false)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment