瀏覽代碼

report update, handle no column return

tags/Baseline_30082024_BACKEND_UAT
leoho2fi 1 年之前
父節點
當前提交
4c75aeb4fc
共有 1 個檔案被更改,包括 19 行新增15 行删除
  1. +19
    -15
      src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt

+ 19
- 15
src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt 查看文件

@@ -1488,27 +1488,31 @@ private fun createLateStartReport(
lateStartData: List<Map<String, Any>>, lateStartData: List<Map<String, Any>>,
evaluator: FormulaEvaluator evaluator: FormulaEvaluator
) { ) {
var dataRowIndex = 6 // Starting from row 7
var dataRowIndex = 6

// Populate the rows with data from the database
lateStartData.forEachIndexed { index, data -> lateStartData.forEachIndexed { index, data ->
val row = sheet.getRow(dataRowIndex) ?: sheet.createRow(dataRowIndex) val row = sheet.getRow(dataRowIndex) ?: sheet.createRow(dataRowIndex)
populateDataRow(workbook, sheet, row, data, index) populateDataRow(workbook, sheet, row, data, index)
dataRowIndex++ dataRowIndex++
} }


// Update conditional formatting to apply to the new range of column J
val sheetCF = sheet.sheetConditionalFormatting
val rule1 = sheetCF.createConditionalFormattingRule("J7 < 60")
val pattern1 = rule1.createPatternFormatting().apply {
fillBackgroundColor = IndexedColors.RED.index
fillPattern = PatternFormatting.SOLID_FOREGROUND
}
val rule2 = sheetCF.createConditionalFormattingRule("J7 >= 60")
val pattern2 = rule2.createPatternFormatting().apply {
fillBackgroundColor = IndexedColors.YELLOW.index
fillPattern = PatternFormatting.SOLID_FOREGROUND
}
val region = CellRangeAddress(dataRowIndex - lateStartData.size, dataRowIndex - 1, 9, 9) // Column J
sheetCF.addConditionalFormatting(arrayOf(region), arrayOf(rule1, rule2))
// Only apply conditional formatting if there is data
if (lateStartData.isNotEmpty()) {
val sheetCF = sheet.sheetConditionalFormatting
val rule1 = sheetCF.createConditionalFormattingRule("J7 < 60")
val pattern1 = rule1.createPatternFormatting().apply {
fillBackgroundColor = IndexedColors.RED.index
fillPattern = PatternFormatting.SOLID_FOREGROUND
}
val rule2 = sheetCF.createConditionalFormattingRule("J7 >= 60")
val pattern2 = rule2.createPatternFormatting().apply {
fillBackgroundColor = IndexedColors.YELLOW.index
fillPattern = PatternFormatting.SOLID_FOREGROUND
}
val region = CellRangeAddress(6, dataRowIndex - 1, 9, 9) // Column J
sheetCF.addConditionalFormatting(arrayOf(region), arrayOf(rule1, rule2))
}
} }
private fun setTeamAndClientIds(sheet: Sheet, team: List<Team>, teamId: Long, customer: List<Customer>, clientId: Long) { private fun setTeamAndClientIds(sheet: Sheet, team: List<Team>, teamId: Long, customer: List<Customer>, clientId: Long) {
// Set the 'teamId' value in cell C3 // Set the 'teamId' value in cell C3


Loading…
取消
儲存