保险拆单校验

业务上需要,老范叫加一个拆单校验。规则是这样的:

个险渠道自动核保条件增加一条:
若同一投保人、同一被保险人、同样的保险计划,在一周内出现两单及以上,系统自动核保不通过,提示语言为: 疑似拆单,请核保师关注。


由于规则条件较多,刚工作的小姑娘显然搞不了啊。
之前由于契约归我做,所以稍微跟她讲了一下思路,oracle自带的列转行函数可以轻松地(bian tai de )实现一些转换。

  • no bb ,po代码:

—本单特征码
SELECT 1
FROM (SELECT to_char(WMSYS.WM_CONCAT(a.riskcode)) vv
FROM lcpol a
WHERE a.contno = ‘531010000045735’
and a.cvalidate > sysdate - 7
and not exists (select 1
from lccont k
where k.contno = a.contno
and k.appflag = ‘0’)) a
WHERE a.vv in

   (
    ----近一周的特征码跟数量
    SELECT a.vv num
      FROM (SELECT a.contno, to_char(WMSYS.WM_CONCAT(a.riskcode)) vv
               FROM lcpol a
              WHERE 1 = 1
                and not exists (select 1
                       from lccont k
                      where k.contno = a.contno
                        and k.appflag = '0')
                and a.cvalidate > sysdate - 7
                and a.uwflag not in ('1', '2', 'a')
                and a.salechnl = '02'
              GROUP BY a.contno) a
     group by a.vv
    having count(1) > 1 );

写完之后,其实思路应该是这样的,这个所谓的思路是根据逆向的一个结果反思出的。

其实大部分时间都是在特征码的统计上,于是写出了近一周的特征码跟数量这个sql。写完发现其实这个是保单无关的,也就是只需要知道哪些特征码是不合法的即可,然后让本单的特征码跟这些不合法的比较即可。

后续当然可以继续调优啦。比如这一周的特征码,我只关注与本次这个客户的,相信效率不再是问题,即使一个月内的保单也能轻松应付。

以上。

文章目录
,