让你写的代码“说话”

方法很简单: 按功能点用空行隔开。下面的注释我不会加,写上只是说明我的观点。什么时候加注释:你对所在公司有好的期望,敷衍公司的规定。    

//方法的命名一定要用英文,别说英文不行,下个有道或什么的工具,如果是一个项目,建议开工前搞一个面向领域的词汇集,就算意
//义不是很明确也比汉语拼音的简写强百倍。
public String batch_pay() throws DbException
    {
//这两句话代码要对字符串数组处理,一个功能点
            String[] fybxdh =  this.getParameterValues("fybxdh");
            String[] ss = fybxdh[0].replaceAll("\'|\\[|\\]", "").split(",");
   //这两点话表示产生当前日期的格式化字符串 ,刚开始我把这两句话放到第二个循环中,如果数据量巨大,不断地new ,
//影响程序性能 ,为了程序阅读方便,其实这两句应该移到第二个for之前。       
            SimpleDateFormat formatter = new SimpleDateFormat ("yyyy/MM/dd");
            String date_bxrq = formatter.format(new Date());
              //循环表示对上面的字符串数组进行迭代处理   
            for(int i = 0; i < ss.length; i++)
            {
                 String select_dqzt = "select t.dqzt  from SBXT_YWCL_B_FYBX_BXMXB t where   t.FYBXDH = '"+ ss[i] +"'";
                 Result rs = sqlSession._sqlQuery(select_dqzt);
                 rs.next();
                 String dqzt = rs.getString("dqzt");
                   //对当前状态判断,如果有杂质,返回去重新去选。             
                 if(dqzt.equals("支付") )
                 {
                        return "您选择的报销单中有已支付状态的选项,请重新选择!";
                 }
            }

//程序到这里,已经没有杂质了,可以进行数据库操作。以下这个循环我现在怀疑会产生数据异常,是否在一个事务中呢?
            for(int i = 0; i < ss.length; i++)
            {
               
                String update_bx_sql = "UPDATE SBXT_YWCL_B_FYBX_BXMXB SET dqzt = '支付', bxrq = to_date('"+date_bxrq+"', 'yyyy/mm/dd')  " +
                                       "WHERE fybxdh IN (" +
                                                 "SELECT T.fybxdh\n" +
                                                 "FROM (SELECT T.FYBXDH, T.KHYH\n" +
                                                       "FROM SBXT_YWCL_B_FYBX_BXMXB T, SBXT_XTGL_B_JBXX_CBRJBXXB T1\n" +
                                                       "WHERE T.BXXMBM = '003'\n" +
                                                       "AND T.FYBXDH = '"+ ss[i] +"'" +
                                                       "AND T1.CBRID = T.CBRID) T)";
               String update_zf_sql = "UPDATE SBXT_YWCL_B_FYBX_zfMXB SET dqzt='支付' WHERE fyzfdh IN (SELECT T.fybxdh\n" +
                                   "  FROM (SELECT T.FYBXDH, T.KHYH\n" +
                                   "                 FROM SBXT_YWCL_B_FYBX_BXMXB T, SBXT_XTGL_B_JBXX_CBRJBXXB T1\n" +
                                   "                 WHERE T.BXXMBM = '003'\n" +
                                   "                 AND T.FYBXDH = '"+ ss[i] +"'" + 
                                   "                 AND T1.CBRID = T.CBRID) T\n" +
                                   ")";
       
               int result = sqlSession._sqlUpdate(update_bx_sql);
               result = sqlSession._sqlUpdate(update_zf_sql);
           }
           //返回处理的结果
           if(ss.length > 0)
           {
               return "成功支付"+ss.length+"个报销单!";
           }else
           {
               return "没有要支付的报销单!";
           }
    }   
posted @ 2016-01-22 11:44  深渊中的鱼  阅读(424)  评论(0编辑  收藏  举报