|
|
@@ -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<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 { |
|
|
|
|
|
|
@@ -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)") |
|
|
|