public String getSql(DetailCompRule rule) {
   StringBuffer sql = new StringBuffer();
   sql.append(
       "insert into nms_comp_detail_rule(RULEID,RELATION,ISCONTAIN,EXPRESSION,BEGINBLOCK,ENDBLOCK,ISEXTRACONTAIN,EXTRABLOCK)values(");
   sql.append(rule.getRuleId());
   sql.append(",");
   sql.append(rule.getRelation());
   sql.append(",");
   sql.append(rule.getIsContain());
   sql.append(",'");
   sql.append(rule.getExpression());
   sql.append("','");
   sql.append(rule.getBeginBlock());
   sql.append("','");
   sql.append(rule.getEndBlock());
   sql.append("',");
   sql.append(rule.getIsExtraContain());
   sql.append(",'");
   sql.append(rule.getExtraBlock());
   sql.append("')");
   return sql.toString();
 }
  public void saveDetailRule(int standard, int id) {

    int key = 0;
    if (id == -1) {
      key = GeneratorKey.getInstance().getKey();
    } else {
      key = id;
    }

    DetailCompRuleDao detailDao = new DetailCompRuleDao();
    String express = "";

    int relation = -1; // -1示意为无
    int isContain = 0;

    String beginBlock = "";
    String endBlock = "";
    String extraBlock = "";
    int isExtraContain = -1; // 表示无
    DetailCompRule vo = new DetailCompRule();
    if (standard == 0) {

      express = getParaValue("content");
      isContain = getParaIntValue("simple_config");
    } else if (standard == 1) {
      express = getParaValue("advance_value");
      isContain = getParaIntValue("advance_config");

    } else if (standard == 2) {
      express = getParaValue("custom_value");
      isContain = getParaIntValue("custom_config");
    }

    if (standard == 2) {
      beginBlock = getParaValue("begin");
      endBlock = getParaValue("end");
      isExtraContain = getParaIntValue("isExtraContain");
      extraBlock = getParaValue("extra");
      vo.setBeginBlock(beginBlock);
      vo.setEndBlock(endBlock);

      vo.setExtraBlock(extraBlock);
    }
    vo.setRuleId(key);
    vo.setRelation(relation);
    vo.setIsContain(isContain);
    vo.setExpression(express);
    vo.setIsExtraContain(isExtraContain);
    detailDao.save(vo);

    if (standard == 1 || standard == 2) {
      DBManager db = new DBManager();
      String[] selVals = null;
      String[] textVals = null;
      String selVal = getParaValue("selVal");
      String textVal = getParaValue("textVal");
      if (selVal != null && textVal != null) {
        selVals = new String[selVal.split(",").length];
        textVals = new String[textVal.split(",").length];
        selVals = selVal.split(",");
        textVals = textVal.split(",");
        if (selVals.length == textVals.length * 2) {

          try {
            for (int i = 0; i < selVals.length; i++) {

              if (i % 2 == 1) {
                vo.setIsContain(Integer.parseInt(selVals[i]));
                vo.setExpression(textVals[i / 2]);
                String sql = getSql(vo);
                db.addBatch(sql);
              } else {
                vo = new DetailCompRule();
                if (standard == 2) {
                  vo.setBeginBlock(beginBlock);
                  vo.setEndBlock(endBlock);
                  vo.setIsExtraContain(isExtraContain);
                  vo.setExtraBlock(extraBlock);
                }
                vo.setRuleId(key);
                vo.setRelation(Integer.parseInt(selVals[i]));
              }
            }
          } catch (Exception e) {
            e.printStackTrace();
          } finally {
            db.executeBatch();
          }
        }
      }
    }
  }