Ver código fonte

update staff monthly report ot issue

tags/Baseline_30082024_BACKEND_UAT
MSI\derek 1 ano atrás
pai
commit
5f24fb9943
2 arquivos alterados com 34 adições e 6 exclusões
  1. +32
    -5
      src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt
  2. +2
    -1
      src/main/java/com/ffii/tsms/modules/report/web/ReportController.kt

+ 32
- 5
src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt Ver arquivo

@@ -219,6 +219,7 @@ open class ReportService(
staff: Staff,
timesheets: List<Map<String, Any>>,
leaves: List<Map<String, Any>>,
totalConsumed: List<Map<String, Any>>,
): ByteArray {
// Generate the Excel report with query results
val workbook: Workbook = createStaffMonthlyWorkHourAnalysisReport(
@@ -227,6 +228,7 @@ open class ReportService(
staff,
timesheets,
leaves,
totalConsumed,
MONTHLY_WORK_HOURS_ANALYSIS_REPORT
)

@@ -1170,6 +1172,7 @@ open class ReportService(
staff: Staff,
timesheets: List<Map<String, Any>>,
leaves: List<Map<String, Any>>,
totalConsumed: List<Map<String, Any>>,
templatePath: String,
): Workbook {
var projectList: List<String> = listOf()
@@ -1179,7 +1182,7 @@ open class ReportService(
println("----leaves-----")
println(leaves)
// result = timesheet record mapped
var result: Map<String, Any> = mapOf()
var result: Map<String, Any> = mapOf()
if (timesheets.isNotEmpty()) {
projectList = timesheets.map { "${it["code"]}\n ${it["name"]}" }.toList().distinct()
result = timesheets.groupBy(
@@ -1323,10 +1326,21 @@ open class ReportService(
var otConsumed = 0.0
var leaveHours = 0.0
// normalConsumed data
if (timesheets.isNotEmpty()) {
timesheets.forEach { t ->
normalConsumed += t["normalConsumed"] as Double
otConsumed += t["otConsumed"] as Double
// if (timesheets.isNotEmpty()) {
// timesheets.forEach { t ->
// normalConsumed += t["normalConsumed"] as Double
// otConsumed += t["otConsumed"] as Double
// }
// }
if (totalConsumed.isNotEmpty()) {
totalConsumed.forEach{ t ->
val total = t["totalConsumed"] as Double
if (total > 8.0) {
normalConsumed += 8.0
otConsumed += total - 8.0
} else {
normalConsumed += total
}
}
}
tempCell = sheet.getRow(rowIndex).createCell(2)
@@ -1950,6 +1964,19 @@ open class ReportService(
)
return jdbcDao.queryForList(sql.toString(), args)
}
open fun getTotalConsumed(args: Map<String, Any>): List<Map<String, Any>> {
val sql = StringBuilder("SELECT"
+ " CAST(DATE_FORMAT(t.recordDate, '%d') AS SIGNED) AS recordDate, "
+ " sum(t.normalConsumed) + sum(t.otConsumed) as totalConsumed "
+ " from timesheet t "
+ " left join project p on p.id = t.projectId "
+ " where t.staffId = :staffId "
+ " and t.recordDate BETWEEN :startDate and :endDate "
+ " group by t.recordDate "
+ " order by t.recordDate; "
)
return jdbcDao.queryForList(sql.toString(), args)
}

open fun getLeaves(args: Map<String, Any>): List<Map<String, Any>> {
val sql = StringBuilder(


+ 2
- 1
src/main/java/com/ffii/tsms/modules/report/web/ReportController.kt Ver arquivo

@@ -146,10 +146,11 @@ class ReportController(
)
val timesheets = excelReportService.getTimesheet(args)
val leaves = excelReportService.getLeaves(args)
val totalConsumed = excelReportService.getTotalConsumed(args)

print(timesheets)
print(leaves)
val reportResult: ByteArray = excelReportService.generateStaffMonthlyWorkHourAnalysisReport(thisMonth, holidays, staff, timesheets, leaves)
val reportResult: ByteArray = excelReportService.generateStaffMonthlyWorkHourAnalysisReport(thisMonth, holidays, staff, timesheets, leaves, totalConsumed)
// val mediaType: MediaType = MediaType.parseMediaType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
return ResponseEntity.ok()
// .contentType(mediaType)


Carregando…
Cancelar
Salvar