From f91caac9af1da10d95be29358eb7b97d8894c246 Mon Sep 17 00:00:00 2001 From: yoganandhan Date: Wed, 28 Jan 2026 13:53:04 +0530 Subject: [PATCH] changes in view-file-details page added updated date --- .../springboot/mapper/FileDataMapper.java | 6 +- .../request_dto/AddFileDataRequestDTO.java | 3 + .../request_dto/FileDataRequestDTO.java | 1 + .../response_dto/FileDataResponseDTO.java | 1 + .../springboot/service/FileDataService.java | 60 ++++++++++--------- .../static/js/view-file-detail-script.js | 37 +++++++----- .../templates/file/view-file-detail.html | 20 ++++++- 7 files changed, 83 insertions(+), 45 deletions(-) diff --git a/src/main/java/com/adjustment_file_management_system/springboot/mapper/FileDataMapper.java b/src/main/java/com/adjustment_file_management_system/springboot/mapper/FileDataMapper.java index e2afed3..e6cafe5 100644 --- a/src/main/java/com/adjustment_file_management_system/springboot/mapper/FileDataMapper.java +++ b/src/main/java/com/adjustment_file_management_system/springboot/mapper/FileDataMapper.java @@ -23,7 +23,7 @@ public class FileDataMapper { @Autowired private AdvanceTypeMapper advTypeMap; - + public FileData toFileDataEnt(FileDataResponseDTO fileDataResDTO) { FileData fileData = new FileData(); fileData.setAdvType(advTypeRepo.findById(fileDataResDTO.getAdvTypeResDTO().getAdvTypeId()).get()); @@ -54,6 +54,7 @@ public class FileDataMapper { fileData.setTcFileGenDate(fileDataResDTO.getTcFileGenDate()); fileData.setTcFilePath(fileDataResDTO.getTcFilePath()); fileData.setVendName(fileDataResDTO.getVendName()); + fileData.setDbUpdatedTimestamp(fileDataResDTO.getUpdatedDate()); return fileData; } @@ -67,7 +68,7 @@ public class FileDataMapper { fileData.setBalAmt(fileDataReqDTO.getBalAmt()); fileData.setDcFilePath(fileDataReqDTO.getDcFilePath()); fileData.setEjvNum(fileDataReqDTO.getEjvNum()); - fileData.setEjvNumFilePath(fileDataReqDTO.getEjvNumFilePath()); + // fileData.setEjvNumFilePath(fileDataReqDTO.getEjvNumFilePath()); fileData.setFiAmt(fileDataReqDTO.getFiAmt()); fileData.setFiFileGenDate(fileDataReqDTO.getFiFileGenDate()); fileData.setFiFilePath(fileDataReqDTO.getFiFilePath()); @@ -121,6 +122,7 @@ public class FileDataMapper { fileDataResDTO.setTcFilePath(fileData.getTcFilePath()); fileDataResDTO.setVendName(fileData.getVendName()); fileDataResDTO.setEjvNumFileGenDate(fileData.getEjvNumFileGenDate()); + fileDataResDTO.setUpdatedDate(fileData.getDbUpdatedTimestamp()); return fileDataResDTO; } diff --git a/src/main/java/com/adjustment_file_management_system/springboot/request_dto/AddFileDataRequestDTO.java b/src/main/java/com/adjustment_file_management_system/springboot/request_dto/AddFileDataRequestDTO.java index 576442a..47fde3f 100644 --- a/src/main/java/com/adjustment_file_management_system/springboot/request_dto/AddFileDataRequestDTO.java +++ b/src/main/java/com/adjustment_file_management_system/springboot/request_dto/AddFileDataRequestDTO.java @@ -22,6 +22,9 @@ public class AddFileDataRequestDTO { @DateTimeFormat(pattern = "dd-MM-yyyy") private Date asFileGenDate; @DateTimeFormat(pattern = "dd-MM-yyyy") + private Date updatedDate; + @DateTimeFormat(pattern = "dd-MM-yyyy") + private Date createdDate; private Date piFileGenDate; private Double piAmt; private String fileRmrk; diff --git a/src/main/java/com/adjustment_file_management_system/springboot/request_dto/FileDataRequestDTO.java b/src/main/java/com/adjustment_file_management_system/springboot/request_dto/FileDataRequestDTO.java index 0f74d35..61ac459 100644 --- a/src/main/java/com/adjustment_file_management_system/springboot/request_dto/FileDataRequestDTO.java +++ b/src/main/java/com/adjustment_file_management_system/springboot/request_dto/FileDataRequestDTO.java @@ -31,6 +31,7 @@ public class FileDataRequestDTO { private String irFilePath; private String asFinalFilePath; private Date asFinalFileGenDate; + private Date updatedDate; private String ejvNum; private String ejvNumFilePath; private String tcFilePath; diff --git a/src/main/java/com/adjustment_file_management_system/springboot/response_dto/FileDataResponseDTO.java b/src/main/java/com/adjustment_file_management_system/springboot/response_dto/FileDataResponseDTO.java index 7d28b27..755b255 100644 --- a/src/main/java/com/adjustment_file_management_system/springboot/response_dto/FileDataResponseDTO.java +++ b/src/main/java/com/adjustment_file_management_system/springboot/response_dto/FileDataResponseDTO.java @@ -43,4 +43,5 @@ public class FileDataResponseDTO { private Date ejvNumFileGenDate; private FundTypeResponseDTO fundTypeResDTO; private Long daysPass; + private Date updatedDate; } diff --git a/src/main/java/com/adjustment_file_management_system/springboot/service/FileDataService.java b/src/main/java/com/adjustment_file_management_system/springboot/service/FileDataService.java index b7a782c..8e05e6a 100644 --- a/src/main/java/com/adjustment_file_management_system/springboot/service/FileDataService.java +++ b/src/main/java/com/adjustment_file_management_system/springboot/service/FileDataService.java @@ -162,18 +162,18 @@ public class FileDataService { private MultipartFile getFileByType(Object obj, String type) { if (obj instanceof AddFileDataRequestDTO addFileDataReqDTO) { return switch (type) { - case "AS" -> addFileDataReqDTO.getAsFile(); - case "PI" -> addFileDataReqDTO.getPiFile(); - default -> null; + case "AS" -> addFileDataReqDTO.getAsFile(); + case "PI" -> addFileDataReqDTO.getPiFile(); + default -> null; }; } else if (obj instanceof UpdateFileDataRequestDTO updFileDataReqDTO) { return switch (type) { - case "AS" -> updFileDataReqDTO.getAsFile(); - case "PI" -> updFileDataReqDTO.getPiFile(); - case "FI" -> updFileDataReqDTO.getFiFile(); - case "AS-Final" -> updFileDataReqDTO.getAsFinalFile(); - case "TC" -> updFileDataReqDTO.getTcFile(); - default -> null; + case "AS" -> updFileDataReqDTO.getAsFile(); + case "PI" -> updFileDataReqDTO.getPiFile(); + case "FI" -> updFileDataReqDTO.getFiFile(); + case "AS-Final" -> updFileDataReqDTO.getAsFinalFile(); + case "TC" -> updFileDataReqDTO.getTcFile(); + default -> null; }; } return null; @@ -244,26 +244,26 @@ public class FileDataService { } switch (fileType) { - case "AS", "PI", "RTGS", "PO", "DC", "SR", "IR", "EJV-Number", "AS-Final", "FI", "TC" -> { - - // Remove duplicate prefix from filePath if present - if (filePath.startsWith("/uploads/file-data/")) { - filePath = filePath.substring("/uploads/file-data/".length()); - } else if (filePath.startsWith("uploads/file-data/")) { - filePath = filePath.substring("uploads/file-data/".length()); - } - - // Resolve relative path inside uploadDir - File baseDir = fileDataPropsConfig.getUploadDirFile(); - Path fullPath = Path.of(baseDir.getAbsolutePath(), filePath).normalize(); - - if (!Files.exists(fullPath)) { - throw new IOException("File not found for file number: " + fileNum); + case "AS", "PI", "RTGS", "PO", "DC", "SR", "IR", "EJV-Number", "AS-Final", "FI", "TC" -> { + + // Remove duplicate prefix from filePath if present + if (filePath.startsWith("/uploads/file-data/")) { + filePath = filePath.substring("/uploads/file-data/".length()); + } else if (filePath.startsWith("uploads/file-data/")) { + filePath = filePath.substring("uploads/file-data/".length()); + } + + // Resolve relative path inside uploadDir + File baseDir = fileDataPropsConfig.getUploadDirFile(); + Path fullPath = Path.of(baseDir.getAbsolutePath(), filePath).normalize(); + + if (!Files.exists(fullPath)) { + throw new IOException("File not found for file number: " + fileNum); + } + return Files.readAllBytes(fullPath); } - return Files.readAllBytes(fullPath); - } - default -> - throw new IllegalArgumentException("Unknown file type: " + fileType + " for file number: " + fileNum); + default -> + throw new IllegalArgumentException("Unknown file type: " + fileType + " for file number: " + fileNum); } } @@ -299,6 +299,7 @@ public class FileDataService { try { String fileNum = addFileDataReqDTO.getFileNum().trim(); + String vendName = (addFileDataReqDTO.getVendName() != null && !addFileDataReqDTO.getVendName().trim().isEmpty()) ? addFileDataReqDTO.getVendName().trim().toUpperCase() @@ -309,6 +310,8 @@ public class FileDataService { : placeHolderDate; Date asFileGenDate = addFileDataReqDTO.getAsFileGenDate() != null ? addFileDataReqDTO.getAsFileGenDate() : placeHolderDate; + Date asUpdatedDate = addFileDataReqDTO.getUpdatedDate() != null ? addFileDataReqDTO.getUpdatedDate() + : placeHolderDate; // 1️. Get or create AdvanceType AdvanceTypeResponseDTO advTypeResDTO = advTypeMap @@ -328,6 +331,7 @@ public class FileDataService { fileDataReqDTO.setPiAmt(piAmt); fileDataReqDTO.setAsFileGenDate(asFileGenDate); fileDataReqDTO.setPiFileGenDate(piFileGenDate); + fileDataReqDTO.setUpdatedDate(asUpdatedDate); // Set default values setDefaultFileDataValues(fileDataReqDTO); diff --git a/src/main/resources/static/js/view-file-detail-script.js b/src/main/resources/static/js/view-file-detail-script.js index cc3187d..87fba9d 100644 --- a/src/main/resources/static/js/view-file-detail-script.js +++ b/src/main/resources/static/js/view-file-detail-script.js @@ -1,3 +1,12 @@ +$(document).ready(function () { + + const today = new Date().toLocaleDateString("en-GB"); + + $("#updatedDate").text("Updated Date : " + today); + +}); + + // Function to view Supporting Document in modal function viewFileInModal(fileNum, fileType, filePath) { var pdfModal = new bootstrap.Modal(document.getElementById('pdf-modal')); @@ -21,12 +30,12 @@ function viewFileInModal(fileNum, fileType, filePath) { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: params.toString() - }).then(function(response) { + }).then(function (response) { if (!response.ok) { throw new Error('Failed to fetch PDF: ' + response.statusText); } return response.arrayBuffer(); - }).then(function(pdfData) { + }).then(function (pdfData) { var blob = new Blob([pdfData], { type: 'application/pdf' }); var blobUrl = URL.createObjectURL(blob); @@ -36,9 +45,9 @@ function viewFileInModal(fileNum, fileType, filePath) { downloadBtn.download = fileName; return pdfjsLib.getDocument({ data: pdfData }).promise; - }).then(function(pdf) { - let renderPage = function(pageNum) { - return pdf.getPage(pageNum).then(function(page) { + }).then(function (pdf) { + let renderPage = function (pageNum) { + return pdf.getPage(pageNum).then(function (page) { var viewport = page.getViewport({ scale: 1.5 }); var canvas = document.createElement('canvas'); canvas.classList.add('mb-3'); @@ -59,14 +68,14 @@ function viewFileInModal(fileNum, fileType, filePath) { } return sequence; - }).then(function() { + }).then(function () { pdfModal.show(); - }).catch(function(error) { + }).catch(function (error) { alert('Error loading PDF: ' + error.message); }); } -$(document).ready(function() { +$(document).ready(function () { // Initialize DataTable var table = $('#file-data-det-tbl').DataTable({ @@ -86,7 +95,7 @@ $(document).ready(function() { { orderable: false, targets: 0, // S.No column - render: function(data, type, row, meta) { + render: function (data, type, row, meta) { return meta.row + 1; } } @@ -110,19 +119,19 @@ $(document).ready(function() { $('#custom-length').html($('.dataTables_length')); // Custom export buttons - $('#export-excel').on('click', function() { + $('#export-excel').on('click', function () { table.button('.buttons-excel').trigger(); }); - $('#export-pdf').on('click', function() { + $('#export-pdf').on('click', function () { var originalLength = table.page.len(); - table.one('draw', function() { + table.one('draw', function () { var tableClone = $('#file-det-tbl').clone(); tableClone.removeClass('dataTable'); tableClone.find('thead, tbody, tfoot').removeAttr('style'); // Remove "Supporting Documents" column (13th col = index 12) - tableClone.find('tr').each(function() { + tableClone.find('tr').each(function () { $(this).find('th:eq(12), td:eq(12)').remove(); }); @@ -147,7 +156,7 @@ $(document).ready(function() { image: { type: 'jpeg', quality: 0.98 }, html2canvas: { scale: 2, useCORS: true }, jsPDF: { unit: 'in', format: 'a3', orientation: 'landscape' } - }).from(pdfContainer[0]).save().then(function() { + }).from(pdfContainer[0]).save().then(function () { table.page.len(originalLength).draw(); pdfContainer.hide(); }); diff --git a/src/main/resources/templates/file/view-file-detail.html b/src/main/resources/templates/file/view-file-detail.html index 3588a1c..6d426f3 100644 --- a/src/main/resources/templates/file/view-file-detail.html +++ b/src/main/resources/templates/file/view-file-detail.html @@ -26,9 +26,27 @@
-
+ + +
+ + + + + + + + Updated Date: + + + +
+ +

File Details