Commit 1bc2ebd1 authored by zhangfeng's avatar zhangfeng

feat(wealth): 优化

parent 5e0924a4
......@@ -592,8 +592,8 @@ public class ReceiptServiceImpl extends AbstractService<ReceiptMapper, ReceiptDO
Map<Integer, CurrencyRespDTO> currencyMap = currencyApi.getAllCurrency();
for (ReceiptBackVO r : receiptBackPage) {
String sR = getReceiptMxStatus(listItem, r.getId()).getNameZh();
r.setMxStatus(sR);
//String sR = getReceiptMxStatus(listItem, r.getId()).getNameZh();
//r.setMxStatus(sR);
//应收
String s1 = getYSShow(ReceiptAccountList, r.getId(), currencyMap);
......
......@@ -135,38 +135,35 @@ public class ReceiptItemServiceImpl extends AbstractService<ReceiptItemMapper, R
Long baseCurrencyId = receivableDOS.get(0).getBaseCurrencyId();
if (CollectionUtils.isNotEmpty(receiptAccountDOS) && baseCurrencyId.equals(receiptItem.getWriteOffCurrencyId())) {
ReceiptAccountDO receiptAccountDO = receiptAccountDOS.get(0);
if (receiptAccountDO.getWriteOffAmount().compareTo(new BigDecimal(createReqVO.getRate())) != 0) {
BigDecimal receivableTotalAmount = BigDecimal.ZERO;
BigDecimal receiptAccountAmount = BigDecimal.ZERO;
for (ReceivableDO receivableDO : receivableDOS) {
if (Objects.equals(receivableDO.getCurrencyId(), createReqVO.getCurrencyId()) && Objects.equals(receivableDO.getBaseCurrencyId(), createReqVO.getWriteOffCurrencyId())) {
// 获取已核销的基准金额
BigDecimal writeOffAmount = receiptItemMapper.getWriteOffAmountReceivableId(receivableDO.getId());
if (writeOffAmount == null) {
writeOffAmount = BigDecimal.ZERO;
}
// 改汇率后剩余未核销基准金额
BigDecimal remainBaseAmount = receivableDO.getBaseAmount().subtract(writeOffAmount);
remainBaseAmount = remainBaseAmount.divide(receivableDO.getExchangeRate(), 8, RoundingMode.HALF_UP).multiply(new BigDecimal(createReqVO.getRate()));
receivableDO.setBaseAmount(remainBaseAmount.add(writeOffAmount));
receiptAccountAmount = receiptAccountAmount.add(receivableDO.getBaseAmount());
receivableDO.setExchangeRate(new BigDecimal(createReqVO.getRate()));
receivableService.updateById(receivableDO);
BigDecimal receivableTotalAmount = BigDecimal.ZERO;
BigDecimal receiptAccountAmount = BigDecimal.ZERO;
for (ReceivableDO receivableDO : receivableDOS) {
if (Objects.equals(receivableDO.getCurrencyId(), createReqVO.getCurrencyId()) && Objects.equals(receivableDO.getBaseCurrencyId(), createReqVO.getWriteOffCurrencyId())) {
// 获取已核销的基准金额
BigDecimal writeOffAmount = receiptItemMapper.getWriteOffAmountReceivableId(receivableDO.getId());
if (writeOffAmount == null) {
writeOffAmount = BigDecimal.ZERO;
}
receivableTotalAmount = receivableTotalAmount.add(receivableDO.getBaseAmount());
// 改汇率后剩余未核销基准金额
BigDecimal remainBaseAmount = receivableDO.getBaseAmount().subtract(writeOffAmount);
remainBaseAmount = remainBaseAmount.divide(receivableDO.getExchangeRate(), 8, RoundingMode.HALF_UP).multiply(new BigDecimal(createReqVO.getRate()));
receivableDO.setBaseAmount(remainBaseAmount.add(writeOffAmount));
receiptAccountAmount = receiptAccountAmount.add(receivableDO.getBaseAmount());
receivableDO.setExchangeRate(new BigDecimal(createReqVO.getRate()));
receivableService.updateById(receivableDO);
}
receiptAccountDO.setWriteOffRate(new BigDecimal(createReqVO.getRate()));
receiptAccountDO.setWriteOffAmount(receiptAccountAmount);
receiptAccountMapper.updateById(receiptAccountDO);
receiptDO.setReceivableTotalAmount(receivableTotalAmount);
receiptService.updateById(receiptDO);
Map<Integer, CurrencyRespDTO> allCurrency = currencyApi.getAllCurrency();
CurrencyRespDTO currency1 = allCurrency.get(receiptAccountDO.getCurrencyId().intValue());
CurrencyRespDTO currency2 = allCurrency.get(baseCurrencyId.intValue());
remark = remark + ";更新收款单" + currency1.getTitleZh() + "兑" + currency2.getTitleZh() + "币种汇率为" + createReqVO.getBatchRate();
receivableTotalAmount = receivableTotalAmount.add(receivableDO.getBaseAmount());
}
receiptAccountDO.setWriteOffRate(new BigDecimal(createReqVO.getRate()));
receiptAccountDO.setWriteOffAmount(receiptAccountAmount);
receiptAccountMapper.updateById(receiptAccountDO);
receiptDO.setReceivableTotalAmount(receivableTotalAmount);
receiptService.updateById(receiptDO);
Map<Integer, CurrencyRespDTO> allCurrency = currencyApi.getAllCurrency();
CurrencyRespDTO currency1 = allCurrency.get(receiptAccountDO.getCurrencyId().intValue());
CurrencyRespDTO currency2 = allCurrency.get(baseCurrencyId.intValue());
remark = remark + ";更新收款单" + currency1.getTitleZh() + "兑" + currency2.getTitleZh() + "币种汇率为" + createReqVO.getBatchRate();
}
}
createFinanceReceiptItemWriteOff(FinanceReceiptItemVo.builder()
......@@ -939,7 +936,7 @@ public class ReceiptItemServiceImpl extends AbstractService<ReceiptItemMapper, R
batchCreateReqVO.setSettleRateRatio(receiptAccountDOS.get(0).getWriteOffRate());
}
// 没有汇率有效期或者汇率没过期且能匹配到还是用原汇率
else if (matchReceiptDO.getRateValidateDate() == null || matchReceiptDO.getRateValidateDate().getTime() > System.currentTimeMillis()){
else if (matchReceiptDO.getRateValidateDate() == null || matchReceiptDO.getRateValidateDate().getTime() > System.currentTimeMillis()) {
if (!receiptAccountDOS.isEmpty() && baseCurrencyId.equals(Long.parseLong(batchCreateReqVO.getSettleCurrency()))) {
batchCreateReqVO.setSettleRateRatio(receiptAccountDOS.get(0).getWriteOffRate());
}
......
......@@ -78,9 +78,7 @@
<if test="query.searchKey != null and query.searchKey !=''">
AND (
c.name LIKE concat('%',#{query.searchKey},'%')
or c.number LIKE concat('%',#{query.searchKey},'%')
or c.new_phone LIKE concat('%',#{query.searchKey},'%')
)
or c.number LIKE concat('%',#{query.searchKey},'%'))
</if>
</select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment