From 2d2b7b6cd392b7a9c0671f72e03334ef620bbafd Mon Sep 17 00:00:00 2001 From: "MSI\\2Fi" Date: Wed, 24 Jul 2024 13:57:21 +0800 Subject: [PATCH] add Fk to salary_effective --- .../modules/data/entity/SalaryEffective.java | 3 ++- .../entity/SalaryEffectiveRepository.java | 4 ++++ .../entity/projections/SalaryEffectiveInfo.kt | 23 +++++++++++++++++++ .../modules/project/service/InvoiceService.kt | 2 +- .../01_alter_salary_effective_FK.sql | 4 ++++ 5 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/ffii/tsms/modules/data/entity/projections/SalaryEffectiveInfo.kt create mode 100644 src/main/resources/db/changelog/changes/20240724_01_jasonT/01_alter_salary_effective_FK.sql diff --git a/src/main/java/com/ffii/tsms/modules/data/entity/SalaryEffective.java b/src/main/java/com/ffii/tsms/modules/data/entity/SalaryEffective.java index cc6092a..88e5e6a 100644 --- a/src/main/java/com/ffii/tsms/modules/data/entity/SalaryEffective.java +++ b/src/main/java/com/ffii/tsms/modules/data/entity/SalaryEffective.java @@ -1,6 +1,7 @@ package com.ffii.tsms.modules.data.entity; import com.ffii.core.entity.IdEntity; +import com.ffii.tsms.modules.data.entity.projections.StaffSearchInfo; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.JoinColumn; @@ -26,7 +27,7 @@ public class SalaryEffective extends IdEntity { } @ManyToOne - @JoinColumn(name = "salaryId") + @JoinColumn(name = "salaryId", referencedColumnName = "salaryPoint") @NotNull private Salary salary; diff --git a/src/main/java/com/ffii/tsms/modules/data/entity/SalaryEffectiveRepository.java b/src/main/java/com/ffii/tsms/modules/data/entity/SalaryEffectiveRepository.java index 8351d70..3c09bb2 100644 --- a/src/main/java/com/ffii/tsms/modules/data/entity/SalaryEffectiveRepository.java +++ b/src/main/java/com/ffii/tsms/modules/data/entity/SalaryEffectiveRepository.java @@ -1,11 +1,15 @@ package com.ffii.tsms.modules.data.entity; import com.ffii.core.support.AbstractRepository; +import com.ffii.tsms.modules.data.entity.projections.SalaryEffectiveInfo; import org.springframework.data.repository.query.Param; +import java.util.List; import java.util.Optional; public interface SalaryEffectiveRepository extends AbstractRepository { Optional findByStaffIdAndSalaryId(@Param("staffId") Long staffId, @Param("salaryId") Long salaryId); + + List findSalaryEffectiveInfoByStaffIdInOrderByStaffId(List staffIds); } diff --git a/src/main/java/com/ffii/tsms/modules/data/entity/projections/SalaryEffectiveInfo.kt b/src/main/java/com/ffii/tsms/modules/data/entity/projections/SalaryEffectiveInfo.kt new file mode 100644 index 0000000..a828556 --- /dev/null +++ b/src/main/java/com/ffii/tsms/modules/data/entity/projections/SalaryEffectiveInfo.kt @@ -0,0 +1,23 @@ +package com.ffii.tsms.modules.data.entity.projections + +import com.ffii.tsms.modules.data.entity.Salary +import org.springframework.beans.factory.annotation.Value +import java.time.LocalDate + +interface SalaryEffectiveInfo { + val id: Long? + val date: LocalDate + val salary: Salary + @get:Value("#{target.staff?.name}") + val name: String? + @get:Value("#{target.staff?.staffId}") + val staffId: String? + @get:Value("#{target.staff?.grade?.name}") + val gradeName: String? + @get:Value("#{target.staff?.grade?.code}") + val gradeCode: String? + @get:Value("#{target.staff?.team?.code}") + val teamCode: String? + @get:Value("#{target.staff?.team?.name}") + val teamName: String? +} \ No newline at end of file diff --git a/src/main/java/com/ffii/tsms/modules/project/service/InvoiceService.kt b/src/main/java/com/ffii/tsms/modules/project/service/InvoiceService.kt index 2ce96fc..4119e5b 100644 --- a/src/main/java/com/ffii/tsms/modules/project/service/InvoiceService.kt +++ b/src/main/java/com/ffii/tsms/modules/project/service/InvoiceService.kt @@ -684,7 +684,7 @@ open class InvoiceService( open fun updateInvoiceDetail(editInvoiceRequest :EditInvoiceRequest): EditInvoiceResponse { val invoice = repository.findById(editInvoiceRequest.id) val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd") - println("${editInvoiceRequest.issuedDate}, ${editInvoiceRequest.receiptDate}") +// println("${editInvoiceRequest.issuedDate}, ${editInvoiceRequest.receiptDate}") if (invoice.isPresent){ val updateInvocie = invoice.get().apply { invoiceNo = editInvoiceRequest.invoiceNo diff --git a/src/main/resources/db/changelog/changes/20240724_01_jasonT/01_alter_salary_effective_FK.sql b/src/main/resources/db/changelog/changes/20240724_01_jasonT/01_alter_salary_effective_FK.sql new file mode 100644 index 0000000..aaabea1 --- /dev/null +++ b/src/main/resources/db/changelog/changes/20240724_01_jasonT/01_alter_salary_effective_FK.sql @@ -0,0 +1,4 @@ +-- liquibase formatted sql +-- changeset jasonT:Update_FK_salary_effective + +ALTER TABLE salary_effective ADD CONSTRAINT `salary_effective_salary_FK` FOREIGN KEY (`salaryId`) REFERENCES `salary` (`salaryPoint`); \ No newline at end of file