From 194c69b125715648d7c067f270158a4659997642 Mon Sep 17 00:00:00 2001 From: "MSI\\derek" Date: Mon, 27 May 2024 16:19:36 +0800 Subject: [PATCH] update report --- .../modules/report/service/ReportService.kt | 56 ++++++++++--------- 1 file changed, 29 insertions(+), 27 deletions(-) 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 126f1fe..27ccb5e 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 @@ -60,6 +60,30 @@ open class ReportService( private val COMPLETION_PROJECT = "templates/report/AR05_Project Completion Report.xlsx" // ==============================|| GENERATE REPORT ||============================== // + fun generalCreateReportIndexed( // just loop through query records one by one, return rowIndex + sheet: Sheet, + result: List>, + startRow: Int, + startColumn: Int + ): Int { + var rowIndex = startRow + var columnIndex = startColumn + result.forEachIndexed { index, obj -> + var tempCell = sheet.getRow(rowIndex).createCell(columnIndex) + tempCell.setCellValue((index + 1).toDouble()) + val keys = obj.keys.toList() + keys.forEachIndexed { keyIndex, key -> + tempCell = sheet.getRow(rowIndex).getCell(columnIndex + keyIndex + 1) ?: sheet.getRow(rowIndex) + .createCell(columnIndex + keyIndex + 1) + when (obj[key]) { + is Double -> tempCell.setCellValue(obj[key] as Double) + else -> tempCell.setCellValue(obj[key] as String) + } + } + rowIndex++ + } + return rowIndex + } fun genFinancialStatusReport(teamLeadId: Long): ByteArray { @@ -1286,19 +1310,8 @@ open class ReportService( rowIndex = 5 columnIndex = 0 - result.forEachIndexed { index, obj -> - tempCell = sheet.getRow(rowIndex).createCell(columnIndex) - tempCell.setCellValue((index + 1).toDouble()) - val keys = obj.keys.toList() - keys.forEachIndexed { keyIndex, key -> - tempCell = sheet.getRow(rowIndex).getCell(columnIndex + keyIndex + 1) ?: sheet.getRow(rowIndex).createCell(columnIndex + keyIndex + 1) - when (obj[key]) { - is Double -> tempCell.setCellValue(obj[key] as Double) - else -> tempCell.setCellValue(obj[key] as String ) - } - } - rowIndex++ - } + + generalCreateReportIndexed(sheet, result, rowIndex, columnIndex) return workbook } @@ -1337,20 +1350,9 @@ open class ReportService( rowIndex = 6 columnIndex = 0 - result.forEachIndexed { index, obj -> - tempCell = sheet.getRow(rowIndex).createCell(columnIndex) - tempCell.setCellValue((index + 1).toDouble()) - val keys = obj.keys.toList() - keys.forEachIndexed { keyIndex, key -> - tempCell = sheet.getRow(rowIndex).getCell(columnIndex + keyIndex + 1) ?: sheet.getRow(rowIndex) - .createCell(columnIndex + keyIndex + 1) - when (obj[key]) { - is Double -> tempCell.setCellValue(obj[key] as Double) - else -> tempCell.setCellValue(obj[key] as String) - } - } - rowIndex++ - } + +// val currRow = generalCreateReportIndexed(sheet, result, rowIndex, columnIndex) + generalCreateReportIndexed(sheet, result, rowIndex, columnIndex) val sheetCF = sheet.sheetConditionalFormatting val rule1 = sheetCF.createConditionalFormattingRule("AND(J7 >= $lowerLimit, J7 <= 1)")