updated code for pdf
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.itextpdf.kernel.colors.ColorConstants;
|
import com.itextpdf.kernel.colors.ColorConstants;
|
||||||
import com.itextpdf.kernel.colors.DeviceRgb;
|
import com.itextpdf.kernel.colors.DeviceRgb;
|
||||||
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
|
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
|
||||||
@@ -12,6 +14,8 @@ import com.itextpdf.text.Font;
|
|||||||
import com.itextpdf.text.Image;
|
import com.itextpdf.text.Image;
|
||||||
import com.itextpdf.text.Rectangle;
|
import com.itextpdf.text.Rectangle;
|
||||||
import com.itextpdf.text.pdf.*;
|
import com.itextpdf.text.pdf.*;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.*;
|
import net.gepafin.tendermanagement.entities.*;
|
||||||
@@ -20,6 +24,7 @@ import net.gepafin.tendermanagement.model.request.FieldLabelValuePairRequest;
|
|||||||
import net.gepafin.tendermanagement.model.response.*;
|
import net.gepafin.tendermanagement.model.response.*;
|
||||||
import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
||||||
import net.gepafin.tendermanagement.service.CallService;
|
import net.gepafin.tendermanagement.service.CallService;
|
||||||
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -38,26 +43,21 @@ import java.util.stream.Collectors;
|
|||||||
@Component
|
@Component
|
||||||
public class PdfDao {
|
public class PdfDao {
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ApplicationRepository applicationRepository;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CallService callService;
|
private CallService callService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ApplicationDao applicationDao;
|
private ApplicationDao applicationDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Validator validator;
|
||||||
|
|
||||||
|
|
||||||
public byte[] generatePdf(UserEntity userEntity,Long applicationId) {
|
public byte[] generatePdf(HttpServletRequest request,Long applicationId) {
|
||||||
try {
|
try {
|
||||||
ApplicationEntity applicationEntity = applicationRepository
|
UserEntity userEntity = validator.validateUser(request);
|
||||||
.findByIdAndUserIdAndIsDeletedFalse(applicationId, userEntity.getId())
|
ApplicationEntity applicationEntity = applicationDao.validateApplication(applicationId);
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(
|
validator.validateUserWithCompany(request, applicationEntity.getCompany().getId());
|
||||||
Status.NOT_FOUND,
|
|
||||||
Translator.toLocale(GepafinConstant.APPLICATION_NOT_FOUND_MSG)
|
|
||||||
));
|
|
||||||
|
|
||||||
CompanyEntity companyEntity=applicationEntity.getCompany();
|
|
||||||
CallEntity call=callService.validateCall(applicationEntity.getCall().getId());
|
CallEntity call=callService.validateCall(applicationEntity.getCall().getId());
|
||||||
|
|
||||||
// Create a byte stream to hold the PDF
|
// Create a byte stream to hold the PDF
|
||||||
@@ -127,7 +127,7 @@ public class PdfDao {
|
|||||||
// addLabelValuePair(document, "Con il titolo di", "Rappresentante legale", regularFont);
|
// addLabelValuePair(document, "Con il titolo di", "Rappresentante legale", regularFont);
|
||||||
document.add(new Paragraph(" "));
|
document.add(new Paragraph(" "));
|
||||||
|
|
||||||
ApplicationGetResponseBean applicationGetResponseBean=applicationDao.getApplicationByFormId(applicationId,null,userEntity);
|
ApplicationGetResponseBean applicationGetResponseBean=applicationDao.getApplicationByFormId(applicationId,null, userEntity);
|
||||||
for(FormApplicationResponse formApplicationResponse: applicationGetResponseBean.getForm()) {
|
for(FormApplicationResponse formApplicationResponse: applicationGetResponseBean.getForm()) {
|
||||||
document.add(new Paragraph(formApplicationResponse.getLabel(),sectionFont));
|
document.add(new Paragraph(formApplicationResponse.getLabel(),sectionFont));
|
||||||
document.add(new Paragraph(" ")); // Add line break
|
document.add(new Paragraph(" ")); // Add line break
|
||||||
@@ -534,6 +534,7 @@ public class PdfDao {
|
|||||||
String label = matchingContent.get().getLabel();
|
String label = matchingContent.get().getLabel();
|
||||||
// Add the label-value pair to the list
|
// Add the label-value pair to the list
|
||||||
if (fieldValue != null && !fieldValue.toString().trim().isEmpty()) {
|
if (fieldValue != null && !fieldValue.toString().trim().isEmpty()) {
|
||||||
|
fieldValue = findLabelInOptions(matchingContent.get().getSettings(), fieldValue);
|
||||||
labelValuePairs.add(new FieldLabelValuePairRequest(label, fieldValue));
|
labelValuePairs.add(new FieldLabelValuePairRequest(label, fieldValue));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -541,6 +542,31 @@ public class PdfDao {
|
|||||||
|
|
||||||
return labelValuePairs;
|
return labelValuePairs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Object findLabelInOptions(List<SettingResponseBean> settings, Object valueToFind) {
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (valueToFind instanceof String) {
|
||||||
|
String searchValue = (String) valueToFind;
|
||||||
|
for (SettingResponseBean setting : settings) {
|
||||||
|
Object value = setting.getValue();
|
||||||
|
if (value instanceof List) {
|
||||||
|
List<?> options = (List<?>) value;
|
||||||
|
for (Object option : options) {
|
||||||
|
JsonNode optionNode = objectMapper.convertValue(option, JsonNode.class);
|
||||||
|
if (optionNode.get("name").asText().equals(searchValue)) {
|
||||||
|
return optionNode.get("label").asText();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
return valueToFind;
|
||||||
|
}
|
||||||
|
|
||||||
public void addLogo(Document document, String logoPath) throws Exception {
|
public void addLogo(Document document, String logoPath) throws Exception {
|
||||||
Image logo = Image.getInstance(logoPath);
|
Image logo = Image.getInstance(logoPath);
|
||||||
logo.scaleToFit(document.getPageSize().getWidth() - document.leftMargin() - document.rightMargin(), // Fit to document width
|
logo.scaleToFit(document.getPageSize().getWidth() - document.leftMargin() - document.rightMargin(), // Fit to document width
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ public class PdfServiceImpl implements PdfService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public byte[] generatePdf(HttpServletRequest request, Long applicationId) {
|
public byte[] generatePdf(HttpServletRequest request, Long applicationId) {
|
||||||
UserEntity userEntity = validator.validateUser(request);
|
return pdfDao.generatePdf(request, applicationId);
|
||||||
return pdfDao.generatePdf(userEntity,applicationId);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user