From 881d15fa2f2aeea96b6c68e5cc58b96a2146b602 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=B4=B5=E5=BC=BA?= Date: Mon, 7 Jul 2025 14:42:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=B4=E5=AF=B8=E8=A1=A8=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/plugin/report/BankInfoFormReport.java | 65 ++++++++++++++++--- .../fi/plugin/report/BankInfoListReport.java | 33 ++++++---- 2 files changed, 74 insertions(+), 24 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/report/BankInfoFormReport.java b/main/java/shjh/jhzj7/fi/fi/plugin/report/BankInfoFormReport.java index 9cc5c45..6497540 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/report/BankInfoFormReport.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/report/BankInfoFormReport.java @@ -15,6 +15,7 @@ import java.util.Iterator; */ public class BankInfoFormReport extends AbstractReportFormPlugin implements Plugin { + private static final String[] LIMIT_BANK = {"交通银行","平安银行","招商银行","中国工商银行","中国建设银行","中国农业银行","中国银行"}; private static final String[] NEED_FIELDS = { "shjh_accountname", "shjh_accountnumber", "shjh_currencynumber", "shjh_bankname", "shjh_openbankname", "shjh_hostbankname", "shjh_hostbankbra", "shjh_accttype", @@ -42,7 +43,6 @@ public class BankInfoFormReport extends AbstractReportFormPlugin implements Plug row.set(NEED_FIELDS[19], amount); BigDecimal rate = row.getBigDecimal(NEED_FIELDS[20]); if (rate != null && rate.compareTo(BigDecimal.ZERO) != 0) { - //按照最新头寸取值时间获取银行账户最后一笔交易明细中的余额*汇率 BigDecimal multiply = rate.multiply(amount); row.set(NEED_FIELDS[21], multiply); row.set(NEED_FIELDS[22], multiply); @@ -52,17 +52,62 @@ public class BankInfoFormReport extends AbstractReportFormPlugin implements Plug row.set(NEED_FIELDS[26], multiply); } } - //【城市】:银行账户的开户行中城市名称,需要去掉“市”字 - String cityName = row.getString(NEED_FIELDS[32]); - if (cityName != null && cityName.endsWith("市")) { - cityName = cityName.substring(0, cityName.length() - 1); - row.set(NEED_FIELDS[32],cityName); - } - //【币种】:CNY需要转换为RMB - String currencyNumber= row.getString(NEED_FIELDS[2]); - if (currencyNumber!=null && currencyNumber.contains("CNY")){ + + // 1.【币种】:CNY需要转换为RMB + String currencyNumber = row.getString(NEED_FIELDS[2]); + if (currencyNumber != null && currencyNumber.contains("CNY")) { row.set(NEED_FIELDS[2], currencyNumber.replace("CNY", "RMB")); } + + // 2.【主办行名称】:特殊处理,不在LIMIT_BANK中名称改为"其他" + String hostBankName = row.getString(NEED_FIELDS[5]); + if (hostBankName != null) { + boolean isLimitBank = false; + for (String bank : LIMIT_BANK) { + if (bank.equals(hostBankName)) { + isLimitBank = true; + break; + } + } + if (!isLimitBank) { + row.set(NEED_FIELDS[5], "其他"); + } + } + + // 3.【账户类型】:改为活期账户 + row.set(NEED_FIELDS[10],"活期账户"); + + // 3.【城市】:银行账户的开户行中城市名称,需要去掉"市"字 + String cityName = row.getString(NEED_FIELDS[31]); + if (cityName != null && cityName.endsWith("市")) { + cityName = cityName.substring(0, cityName.length() - 1); + row.set(NEED_FIELDS[31], cityName); + } + + // 4.【是否协定存款】:有值且>0填入"是",为null或""或<=0填入"否" + String isNotAgrDeposits = row.getString(NEED_FIELDS[32]); + if (isNotAgrDeposits != null && !isNotAgrDeposits.isEmpty()) { + try { + double value = Double.parseDouble(isNotAgrDeposits); + row.set(NEED_FIELDS[32], value > 0 ? "是" : "否"); + } catch (NumberFormatException e) { + row.set(NEED_FIELDS[32], "否"); + } + } else { + row.set(NEED_FIELDS[32], "否"); + } + + // 5.【是否境外账户】:境内="否",境外="是" + String isNotOveAccounts = row.getString(NEED_FIELDS[33]); + if (isNotOveAccounts != null) { + if ("A".equals(isNotOveAccounts)) { + row.set(NEED_FIELDS[33], "否"); + } else if ("B".equals(isNotOveAccounts)) { + row.set(NEED_FIELDS[33], "是"); + } + // 其他情况保持原值 + } + } } } \ No newline at end of file diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/report/BankInfoListReport.java b/main/java/shjh/jhzj7/fi/fi/plugin/report/BankInfoListReport.java index a444e23..595f881 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/report/BankInfoListReport.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/report/BankInfoListReport.java @@ -24,9 +24,9 @@ import java.util.concurrent.TimeUnit; public class BankInfoListReport extends AbstractReportListDataPlugin implements Plugin { private static final String[] BANK_FIELDS = { - "company.name","bankaccountnumber","currency.fbasedataid","bank.shjh_extname","name","bank.shjh_hostname", - "accttype","acctstatus","openorg.name","acctstyle","issetbankinterface","bank.province.name","bank.city.name", - "shjh_acctoutin","id" + "company.name","bankaccountnumber","currency.fbasedataid","bank.bank_cate.name","bank.name","bank.shjh_hostname", + "accttype","acctstatus","openorg.name","acctstyle","issetbankinterface","bank.bebank.provincetxt","bank.city.name", + "shjh_acctoutin","id","shjh_xdlv" }; private static final String[] DETAIL_FIELDS = { @@ -57,10 +57,10 @@ public class BankInfoListReport extends AbstractReportListDataPlugin implements .append(BANK_FIELDS[1]).append(" AS ").append(NEED_FIELDS[1]).append(",") .append(BANK_FIELDS[3]).append(" AS ").append(NEED_FIELDS[3]).append(",") .append(BANK_FIELDS[4]).append(" AS ").append(NEED_FIELDS[4]).append(",") - .append(BANK_FIELDS[5]).append(" AS ").append(NEED_FIELDS[5]).append(",") + .append(BANK_FIELDS[3]).append(" AS ").append(NEED_FIELDS[5]).append(",") .append("'其他'").append(" ").append(NEED_FIELDS[6]).append(",") - .append(BANK_FIELDS[6]).append(" AS ").append(NEED_FIELDS[7]).append(",") - .append(BANK_FIELDS[7]).append(" AS ").append(NEED_FIELDS[8]).append(",") + .append("'收支混用户'").append(" AS ").append(NEED_FIELDS[7]).append(",") + .append("'活动'").append(" AS ").append(NEED_FIELDS[8]).append(",") .append(BANK_FIELDS[8]).append(" AS ").append(NEED_FIELDS[9]).append(",") .append(BANK_FIELDS[9]).append(" AS ").append(NEED_FIELDS[10]).append(",") .append("'上海家化'").append(" ").append(NEED_FIELDS[11]).append(",") @@ -71,7 +71,7 @@ public class BankInfoListReport extends AbstractReportListDataPlugin implements .append(BANK_FIELDS[10]).append(" AS ").append(NEED_FIELDS[29]).append(",") .append(BANK_FIELDS[11]).append(" AS ").append(NEED_FIELDS[30]).append(",") .append(BANK_FIELDS[12]).append(" AS ").append(NEED_FIELDS[31]).append(",") - .append("'否'").append(" ").append(NEED_FIELDS[32]).append(",") + .append(BANK_FIELDS[15]).append(" ").append(NEED_FIELDS[32]).append(",") .append(BANK_FIELDS[13]).append(" AS ").append(NEED_FIELDS[33]).append(",") .append("'上海家化'").append(" ").append(NEED_FIELDS[34]).append(",") .append("'上海家化'").append(" ").append(NEED_FIELDS[35]).append(",") @@ -95,8 +95,8 @@ public class BankInfoListReport extends AbstractReportListDataPlugin implements selectFields.append("'").append(accrualDate).append("'").append(" ").append(NEED_FIELDS[27]); // 计算当前日期的下一天(用于 less_than 条件) Date nextDay = new Date(filterItem.getDate().getTime() + TimeUnit.DAYS.toMillis(1)); - qFilters2.add(new QFilter("bizdate", QCP.large_equals,filterItem.getDate())); - qFilters2.add(new QFilter("bizdate",QCP.less_than,nextDay)); + qFilters2.add(new QFilter("bizdate", QCP.less_equals,filterItem.getDate())); + //qFilters2.add(new QFilter("bizdate",QCP.less_than,nextDay));//流水日期<今天0点 break; case "shjh_filteraccttype": String type = (String) filterItem.getValue(); @@ -134,6 +134,11 @@ public class BankInfoListReport extends AbstractReportListDataPlugin implements } } qFilters1.add(new QFilter("acctstyle", QCP.in,styleList)); + }else { + //仅取活期账户(一般和基本户) + styleList.add("basic"); + styleList.add("normal"); + qFilters1.add(new QFilter("acctstyle", QCP.in,styleList)); } break; case "shjh_bank": @@ -187,17 +192,17 @@ public class BankInfoListReport extends AbstractReportListDataPlugin implements //收款入账中心-流水 DataSet detailsDataSet = QueryServiceHelper.queryDataSet( this.getClass().getName() + "details", - "bei_intelrec","accountbank,biztime,transbalance AS shjh_monthamt", + "bei_intelrec","accountbank,bizdate,transbalance AS shjh_monthamt,modifytime AS shjh_datetimefield", qFilters2.toArray(new QFilter[]{}), null); - //取最大日期 - DataSet maxDataSet=detailsDataSet.groupBy(new String[]{"accountbank"}).max("biztime").finish(); + DataSet maxDataSet=detailsDataSet.groupBy(new String[]{"accountbank"}).max("shjh_datetimefield").finish(); //重新排序 maxDataSet=maxDataSet.join(detailsDataSet) .on("accountbank","accountbank") - .select(new String[]{"accountbank","shjh_monthamt","biztime"}) + .on("shjh_datetimefield","shjh_datetimefield") + .select(new String[]{"accountbank","shjh_monthamt","bizdate","shjh_datetimefield"}) .finish(); //过滤金额=null的数据 maxDataSet=maxDataSet.filter("shjh_monthamt <> null"); @@ -212,7 +217,7 @@ public class BankInfoListReport extends AbstractReportListDataPlugin implements "shjh_fixedfield2","shjh_fixedfield3","shjh_monthamt", "shjh_exchangerate", "shjh_textfield", "shjh_fixedfield4","shjh_sfzl","shjh_province","shjh_city", "shjh_fixedfield5", "shjh_acctoutin","shjh_fixedfield6","shjh_fixedfield7", - "shjh_fixedfield8", "shjh_fixedfield9","shjh_fixedfield10"}) + "shjh_fixedfield8", "shjh_fixedfield9","shjh_fixedfield10","shjh_datetimefield"}) .finish(); return dataSet;