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)