提交人:邹江涛

提交时间:2026年01月13日
提交内容:全额下拨代码调整
This commit is contained in:
root 2026-01-13 17:41:04 +08:00
parent 61d4fed580
commit e335e8de3a
1 changed files with 38 additions and 32 deletions

View File

@ -17,47 +17,53 @@ import java.math.BigDecimal;
public class FullAllocationService implements IBalanceService { public class FullAllocationService implements IBalanceService {
private static final Log logger = LogFactory.getLog(FullAllocationService.class); private static final Log logger = LogFactory.getLog(FullAllocationService.class);
/** /**
* @param transferType 划拨类型 UP上划DOWN 下拨 * @param transferType 划拨类型 UP上划DOWN 下拨
* @param strategyId 划拨策略ID 2234204585302439936 * @param strategyId 划拨策略ID 2234204585302439936
* @param accountId 账户ID * @param accountId 账户ID
* @param currencyId 币别ID * @param currencyId 币别ID
* @return 即时余额 * @return 即时余额
*/ */
@Override @Override
public BigDecimal getBalanceAmount(String transferType, Long strategyId, Long accountId, Long currencyId) { 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; BigDecimal valibalance = null;
logger.info( "进入 FullAllocationService → getBalanceAmount 调用参数 → transferType: {}, strategyId: {}, accountId: {}, currencyId: {}", transferType, strategyId, accountId, currencyId); DynamicObject[] fcaTranstrategys = BusinessDataServiceHelper.load("fca_transtrategy", "id,number,name,istransdown,downway", new QFilter("id", QCP.equals, strategyId).toArray());
//母账户115871233966 if (fcaTranstrategys != null) {
//子账户:118587472156 DynamicObject fcaTranstrategy = fcaTranstrategys[0];
if ("DOWN".equals(transferType)) { boolean istransdown = fcaTranstrategy.getBoolean("istransdown");
DynamicObject amAccountbanks = BusinessDataServiceHelper.loadSingle(accountId, "am_accountbank"); if (istransdown) {
// 申请公司 String downway = fcaTranstrategy.getString("downway");
DynamicObject company = amAccountbanks.getDynamicObject("company"); if ("isfpm1".equals(downway) && "DOWN".equals(transferType)) {
DynamicObject[] ifmInneraccts = BusinessDataServiceHelper.load("ifm_inneracct", "id,number,company,relationacc", new QFilter("company", QCP.equals, company.getLong("id")).toArray()); 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) { for (DynamicObject ifmInneracct : ifmInneraccts) {
DynamicObjectCollection relationaccs = ifmInneracct.getDynamicObjectCollection("relationacc"); DynamicObjectCollection relationaccs = ifmInneracct.getDynamicObjectCollection("relationacc");
if (relationaccs.isEmpty()) { if (relationaccs.isEmpty()) {
continue; continue;
} }
long relationaccId = relationaccs.get(0).getLong("fbasedataid_Id");//银行账户 long relationaccId = relationaccs.get(0).getLong("fbasedataid_Id");//银行账户
if (relationaccId == accountId) { if (relationaccId == accountId) {
String number = ifmInneracct.getString("number"); String number = ifmInneracct.getString("number");
DynamicObject[] bdAccountbanks = BusinessDataServiceHelper.load("am_accountbank", "id,bankaccountnumber", new QFilter("bankaccountnumber", QCP.equals, number).toArray()); DynamicObject[] bdAccountbanks = BusinessDataServiceHelper.load("am_accountbank", "id,bankaccountnumber", new QFilter("bankaccountnumber", QCP.equals, number).toArray());
long bdAccountbankId = 0; long bdAccountbankId = 0;
if (bdAccountbanks.length > 0) { if (bdAccountbanks.length > 0) {
// 获取内部账户在银行账户里面的id // 获取内部账户在银行账户里面的id
bdAccountbankId = bdAccountbanks[0].getLong("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");
} }
} }
} }