diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java index bcd2e346..eb2fe1fc 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java @@ -45,6 +45,7 @@ import org.springblade.thirdparty.bfi.pojo.dto.BfiCustomerQueryDTO; import org.springblade.thirdparty.bfi.pojo.vo.BfiBillSaveResultErrorVO; import org.springblade.thirdparty.bfi.pojo.vo.BfiBillSaveResultItemVO; import org.springblade.thirdparty.bfi.pojo.vo.BfiBillSaveResultVO; +import org.springblade.thirdparty.bfi.pojo.vo.BfiBlacklistVO; import org.springblade.thirdparty.bfi.pojo.vo.BfiCustomerVO; import org.springblade.thirdparty.bfi.pojo.vo.BfiPageVO; import org.springblade.thirdparty.bfi.service.IBfiService; @@ -229,6 +230,13 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl selectCustomerArchivePage(IPage page, CustomerArchiveVO customer) { List records = baseMapper.selectCustomerArchivePage(page, customer, currentScopeUserId()); @@ -303,6 +311,7 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl blacklist; + try { + blacklist = bfiService.queryBlacklist("1"); + } catch (Exception exception) { + log.error("查询金蝶黑名单失败,黑名单校验放行,fullName={},unifiedCreditCode={}", + customer.getFullName(), creditCode, exception); + return; + } + String code = creditCode.trim().toUpperCase(); + BfiBlacklistVO hit = blacklist.stream() + .filter(item -> Func.isNotEmpty(item.getNumber()) && code.equals(item.getNumber().trim().toUpperCase())) + .findFirst() + .orElse(null); + if (hit == null) { + return; + } + String category = Func.isEmpty(hit.getAwrpCombofieldTitle()) ? hit.getAwrpCombofield() : hit.getAwrpCombofieldTitle(); + boolean forbidden = "A".equals(hit.getAwrpCombofield()); + boolean riskWarning = "B".equals(hit.getAwrpCombofield()); + if (forbidden || (riskWarning && blacklistBlockRiskWarning)) { + throw new ServiceException(String.format("客商【%s】在国资委黑名单中(失信类别:%s,列入事由:%s),不允许提交准入审批", + customer.getFullName(), category, hit.getAwrpTextareafield())); + } + log.warn("客商命中金蝶黑名单风险警示类,放行,fullName={},unifiedCreditCode={},失信类别={},列入事由={}", + customer.getFullName(), creditCode, category, hit.getAwrpTextareafield()); + } + private void validateUnique(CustomerArchiveVO customer) { LambdaQueryWrapper unifiedCreditCodeQuery = Wrappers.lambdaQuery() .eq(CustomerArchive::getUnifiedCreditCode, customer.getUnifiedCreditCode())