提交人:邹江涛

提交时间: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 {
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");
}
}
}