|
|
@@ -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<FinancialYear>).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<SalaryEffectiveService.SalaryData>): FinancialYear { |
|
|
|
fun updateFinancialYear(financialYear: FinancialYear, salaryDataList: List<SalaryEffectiveService.SalaryData>?, staffInfo: Map<String, Any>): 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) |
|
|
|