Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-api-boot-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lanbaoming
jiedao-api-boot-master
Commits
5064e315
Commit
5064e315
authored
Mar 09, 2025
by
zhangfeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(wealth): 新汇率财务相关修改
parent
cab8e1e8
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
22 additions
and
14 deletions
+22
-14
ReceiptServiceImpl.java
...dao/module/wealth/service/receipt/ReceiptServiceImpl.java
+3
-1
ReceiptInvoiceServiceImpl.java
...lth/service/receiptInvoice/ReceiptInvoiceServiceImpl.java
+4
-3
ReceivableServiceImpl.java
...dule/wealth/service/receivable/ReceivableServiceImpl.java
+15
-10
No files found.
yudao-module-wealth/yudao-module-wealth-core/src/main/java/cn/iocoder/yudao/module/wealth/service/receipt/ReceiptServiceImpl.java
View file @
5064e315
...
...
@@ -22,6 +22,7 @@ import cn.iocoder.yudao.module.ecw.api.bank.BankApi;
import
cn.iocoder.yudao.module.ecw.api.bank.dto.BankAccountDTO
;
import
cn.iocoder.yudao.module.ecw.api.currency.CurrencyApi
;
import
cn.iocoder.yudao.module.ecw.api.currency.dto.CurrencyRespDTO
;
import
cn.iocoder.yudao.module.ecw.api.currency.dto.ExchangeRateRespDTO
;
import
cn.iocoder.yudao.module.ecw.api.region.RegionApi
;
import
cn.iocoder.yudao.module.ecw.api.region.dto.RegionDTO
;
import
cn.iocoder.yudao.module.system.api.dict.DictDataApi
;
...
...
@@ -929,7 +930,8 @@ public class ReceiptServiceImpl extends AbstractService<ReceiptMapper, ReceiptDO
RegionDTO
region
=
regionApi
.
getRegionById
(
Long
.
parseLong
(
orderVO
.
getCountry
()));
Long
importCurrency3
=
Long
.
parseLong
(
region
.
getImportCurrency3
());
if
(!
currencyId
.
equals
(
importCurrency3
))
{
diff
=
diff
.
multiply
(
currencyApi
.
getCurrencyRate
(
currencyId
,
importCurrency3
).
getCurrencyRate
());
ExchangeRateRespDTO
currencyRate
=
currencyApi
.
getCurrencyRate
(
currencyId
,
importCurrency3
);
diff
=
diff
.
multiply
(
currencyRate
.
getTargetCurrencyAmount
()).
divide
(
currencyRate
.
getSourceCurrencyAmount
(),
2
,
RoundingMode
.
HALF_UP
);
}
update
.
setWriteOffDiffMainCurrency
(
diff
.
setScale
(
2
,
RoundingMode
.
HALF_UP
)
+
" "
+
currencyApi
.
getAllCurrency
().
get
(
importCurrency3
.
intValue
()).
getFuhao
());
}
...
...
yudao-module-wealth/yudao-module-wealth-core/src/main/java/cn/iocoder/yudao/module/wealth/service/receiptInvoice/ReceiptInvoiceServiceImpl.java
View file @
5064e315
...
...
@@ -236,9 +236,10 @@ public class ReceiptInvoiceServiceImpl extends AbstractService<ReceiptInvoiceMap
receiptInvoiceDetail
.
setReceivableTotalAmountUsd
(
BigDecimal
.
ZERO
);
receiptInvoiceDetail
.
setWriteOffAmountUsd
(
BigDecimal
.
ZERO
);
for
(
WealthMoneyAmountVO
wealthMoneyAmountVO
:
receiptAmountList
)
{
ExchangeRateRespDTO
rate
=
currencyApi
.
getCurrencyRateByCode
(
wealthMoneyAmountVO
.
getCurrencySymbol
(),
currencyMap
.
get
(
receiptInvoiceDetail
.
getBaseCurrencyId
().
intValue
()).
getFuhao
());
receiptInvoiceDetail
.
setReceivableTotalAmountUsd
(
receiptInvoiceDetail
.
getReceivableTotalAmountUsd
().
add
(
wealthMoneyAmountVO
.
getReceivableTotalAmount
().
multiply
(
rate
.
getCurrencyRate
())));
receiptInvoiceDetail
.
setWriteOffAmountUsd
(
receiptInvoiceDetail
.
getWriteOffAmountUsd
().
add
(
wealthMoneyAmountVO
.
getWriteOffAmount
().
multiply
(
rate
.
getCurrencyRate
())));
ExchangeRateRespDTO
rateDTO
=
currencyApi
.
getCurrencyRateByCode
(
wealthMoneyAmountVO
.
getCurrencySymbol
(),
currencyMap
.
get
(
receiptInvoiceDetail
.
getBaseCurrencyId
().
intValue
()).
getFuhao
());
BigDecimal
rate
=
rateDTO
.
getTargetCurrencyAmount
().
divide
(
rateDTO
.
getSourceCurrencyAmount
(),
6
,
RoundingMode
.
HALF_UP
);
receiptInvoiceDetail
.
setReceivableTotalAmountUsd
(
receiptInvoiceDetail
.
getReceivableTotalAmountUsd
().
add
(
wealthMoneyAmountVO
.
getReceivableTotalAmount
().
multiply
(
rate
)));
receiptInvoiceDetail
.
setWriteOffAmountUsd
(
receiptInvoiceDetail
.
getWriteOffAmountUsd
().
add
(
wealthMoneyAmountVO
.
getWriteOffAmount
().
multiply
(
rate
)));
}
BigDecimal
writeOffProportion
=
receiptInvoiceDetail
.
getWriteOffAmountUsd
().
divide
(
receiptInvoiceDetail
.
getReceivableTotalAmountUsd
(),
2
,
RoundingMode
.
HALF_UP
).
multiply
(
new
BigDecimal
(
"100"
));
receiptInvoiceDetail
.
setWriteOffProportion
(
writeOffProportion
+
"%"
);
...
...
yudao-module-wealth/yudao-module-wealth-core/src/main/java/cn/iocoder/yudao/module/wealth/service/receivable/ReceivableServiceImpl.java
View file @
5064e315
...
...
@@ -120,25 +120,30 @@ public class ReceivableServiceImpl extends AbstractService<ReceivableMapper, Rec
RegionDTO
regionInfo
=
regionApi
.
getRegionById
(
countryId
);
if
(
regionInfo
!=
null
)
{
receivable
.
setBaseCurrencyId
(
Long
.
parseLong
(
regionInfo
.
getImportCurrency5
()));
BigDecimal
baseAmount
=
currencyApi
.
getCurrencyRate
(
receivable
.
getCurrencyId
(),
receivable
.
getBaseCurrencyId
()).
getCurrencyRate
().
multiply
(
receivable
.
getTotalAmount
());
ExchangeRateRespDTO
baseCurrencyRate
=
currencyApi
.
getCurrencyRate
(
receivable
.
getCurrencyId
(),
receivable
.
getBaseCurrencyId
());
BigDecimal
baseAmount
=
receivable
.
getTotalAmount
().
multiply
(
baseCurrencyRate
.
getTargetCurrencyAmount
()).
divide
(
baseCurrencyRate
.
getSourceCurrencyAmount
(),
2
,
RoundingMode
.
HALF_UP
);
receivable
.
setBaseAmount
(
baseAmount
);
int
feeType
=
getFeeType
(
receivable
.
getFeeType
());
// 运费
if
(
feeType
==
0
)
{
receivable
.
setDestCountryCurrencyId
(
Long
.
parseLong
(
regionInfo
.
getImportCurrency1
()));
receivable
.
setDestCountryRate
(
currencyApi
.
getCurrencyRate
(
receivable
.
getCurrencyId
(),
receivable
.
getDestCountryCurrencyId
()).
getCurrencyRate
());
ExchangeRateRespDTO
destCurrencyRate
=
currencyApi
.
getCurrencyRate
(
receivable
.
getCurrencyId
(),
receivable
.
getDestCountryCurrencyId
());
receivable
.
setDestCountryRate
(
destCurrencyRate
.
getTargetCurrencyAmount
().
divide
(
destCurrencyRate
.
getSourceCurrencyAmount
(),
6
,
RoundingMode
.
HALF_UP
));
}
// 清关费
if
(
feeType
==
1
)
{
receivable
.
setDestCountryCurrencyId
(
Long
.
parseLong
(
regionInfo
.
getImportCurrency2
()));
receivable
.
setDestCountryRate
(
currencyApi
.
getCurrencyRate
(
receivable
.
getCurrencyId
(),
receivable
.
getDestCountryCurrencyId
()).
getCurrencyRate
());
ExchangeRateRespDTO
destCurrencyRate
=
currencyApi
.
getCurrencyRate
(
receivable
.
getCurrencyId
(),
receivable
.
getDestCountryCurrencyId
());
receivable
.
setDestCountryRate
(
destCurrencyRate
.
getTargetCurrencyAmount
().
divide
(
destCurrencyRate
.
getSourceCurrencyAmount
(),
6
,
RoundingMode
.
HALF_UP
));
}
// 额外费用
if
(
feeType
==
2
)
{
receivable
.
setDestCountryCurrencyId
(
Long
.
parseLong
(
regionInfo
.
getImportCurrency3
()));
receivable
.
setDestCountryRate
(
currencyApi
.
getCurrencyRate
(
receivable
.
getCurrencyId
(),
receivable
.
getDestCountryCurrencyId
()).
getCurrencyRate
());
ExchangeRateRespDTO
destCurrencyRate
=
currencyApi
.
getCurrencyRate
(
receivable
.
getCurrencyId
(),
receivable
.
getDestCountryCurrencyId
());
receivable
.
setDestCountryRate
(
destCurrencyRate
.
getTargetCurrencyAmount
().
divide
(
destCurrencyRate
.
getSourceCurrencyAmount
(),
6
,
RoundingMode
.
HALF_UP
));
}
receivable
.
setDestCountrySubRate
(
currencyApi
.
getCurrencyRate
(
receivable
.
getCurrencyId
(),
Long
.
parseLong
(
regionInfo
.
getImportCurrency4
())).
getCurrencyRate
());
ExchangeRateRespDTO
destCurrencySubRate
=
currencyApi
.
getCurrencyRate
(
receivable
.
getCurrencyId
(),
Long
.
parseLong
(
regionInfo
.
getImportCurrency4
()));
receivable
.
setDestCountrySubRate
(
destCurrencySubRate
.
getTargetCurrencyAmount
().
divide
(
destCurrencySubRate
.
getSourceCurrencyAmount
(),
6
,
RoundingMode
.
HALF_UP
));
}
this
.
save
(
receivable
);
// 返回
...
...
@@ -290,7 +295,7 @@ public class ReceivableServiceImpl extends AbstractService<ReceivableMapper, Rec
receivableBackVO
.
setNotIncludedTaxAmount
(
receivableBackVO
.
getTotalAmount
());
receivableBackVO
.
setActualAmount
(
receivableBackVO
.
getNotIncludedTaxAmount
().
subtract
(
receivableBackVO
.
getDiscountTotal
()));
ExchangeRateRespDTO
currencyRate
=
currencyApi
.
getCurrencyRate
(
receivableBackVO
.
getCurrencyId
(),
receivableBackVO
.
getBaseCurrencyId
());
receivableBackVO
.
setExchangeRate
(
currencyRate
.
get
CurrencyRate
(
));
receivableBackVO
.
setExchangeRate
(
currencyRate
.
get
TargetCurrencyAmount
().
divide
(
currencyRate
.
getSourceCurrencyAmount
(),
6
,
RoundingMode
.
HALF_UP
));
receivableBackVO
.
setBaseAmount
(
receivableBackVO
.
getActualAmount
().
multiply
(
currencyRate
.
getCurrencyRate
()));
});
return
PageResult
.
of
(
mpPage
);
...
...
@@ -317,7 +322,7 @@ public class ReceivableServiceImpl extends AbstractService<ReceivableMapper, Rec
receivableBackVO
.
setNotIncludedTaxAmount
(
receivableBackVO
.
getTotalAmount
());
receivableBackVO
.
setActualAmount
(
receivableBackVO
.
getTaxAmount
().
subtract
(
receivableBackVO
.
getDiscountTotal
()));
ExchangeRateRespDTO
currencyRate
=
currencyApi
.
getCurrencyRate
(
receivableBackVO
.
getCurrencyId
(),
receivableBackVO
.
getBaseCurrencyId
());
receivableBackVO
.
setExchangeRate
(
currencyRate
.
get
CurrencyRate
(
));
receivableBackVO
.
setExchangeRate
(
currencyRate
.
get
TargetCurrencyAmount
().
divide
(
currencyRate
.
getSourceCurrencyAmount
(),
6
,
RoundingMode
.
HALF_UP
));
receivableBackVO
.
setBaseAmount
(
receivableBackVO
.
getActualAmount
().
multiply
(
currencyRate
.
getCurrencyRate
()));
});
return
receivableBackVOList
;
...
...
@@ -652,7 +657,7 @@ public class ReceivableServiceImpl extends AbstractService<ReceivableMapper, Rec
if
(
currencyRate
==
null
)
{
receivableWriteOffAmount
=
receivableWriteOffReqVO
.
getWriteOffAmount
();
}
else
{
receivableWriteOffAmount
=
receivableWriteOffReqVO
.
getWriteOffAmount
().
multiply
(
currencyRate
.
get
CurrencyRate
(
));
receivableWriteOffAmount
=
receivableWriteOffReqVO
.
getWriteOffAmount
().
multiply
(
currencyRate
.
get
TargetCurrencyAmount
().
divide
(
currencyRate
.
getSourceCurrencyAmount
(),
2
,
RoundingMode
.
HALF_UP
));
}
ReceivableWriteOffRecordDO
writeOffRecord
=
ReceivableWriteOffRecordDO
.
builder
()
.
receivableId
(
receivableWriteOffReqVO
.
getReceivableId
())
...
...
@@ -800,7 +805,7 @@ public class ReceivableServiceImpl extends AbstractService<ReceivableMapper, Rec
List
<
ExchangeRateRespDTO
>
allCurrencyRate
=
currencyApi
.
getAllCurrencyRate
();
ReceivableBoxReportVO
.
Amount
pageAmount
=
new
ReceivableBoxReportVO
.
Amount
();
ReceivableBoxReportVO
.
Amount
queryAmount
=
new
ReceivableBoxReportVO
.
Amount
();
assembleReportAmount
(
query
.
getForceUpdateCache
(),
records
,
relationOrderMap
,
allCurrencyRate
,
allCurrency
,
queryAmount
,
pageVOList
,
pageAmount
);
assembleReportAmount
(
query
.
getForceUpdateCache
(),
records
,
relationOrderMap
,
allCurrencyRate
,
allCurrency
,
queryAmount
,
pageVOList
,
pageAmount
);
ReceivableBoxReportVO
reportVO
=
voBuilder
.
pageAmount
(
pageAmount
)
.
queryAmount
(
queryAmount
)
...
...
@@ -1236,7 +1241,7 @@ public class ReceivableServiceImpl extends AbstractService<ReceivableMapper, Rec
}
for
(
ExchangeRateRespDTO
exchangeRateRespDTO
:
allCurrencyRate
)
{
if
(
exchangeRateRespDTO
.
getSourceCurrencyId
().
equals
(
sourceId
)
&&
exchangeRateRespDTO
.
getTargetCurrencyId
().
equals
(
targetId
))
{
return
exchangeRateRespDTO
.
get
CurrencyRate
(
);
return
exchangeRateRespDTO
.
get
TargetCurrencyAmount
().
divide
(
exchangeRateRespDTO
.
getSourceCurrencyAmount
(),
6
,
RoundingMode
.
HALF_UP
);
}
}
return
BigDecimal
.
ONE
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment