文档库 最新最全的文档下载
当前位置:文档库 › 保险核赔流程文档

保险核赔流程文档

保险核赔流程文档
保险核赔流程文档

双核简介

双核系统的职责:

审核投保单、批单、计算书。审核的核心是高级核保条件。

高级条件就是对业务部分关心或者重点管控数据点进行控制。

通常的控制点包括:保额,赔款金额,倒签单,是否实收。

整体介绍:

数据流转:

理赔系统与双核系统间的数据流转(理赔提交计算书到双核,双核审核通过后回写理赔)

是通过xml来传输的。

双核与其他系统(例如prpall)是通过调用.jar包来实现的。

核赔的主要机制包括三个部分:

工作流处理、高级核赔条件、关闭工作流后回写业务数据

工作流:

先介绍理赔如何将计算书提交到双核系统。

理赔的配置文件中规定http://192.168.30.5:8001/undwrt/UWWFServer \undwrt\modules\component\com\sinosoft\undwrt\bl\facade\UWWFServerFacade.java

函数

public void doGet(HttpServletRequest request, HttpServletResponse response)

该函数接受来自理赔发送来的数据,

函数

public String doTransData(String iData) throws SQLException, Exception

解析来自理赔的xml数据。

通过下面的程序实现在双核工作流的流转。

flowID = new BLTaskFacade().start(operXML.getKeyValue(item, "LflowID"),

Integer.parseInt(operXML.getKeyValue(item, "LlogNo")),

operXML.getKeyValue(item, "modelType"),

operXML.getKeyValue(item, "certiType"),

operXML.getKeyValue(item, "businessNo"),

operXML.getKeyValue(item, "riskCode"),

operXML.getKeyValue(item, "classCode"),

operXML.getKeyValue(item, "comCode"),

operXML.getKeyValue(item, "makecom"),

operXML.getKeyValue(item, "userCode"),

operXML.getKeyValue(item, "handlerCode"),

operXML.getKeyValue(item, "handler1Code"),

"",

operXML.getKeyValue(item, "flag")

);

工作流主要涉及到的表

工作流的流转主要依赖的表是wflog表,该表记录在处理计算书任务过程中的流转过程。Create table WfLog

(

FlowID VARCHAR2(25) NOT NULL, --*工作流号PK◆

LogNo INT NOT NULL, --*序号PK◆

ModelNo INT NOT NULL, --*模板号◆

NodeNo INT NOT NULL, --*当前节点号◆NodeName VARCHAR2(100) NOT NULL, --*当前节点名称◆DeptCode VARCHAR2(10), --*处理部门代码

DeptName VARCHAR2(60), --**部门名称OperatorCode VARCHAR2(10), --*处理人员代码OperatorName VARCHAR2(30), --*处理人员名称FlowInTime VARCHAR2(19), --*流入时间(日志生成时间)TimeLimit INT, --*处理时限

HandleTime VARCHAR2(19), --*处理时间

SubmitTime VARCHAR2(19), --*提交时间

NodeStatus VARCHAR2(1) NOT NULL, --*节点状态◆

--*1:待处理

--*2:正在处理

--*3:已处理未提交

--*4:已提交

--*0:已关闭

FlowStatus VARCHAR2(1) NOT NULL, --*0:正常流转 1:回退PackageID VARCHAR2(25) NOT NULL, --*明细信息包ID ◆BusinessType VARCHAR2(1) NOT NULL, --*业务类型

--**T:投保单

--**P:保单

--**E:批单

--**Y:预赔

--**C:计算书

BusinessNo VARCHAR2(22) NOT NULL, --*业务号

ContractNo VARCHAR2(22), --**合同号

--**车队合同号

--**统括合同号

ClassCode VARCHAR2(2), --**险类代码

RiskCode VARCHAR2(4), --**险种代码

MakeCom VARCHAR2(10) NOT NULL, --*出单机构

ComCode VARCHAR2(10) NOT NULL, --*归属部门

HandlerCode VARCHAR2(10) NOT NULL, --*经办人代码▲

Handler1Code VARCHAR2(10), --*归属业务员代码▲

RelateFlowID VARCHAR2(22), --*相关工作流号RelateLogNo NUMBER(15), --*相关工作流序号PosX INT, --**节点X坐标PosY INT, --**节点Y坐标Flag VARCHAR2(10), --**备用标志CONSTRAINT "PK_WfLog" PRIMARY KEY(FlowID,LogNo)

);

