| @@ -60,6 +60,30 @@ open class ReportService( | |||||
| private val COMPLETION_PROJECT = "templates/report/AR05_Project Completion Report.xlsx" | private val COMPLETION_PROJECT = "templates/report/AR05_Project Completion Report.xlsx" | ||||
| // ==============================|| GENERATE REPORT ||============================== // | // ==============================|| GENERATE REPORT ||============================== // | ||||
| fun generalCreateReportIndexed( // just loop through query records one by one, return rowIndex | |||||
| sheet: Sheet, | |||||
| result: List<Map<String, Any>>, | |||||
| 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 { | fun genFinancialStatusReport(teamLeadId: Long): ByteArray { | ||||
| @@ -1286,19 +1310,8 @@ open class ReportService( | |||||
| rowIndex = 5 | rowIndex = 5 | ||||
| columnIndex = 0 | 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 | return workbook | ||||
| } | } | ||||
| @@ -1337,20 +1350,9 @@ open class ReportService( | |||||
| rowIndex = 6 | rowIndex = 6 | ||||
| columnIndex = 0 | 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 sheetCF = sheet.sheetConditionalFormatting | ||||
| val rule1 = sheetCF.createConditionalFormattingRule("AND(J7 >= $lowerLimit, J7 <= 1)") | val rule1 = sheetCF.createConditionalFormattingRule("AND(J7 >= $lowerLimit, J7 <= 1)") | ||||