Bläddra i källkod

update ex02 report

tags/Baseline_30082024_BACKEND_UAT
cyril.tsui 1 år sedan
förälder
incheckning
36404b4cac
4 ändrade filer med 8 tillägg och 5 borttagningar
  1. +5
    -3
      src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt
  2. +1
    -1
      src/main/java/com/ffii/tsms/modules/report/web/ReportController.kt
  3. +2
    -1
      src/main/java/com/ffii/tsms/modules/report/web/model/ReportRequest.kt
  4. Binär
      src/main/resources/templates/report/EX02_Project Cash Flow Report.xlsx

+ 5
- 3
src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt Visa fil

@@ -103,10 +103,11 @@ open class ReportService(
fun generateProjectCashFlowReport(
project: Project,
invoices: List<Invoice>,
timesheets: List<Timesheet>
timesheets: List<Timesheet>,
dateType: String
): ByteArray {
// Generate the Excel report with query results
val workbook: Workbook = createProjectCashFlowReport(project, invoices, timesheets, PROJECT_CASH_FLOW_REPORT)
val workbook: Workbook = createProjectCashFlowReport(project, invoices, timesheets, dateType, PROJECT_CASH_FLOW_REPORT)

// Write the workbook to a ByteArrayOutputStream
val outputStream: ByteArrayOutputStream = ByteArrayOutputStream()
@@ -449,6 +450,7 @@ open class ReportService(
project: Project,
invoices: List<Invoice>,
timesheets: List<Timesheet>,
dateType: String,
templatePath: String,
): Workbook {
// please create a new function for each report template
@@ -534,7 +536,7 @@ open class ReportService(
rowIndex = 15


val dateFormatter = DateTimeFormatter.ofPattern("MMM YYYY")
val dateFormatter = if (dateType == "Date") DateTimeFormatter.ofPattern("yyyy/MM/dd") else DateTimeFormatter.ofPattern("MMM YYYY")
val combinedResults =
(invoices.map { it.receiptDate } + timesheets.map { it.recordDate }).filterNotNull().sortedBy { it }
.map { it.format(dateFormatter) }.distinct()


+ 1
- 1
src/main/java/com/ffii/tsms/modules/report/web/ReportController.kt Visa fil

@@ -63,7 +63,7 @@ class ReportController(
val invoices = invoiceService.findAllByProjectAndPaidAmountIsNotNull(project)
val timesheets = timesheetRepository.findAllByProjectTaskIn(projectTasks)

val reportResult: ByteArray = excelReportService.generateProjectCashFlowReport(project, invoices, timesheets)
val reportResult: ByteArray = excelReportService.generateProjectCashFlowReport(project, invoices, timesheets, request.dateType)
// val mediaType: MediaType = MediaType.parseMediaType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
return ResponseEntity.ok()
// .contentType(mediaType)


+ 2
- 1
src/main/java/com/ffii/tsms/modules/report/web/model/ReportRequest.kt Visa fil

@@ -6,7 +6,8 @@ data class FinancialStatusReportRequest (
val teamLeadId: Long
)
data class ProjectCashFlowReportRequest (
val projectId: Long
val projectId: Long,
val dateType: String, // "Date", "Month"
)

data class StaffMonthlyWorkHourAnalysisReportRequest (


Binär
src/main/resources/templates/report/EX02_Project Cash Flow Report.xlsx Visa fil


Laddar…
Avbryt
Spara