|
@@ -17,6 +17,8 @@ import com.fjhx.account.entity.account.po.AccountManagement;
|
|
import com.fjhx.account.entity.account.po.AccountRemainder;
|
|
import com.fjhx.account.entity.account.po.AccountRemainder;
|
|
import com.fjhx.account.entity.account.po.AccountRunningWater;
|
|
import com.fjhx.account.entity.account.po.AccountRunningWater;
|
|
import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
|
|
import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
|
|
|
|
+import com.fjhx.account.entity.exchange.dto.ExchangeSettlementDto;
|
|
|
|
+import com.fjhx.account.entity.exchange.po.ExchangeSettlementRecords;
|
|
import com.fjhx.account.entity.tax.po.TaxRefundDetails;
|
|
import com.fjhx.account.entity.tax.po.TaxRefundDetails;
|
|
import com.fjhx.account.entity.transaction.po.Transaction;
|
|
import com.fjhx.account.entity.transaction.po.Transaction;
|
|
import com.fjhx.account.entity.transaction.po.TransactionDepartment;
|
|
import com.fjhx.account.entity.transaction.po.TransactionDepartment;
|
|
@@ -24,6 +26,8 @@ import com.fjhx.account.mapper.account.AccountRunningWaterMapper;
|
|
import com.fjhx.account.service.account.AccountManagementService;
|
|
import com.fjhx.account.service.account.AccountManagementService;
|
|
import com.fjhx.account.service.account.AccountRemainderService;
|
|
import com.fjhx.account.service.account.AccountRemainderService;
|
|
import com.fjhx.account.service.account.AccountRunningWaterService;
|
|
import com.fjhx.account.service.account.AccountRunningWaterService;
|
|
|
|
+import com.fjhx.account.service.exchange.ExchangeSettlementRecordsService;
|
|
|
|
+import com.fjhx.account.service.exchange.ExchangeSettlementService;
|
|
import com.fjhx.account.service.tax.TaxRefundDetailsService;
|
|
import com.fjhx.account.service.tax.TaxRefundDetailsService;
|
|
import com.fjhx.account.service.transaction.TransactionDepartmentService;
|
|
import com.fjhx.account.service.transaction.TransactionDepartmentService;
|
|
import com.fjhx.account.service.transaction.TransactionService;
|
|
import com.fjhx.account.service.transaction.TransactionService;
|
|
@@ -81,6 +85,10 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
|
|
private TransactionService transactionService;
|
|
private TransactionService transactionService;
|
|
@Autowired
|
|
@Autowired
|
|
private TransactionDepartmentService transactionDepartmentService;
|
|
private TransactionDepartmentService transactionDepartmentService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExchangeSettlementService exchangeSettlementService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExchangeSettlementRecordsService exchangeSettlementRecordsService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -594,16 +602,33 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
|
|
/**
|
|
/**
|
|
* 结汇
|
|
* 结汇
|
|
*/
|
|
*/
|
|
|
|
+ @DSTransactional
|
|
@Override
|
|
@Override
|
|
- public void exchangeSettlement(AccountRunningWaterDto dto) {
|
|
|
|
- dto.setTransactionTime(new Date());
|
|
|
|
|
|
+ public void exchangeSettlement(ExchangeSettlementDto dto) {
|
|
|
|
+ //交易时间
|
|
|
|
+ Date transactionTime = new Date();
|
|
|
|
+
|
|
|
|
+ //保存结汇相关信息
|
|
|
|
+ exchangeSettlementService.save(dto);
|
|
|
|
+ List<ExchangeSettlementRecords> exchangeSettlementRecordsList = dto.getExchangeSettlementRecordsList();
|
|
|
|
+ Assert.notEmpty(exchangeSettlementRecordsList, "关联合同不能为空");
|
|
|
|
+ exchangeSettlementRecordsList.forEach(item -> item.setExchangeSettlementId(dto.getId()));
|
|
|
|
+ exchangeSettlementRecordsService.saveBatch(exchangeSettlementRecordsList);
|
|
|
|
|
|
//生成转出流水
|
|
//生成转出流水
|
|
- dto.setStatus("20");//支出
|
|
|
|
- dto.setType(AccountRunningWaterEnum.EXCHANGE_SETTLEMENT.getKey());
|
|
|
|
|
|
+ AccountRunningWater outAccountRunningWater = new AccountRunningWater();
|
|
|
|
+ outAccountRunningWater.setStatus("20");//支出
|
|
|
|
+ outAccountRunningWater.setType(AccountRunningWaterEnum.EXCHANGE_SETTLEMENT.getKey());
|
|
|
|
+ outAccountRunningWater.setRemarks(dto.getRemarks());
|
|
|
|
+ outAccountRunningWater.setTransactionTime(transactionTime);
|
|
|
|
+ outAccountRunningWater.setAccountManagementId(dto.getAccountManagementId());
|
|
|
|
+ outAccountRunningWater.setAmount(dto.getAmount());
|
|
|
|
+ Assert.notEmpty(dto.getCurrency(), "汇入入币种不能为空");
|
|
|
|
+ outAccountRunningWater.setCurrency(dto.getCurrency());
|
|
|
|
+ outAccountRunningWater.setBusinessId(dto.getId());
|
|
//操作余额
|
|
//操作余额
|
|
- changeRemainder(dto);
|
|
|
|
- this.save(dto);
|
|
|
|
|
|
+ changeRemainder(outAccountRunningWater);
|
|
|
|
+ this.save(outAccountRunningWater);
|
|
|
|
|
|
//如果手续费不为0生成手续费
|
|
//如果手续费不为0生成手续费
|
|
if (ObjectUtil.isNotEmpty(dto.getCommissionAmount()) && dto.getCommissionAmount().compareTo(BigDecimal.ZERO) != 0) {
|
|
if (ObjectUtil.isNotEmpty(dto.getCommissionAmount()) && dto.getCommissionAmount().compareTo(BigDecimal.ZERO) != 0) {
|
|
@@ -611,13 +636,13 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
|
|
commissionAccountRunningWater.setStatus("20");
|
|
commissionAccountRunningWater.setStatus("20");
|
|
commissionAccountRunningWater.setType(AccountRunningWaterEnum.EXCHANGE_SETTLEMENT.getKey());
|
|
commissionAccountRunningWater.setType(AccountRunningWaterEnum.EXCHANGE_SETTLEMENT.getKey());
|
|
commissionAccountRunningWater.setRemarks(dto.getRemarks());
|
|
commissionAccountRunningWater.setRemarks(dto.getRemarks());
|
|
- commissionAccountRunningWater.setTransactionTime(dto.getTransactionTime());
|
|
|
|
|
|
+ commissionAccountRunningWater.setTransactionTime(transactionTime);
|
|
commissionAccountRunningWater.setAccountManagementId(dto.getAccountManagementId());
|
|
commissionAccountRunningWater.setAccountManagementId(dto.getAccountManagementId());
|
|
commissionAccountRunningWater.setAmount(dto.getCommissionAmount());
|
|
commissionAccountRunningWater.setAmount(dto.getCommissionAmount());
|
|
Assert.notEmpty(dto.getCommissionCurrency(), "手续费币种不能为空");
|
|
Assert.notEmpty(dto.getCommissionCurrency(), "手续费币种不能为空");
|
|
commissionAccountRunningWater.setCurrency(dto.getCommissionCurrency());
|
|
commissionAccountRunningWater.setCurrency(dto.getCommissionCurrency());
|
|
commissionAccountRunningWater.setRemarks("结汇手续费");
|
|
commissionAccountRunningWater.setRemarks("结汇手续费");
|
|
- commissionAccountRunningWater.setBusinessId(dto.getBusinessId());
|
|
|
|
|
|
+ commissionAccountRunningWater.setBusinessId(dto.getId());
|
|
//操作余额
|
|
//操作余额
|
|
changeRemainder(commissionAccountRunningWater);
|
|
changeRemainder(commissionAccountRunningWater);
|
|
this.save(commissionAccountRunningWater);
|
|
this.save(commissionAccountRunningWater);
|
|
@@ -628,18 +653,19 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
|
|
inAccountRunningWater.setStatus("10");
|
|
inAccountRunningWater.setStatus("10");
|
|
inAccountRunningWater.setType(AccountRunningWaterEnum.EXCHANGE_SETTLEMENT.getKey());
|
|
inAccountRunningWater.setType(AccountRunningWaterEnum.EXCHANGE_SETTLEMENT.getKey());
|
|
inAccountRunningWater.setRemarks(dto.getRemarks());
|
|
inAccountRunningWater.setRemarks(dto.getRemarks());
|
|
- inAccountRunningWater.setTransactionTime(dto.getTransactionTime());
|
|
|
|
|
|
+ inAccountRunningWater.setTransactionTime(transactionTime);
|
|
inAccountRunningWater.setAccountManagementId(dto.getInAccountManagementId());
|
|
inAccountRunningWater.setAccountManagementId(dto.getInAccountManagementId());
|
|
inAccountRunningWater.setAmount(dto.getInAmount());
|
|
inAccountRunningWater.setAmount(dto.getInAmount());
|
|
Assert.notEmpty(dto.getInCurrency(), "汇入入币种不能为空");
|
|
Assert.notEmpty(dto.getInCurrency(), "汇入入币种不能为空");
|
|
inAccountRunningWater.setCurrency(dto.getInCurrency());
|
|
inAccountRunningWater.setCurrency(dto.getInCurrency());
|
|
- inAccountRunningWater.setBusinessId(dto.getBusinessId());
|
|
|
|
|
|
+ inAccountRunningWater.setBusinessId(dto.getId());
|
|
//操作余额
|
|
//操作余额
|
|
changeRemainder(inAccountRunningWater);
|
|
changeRemainder(inAccountRunningWater);
|
|
this.save(inAccountRunningWater);
|
|
this.save(inAccountRunningWater);
|
|
//修改合同为已结汇
|
|
//修改合同为已结汇
|
|
DynamicDataSourceContextHolder.push(SourceConstant.SALE);
|
|
DynamicDataSourceContextHolder.push(SourceConstant.SALE);
|
|
- baseMapper.exchangeSettlementByContractId(dto.getBusinessId(), 1);
|
|
|
|
|
|
+ List<Long> contractIds = exchangeSettlementRecordsList.stream().map(ExchangeSettlementRecords::getContractId).collect(Collectors.toList());
|
|
|
|
+ baseMapper.exchangeSettlementByContractId(contractIds, 1);
|
|
DynamicDataSourceContextHolder.poll();
|
|
DynamicDataSourceContextHolder.poll();
|
|
}
|
|
}
|
|
|
|
|