其他附属表包括:wfmessage—备注记录

CREATE TABLE UwMessage

(

MessageID VARCHAR2(22) NOT NULL, --** 保单号/投保单号BusinessNo VARCHAR2(22) NOT NULL, --** 业务号码SerialNo NUMBER(15) NOT NULL, --** 序号

LineNo NUMBER(15) NOT NULL, --** 行号

Context VARCHAR2(70), --** 留言内容OperateTime VARCHAR2(19), --** 留言时间(到秒)OperatorCode VARCHAR2(10), --** 操作员代码OperatorName VARCHAR2(30), --** 操作员名称

Flag VARCHAR2(2), --** 标志字段constraint PK_UwMessage primary key (MessageID, SerialNo, LineNo)

);

Uwnotion---核保核赔处理意见表—原来没有把出单员的意见纳入。

为了全面展现处理人对某笔业务的意见,国寿把出单员的意见也加到该表中。Create table UwNotion(

FlowID VARCHAR2(25) NOT NULL, --*工作流ID LogNo INT NOT NULL, --*日志序号LineNo INT NOT NULL, --*行号HandleText VARCHAR2(70) NOT NULL, --*处理意见

Flag VARCHAR2(2), --*备用标志constraint PK_UwNotion primary key (FlowID, LogNo, LineNo)

);

模版

工作流的处理是以模版为基础的。

下面重点介绍一下模版

一个模版的基本要素有,模版号,节点,路经,路经条件。

与模版要素有关的表

定义节点swfnode—在双核中对应的就是核保级别,主要对终止节点的标识。

Create table SwfNode(

ModelNo NUMBER(15) NOT NULL, --*模板号 PK

ModelName VARCHAR2(100) NOT NULL, --*模板名称

NodeNo NUMBER(15) NOT NULL, --*节点号 PK

NodeName VARCHAR2(100) NOT NULL, --*节点名称

NodeType VARCHAR2(5) --**节点类型

--**比如

--** 报案:regis

--** 立案:claim

--**作为图形显示的设置,是

到个人,还是只到部门的标志TimeLimit NUMBER(15), --*处理时限(要和日志表中的

流入时间单位一致)EndFlag VARCHAR2(1), --*结束标志

Criterion VARCHAR2(255), --*处理要求

TaskNo NUMBER(15), --**任务编号

--**为支持任务驱动做准备TaskType VARCHAR2(3), --**任务类型

--**为支持任务驱动做准备

--**M多任务/S单任务UnitCode VARCHAR2(8), --**办理部门编码

UnitName VARCHAR2(60), --**办理部门名称

HandlerCode VARCHAR2(10), --**办理人员编码

HandlerName VARCHAR2(20) --**办理人员名称

PosX NUMBER(15), --**节点X坐标

--**图形方式下的显示位置

PosY NUMBER(15), --**节点Y坐标

--**图形方式下的显示位置

Flag VARCHAR2(10), --*节点设置

constraint PK_SWfNode primary key (ModelNo, NodeNo)

constraint FK_node_smodelMain foreign key (ModelNo)

references SWfModelMain (ModelNo)

);

定义路经swfpath---节点之间的联系,节点间的通道。

Create table SwfPath(

ModelNo NUMBER(15) NOT NULL, --*模板号PK◆

ModelName VARCHAR2(100) NOT NULL, --*模板名称

StartNodeNo NUMBER(15) NOT NULL, --*起始节点◆

StartNodeName VARCHAR2(100) NOT NULL, --*起始节点名称

EndNodeNo NUMBER(15) NOT NULL, --*终止节点◆

EndNodeName VARCHAR2(100) NOT NULL, --*终止节点名称

PathNo NUMBER(15) NOT NULL, --*路径号PK◆

PathName VARCHAR2(100) NOT NULL, --*路径名称(缺省存为“从

StartNode到EndNode”)

Priority NUMBER(15) NOT NULL, --*优先级◆

DefaultFlag VARCHAR2(1) NOT NULL, --*是否缺省值

--*0:否 1:是

ConditionStatus VARCHAR2(1), --**是否存在流转条件

--**0:不存在

--**1:存在

--**是否存在边条件,不存在的时

候,可以不用读取Condition表ForwardServices VARCHAR2(20), --**正向流转所调用的业务处理服

务名

--**业务引擎设置BackwardServices VARCHAR2(20), --**逆向流转所调用的业务处理服

务名

--**业务引擎设置

Flag VARCHAR2(10), --*备用标志

constraint PK_SWfPath primary key (ModelNo, PathNo),

constraint FK_path_node1 foreign key (ModelNo, StartNodeNo)

references SWfNode (ModelNo, NodeNo),

constraint FK_path_node2 foreign key (ModelNo, EndNodeNo)

references SWfNode (ModelNo, NodeNo)

);

