浏览代码

report update, handle no row return

tags/Baseline_30082024_BACKEND_UAT
leoho2fi 1年前
父节点
当前提交
47aeff1fd2
共有 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 查看文件

@@ -1505,27 +1505,31 @@ open class ReportService(
lateStartData: List<Map<String, Any>>,
evaluator: FormulaEvaluator
) {
var dataRowIndex = 6 // Start populating data from row index 7
var dataRowIndex = 6

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

// Update and apply conditional formatting to highlight specific values in 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))
}
}

// Sets team and client IDs in the sheet to manage data visibility based on the selected team and client


正在加载...
取消
保存