diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/FullAllocationService.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/FullAllocationService.java index 9fc1344..511ce42 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/FullAllocationService.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/FullAllocationService.java @@ -17,47 +17,53 @@ import java.math.BigDecimal; public class FullAllocationService implements IBalanceService { private static final Log logger = LogFactory.getLog(FullAllocationService.class); + /** * @param transferType 划拨类型 UP上划,DOWN 下拨 - * @param strategyId 划拨策略ID 2234204585302439936 - * @param accountId 账户ID - * @param currencyId 币别ID + * @param strategyId 划拨策略ID 2234204585302439936 + * @param accountId 账户ID + * @param currencyId 币别ID * @return 即时余额 */ @Override public BigDecimal getBalanceAmount(String transferType, Long strategyId, Long accountId, Long currencyId) { + logger.info("进入 FullAllocationService → getBalanceAmount 调用参数 → transferType: {}, strategyId: {}, accountId: {}, currencyId: {}", transferType, strategyId, accountId, currencyId); + BigDecimal valibalance = null; - logger.info( "进入 FullAllocationService → getBalanceAmount 调用参数 → transferType: {}, strategyId: {}, accountId: {}, currencyId: {}", transferType, strategyId, accountId, currencyId); - //母账户:115871233966 - //子账户:118587472156 - if ("DOWN".equals(transferType)) { - DynamicObject amAccountbanks = BusinessDataServiceHelper.loadSingle(accountId, "am_accountbank"); - // 申请公司 - DynamicObject company = amAccountbanks.getDynamicObject("company"); - DynamicObject[] ifmInneraccts = BusinessDataServiceHelper.load("ifm_inneracct", "id,number,company,relationacc", new QFilter("company", QCP.equals, company.getLong("id")).toArray()); + DynamicObject[] fcaTranstrategys = BusinessDataServiceHelper.load("fca_transtrategy", "id,number,name,istransdown,downway", new QFilter("id", QCP.equals, strategyId).toArray()); + if (fcaTranstrategys != null) { + DynamicObject fcaTranstrategy = fcaTranstrategys[0]; + boolean istransdown = fcaTranstrategy.getBoolean("istransdown"); + if (istransdown) { + String downway = fcaTranstrategy.getString("downway"); + if ("isfpm1".equals(downway) && "DOWN".equals(transferType)) { + DynamicObject amAccountbanks = BusinessDataServiceHelper.loadSingle(accountId, "am_accountbank"); + // 申请公司 + DynamicObject company = amAccountbanks.getDynamicObject("company"); + DynamicObject[] ifmInneraccts = BusinessDataServiceHelper.load("ifm_inneracct", "id,number,company,relationacc", new QFilter("company", QCP.equals, company.getLong("id")).toArray()); - for (DynamicObject ifmInneracct : ifmInneraccts) { - DynamicObjectCollection relationaccs = ifmInneracct.getDynamicObjectCollection("relationacc"); - if (relationaccs.isEmpty()) { - continue; - } - long relationaccId = relationaccs.get(0).getLong("fbasedataid_Id");//银行账户 - if (relationaccId == accountId) { - String number = ifmInneracct.getString("number"); - DynamicObject[] bdAccountbanks = BusinessDataServiceHelper.load("am_accountbank", "id,bankaccountnumber", new QFilter("bankaccountnumber", QCP.equals, number).toArray()); - long bdAccountbankId = 0; - if (bdAccountbanks.length > 0) { - // 获取内部账户在银行账户里面的id - bdAccountbankId = bdAccountbanks[0].getLong("id"); + for (DynamicObject ifmInneracct : ifmInneraccts) { + DynamicObjectCollection relationaccs = ifmInneracct.getDynamicObjectCollection("relationacc"); + if (relationaccs.isEmpty()) { + continue; + } + long relationaccId = relationaccs.get(0).getLong("fbasedataid_Id");//银行账户 + if (relationaccId == accountId) { + String number = ifmInneracct.getString("number"); + DynamicObject[] bdAccountbanks = BusinessDataServiceHelper.load("am_accountbank", "id,bankaccountnumber", new QFilter("bankaccountnumber", QCP.equals, number).toArray()); + long bdAccountbankId = 0; + if (bdAccountbanks.length > 0) { + // 获取内部账户在银行账户里面的id + bdAccountbankId = bdAccountbanks[0].getLong("id"); + } + + DataSet dataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "ifm_accountbalance", + "accountbank,valibalance,modifytime,company", new QFilter[]{(new QFilter("accountbank", QCP.equals, bdAccountbankId))}, + null).orderBy(new String[]{"modifytime desc"}); + DynamicObjectCollection dataRows = ORM.create().toPlainDynamicObjectCollection(dataSet); + valibalance = dataRows.get(0).getBigDecimal("valibalance"); + } } - - DataSet dataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "ifm_accountbalance", - "accountbank,valibalance,modifytime,company", new QFilter[]{(new QFilter("accountbank", QCP.equals, bdAccountbankId))}, - null).orderBy(new String[]{"modifytime desc"}); - DynamicObjectCollection dataRows = ORM.create().toPlainDynamicObjectCollection(dataSet); - - DynamicObject[] ifmAccountbalances = BusinessDataServiceHelper.load("ifm_accountbalance", "id,accountbank,valibalance", new QFilter("accountbank", QCP.equals, relationaccId).toArray()); - valibalance = dataRows.get(0).getBigDecimal("valibalance"); } } }