定义路经条件swfcondition—路经上的条件

Create table SwfCondition(

ModelNo NUMBER(15) NOT NULL, --*模版号PK◆

PathNo NUMBER(15) NOT NULL, --*路径号PK◆

ConditionNo NUMBER(15) NOT NULL, --*条件编号PK◆

SerialNo NUMBER(15) NOT NULL, --*序号PK◆

ComCode VARCHAR2(8), --*归属部门

ValidStatus VARCHAR2(1) NOT NULL, --*条件是否有效标志◆

--*0:无效 1:有效

ConfigType VARCHAR2(1) NOT NULL, --*配置类型标志◆

--*0:简单描述

--*1:SQL语句描述

--*2:高级描述

ConfigText VARCHAR2(255), --*配置描述

BusinessKey VARCHAR2(18), --*业务键值

DBName VARCHAR2(20), --*数据库名称(校验合法性)TableName VARCHAR2(60), --*表名

DataType VARCHAR2(100), --*字段数据类型(与系统表中相

同即可)

ColumnName VARCHAR2(20), --*字段名

ColumnDesc VARCHAR2(60), --*字段描述

Operator VARCHAR2(30), --*运算符(=、!=、>、>= 、IN、

MATCHES等)◆

Value VARCHAR2(255), --*比较值

Flag VARCHAR2(10), --*预留字段

constraint PK_SWfCondition primary key (ModelNo, PathNo, ConditionNo, SerialNo), constraint FK_condition_path foreign key (ModelNo, PathNo)

references SWfPath (ModelNo, PathNo)

);

模版业务设置

核赔人的权限设置

Uwgroup---权限分组表---按照ComCode, RiskCode划分不同的组

Create table UwGroup

(

GroupNo INT NOT NULL, --*权限组号

GroupDesc VARCHAR2(40), --**权限组描述(新增)ComCode VARCHAR2(10) NOT NULL, --*归属部门

RiskCode VARCHAR2(4) NOT NULL, --*险种

constraint PK_UwGroup primary key (GroupNo, ComCode, RiskCode)

);

Uwgrade---人员级别表---按照GroupNo, ModelNo决定某人的级别。

NodeNo就是级别代码。

Create table UwGrade

(

UserCode VARCHAR2(10) NOT NULL, --*人员代码

ModelNo INT NOT NULL, --*模板号

NodeNo INT NOT NULL, --*节点号

GroupNo INT NOT NULL, --*权限组号

constraint PK_UwGrade primary key (UserCode, ModelNo, NodeNo, GroupNo)

);

Uwgroup、Uwgrade两个表通过groupno关联。

Groupno是自己取值的。我建议的规则是机构前两位+模版号。

高级核赔条件

高级核保条件是通过模版路经上的路经条件来实现的。

高级条件分为两种:简单条件,高级条件。通过swfcondition表的configtype字段决定。

简单条件可以写sql语句

简单条件的执行

\undwrt\modules\component\com\sinosoft\undwrt\bl\action\custom\BLConfigAction.java

函数

public boolean executeSql(String iBusinessNo,String iStrSQL,DBManager dbManager) throws Exception

高级条件通过调用双核中的方法来实现。

高级核保核赔控制涉及的主要文件:

入口函数

\undwrt\modules\component\com\sinosoft\undwrt\bl\action\custom\BLConfigAction.java

该文件中主要包括两个函数

public boolean executeSql(String iBusinessNo,String iStrSQL,DBManager dbManager) throws Exception 该函数是执行简单sql条件的。

public boolean executeFunc(String iBusinessNo,String iFuncNameAndBusinessType,DBManager dbManager) throws Exception

该函数是执行高级核保条件的。该函数中对各种核保核赔进行分发。

