入参有类型

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>

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"));
        }
    }

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;
    }
 
}

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)
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值