Commit fdc38366 by wyc

考核类型继承修改

parent 0d4c6f66
...@@ -27,6 +27,7 @@ public class CopyService : IAutoInjection ...@@ -27,6 +27,7 @@ public class CopyService : IAutoInjection
private readonly PerforPerAssessSchemeItemsRepository _perforPerAssessSchemeItemsRepository; private readonly PerforPerAssessSchemeItemsRepository _perforPerAssessSchemeItemsRepository;
private readonly PerforPerAssessSchemeTargetRepository _perforPerAssessSchemeTargetRepository; private readonly PerforPerAssessSchemeTargetRepository _perforPerAssessSchemeTargetRepository;
private readonly PerforPerAssessIssueSchemeRepository _perforPerAssessIssueSchemeRepository; private readonly PerforPerAssessIssueSchemeRepository _perforPerAssessIssueSchemeRepository;
private readonly PerforPerAttendanceDeptRepository _perforPerAttendanceDeptRepository;
public CopyService( public CopyService(
ILogger<ConfigService> logger, ILogger<ConfigService> logger,
...@@ -43,7 +44,8 @@ public class CopyService : IAutoInjection ...@@ -43,7 +44,8 @@ public class CopyService : IAutoInjection
PerforPerAssessSchemeRepository perforPerAssessSchemeRepository, PerforPerAssessSchemeRepository perforPerAssessSchemeRepository,
PerforPerAssessSchemeItemsRepository perforPerAssessSchemeItemsRepository, PerforPerAssessSchemeItemsRepository perforPerAssessSchemeItemsRepository,
PerforPerAssessSchemeTargetRepository perforPerAssessSchemeTargetRepository, PerforPerAssessSchemeTargetRepository perforPerAssessSchemeTargetRepository,
PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository,
PerforPerAttendanceDeptRepository perforPerAttendanceDeptRepository
) )
{ {
_logger = logger; _logger = logger;
...@@ -61,6 +63,7 @@ PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository ...@@ -61,6 +63,7 @@ PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository
_perforPerAssessSchemeItemsRepository = perforPerAssessSchemeItemsRepository; _perforPerAssessSchemeItemsRepository = perforPerAssessSchemeItemsRepository;
_perforPerAssessSchemeTargetRepository = perforPerAssessSchemeTargetRepository; _perforPerAssessSchemeTargetRepository = perforPerAssessSchemeTargetRepository;
_perforPerAssessIssueSchemeRepository = perforPerAssessIssueSchemeRepository; _perforPerAssessIssueSchemeRepository = perforPerAssessIssueSchemeRepository;
_perforPerAttendanceDeptRepository = perforPerAttendanceDeptRepository;
} }
...@@ -261,10 +264,11 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId, bool delHistot ...@@ -261,10 +264,11 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId, bool delHistot
{ {
var flag = delHistotyData; var flag = delHistotyData;
_logger.LogInformation($"copy attendanceType"); _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); 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()) if (flag || attendanceTypes == null || !attendanceTypes.Any())
{ {
attendanceTypes = _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == -1); 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 ...@@ -280,6 +284,30 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId, bool delHistot
_pperAttendanceTypeRepository.AddRange(newAttendanceTypes.ToArray()); _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) 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