src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt파일 보기
@@ -55,7 +55,8 @@ open class ReportService(
private val salaryEffectiveRepository: SalaryEffectiveRepository,
private val salaryRepository: SalaryRepository,
private val timesheetRepository: TimesheetRepository,
private val teamLogRepository: TeamLogRepository
private val teamLogRepository: TeamLogRepository,
private val teamRepository: TeamRepository
) {
private val logger: Log = LogFactory.getLog(javaClass)
private val DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy/MM/dd")
@@ -3712,6 +3713,7 @@ open class ReportService(
val templateInputStream = resource.inputStream
val workbook: Workbook = XSSFWorkbook(templateInputStream)
val sheet: Sheet = workbook.getSheetAt(0)
val sheet2: Sheet = workbook.getSheetAt(1)
val accountingStyle = workbook.createDataFormat().getFormat("_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)")
fun getMonthsBetweenToColumn(start: LocalDate, end: LocalDate, startValue: Int): Map<String, Int> {
// Get the first day of the start month
@@ -3730,6 +3732,7 @@ open class ReportService(
}
val startDate = LocalDate.parse(args["startDate"].toString())
val endDate = LocalDate.parse(args["endDate"].toString())
val team = teamRepository.findById(args["teamId"].toString().toLong()).orElseThrow().name
val monthList = getMonthsBetweenToColumn(startDate, endDate, 4)
if (monthList.isEmpty()) {
throw IllegalArgumentException("illegal time period")
@@ -3742,37 +3745,69 @@ open class ReportService(
"client" to entry.key["client"]) + monthlyConsumption
}
.sortedBy { it["projectCode"] as String }
val result2 = manhourSummary.groupBy { mapOf("staff" to it["staff"], "projectCode" to it["projectCode"], "projectName" to it["projectName"], "client" to it["client"]) }
.map { entry ->
val monthlyConsumption = entry.value.associate { it["recordMonth"] to it["consumed"] }
mapOf(
"staff" to entry.key["staff"],
"projectCode" to entry.key["projectCode"],
"projectName" to entry.key["projectName"],
"client" to entry.key["client"]) + monthlyConsumption