• 根据抵质押物类型设置合同详情中的显示标题时遇到的一个问题


    需求描述:

    对于银承质押签银承的业务,将保证金比例改为圈存比例,并将其置为必输项,保证金金额改为圈存金额。

    第一次写的代码:

            if(sBusinessType.equals("2010")){
                        sSql =     "select GuarantyType  from GUARANTY_INFO "+
                        "where GuarantyID in (select GuarantyID  from GUARANTY_RELATIVE where ObjectType = 'BusinessContract'"+
                         "and ObjectNo = '"+sObjectNo+"') ";
            rs = Sqlca.getASResultSet(sSql);
            if(rs.next())
            {
                sGuarantyType = rs.getString("GuarantyType");
                
                if(sGuarantyType == null) sGuarantyType = "";
            }
            rs.getStatement().close();
            }

    SQL逻辑:根据业务合同号到Guaranty_relative表查询该合同下的担保品,在到Guaranty_Info查询该担保品的类型,结果集中存放的是担保品类型,这样写是有问题的,没有考虑一笔合同下可能存在多个担保品,这样最好的结果集是不至1行的,如果有3个担保品,其中银承质押的在结果集的第二行,那么if(rs.next())后面的代码就不能实现需求了。

    更改后的代码:

     1         
     2         if(sBusinessType.equals("2010")){//银承质押签发银承
     3             sSql =     "select count(*)   from GUARANTY_INFO "+
     4                     "where GuarantyID in (select GuarantyID  from GUARANTY_RELATIVE where ObjectType = 'BusinessContract' and ObjectNo = '"+sObjectNo+"') "+
     5                      "and GuarantyType='020210'";
     6             rs = Sqlca.getASResultSet(sSql);
     7             if(rs.next()){
     8             int i = rs.getInt(1);
     9                 if(i>0){
    10                     doTemp.setHeader("BailRatio","圈存比例");
    11                     doTemp.setHeader("BailSum","圈存金额");
    12                 }
    13         rs.getStatement().close();
    14             }
    15         }

    SQL逻辑,查询该笔合同下类型为银承质押的抵质押物记录条数,大于零则设置业务 逻辑。

  • 相关阅读:
    期末总结
    虚拟存储器学习记录
    实验报告
    并发编程学习记录
    进程&信号&管道实践学习记录
    异常控制流学习记录
    系统级IO实践学习记录
    系统级I/O学习记录
    Arduino小车学习与研究
    期中总结
  • 原文地址:https://www.cnblogs.com/liuping/p/2680641.html
Copyright © 2020-2023  润新知