fix: 客商黑名单口径调整为仅金蝶黑名单命中(A801-5),C101-1黑名单状态不用于展示与筛选
This commit is contained in:
+2
-2
@@ -181,11 +181,11 @@
|
||||
<if test="customer.createTimeEnd != null">
|
||||
AND create_time <= #{customer.createTimeEnd}
|
||||
</if>
|
||||
<!-- 客商风险筛选:blacklist 按黑名单状态过滤;等级筛选与黑名单独立(黑名单客商也有等级,组合展示口径一致) -->
|
||||
<!-- 客商风险筛选:blacklist 仅按金蝶黑名单(A801-5)命中过滤;等级筛选独立 -->
|
||||
<if test="customer.customerRisk != null and customer.customerRisk != ''">
|
||||
<choose>
|
||||
<when test="customer.customerRisk == 'blacklist'">
|
||||
AND hcs_black_status = 'yes'
|
||||
AND (kingdee_black_category IS NOT NULL OR kingdee_black_reason IS NOT NULL)
|
||||
</when>
|
||||
<when test="customer.customerRisk == 'high'">
|
||||
AND hcs_risk_level = '2'
|
||||
|
||||
+1
-1
@@ -2158,7 +2158,7 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl<CustomerArchiveM
|
||||
for (CustomerArchiveVO record : records) {
|
||||
String customerName = Func.isEmpty(record.getFullName()) ? record.getCustomerCode() : record.getFullName();
|
||||
record.setHcsRiskDetail(HcsCreditCheckSupport.buildRiskDetail(customerName,
|
||||
"yes".equalsIgnoreCase(record.getHcsBlackStatus()), record.getHcsRiskLevel(),
|
||||
record.getHcsRiskLevel(),
|
||||
record.getKingdeeBlackCategory(), record.getKingdeeBlackReason()));
|
||||
}
|
||||
}
|
||||
|
||||
+8
-8
@@ -235,8 +235,8 @@ public class HcsCreditCheckSupport {
|
||||
: this.queryBlacklistByCodes(List.of(creditCode.trim().toUpperCase())).get(creditCode.trim().toUpperCase());
|
||||
String blackCategory = hit == null ? null
|
||||
: (Func.isEmpty(hit.getAwrpCombofieldTitle()) ? hit.getAwrpCombofield() : hit.getAwrpCombofieldTitle());
|
||||
riskVO.setRiskTip(buildRiskDetail(customerName, BLACK_STATUS_YES.equalsIgnoreCase(riskVO.getFdBlackStatus()),
|
||||
riskVO.getFdRiskLevel(), blackCategory, hit == null ? null : hit.getAwrpTextareafield()));
|
||||
riskVO.setRiskTip(buildRiskDetail(customerName, riskVO.getFdRiskLevel(),
|
||||
blackCategory, hit == null ? null : hit.getAwrpTextareafield()));
|
||||
try {
|
||||
hcsContractCheckLogMapper.insert(this.buildRiskCheckLog(customerCode, riskVO, fetch.traceId()));
|
||||
} catch (Exception exception) {
|
||||
@@ -361,21 +361,21 @@ public class HcsCreditCheckSupport {
|
||||
/**
|
||||
* 组装客商风险明细文案(后台统一组装、前端只展示;列表悬浮明细与表单实时提示共用本方法,口径一致),
|
||||
* 格式:【客商名称】:被列入外部黑名单(失信类别:xx);{列入事由};风险等级:xx,分段说明:
|
||||
* ① 黑名单段:合同系统黑名单(blackStatusYes)或金蝶黑名单命中(类别/事由任一非空)→「被列入外部黑名单」,
|
||||
* 失信类别(A801-5 awrp_combofield_title,缺失兜底 awrp_combofield)有值时括号展示区分禁止交易/风险警示类;
|
||||
* ① 黑名单段:**仅以金蝶黑名单(A801-5)命中为准**(失信类别/列入事由任一非空),
|
||||
* 失信类别(awrp_combofield_title,缺失兜底 awrp_combofield)有值时括号展示区分禁止交易/风险警示类;
|
||||
* 合同合规系统 C101-1 的黑名单状态(fdBlackStatus)不作为展示黑名单依据;
|
||||
* ② 列入事由:金蝶 A801-5 awrp_textareafield 真实明细,非空时追加;
|
||||
* ③ 等级段:C101-1 风险等级(risk_level 字典翻译,黑名单不转义、按实际等级展示),非空时追加
|
||||
* ③ 等级段:C101-1 风险等级(risk_level 字典翻译),非空时追加
|
||||
*
|
||||
* @param customerName 客商名称
|
||||
* @param blackStatusYes 合同系统黑名单状态(C101-1 fdBlackStatus=yes)
|
||||
* @param riskLevel C101-1 风险等级(0/1/2)
|
||||
* @param blackCategory 金蝶黑名单失信类别
|
||||
* @param blackReason 金蝶黑名单列入事由
|
||||
* @return 明细文案,无风险信息返回空字符串
|
||||
*/
|
||||
public static String buildRiskDetail(String customerName, boolean blackStatusYes, String riskLevel, String blackCategory, String blackReason) {
|
||||
public static String buildRiskDetail(String customerName, String riskLevel, String blackCategory, String blackReason) {
|
||||
List<String> parts = new ArrayList<>();
|
||||
boolean blacklist = blackStatusYes || Func.isNotEmpty(blackCategory) || Func.isNotEmpty(blackReason);
|
||||
boolean blacklist = Func.isNotEmpty(blackCategory) || Func.isNotEmpty(blackReason);
|
||||
if (blacklist) {
|
||||
parts.add(Func.isNotEmpty(blackCategory)
|
||||
? "被列入外部黑名单(失信类别:" + blackCategory + ")"
|
||||
|
||||
@@ -17,7 +17,7 @@ TMS 从**两个外部系统**获取客商风险数据,每日自动更新到客
|
||||
|
||||
| 名词 | 含义 |
|
||||
|---|---|
|
||||
| 黑名单 | 客商被列入外部(国资委)黑名单。金蝶分 **A 类(禁止交易类,不允许交易)** 和 **B 类(风险警示类,需关注)** |
|
||||
| 黑名单 | 客商被列入外部(国资委)黑名单,**以金蝶黑名单查询(A801-5)命中为准**,命中记录含失信类别与列入事由。金蝶分 **A 类(禁止交易类,不允许交易)** 和 **B 类(风险警示类,需关注)** |
|
||||
| 失信类别 | 黑名单的分类名称(如"禁止交易类"),来自金蝶黑名单记录 |
|
||||
| 列入事由 | 被列入黑名单的具体原因(如"涉贪污受贿裁判相关提及方(3年以上及其他)"),来自金蝶黑名单记录 |
|
||||
| 风险等级 | 合同合规系统对客商的风险评级:0=低风险、1=中风险、2=高风险 |
|
||||
@@ -66,14 +66,16 @@ flowchart TD
|
||||
|
||||
| 客商情况 | 显示 | 颜色 |
|
||||
|---|---|---|
|
||||
| 黑名单 + 风险等级(组合展示,等级在前) | 高风险、黑名单 / 中风险、黑名单 / 低风险、黑名单 | 红 |
|
||||
| 仅黑名单(无等级数据) | 黑名单 | 红 |
|
||||
| 金蝶黑名单命中 + 风险等级(组合展示,等级在前) | 高风险、黑名单 / 中风险、黑名单 / 低风险、黑名单 | 红 |
|
||||
| 金蝶黑名单命中(无等级数据) | 黑名单 | 红 |
|
||||
| 仅高风险 | 高风险 | 红 |
|
||||
| 中风险 | 中风险 | 黄 |
|
||||
| 低风险 | 低风险 | 绿 |
|
||||
| 内部组织客商 | 无风险(默认,不查询) | 绿 |
|
||||
| 尚未查询到数据 | - | — |
|
||||
|
||||
> "黑名单"仅指**金蝶黑名单命中**;合同合规系统返回的黑名单状态字段不用于列表展示(仅在付款提交强制校验中使用)。
|
||||
|
||||
- 红色标签(黑名单/高风险)**鼠标悬浮**可查看明细:失信类别、列入事由、风险等级。
|
||||
- 搜索栏新增**客商风险**下拉筛选:黑名单 / 高风险 / 中风险 / 低风险。
|
||||
- 数据为每日凌晨刷新结果,当天有变动的以次日刷新为准。
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
唯一出口:`HcsCreditCheckSupport.buildRiskDetail(customerName, blackStatusYes, riskLevel, blackCategory, blackReason)`,
|
||||
格式:`【客商名称】:被列入外部黑名单(失信类别:xx);{列入事由};风险等级:xx`
|
||||
|
||||
- 黑名单段:合同系统黑名单 **或** 金蝶命中(类别/事由任一非空);
|
||||
- 黑名单段:**仅金蝶命中**(类别/事由任一非空);C101-1 的 `hcs_black_status`(fdBlackStatus)不参与展示,仅付款提交强制校验使用;
|
||||
- 等级段:`risk_level` 字典翻译(`DictBizCache` 未命中兜底 `DictCache`);
|
||||
- 列表(`hcs_risk_detail`,列表查询时组装不落库)与表单实时提示(`riskTip`)同口径。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user