Done ticket GEPAFINBE-215

This commit is contained in:
rajesh
2025-04-30 20:30:24 +05:30
parent 2625b287ff
commit cffd25a402
4 changed files with 54 additions and 5 deletions

View File

@@ -3,12 +3,17 @@ package net.gepafin.tendermanagement.dao;
import feign.FeignException;
import net.gepafin.tendermanagement.config.Translator;
import net.gepafin.tendermanagement.constants.GepafinConstant;
import net.gepafin.tendermanagement.entities.CompanyEntity;
import net.gepafin.tendermanagement.entities.UserEntity;
import net.gepafin.tendermanagement.enums.VatCheckVersionTypeEnum;
import net.gepafin.tendermanagement.model.response.VatCheckResponseBean;
import net.gepafin.tendermanagement.repositories.CompanyRepository;
import net.gepafin.tendermanagement.repositories.GlobalConfigRepository;
import net.gepafin.tendermanagement.service.feignClient.VatCheckV1Service;
import net.gepafin.tendermanagement.service.feignClient.VatCheckV2Service;
import net.gepafin.tendermanagement.util.Utils;
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,6 +53,9 @@ public class VatCheckDao {
@Autowired
private GlobalConfigRepository globalConfigRepository;
@Autowired
private CompanyRepository companyRepository;
public final Logger log = LoggerFactory.getLogger(VatCheckDao.class);
public VatCheckResponseBean checkVatNumberV1(String vatNumber) {
@@ -56,6 +64,7 @@ public class VatCheckDao {
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
if (Boolean.TRUE.equals(Boolean.parseBoolean(isVatCheckGloballyDisabled))) {
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
vatCheckResponseBean.setVersion(VatCheckVersionTypeEnum.V1);
return vatCheckResponseBean;
}
try {
@@ -96,6 +105,7 @@ public class VatCheckDao {
public static void processValidResponseV1(Map<String, Object> responseMap, VatCheckResponseBean vatCheckResponseBean) {
Object dataObj = responseMap.get("data");
vatCheckResponseBean.setVersion(VatCheckVersionTypeEnum.V1);
if (dataObj instanceof Map<?, ?> rawDataMap) {
Map<String, Object> responseBody = new LinkedHashMap<>();
rawDataMap.forEach((k, v) -> {
@@ -118,9 +128,20 @@ public class VatCheckDao {
}
public VatCheckResponseBean checkVatNumber(String vatNumber) {
public VatCheckResponseBean checkVatNumber(String vatNumber, Long hubId) {
try {
CompanyEntity company = companyRepository.findByVatNumberAndHubId(vatNumber, hubId);
if (company != null && Boolean.FALSE.equals(StringUtils.isEmpty(company.getJson()))) {
Map<String, Object> responseMap = Utils.convertJsonStringToMap(company.getJson());
VatCheckResponseBean jsonResponse = validateJsonFromDb(responseMap);
if (jsonResponse != null) {
return jsonResponse;
}
}
String vatApiVersion = getVatCheckVersion();
if(!isVatCheckApiV2(vatApiVersion)){
return checkVatNumberV1(vatNumber);
@@ -134,6 +155,26 @@ public class VatCheckDao {
return vatCheckResponseBean;
}
}
private VatCheckResponseBean validateJsonFromDb(Map<String, Object> responseMap) {
if (responseMap == null || !responseMap.containsKey("data")) return null;
Object data = responseMap.get("data");
if (data instanceof Map<?, ?> dataMap && !dataMap.isEmpty()) {
VatCheckResponseBean response = new VatCheckResponseBean();
processValidResponseV1(responseMap, response);
return response;
}
if (data instanceof List<?> dataList && !dataList.isEmpty()) {
VatCheckResponseBean response = new VatCheckResponseBean();
processValidResponse(responseMap, response);
return response;
}
return null;
}
public VatCheckResponseBean checkVatNumberV2(String vatNumber) {
@@ -142,6 +183,7 @@ public class VatCheckDao {
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
if (Boolean.TRUE.equals(Boolean.parseBoolean(isVatCheckGloballyDisabled))) {
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
vatCheckResponseBean.setVersion(VatCheckVersionTypeEnum.V2);
return vatCheckResponseBean;
}
try {
@@ -175,6 +217,7 @@ public class VatCheckDao {
public static void processValidResponse(Map<String, Object> responseMap, VatCheckResponseBean vatCheckResponseBean) {
vatCheckResponseBean.setVersion(VatCheckVersionTypeEnum.V2);
if (responseMap == null || !responseMap.containsKey("data")) {
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
return;