Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-csf
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-csf
Commits
b454e824
Commit
b454e824
authored
Apr 08, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
667dbcb6
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
107 additions
and
0 deletions
+107
-0
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiSalarySplitController.java
+11
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiSalarySplitService.java
+3
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiSalarySplitServiceImpl.java
+15
-0
yd-csf-api/src/main/java/com/yd/csf/api/utils/ExchangeUtils.java
+30
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/client/salarysplit/ApiSalarySplitFeignClient.java
+9
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/fallback/salarysplit/ApiSalarySplitFeignFallbackFactory.java
+6
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salarysplit/ApiCalculateToAmountRequest.java
+19
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salarysplit/ApiCalculateToAmountResponse.java
+14
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiSalarySplitController.java
View file @
b454e824
...
@@ -6,6 +6,7 @@ import com.yd.csf.api.service.ApiSalarySplitService;
...
@@ -6,6 +6,7 @@ import com.yd.csf.api.service.ApiSalarySplitService;
import
com.yd.csf.feign.client.salarysplit.ApiSalarySplitFeignClient
;
import
com.yd.csf.feign.client.salarysplit.ApiSalarySplitFeignClient
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.api.dto.ApiSalarySplitPageListDTO
;
import
com.yd.csf.api.dto.ApiSalarySplitPageListDTO
;
import
com.yd.csf.feign.response.salarysplit.ApiCalculateToAmountResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitExportSummaryListResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitExportSummaryListResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
...
@@ -79,6 +80,16 @@ public class ApiSalarySplitController implements ApiSalarySplitFeignClient {
...
@@ -79,6 +80,16 @@ public class ApiSalarySplitController implements ApiSalarySplitFeignClient {
}
}
/**
/**
* 计算-目标金额
* @param request
* @return
*/
@Override
public
Result
<
ApiCalculateToAmountResponse
>
calculateToAmount
(
ApiCalculateToAmountRequest
request
)
{
return
apiSalarySplitService
.
calculateToAmount
(
request
);
}
/**
* 导出-薪资拆分应发信息汇总列表
* 导出-薪资拆分应发信息汇总列表
* @param request
* @param request
* @return
* @return
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiSalarySplitService.java
View file @
b454e824
...
@@ -4,6 +4,7 @@ import com.yd.common.result.Result;
...
@@ -4,6 +4,7 @@ import com.yd.common.result.Result;
import
com.yd.csf.api.dto.ApiSalarySplitSummaryPageDTO
;
import
com.yd.csf.api.dto.ApiSalarySplitSummaryPageDTO
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.api.dto.ApiSalarySplitPageListDTO
;
import
com.yd.csf.api.dto.ApiSalarySplitPageListDTO
;
import
com.yd.csf.feign.response.salarysplit.ApiCalculateToAmountResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitExportSummaryListResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitExportSummaryListResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
...
@@ -19,5 +20,7 @@ public interface ApiSalarySplitService {
...
@@ -19,5 +20,7 @@ public interface ApiSalarySplitService {
Result
<
ApiSalarySplitQueryRateResponse
>
queryRate
(
ApiSalarySplitQueryRateRequest
request
);
Result
<
ApiSalarySplitQueryRateResponse
>
queryRate
(
ApiSalarySplitQueryRateRequest
request
);
Result
<
ApiCalculateToAmountResponse
>
calculateToAmount
(
ApiCalculateToAmountRequest
request
);
Result
<
ApiSalarySplitExportSummaryListResponse
>
export
(
ApiSalarySplitExportSummaryListRequest
request
);
Result
<
ApiSalarySplitExportSummaryListResponse
>
export
(
ApiSalarySplitExportSummaryListRequest
request
);
}
}
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiSalarySplitServiceImpl.java
View file @
b454e824
...
@@ -13,6 +13,7 @@ import com.yd.common.utils.CodeGenerator;
...
@@ -13,6 +13,7 @@ import com.yd.common.utils.CodeGenerator;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.api.dto.ApiSalarySplitSummaryPageDTO
;
import
com.yd.csf.api.dto.ApiSalarySplitSummaryPageDTO
;
import
com.yd.csf.api.service.ApiSalarySplitService
;
import
com.yd.csf.api.service.ApiSalarySplitService
;
import
com.yd.csf.api.utils.ExchangeUtils
;
import
com.yd.csf.feign.dto.excel.ApiSalarySplitSummaryExcelDto
;
import
com.yd.csf.feign.dto.excel.ApiSalarySplitSummaryExcelDto
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitBatchSaveDto
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitBatchSaveDto
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitPageDto
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitPageDto
;
...
@@ -20,6 +21,7 @@ import com.yd.csf.feign.dto.salarysplit.ApiSalarySplitStatisticsDto;
...
@@ -20,6 +21,7 @@ import com.yd.csf.feign.dto.salarysplit.ApiSalarySplitStatisticsDto;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitSummaryPageDto
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitSummaryPageDto
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.api.dto.ApiSalarySplitPageListDTO
;
import
com.yd.csf.api.dto.ApiSalarySplitPageListDTO
;
import
com.yd.csf.feign.response.salarysplit.ApiCalculateToAmountResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitExportSummaryListResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitExportSummaryListResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
...
@@ -219,6 +221,19 @@ public class ApiSalarySplitServiceImpl implements ApiSalarySplitService {
...
@@ -219,6 +221,19 @@ public class ApiSalarySplitServiceImpl implements ApiSalarySplitService {
}
}
/**
/**
* 计算-目标金额
* @param request
* @return
*/
@Override
public
Result
<
ApiCalculateToAmountResponse
>
calculateToAmount
(
ApiCalculateToAmountRequest
request
)
{
BigDecimal
toAmount
=
ExchangeUtils
.
calculateTargetAmount
(
request
.
getFromAmount
(),
request
.
getExchangeRate
());
ApiCalculateToAmountResponse
response
=
new
ApiCalculateToAmountResponse
();
response
.
setToAmount
(
toAmount
);
return
Result
.
success
(
response
);
}
/**
* 导出-薪资拆分应发信息汇总列表
* 导出-薪资拆分应发信息汇总列表
* @param request
* @param request
* @return
* @return
...
...
yd-csf-api/src/main/java/com/yd/csf/api/utils/ExchangeUtils.java
0 → 100644
View file @
b454e824
package
com
.
yd
.
csf
.
api
.
utils
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
public
class
ExchangeUtils
{
private
static
final
BigDecimal
ONE_HUNDRED
=
new
BigDecimal
(
"100"
);
private
static
final
int
SCALE
=
4
;
private
static
final
int
DIVISION_SCALE
=
10
;
/**
* 计算目标金额
* @param fromAmount 原币种金额(不能为 null)
* @param percent 汇率百分比,例如 20.15 表示 20.15%(不能为 null,通常 >0)
* @return 目标金额,保留四位小数,四舍五入
*/
public
static
BigDecimal
calculateTargetAmount
(
BigDecimal
fromAmount
,
BigDecimal
percent
)
{
if
(
fromAmount
==
null
||
percent
==
null
)
{
throw
new
IllegalArgumentException
(
"fromAmount and percent must not be null"
);
}
BigDecimal
rate
=
percent
.
divide
(
ONE_HUNDRED
,
DIVISION_SCALE
,
RoundingMode
.
HALF_UP
);
BigDecimal
target
=
fromAmount
.
multiply
(
rate
);
return
target
.
setScale
(
SCALE
,
RoundingMode
.
HALF_UP
);
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
calculateTargetAmount
(
new
BigDecimal
(
20102.8921
),
new
BigDecimal
(
20.18
)));
}
}
\ No newline at end of file
yd-csf-feign/src/main/java/com/yd/csf/feign/client/salarysplit/ApiSalarySplitFeignClient.java
View file @
b454e824
...
@@ -3,6 +3,7 @@ package com.yd.csf.feign.client.salarysplit;
...
@@ -3,6 +3,7 @@ package com.yd.csf.feign.client.salarysplit;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.csf.feign.fallback.salarysplit.ApiSalarySplitFeignFallbackFactory
;
import
com.yd.csf.feign.fallback.salarysplit.ApiSalarySplitFeignFallbackFactory
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.feign.response.salarysplit.ApiCalculateToAmountResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitExportSummaryListResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitExportSummaryListResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
...
@@ -60,6 +61,14 @@ public interface ApiSalarySplitFeignClient {
...
@@ -60,6 +61,14 @@ public interface ApiSalarySplitFeignClient {
Result
<
ApiSalarySplitQueryRateResponse
>
queryRate
(
@Validated
@RequestBody
ApiSalarySplitQueryRateRequest
request
);
Result
<
ApiSalarySplitQueryRateResponse
>
queryRate
(
@Validated
@RequestBody
ApiSalarySplitQueryRateRequest
request
);
/**
/**
* 计算-目标金额
* @param request
* @return
*/
@PostMapping
(
"/calculate/toAmount"
)
Result
<
ApiCalculateToAmountResponse
>
calculateToAmount
(
@Validated
@RequestBody
ApiCalculateToAmountRequest
request
);
/**
* 导出-薪资拆分应发信息汇总列表
* 导出-薪资拆分应发信息汇总列表
* @param request
* @param request
* @return
* @return
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/fallback/salarysplit/ApiSalarySplitFeignFallbackFactory.java
View file @
b454e824
...
@@ -3,6 +3,7 @@ package com.yd.csf.feign.fallback.salarysplit;
...
@@ -3,6 +3,7 @@ package com.yd.csf.feign.fallback.salarysplit;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.csf.feign.client.salarysplit.ApiSalarySplitFeignClient
;
import
com.yd.csf.feign.client.salarysplit.ApiSalarySplitFeignClient
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.feign.response.salarysplit.ApiCalculateToAmountResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -45,6 +46,11 @@ public class ApiSalarySplitFeignFallbackFactory implements FallbackFactory<ApiSa
...
@@ -45,6 +46,11 @@ public class ApiSalarySplitFeignFallbackFactory implements FallbackFactory<ApiSa
}
}
@Override
@Override
public
Result
<
ApiCalculateToAmountResponse
>
calculateToAmount
(
ApiCalculateToAmountRequest
request
)
{
return
null
;
}
@Override
public
Result
export
(
ApiSalarySplitExportSummaryListRequest
request
)
{
public
Result
export
(
ApiSalarySplitExportSummaryListRequest
request
)
{
return
null
;
return
null
;
}
}
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salarysplit/ApiCalculateToAmountRequest.java
0 → 100644
View file @
b454e824
package
com
.
yd
.
csf
.
feign
.
request
.
salarysplit
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
ApiCalculateToAmountRequest
{
/**
* 原币种金额
*/
private
BigDecimal
fromAmount
;
/**
* 汇率
*/
private
BigDecimal
exchangeRate
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salarysplit/ApiCalculateToAmountResponse.java
0 → 100644
View file @
b454e824
package
com
.
yd
.
csf
.
feign
.
response
.
salarysplit
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
ApiCalculateToAmountResponse
{
/**
* 目标金额
*/
private
BigDecimal
toAmount
;
}
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