初始核保因子的基础数据(即高级核保条件的标准)

bLStandardDto.initStandard(iBusinessNo,dbManager,iBusinessType);

进行比较

if(iFuncName.equals("checkCarHepeiPrimaryB")){

HePeiConditionCarDto hepeiConditionDto= bLStandardDto.getCarHepeiConditionPrimaryBDto();

blnReturn =

bLStandardCheck.checkCarHepei(iBusinessNo,hepeiConditionDto,dbManager,iBusinessType);

}

bLStandardDto是对高级核保权限的标准进行赋值。--建议把标准整理一下,统一放到表里进行维护。

现在都邦的核保已经把部分的高级条件的标准配置到uwamountcontrol表里和其他部分表中。BLBusinessHepeiData是取到理赔的业务数据。

bLStandardCheck此文件是把业务数据和标准进行比对,并把不满足权限的信息抛到页面上。

关闭工作流后回写业务数据

主要涉及两个文件

\undwrt\modules\component\com\sinosoft\undwrt\bl\action\custom\BLPrpFeedBackAction.java

函数

public boolean echo(DBManager dbManager, char certiType, String businessNo,

String status, String underWriteCode, DateTime underWriteDate,

String flag, String businessSource) throws UserException,

SQLException, Exception

函数

public void echoCompensate(DBManager dbManager, String businessNo,

String status, String underwriteCode, DateTime underwriteDate,

String flag, String serverName, String dbname, String businessSource)

throws UserException, SQLException, Exception

//该段代码实现送收付费的功能

if (status.trim().equals("3") || status.trim().equals("1")) {

String businessType = String.valueOf(certiType);

echoPrp(businessType, businessNo, underWriteCode, dbManager);

}

实现的功能主要是更新理赔表的数据。

dbPrpLcompensate.update(prpLcompensateDto);

关闭工作流后,向理赔系统发送相关数据。

\undwrt\modules\component\com\sinosoft\undwrt\bl\facade\BLWfLogFacade.java

函数

blWfLogAction.checkSubmitClaim(dbManager, flowID, modelNo,

nodeNo, String.valueOf(blWfLogAction.getCertiType()));

在此函数中实现组织数据向理赔发送的功能。

双核的配置文件规定

modify="1">http://192.168.30.5:7601/claim/WFUWServer

部分重点功能程序简单介绍:

双核系统查询任务的动作

\undwrt\modules\component\com\sinosoft\undwrt\ui\control\viewhelper\WfLogQueryViewHelper.java 查询语句调用的sql语句

SELECT DISTINCT Wflog.* FROM UwGroup ,UwGrade,Wflog

WHERE WfLog.ModelNo = UwGrade.ModelNo

AND https://www.wendangku.net/doc/7f16476508.html,erCode = '1100006202'

AND WfLog.NodeNo = UwGrade.NodeNo

AND UwGrade.GroupNo = UwGroup.GroupNo

AND Wflog.RiskCode = UwGroup.RiskCode

AND https://www.wendangku.net/doc/7f16476508.html,Code = https://www.wendangku.net/doc/7f16476508.html,Code

AND Wflog.LogNo <> 1

AND Wflog.NodeNo <> 1

AND WfLog.NodeStatus NOT IN('4','0');

常见的问题

1、理赔系统中提交计算书失败。

可能的原因有两个

<1>理赔系统的配置文件中的双核路径错误。

<2>swfmodeluse表中缺少相应的数据。

即通过comcode,riskcode,modeltype,modelstatus找不到数据。

2、双核系统中某个核赔人员找不到计算书。

可能的原因是

<1>uwgroup和uwgrade表中缺少相应的数据。

解决问题的步骤

select modelno, comcode from wflog where businesstype ='C' and businessno

='C03012006110000000005_001'

order by logno,nodeno

得到modelno=’31’和comcode ='11000062'

Select groupno from uwgroup where comcode ='11000062' and riskcode ='0301'

得到groupno

select * from uwgrade where usercode ='1100006202' and modelno ='31' and groupno ='1131' 得到nodeno

select * from swfnode where modelno ='31' and nodeno in ('2','3','4')

3、核保通过时报“理赔工作流无返回值!请与系统管理员联系!”

可能的原因是

双核系统的配置文件中的理赔路径错误。

相关文档