updated code for pdf
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
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.DeviceRgb;
|
||||
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.Rectangle;
|
||||
import com.itextpdf.text.pdf.*;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import net.gepafin.tendermanagement.config.Translator;
|
||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||
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.repositories.ApplicationRepository;
|
||||
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.Status;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -38,26 +43,21 @@ import java.util.stream.Collectors;
|
||||
@Component
|
||||
public class PdfDao {
|
||||
|
||||
@Autowired
|
||||
private ApplicationRepository applicationRepository;
|
||||
|
||||
@Autowired
|
||||
private CallService callService;
|
||||
|
||||
@Autowired
|
||||
private ApplicationDao applicationDao;
|
||||
|
||||
@Autowired
|
||||
private Validator validator;
|
||||
|
||||
public byte[] generatePdf(UserEntity userEntity,Long applicationId) {
|
||||
|
||||
public byte[] generatePdf(HttpServletRequest request,Long applicationId) {
|
||||
try {
|
||||
ApplicationEntity applicationEntity = applicationRepository
|
||||
.findByIdAndUserIdAndIsDeletedFalse(applicationId, userEntity.getId())
|
||||
.orElseThrow(() -> new ResourceNotFoundException(
|
||||
Status.NOT_FOUND,
|
||||
Translator.toLocale(GepafinConstant.APPLICATION_NOT_FOUND_MSG)
|
||||
));
|
||||
|
||||
CompanyEntity companyEntity=applicationEntity.getCompany();
|
||||
UserEntity userEntity = validator.validateUser(request);
|
||||
ApplicationEntity applicationEntity = applicationDao.validateApplication(applicationId);
|
||||
validator.validateUserWithCompany(request, applicationEntity.getCompany().getId());
|
||||
CallEntity call=callService.validateCall(applicationEntity.getCall().getId());
|
||||
|
||||
// Create a byte stream to hold the PDF
|
||||
@@ -127,7 +127,7 @@ public class PdfDao {
|
||||
// addLabelValuePair(document, "Con il titolo di", "Rappresentante legale", regularFont);
|
||||
document.add(new Paragraph(" "));
|
||||
|
||||
ApplicationGetResponseBean applicationGetResponseBean=applicationDao.getApplicationByFormId(applicationId,null,userEntity);
|
||||
ApplicationGetResponseBean applicationGetResponseBean=applicationDao.getApplicationByFormId(applicationId,null, userEntity);
|
||||
for(FormApplicationResponse formApplicationResponse: applicationGetResponseBean.getForm()) {
|
||||
document.add(new Paragraph(formApplicationResponse.getLabel(),sectionFont));
|
||||
document.add(new Paragraph(" ")); // Add line break
|
||||
@@ -534,6 +534,7 @@ public class PdfDao {
|
||||
String label = matchingContent.get().getLabel();
|
||||
// Add the label-value pair to the list
|
||||
if (fieldValue != null && !fieldValue.toString().trim().isEmpty()) {
|
||||
fieldValue = findLabelInOptions(matchingContent.get().getSettings(), fieldValue);
|
||||
labelValuePairs.add(new FieldLabelValuePairRequest(label, fieldValue));
|
||||
}
|
||||
}
|
||||
@@ -541,6 +542,31 @@ public class PdfDao {
|
||||
|
||||
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 {
|
||||
Image logo = Image.getInstance(logoPath);
|
||||
logo.scaleToFit(document.getPageSize().getWidth() - document.leftMargin() - document.rightMargin(), // Fit to document width
|
||||
|
||||
@@ -19,7 +19,6 @@ public class PdfServiceImpl implements PdfService {
|
||||
|
||||
@Override
|
||||
public byte[] generatePdf(HttpServletRequest request, Long applicationId) {
|
||||
UserEntity userEntity = validator.validateUser(request);
|
||||
return pdfDao.generatePdf(userEntity,applicationId);
|
||||
return pdfDao.generatePdf(request, applicationId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user