diff --git a/src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt b/src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt index d751344..44f7352 100644 --- a/src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt +++ b/src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt @@ -1,11 +1,7 @@ package com.ffii.tsms.modules.report.service import com.ffii.core.support.JdbcDao -import com.ffii.tsms.modules.data.entity.Customer -import com.ffii.tsms.modules.data.entity.Grade -import com.ffii.tsms.modules.data.entity.Salary -import com.ffii.tsms.modules.data.entity.Staff -import com.ffii.tsms.modules.data.entity.Team +import com.ffii.tsms.modules.data.entity.* import com.ffii.tsms.modules.data.service.SalaryEffectiveService import com.ffii.tsms.modules.project.entity.Invoice import com.ffii.tsms.modules.project.entity.Milestone @@ -47,7 +43,7 @@ data class DayInfo(val date: String?, val weekday: String?) open class ReportService( private val jdbcDao: JdbcDao, private val projectRepository: ProjectRepository, - private val salaryEffectiveService: SalaryEffectiveService + private val salaryEffectiveService: SalaryEffectiveService, private val salaryRepository: SalaryRepository ) { private val logger: Log = LogFactory.getLog(javaClass) private val DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy/MM/dd") @@ -2419,9 +2415,9 @@ open class ReportService( val staffId = staffInfo["staffId"] as String val staffSalaryData = staffSalaryDataList.find { it.staffId == staffId } - if (staffSalaryData != null) { +// if (staffSalaryData != null) { val updatedFinancialYears = (staffInfo["financialYears"] as List).map { financialYear -> - updateFinancialYear(financialYear, staffSalaryData.salaryData) + updateFinancialYear(financialYear, staffSalaryData?.salaryData, staffInfo) } val updatedStaffInfo = staffInfo.toMutableMap().apply { @@ -2429,16 +2425,27 @@ open class ReportService( } staffInfoList[index] = updatedStaffInfo - } +// } } } - fun updateFinancialYear(financialYear: FinancialYear, salaryDataList: List): FinancialYear { + fun updateFinancialYear(financialYear: FinancialYear, salaryDataList: List?, staffInfo: Map): FinancialYear { + println("====================== staffInfo: $staffInfo ===============================") + + if(salaryDataList == null){ + return financialYear.copy( + hourlyRate = (staffInfo["hourlyRate"] as BigDecimal).toDouble(), + salaryPoint = (staffInfo["salaryPoint"] as Long).toInt() + ) + } + val relevantSalaryData = salaryDataList.find { salaryData -> val salaryYearMonth = YearMonth.from(salaryData.financialYear) salaryYearMonth >= financialYear.start && salaryYearMonth <= financialYear.end } + println("====================== relevantSalaryData: $relevantSalaryData ===============================") + if (relevantSalaryData != null) { return financialYear.copy( hourlyRate = relevantSalaryData.hourlyRate.toDouble(), @@ -2448,6 +2455,7 @@ open class ReportService( val previousHourlyRate = findPreviousValue(salaryDataList, financialYear.start) { it.hourlyRate } val previousSalaryPoint = findPreviousValue(salaryDataList, financialYear.start) { it.salaryPoint } + println("====================== staffInfo: $staffInfo ===============================") return financialYear.copy( hourlyRate = previousHourlyRate?.toDouble() ?: financialYear.hourlyRate, salaryPoint = previousSalaryPoint ?: financialYear.salaryPoint @@ -2745,6 +2753,8 @@ open class ReportService( val row9Cell2 = row9.getCell(column+1) ?: row9.createCell(column+1) sheet.addMergedRegion(CellRangeAddress(rowNum, rowNum, column, column + 1)) row9Cell.setCellValue("${financialYears[i].start.format(monthFormat)} - ${financialYears[i].end.format(monthFormat)}") + CellUtil.setAlignment(row9Cell, HorizontalAlignment.CENTER); + CellUtil.setVerticalAlignment(row9Cell, VerticalAlignment.CENTER); CellUtil.setCellStyleProperty(row9Cell, "borderBottom", BorderStyle.THIN) CellUtil.setCellStyleProperty(row9Cell2, "borderBottom", BorderStyle.THIN) column = column.plus(2)