/** * 如果号码相邻的发票号码没有用“-”连接,就修改为“-”连接 * @param controller * @return 发票说明 * @throws ActiveRecordException */ private static String createInvoiceDescription(String payUuid) throws ActiveRecordException { // 查询发票号码 String selSql = String.format( "select invoice_no from %s where draft_id=? and sys_status=%s order by invoice_no asc", BizInvoiceDraft.dao.getTable().getName(), BlConstant.SYS_STATUS_VALUE); // db查询 List<Record> records = Db.find(selSql, payUuid); BigDecimal b1 = null; BigDecimal b2 = null; if (records.size() == 0) { // 没有发票信息,发票说明为空 return ""; } else if (records.size() == 1) { // 只有一条发票信息 return records.get(0).get("invoiceNo"); } else if (records.size() == 2) { // 只有两条发票信息 b1 = new BigDecimal(records.get(0).get("invoiceNo").toString()); b2 = new BigDecimal(records.get(1).get("invoiceNo").toString()); // 判断发票号码是否相邻 if (b2.compareTo(b1.add(new BigDecimal(1))) == 0) { // 相邻 return records.get(0).get("invoiceNo").toString() + "-" + records.get(1).get("invoiceNo").toString(); } else { // 不相邻 return records.get(0).get("invoiceNo").toString() + "," + records.get(1).get("invoiceNo").toString(); } } else { // 发票信息记录数大于2 String tmpRtnStr = records.get(0).get("invoiceNo"); String rtnStr = ""; for (int i = 1; i < records.size(); i++) { b1 = new BigDecimal(records.get(i - 1).get("invoiceNo").toString()); b2 = new BigDecimal(records.get(i).get("invoiceNo").toString()); if (b2.compareTo(b1.add(new BigDecimal("1"))) == 0) { // 当前两个发票号码相邻 } else { // 当前两个发票号码不相邻 if (new BigDecimal(tmpRtnStr) .compareTo(new BigDecimal(records.get(i - 1).get("invoiceNo").toString())) == 0) { rtnStr = rtnStr + records.get(i - 1).get("invoiceNo").toString() + ","; } else { tmpRtnStr = tmpRtnStr + "-" + records.get(i - 1).get("invoiceNo").toString(); rtnStr = rtnStr + tmpRtnStr + ","; } tmpRtnStr = records.get(i).get("invoiceNo").toString(); } if (i == records.size() - 1) { if ((new BigDecimal(tmpRtnStr)) .compareTo(new BigDecimal(records.get(i).get("invoiceNo").toString())) == 0) { } else { tmpRtnStr += "-" + records.get(i).get("invoiceNo").toString(); } rtnStr = rtnStr + tmpRtnStr + ","; } } return rtnStr.substring(0, rtnStr.length() - 1); } }
if (!duplicatedPayIds.isEmpty()) { // 记录校验不通过 isCheckPass = false; // comment String comment = "该付款确认书的BIP编码与"; int countNum = 0; for (Record r : duplicatedPayIds) { if (0 < countNum) { comment += "、"; } comment += r.getStr("payId"); countNum ++; } comment += "的BIP编码重复;"; // 数据校验不通过 bizPayComfirmDraftErrorStr.append(comment); }