1、xml
<parameterMap
id=
"creatReportMap"
class=
"java.util.HashMap">
<parameter property= "claimNoParam" jdbcType= "VARCHAR" javaType= "java.lang.String" mode= "IN"></parameter>
<parameter property= "caseReportDto" jdbcType= "STRUCT" javaType= "java.lang.Object" mode= "IN" typeName= "CLMCDE.REC_CLAIM_REPORT"
typeHandler= "com.sinolife.claim.basic.dto.ClaimReportTypeHandler"/>
<parameter property= "handType" jdbcType= "VARCHAR" javaType= "java.lang.String" mode= "IN"></parameter>
<parameter property= "startWorkflowFlag" jdbcType= "VARCHAR" javaType= "java.lang.String" mode= "IN"></parameter>
<parameter property= "claimNo" jdbcType= "VARCHAR" javaType= "java.lang.String" mode= "OUT"/>
<parameter property= "flag" jdbcType= "VARCHAR" javaType= "java.lang.String" mode= "OUT"/>
<parameter property= "message" jdbcType= "VARCHAR" javaType= "java.lang.String" mode= "OUT"/>
</parameterMap>
<procedure id= "creatReport" parameterMap= "creatReportMap">
{call l_claim_report_pkg.create_report(?,?,?,?,?,?,?)}
</procedure>
<parameter property= "claimNoParam" jdbcType= "VARCHAR" javaType= "java.lang.String" mode= "IN"></parameter>
<parameter property= "caseReportDto" jdbcType= "STRUCT" javaType= "java.lang.Object" mode= "IN" typeName= "CLMCDE.REC_CLAIM_REPORT"
typeHandler= "com.sinolife.claim.basic.dto.ClaimReportTypeHandler"/>
<parameter property= "handType" jdbcType= "VARCHAR" javaType= "java.lang.String" mode= "IN"></parameter>
<parameter property= "startWorkflowFlag" jdbcType= "VARCHAR" javaType= "java.lang.String" mode= "IN"></parameter>
<parameter property= "claimNo" jdbcType= "VARCHAR" javaType= "java.lang.String" mode= "OUT"/>
<parameter property= "flag" jdbcType= "VARCHAR" javaType= "java.lang.String" mode= "OUT"/>
<parameter property= "message" jdbcType= "VARCHAR" javaType= "java.lang.String" mode= "OUT"/>
</parameterMap>
<procedure id= "creatReport" parameterMap= "creatReportMap">
{call l_claim_report_pkg.create_report(?,?,?,?,?,?,?)}
</procedure>
2、java
/**
* 新报案
*/
public String creatReport(CaseReportDto caseReportDto){
Map pMap = new HashMap();
//理赔号
pMap.put( "claimNoParam", caseReportDto.getClaimNo());
pMap.put( "caseReportDto", caseReportDto);
if( "deal".equals(caseReportDto.getModuleId())){
pMap.put( "handType", "2");
} else{
pMap.put( "handType", "1");
}
//工作流标志,PKG是否启动工作流
if(caseReportDto.getStartWorkflowFlag() !=null && "Y".equals(caseReportDto.getStartWorkflowFlag())){
pMap.put( "startWorkflowFlag", "Y");
} else{
pMap.put( "startWorkflowFlag", "N");
}
getSqlMapClientTemplate().queryForList(CaseReportInfoDao. class.getName() + ".creatReport", pMap);
if( "Y".equals(pMap.get( "flag"))){
return (String)pMap.get( "claimNo");
} else{
throw new RuntimeException( "" +pMap.get( "message"));
}
}
* 新报案
*/
public String creatReport(CaseReportDto caseReportDto){
Map pMap = new HashMap();
//理赔号
pMap.put( "claimNoParam", caseReportDto.getClaimNo());
pMap.put( "caseReportDto", caseReportDto);
if( "deal".equals(caseReportDto.getModuleId())){
pMap.put( "handType", "2");
} else{
pMap.put( "handType", "1");
}
//工作流标志,PKG是否启动工作流
if(caseReportDto.getStartWorkflowFlag() !=null && "Y".equals(caseReportDto.getStartWorkflowFlag())){
pMap.put( "startWorkflowFlag", "Y");
} else{
pMap.put( "startWorkflowFlag", "N");
}
getSqlMapClientTemplate().queryForList(CaseReportInfoDao. class.getName() + ".creatReport", pMap);
if( "Y".equals(pMap.get( "flag"))){
return (String)pMap.get( "claimNo");
} else{
throw new RuntimeException( "" +pMap.get( "message"));
}
}
package
com.sinolife.claim.basic.dto;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import oracle.sql.STRUCT;
import oracle.sql.StructDescriptor;
import com.ibatis.sqlmap.engine.type.BaseTypeHandler;
import com.ibatis.sqlmap.engine.type.TypeHandler;
import com.sinolife.sf.framework.comm.ConnectionUtil;
/**
* 处理CLMCDE.REC_CLAIM_REPORT的handler
*
*/
public class ClaimReportTypeHandler extends BaseTypeHandler implements TypeHandler{
@Override
public Object getResult(ResultSet arg0, String arg1) throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public Object getResult(ResultSet arg0, int arg1) throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public Object getResult(CallableStatement arg0, int arg1)
throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public void setParameter(PreparedStatement ps, int i, Object parameter, String jdbcType) throws SQLException {
Connection con = ps.getConnection();
con = ConnectionUtil.getNativeConnection(con);
CaseReportDto caseReportDto = (CaseReportDto)parameter;
Object[] result = new Object[ 28];
result[ 0] = caseReportDto.getClaimInfo().getClientNo();
result[ 1] = caseReportDto.getCaseReportInfo().getAccidentStateCode();
result[ 2] = new java.sql.Date(caseReportDto.getCaseReportInfo().getAccidentDate().getTime());
result[ 3] = caseReportDto.getCaseReportInfo().getDeathDate() !=null ? new java.sql.Date(caseReportDto.getCaseReportInfo().getDeathDate().getTime()) :null;
result[ 4] = caseReportDto.getCaseReportInfo().getAreaCode();
result[ 5] = caseReportDto.getCaseReportInfo().getAccidentAddr();
result[ 6] = caseReportDto.getCaseReportInfo().getIsOutcountry();
result[ 7] = caseReportDto.getCaseReportInfo().getAccidentHandleunit();
result[ 8] = caseReportDto.getCaseReportInfo().getAccidentHandleunitPhone();
result[ 9] = caseReportDto.getCaseReportInfo().getAccidentHandleunitContact();
result[ 10] = caseReportDto.getCaseReportInfo().getAccidentHandleunitContactPhone();
result[ 11] = caseReportDto.getCaseReportInfo().getAccidentHandleunitContactCellphone();
result[ 12] = caseReportDto.getCaseReportMedicalinfo().getHospitalName();
result[ 13] = caseReportDto.getCaseReportMedicalinfo().getHospitalCode();
result[ 14] = caseReportDto.getCaseReportMedicalinfo().getDepartmentCode();
result[ 15] = caseReportDto.getCaseReportMedicalinfo().getBedNo();
result[ 16] = caseReportDto.getCaseReportInfo().getCaseReporterName();
result[ 17] = caseReportDto.getCaseReportInfo().getCaseReporterPhone();
result[ 18] = caseReportDto.getCaseReportInfo().getCaseReporterCellphone();
result[ 19] = caseReportDto.getCaseReportInfo().getCaseReporterType();
result[ 20] = caseReportDto.getCaseReportInfo().getReportRelationCode();
result[ 21] = caseReportDto.getCaseReportInfo().getReportType();
result[ 22] = caseReportDto.getCaseReportInfo().getContactName();
result[ 23] = caseReportDto.getCaseReportInfo().getContactPhone();
result[ 24] = caseReportDto.getCaseReportInfo().getContactCellphone();
result[ 25] = caseReportDto.getCaseReportInfo().getAccidentDesc();
result[ 26] = caseReportDto.getCaseReportInfo().getCaseReportRemark();
result[ 27] = caseReportDto.getCaseReportInfo().getRegistUsername();
StructDescriptor structdesc = new StructDescriptor( "CLMCDE.REC_CLAIM_REPORT", con);
STRUCT struct = new STRUCT(structdesc, con, result);
ps.setObject(i, struct);
}
@Override
public Object valueOf(String arg0) {
// TODO Auto-generated method stub
return null;
}
}
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import oracle.sql.STRUCT;
import oracle.sql.StructDescriptor;
import com.ibatis.sqlmap.engine.type.BaseTypeHandler;
import com.ibatis.sqlmap.engine.type.TypeHandler;
import com.sinolife.sf.framework.comm.ConnectionUtil;
/**
* 处理CLMCDE.REC_CLAIM_REPORT的handler
*
*/
public class ClaimReportTypeHandler extends BaseTypeHandler implements TypeHandler{
@Override
public Object getResult(ResultSet arg0, String arg1) throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public Object getResult(ResultSet arg0, int arg1) throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public Object getResult(CallableStatement arg0, int arg1)
throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public void setParameter(PreparedStatement ps, int i, Object parameter, String jdbcType) throws SQLException {
Connection con = ps.getConnection();
con = ConnectionUtil.getNativeConnection(con);
CaseReportDto caseReportDto = (CaseReportDto)parameter;
Object[] result = new Object[ 28];
result[ 0] = caseReportDto.getClaimInfo().getClientNo();
result[ 1] = caseReportDto.getCaseReportInfo().getAccidentStateCode();
result[ 2] = new java.sql.Date(caseReportDto.getCaseReportInfo().getAccidentDate().getTime());
result[ 3] = caseReportDto.getCaseReportInfo().getDeathDate() !=null ? new java.sql.Date(caseReportDto.getCaseReportInfo().getDeathDate().getTime()) :null;
result[ 4] = caseReportDto.getCaseReportInfo().getAreaCode();
result[ 5] = caseReportDto.getCaseReportInfo().getAccidentAddr();
result[ 6] = caseReportDto.getCaseReportInfo().getIsOutcountry();
result[ 7] = caseReportDto.getCaseReportInfo().getAccidentHandleunit();
result[ 8] = caseReportDto.getCaseReportInfo().getAccidentHandleunitPhone();
result[ 9] = caseReportDto.getCaseReportInfo().getAccidentHandleunitContact();
result[ 10] = caseReportDto.getCaseReportInfo().getAccidentHandleunitContactPhone();
result[ 11] = caseReportDto.getCaseReportInfo().getAccidentHandleunitContactCellphone();
result[ 12] = caseReportDto.getCaseReportMedicalinfo().getHospitalName();
result[ 13] = caseReportDto.getCaseReportMedicalinfo().getHospitalCode();
result[ 14] = caseReportDto.getCaseReportMedicalinfo().getDepartmentCode();
result[ 15] = caseReportDto.getCaseReportMedicalinfo().getBedNo();
result[ 16] = caseReportDto.getCaseReportInfo().getCaseReporterName();
result[ 17] = caseReportDto.getCaseReportInfo().getCaseReporterPhone();
result[ 18] = caseReportDto.getCaseReportInfo().getCaseReporterCellphone();
result[ 19] = caseReportDto.getCaseReportInfo().getCaseReporterType();
result[ 20] = caseReportDto.getCaseReportInfo().getReportRelationCode();
result[ 21] = caseReportDto.getCaseReportInfo().getReportType();
result[ 22] = caseReportDto.getCaseReportInfo().getContactName();
result[ 23] = caseReportDto.getCaseReportInfo().getContactPhone();
result[ 24] = caseReportDto.getCaseReportInfo().getContactCellphone();
result[ 25] = caseReportDto.getCaseReportInfo().getAccidentDesc();
result[ 26] = caseReportDto.getCaseReportInfo().getCaseReportRemark();
result[ 27] = caseReportDto.getCaseReportInfo().getRegistUsername();
StructDescriptor structdesc = new StructDescriptor( "CLMCDE.REC_CLAIM_REPORT", con);
STRUCT struct = new STRUCT(structdesc, con, result);
ps.setObject(i, struct);
}
@Override
public Object valueOf(String arg0) {
// TODO Auto-generated method stub
return null;
}
}
3、pkg
PROCEDURE
create_report(
p_claim_no_param IN clm_claim_info.claim_no% TYPE,
p_rec_claim_report IN CLMCDE.REC_CLAIM_REPORT,
p_handle_type IN VARCHAR2,
p_start_workflow_flag IN VARCHAR2,
p_claim_no OUT clm_claim_info.claim_no% TYPE,
p_flag OUT VARCHAR2,
p_message OUT VARCHAR2)
p_claim_no_param IN clm_claim_info.claim_no% TYPE,
p_rec_claim_report IN CLMCDE.REC_CLAIM_REPORT,
p_handle_type IN VARCHAR2,
p_start_workflow_flag IN VARCHAR2,
p_claim_no OUT clm_claim_info.claim_no% TYPE,
p_flag OUT VARCHAR2,
p_message OUT VARCHAR2)