From 190112091ac7db7bcb1181c72084fab770ff31ee Mon Sep 17 00:00:00 2001 From: "MSI\\derek" Date: Tue, 10 Sep 2024 14:47:00 +0800 Subject: [PATCH] update --- .../modules/data/service/StaffsService.kt | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ffii/tsms/modules/data/service/StaffsService.kt b/src/main/java/com/ffii/tsms/modules/data/service/StaffsService.kt index 821b6b3..a3baec4 100644 --- a/src/main/java/com/ffii/tsms/modules/data/service/StaffsService.kt +++ b/src/main/java/com/ffii/tsms/modules/data/service/StaffsService.kt @@ -193,6 +193,29 @@ open class StaffsService( } } salaryEffectiveService.saveSalaryEffective(staff.id!!, salary.salaryPoint.toLong()) + if (team != null) { + val teamLog = TeamLog().apply { + this.staff = staff + this.team = team + from = LocalDate.now() + } + teamLogRepository.save(teamLog) + } + + val gradeLog = GradeLog().apply { + this.staff = staff + this.grade = grade + from = LocalDate.now() + } + gradeLogRepository.save(gradeLog) + + val positionLog = PositionLog().apply { + this.staff = staff + this.position = currentPosition + from = LocalDate.now() + } + positionLogRepository.save(positionLog) + return staff } @Transactional(rollbackFor = [Exception::class]) @@ -223,7 +246,7 @@ open class StaffsService( val latestTeam = teamLogRepository.findFirstByStaffIdAndDeletedFalseOrderByCreatedDesc(staff.id) val latestGrade = gradeLogRepository.findFirstByStaffIdAndDeletedFalseOrderByCreatedDesc(staff.id) val latestPosition = positionLogRepository.findFirstByStaffIdAndDeletedFalseOrderByCreatedDesc(staff.id) - if (latestTeam.team.id != req.teamId) { + if (latestTeam != null && latestTeam.team.id != req.teamId) { val teamLog = TeamLog().apply { this.staff = staff this.team = team @@ -235,7 +258,7 @@ open class StaffsService( teamLogRepository.save(teamLog) teamLogRepository.save(lastRecordTeam) } - if (latestGrade.grade.id != req.gradeId) { + if (latestGrade != null && latestGrade.grade.id != req.gradeId) { val gradeLog = GradeLog().apply { this.staff = staff this.grade = grade @@ -247,7 +270,7 @@ open class StaffsService( gradeLogRepository.save(gradeLog) gradeLogRepository.save(lastRecordGrade) } - if (latestPosition.position.id != req.currentPositionId) { + if (latestPosition != null && latestPosition.position.id != req.currentPositionId) { val positionLog = PositionLog().apply { this.staff = staff this.position = currentPosition