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
d2a0364c
Commit
d2a0364c
authored
Mar 30, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
薪资拆分-相关接口
parent
7f7c6671
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
928 additions
and
6 deletions
+928
-6
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiSalarySplitController.java
+56
-2
yd-csf-api/src/main/java/com/yd/csf/api/dto/ApiSalarySplitPageListDTO.java
+21
-0
yd-csf-api/src/main/java/com/yd/csf/api/dto/ApiSalarySplitSummaryPageDTO.java
+20
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiSalarySplitService.java
+20
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiSalarySplitServiceImpl.java
+204
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/client/salarysplit/ApiSalarySplitFeignClient.java
+38
-2
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salarysplit/ApiSalarySplitBatchSaveDto.java
+44
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salarysplit/ApiSalarySplitPageDto.java
+99
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salarysplit/ApiSalarySplitStatisticsDto.java
+19
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salarysplit/ApiSalarySplitSummaryDto.java
+7
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salarysplit/ApiSalarySplitSummaryPageDto.java
+90
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/fallback/salarysplit/ApiSalarySplitFeignFallbackFactory.java
+30
-1
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salarysplit/ApiQueryRemainingRequest.java
+21
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salarysplit/ApiSalarySplitBatchSaveRequest.java
+16
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salarysplit/ApiSalarySplitPageRequest.java
+14
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salarysplit/ApiSalarySplitQueryRateRequest.java
+29
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salarysplit/ApiSalarySplitSummaryPageRequest.java
+28
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salarysplit/ApiQueryRemainingResponse.java
+19
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salarysplit/ApiSalarySplitQueryRateResponse.java
+39
-0
yd-csf-service/src/main/java/com/yd/csf/service/dao/SalarySplitMapper.java
+12
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/SalarySplit.java
+7
-1
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneAccountService.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/ISalarySplitService.java
+12
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountServiceImpl.java
+14
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/SalarySplitServiceImpl.java
+29
-0
yd-csf-service/src/main/resources/mappers/SalarySplitMapper.xml
+38
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiSalarySplitController.java
View file @
d2a0364c
package
com
.
yd
.
csf
.
api
.
controller
;
import
com.yd.common.result.Result
;
import
com.yd.csf.api.dto.ApiSalarySplitSummaryPageDTO
;
import
com.yd.csf.api.service.ApiSalarySplitService
;
import
com.yd.csf.feign.client.salarysplit.ApiSalarySplitFeignClient
;
import
com.yd.csf.feign.request.salarysplit.ApiSalarySplitBatchSaveRequest
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.api.dto.ApiSalarySplitPageListDTO
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -18,8 +24,56 @@ import org.springframework.web.bind.annotation.RestController;
@Validated
public
class
ApiSalarySplitController
implements
ApiSalarySplitFeignClient
{
@Autowired
private
ApiSalarySplitService
apiSalarySplitService
;
/**
* 分页查询-薪资拆分应发信息汇总列表
* @param request
* @return
*/
@Override
public
Result
batchSave
(
ApiSalarySplitBatchSav
eRequest
request
)
{
public
Result
<
ApiSalarySplitSummaryPageDTO
>
summaryPage
(
ApiSalarySplitSummaryPag
eRequest
request
)
{
return
null
;
}
/**
* 分页查询-薪资拆分应发信息列表
* @param request
* @return
*/
@Override
public
Result
<
ApiSalarySplitPageListDTO
>
page
(
ApiSalarySplitPageRequest
request
)
{
return
apiSalarySplitService
.
page
(
request
);
}
/**
* 批量保存-薪资拆分应发信息列表
* @param request
* @return
*/
@Override
public
Result
batchSave
(
ApiSalarySplitBatchSaveRequest
request
)
{
return
apiSalarySplitService
.
batchSave
(
request
);
}
/**
* 查询-原币种剩余总金额和原币种
* @param request
* @return
*/
@Override
public
Result
<
ApiQueryRemainingResponse
>
queryRemaining
(
ApiQueryRemainingRequest
request
)
{
return
apiSalarySplitService
.
queryRemaining
(
request
);
}
/**
* 查询-原币种和原币种金额——>目标币种即时汇率和目标币种金额
* @param request
* @return
*/
@Override
public
Result
<
ApiSalarySplitQueryRateResponse
>
queryRate
(
ApiSalarySplitQueryRateRequest
request
)
{
return
apiSalarySplitService
.
queryRate
(
request
);
}
}
yd-csf-api/src/main/java/com/yd/csf/api/dto/ApiSalarySplitPageListDTO.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
api
.
dto
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitPageDto
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitStatisticsDto
;
import
lombok.Data
;
@Data
public
class
ApiSalarySplitPageListDTO
{
/**
* 薪资拆分统计信息
*/
private
ApiSalarySplitStatisticsDto
statisticsDto
;
/**
* 薪资拆分分页信息
*/
private
IPage
<
ApiSalarySplitPageDto
>
page
;
}
yd-csf-api/src/main/java/com/yd/csf/api/dto/ApiSalarySplitSummaryPageDTO.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
api
.
dto
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitSummaryDto
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitSummaryPageDto
;
import
lombok.Data
;
@Data
public
class
ApiSalarySplitSummaryPageDTO
{
/**
* 统计信息
*/
private
ApiSalarySplitSummaryDto
statisticsDto
;
/**
* 分页信息
*/
private
IPage
<
ApiSalarySplitSummaryPageDto
>
page
;
}
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiSalarySplitService.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
api
.
service
;
import
com.yd.common.result.Result
;
import
com.yd.csf.api.dto.ApiSalarySplitSummaryPageDTO
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.api.dto.ApiSalarySplitPageListDTO
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
public
interface
ApiSalarySplitService
{
Result
<
ApiSalarySplitSummaryPageDTO
>
summaryPage
(
ApiSalarySplitSummaryPageRequest
request
);
Result
<
ApiSalarySplitPageListDTO
>
page
(
ApiSalarySplitPageRequest
request
);
Result
batchSave
(
ApiSalarySplitBatchSaveRequest
request
);
Result
<
ApiQueryRemainingResponse
>
queryRemaining
(
ApiQueryRemainingRequest
request
);
Result
<
ApiSalarySplitQueryRateResponse
>
queryRate
(
ApiSalarySplitQueryRateRequest
request
);
}
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiSalarySplitServiceImpl.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
api
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.base.feign.client.exchangerate.ApiExchangeRateFeignClient
;
import
com.yd.base.feign.request.exchangerate.ApiExchangeRateConvertRequest
;
import
com.yd.base.feign.response.exchangerate.ApiExchangeRateConvertResponse
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.common.utils.CodeGenerator
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.api.dto.ApiSalarySplitSummaryPageDTO
;
import
com.yd.csf.api.service.ApiSalarySplitService
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitBatchSaveDto
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitPageDto
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitStatisticsDto
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitSummaryPageDto
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.api.dto.ApiSalarySplitPageListDTO
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
import
com.yd.csf.service.model.FortuneAccount
;
import
com.yd.csf.service.model.SalarySplit
;
import
com.yd.csf.service.service.FortuneAccountService
;
import
com.yd.csf.service.service.ISalarySplitService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
@Slf4j
@Service
public
class
ApiSalarySplitServiceImpl
implements
ApiSalarySplitService
{
@Autowired
private
FortuneAccountService
fortuneAccountService
;
@Autowired
private
ISalarySplitService
iSalarySplitService
;
@Autowired
private
ApiExchangeRateFeignClient
apiExchangeRateFeignClient
;
/**
* 分页查询-薪资拆分应发信息汇总列表
* @param request
* @return
*/
@Override
public
Result
<
ApiSalarySplitSummaryPageDTO
>
summaryPage
(
ApiSalarySplitSummaryPageRequest
request
)
{
ApiSalarySplitSummaryPageDTO
response
=
new
ApiSalarySplitSummaryPageDTO
();
// 查询分页信息
Page
<
ApiSalarySplitSummaryPageDto
>
page
=
new
Page
<>(
request
.
getPageNo
(),
request
.
getPageSize
());
IPage
<
ApiSalarySplitSummaryPageDto
>
iPage
=
iSalarySplitService
.
summaryPage
(
page
,
request
);
response
.
setPage
(
iPage
);
return
Result
.
success
(
response
);
}
/**
* 分页查询-薪资拆分应发信息列表
* @param request
* @return
*/
@Override
public
Result
<
ApiSalarySplitPageListDTO
>
page
(
ApiSalarySplitPageRequest
request
)
{
ApiSalarySplitPageListDTO
response
=
new
ApiSalarySplitPageListDTO
();
// 查询分页信息
Page
<
ApiSalarySplitPageDto
>
page
=
new
Page
<>(
request
.
getPageNo
(),
request
.
getPageSize
());
IPage
<
ApiSalarySplitPageDto
>
iPage
=
iSalarySplitService
.
page
(
page
,
request
);
response
.
setPage
(
iPage
);
// 查询统计信息
ApiSalarySplitStatisticsDto
statisticsDto
=
new
ApiSalarySplitStatisticsDto
();
FortuneAccount
fortuneAccount
=
fortuneAccountService
.
queryOne
(
request
.
getFortuneAccountBizId
());
// 出账币种
statisticsDto
.
setBeSplitCurrency
(
fortuneAccount
!=
null
?
fortuneAccount
.
getCurrency
()
:
""
);
BigDecimal
beSplitAmount
=
BigDecimal
.
ZERO
;
if
(
fortuneAccount
!=
null
)
{
// 查询所有拆分记录,计算已拆分总金额
List
<
SalarySplit
>
salarySplits
=
iSalarySplitService
.
lambdaQuery
()
.
eq
(
SalarySplit:
:
getFortuneAccountBizId
,
request
.
getFortuneAccountBizId
())
.
list
();
BigDecimal
splitTotal
=
salarySplits
.
stream
()
.
map
(
SalarySplit:
:
getFromAmount
)
.
filter
(
Objects:
:
nonNull
)
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
fortuneAmount
=
fortuneAccount
.
getAmount
()
!=
null
?
fortuneAccount
.
getAmount
()
:
BigDecimal
.
ZERO
;
beSplitAmount
=
fortuneAmount
.
subtract
(
splitTotal
);
if
(
beSplitAmount
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
)
{
beSplitAmount
=
BigDecimal
.
ZERO
;
// 防止负数
}
}
statisticsDto
.
setBeSplitAmount
(
beSplitAmount
);
response
.
setStatisticsDto
(
statisticsDto
);
return
Result
.
success
(
response
);
}
/**
* 批量保存
* @param request
* @return
*/
@Override
public
Result
batchSave
(
ApiSalarySplitBatchSaveRequest
request
)
{
//查询出账记录是否存在
FortuneAccount
fortuneAccount
=
fortuneAccountService
.
queryOne
(
request
.
getFortuneAccountBizId
());
if
(
fortuneAccount
==
null
)
{
throw
new
BusinessException
(
"出账记录不存在"
);
}
//薪资拆分应发记录-先删除后新增
iSalarySplitService
.
deleteByFortuneAccountBizId
(
request
.
getFortuneAccountBizId
());
//批量新增
if
(
CollectionUtils
.
isEmpty
(
request
.
getApiSalarySplitBatchSaveDtoList
()))
{
return
Result
.
success
();
}
List
<
SalarySplit
>
salarySplitList
=
new
ArrayList
<>();
for
(
ApiSalarySplitBatchSaveDto
dto
:
request
.
getApiSalarySplitBatchSaveDtoList
())
{
SalarySplit
salarySplit
=
new
SalarySplit
();
BeanUtils
.
copyProperties
(
dto
,
salarySplit
);
//薪资拆分应发表唯一业务ID
salarySplit
.
setSalarySplitBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_SALARY_SPLIT
.
getCode
()));
//发放编号
salarySplit
.
setSalarySplitNo
(
CodeGenerator
.
generate10Code
(
"SP"
));
//出账记录业务id
salarySplit
.
setFortuneAccountBizId
(
request
.
getFortuneAccountBizId
());
salarySplitList
.
add
(
salarySplit
);
}
iSalarySplitService
.
saveOrUpdateBatch
(
salarySplitList
);
return
Result
.
success
();
}
/**
* 查询-原币种剩余总金额和原币种
* @param request
* @return
*/
@Override
public
Result
<
ApiQueryRemainingResponse
>
queryRemaining
(
ApiQueryRemainingRequest
request
)
{
//查询出账记录是否存在
FortuneAccount
fortuneAccount
=
fortuneAccountService
.
queryOne
(
request
.
getFortuneAccountBizId
());
if
(
fortuneAccount
==
null
)
{
throw
new
BusinessException
(
"出账记录不存在"
);
}
BigDecimal
beSplitAmount
=
BigDecimal
.
ZERO
;
// 查询所有拆分记录,计算已拆分总金额
List
<
SalarySplit
>
salarySplits
=
iSalarySplitService
.
lambdaQuery
()
.
eq
(
SalarySplit:
:
getFortuneAccountBizId
,
request
.
getFortuneAccountBizId
())
.
list
();
BigDecimal
splitTotal
=
salarySplits
.
stream
()
.
map
(
SalarySplit:
:
getFromAmount
)
.
filter
(
Objects:
:
nonNull
)
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
fortuneAmount
=
fortuneAccount
.
getAmount
()
!=
null
?
fortuneAccount
.
getAmount
()
:
BigDecimal
.
ZERO
;
beSplitAmount
=
fortuneAmount
.
subtract
(
splitTotal
);
if
(
beSplitAmount
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
)
{
beSplitAmount
=
BigDecimal
.
ZERO
;
// 防止负数
}
ApiQueryRemainingResponse
response
=
new
ApiQueryRemainingResponse
();
response
.
setCurrency
(
fortuneAccount
.
getCurrency
());
response
.
setFromAmount
(
beSplitAmount
);
return
Result
.
success
(
response
);
}
/**
* 查询-原币种和原币种金额——>目标币种即时汇率和目标币种金额
* @param request
* @return
*/
@Override
public
Result
<
ApiSalarySplitQueryRateResponse
>
queryRate
(
ApiSalarySplitQueryRateRequest
request
)
{
//查询出账记录是否存在
FortuneAccount
fortuneAccount
=
fortuneAccountService
.
queryOne
(
request
.
getFortuneAccountBizId
());
if
(
fortuneAccount
==
null
)
{
throw
new
BusinessException
(
"出账记录不存在"
);
}
ApiExchangeRateConvertRequest
convertRequest
=
new
ApiExchangeRateConvertRequest
();
//原币种金额
convertRequest
.
setAmount
(
request
.
getFromAmount
());
//原币种
convertRequest
.
setFromCurrency
(
fortuneAccount
.
getCurrency
());
//目标币种
convertRequest
.
setToCurrency
(
request
.
getToCurrency
());
//调用远程转换接口
Result
<
ApiExchangeRateConvertResponse
>
result
=
apiExchangeRateFeignClient
.
convert
(
convertRequest
);
if
(
result
!=
null
&&
result
.
getData
()
!=
null
)
{
ApiSalarySplitQueryRateResponse
response
=
new
ApiSalarySplitQueryRateResponse
();
BeanUtils
.
copyProperties
(
result
.
getData
(),
response
);
return
Result
.
success
(
response
);
}
return
Result
.
success
();
}
}
yd-csf-feign/src/main/java/com/yd/csf/feign/client/salarysplit/ApiSalarySplitFeignClient.java
View file @
d2a0364c
...
...
@@ -2,11 +2,15 @@ package com.yd.csf.feign.client.salarysplit;
import
com.yd.common.result.Result
;
import
com.yd.csf.feign.fallback.salarysplit.ApiSalarySplitFeignFallbackFactory
;
import
com.yd.csf.feign.request.salarysplit.ApiSalarySplitBatchSaveRequest
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestParam
;
/**
* 香港保险服务-薪资拆分应发信息Feign客户端
...
...
@@ -15,10 +19,42 @@ import org.springframework.web.bind.annotation.RequestBody;
public
interface
ApiSalarySplitFeignClient
{
/**
* 批量保存
* 分页查询-薪资拆分应发信息汇总列表
* @param request
* @return
*/
@PostMapping
(
"/summary/page"
)
Result
summaryPage
(
@Validated
@RequestBody
ApiSalarySplitSummaryPageRequest
request
);
/**
* 分页查询-薪资拆分应发信息列表
* @param request
* @return
*/
@PostMapping
(
"/page"
)
Result
page
(
@Validated
@RequestBody
ApiSalarySplitPageRequest
request
);
/**
* 批量保存-薪资拆分应发信息列表
* @param request
* @return
*/
@PostMapping
(
"/batch/save"
)
Result
batchSave
(
@Validated
@RequestBody
ApiSalarySplitBatchSaveRequest
request
);
/**
* 查询-原币种剩余总金额和原币种
* @param request
* @return
*/
@PostMapping
(
"/query/remaining"
)
Result
<
ApiQueryRemainingResponse
>
queryRemaining
(
@Validated
@RequestBody
ApiQueryRemainingRequest
request
);
/**
* 查询-原币种和原币种金额——>目标币种即时汇率和目标币种金额
* @param request
* @return
*/
@PostMapping
(
"/query/rate"
)
Result
<
ApiSalarySplitQueryRateResponse
>
queryRate
(
@Validated
@RequestBody
ApiSalarySplitQueryRateRequest
request
);
}
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salarysplit/ApiSalarySplitBatchSaveDto.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
feign
.
dto
.
salarysplit
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
ApiSalarySplitBatchSaveDto
{
/**
* 转介人业务id
*/
private
String
brokerBizId
;
/**
* 转介人内部编号
*/
private
String
internalNumber
;
/**
* 出账机构
*/
private
String
billOrg
;
/**
* 原币种金额
*/
private
BigDecimal
fromAmount
;
/**
* 目标币种
*/
private
String
toCurrency
;
/**
* 即时汇率(原币种->目标币种)(查询原出账币种兑目标币种汇率,可修改)
*/
private
BigDecimal
exchangeRate
;
/**
* 目标金额
*/
private
BigDecimal
toAmount
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salarysplit/ApiSalarySplitPageDto.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
feign
.
dto
.
salarysplit
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
@Data
public
class
ApiSalarySplitPageDto
{
/**
* 主键ID
*/
private
Long
id
;
/**
* 薪资拆分应发表唯一业务ID
*/
private
String
salarySplitBizId
;
/**
* 发放编号
*/
private
String
salarySplitNo
;
/**
* 出账记录业务id(关联出账记录表)
*/
private
String
fortuneAccountBizId
;
/**
* 转介人名称
*/
private
String
brokerName
;
/**
* 转介人业务id
*/
private
String
brokerBizId
;
/**
* 转介人内部编号
*/
private
String
internalNumber
;
/**
* 出账机构
*/
private
String
billOrg
;
/**
* 原币种金额
*/
private
BigDecimal
fromAmount
;
/**
* 目标币种
*/
private
String
toCurrency
;
/**
* 即时汇率(原币种->目标币种)(查询原出账币种兑目标币种汇率,可修改)
*/
private
BigDecimal
exchangeRate
;
/**
* 目标金额
*/
private
BigDecimal
toAmount
;
/**
* 通用备注
*/
private
String
remark
;
/**
* 删除标识: 0-正常, 1-删除
*/
private
Integer
isDeleted
;
/**
* 创建人ID
*/
private
String
creatorId
;
/**
* 更新人ID
*/
private
String
updaterId
;
/**
* 创建时间
*/
private
LocalDateTime
createTime
;
/**
* 更新时间
*/
private
LocalDateTime
updateTime
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salarysplit/ApiSalarySplitStatisticsDto.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
feign
.
dto
.
salarysplit
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
ApiSalarySplitStatisticsDto
{
/**
* 待拆分币种(原币种)(当前出账记录的总计剩余待拆分币种)
*/
private
String
beSplitCurrency
;
/**
* 待拆分币种金额(当前出账记录的总计剩余待拆分币种金额)
*/
private
BigDecimal
beSplitAmount
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salarysplit/ApiSalarySplitSummaryDto.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
feign
.
dto
.
salarysplit
;
import
lombok.Data
;
@Data
public
class
ApiSalarySplitSummaryDto
{
}
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salarysplit/ApiSalarySplitSummaryPageDto.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
feign
.
dto
.
salarysplit
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.Date
;
@Data
public
class
ApiSalarySplitSummaryPageDto
{
/**
* 发放编号
*/
private
String
salarySplitNo
;
/**
* 出账记录业务id(关联出账记录表)(关联发放编号)
*/
private
String
fortuneAccountBizId
;
/**
* 转介人名称
*/
private
String
brokerName
;
/**
* 转介人业务id
*/
private
String
brokerBizId
;
/**
* 转介人内部编号
*/
private
String
internalNumber
;
/**
* 所属团队
*/
private
String
team
;
/**
* 原币种金额
*/
private
BigDecimal
fromAmount
;
/**
* 目标币种
*/
private
String
toCurrency
;
/**
* 即时汇率(原币种->目标币种)(查询原出账币种兑目标币种汇率,可修改)
*/
private
BigDecimal
exchangeRate
;
/**
* 目标金额
*/
private
BigDecimal
toAmount
;
/**
* 出账日期
*/
private
Date
fortuneAccountDate
;
/**
* 出账月(出账日期+2个月)
*/
private
String
fortuneAccountMonth
;
/**
* 出账机构
*/
private
String
billOrg
;
/**
* 出账状态 可出账、待出账、已出账
*/
private
String
status
;
/**
* 出账总额
*/
private
BigDecimal
amount
;
/**
* 出账币种(原币种)
*/
private
String
currency
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/fallback/salarysplit/ApiSalarySplitFeignFallbackFactory.java
View file @
d2a0364c
package
com
.
yd
.
csf
.
feign
.
fallback
.
salarysplit
;
import
com.yd.common.result.Result
;
import
com.yd.csf.feign.client.salarysplit.ApiSalarySplitFeignClient
;
import
com.yd.csf.feign.request.salarysplit.*
;
import
com.yd.csf.feign.response.salarysplit.ApiQueryRemainingResponse
;
import
com.yd.csf.feign.response.salarysplit.ApiSalarySplitQueryRateResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.cloud.openfeign.FallbackFactory
;
import
org.springframework.stereotype.Component
;
...
...
@@ -14,6 +18,31 @@ public class ApiSalarySplitFeignFallbackFactory implements FallbackFactory<ApiSa
@Override
public
ApiSalarySplitFeignClient
create
(
Throwable
cause
)
{
return
null
;
return
new
ApiSalarySplitFeignClient
()
{
@Override
public
Result
summaryPage
(
ApiSalarySplitSummaryPageRequest
request
)
{
return
null
;
}
@Override
public
Result
page
(
ApiSalarySplitPageRequest
request
)
{
return
null
;
}
@Override
public
Result
batchSave
(
ApiSalarySplitBatchSaveRequest
request
)
{
return
null
;
}
@Override
public
Result
<
ApiQueryRemainingResponse
>
queryRemaining
(
ApiQueryRemainingRequest
request
)
{
return
null
;
}
@Override
public
Result
<
ApiSalarySplitQueryRateResponse
>
queryRate
(
ApiSalarySplitQueryRateRequest
request
)
{
return
null
;
}
};
}
}
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salarysplit/ApiQueryRemainingRequest.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
feign
.
request
.
salarysplit
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Data
public
class
ApiQueryRemainingRequest
{
/**
* 出账记录业务id(关联出账记录表)
*/
private
String
fortuneAccountBizId
;
/**
* 需要参与统计的原币种金额列表
*/
private
List
<
BigDecimal
>
fromAmountList
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salarysplit/ApiSalarySplitBatchSaveRequest.java
View file @
d2a0364c
package
com
.
yd
.
csf
.
feign
.
request
.
salarysplit
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitBatchSaveDto
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
java.util.List
;
@Data
public
class
ApiSalarySplitBatchSaveRequest
{
/**
* 出账记录业务id
*/
@NotBlank
(
message
=
"出账记录业务id不能为空"
)
private
String
fortuneAccountBizId
;
/**
* 薪资拆分应发记录
*/
private
List
<
ApiSalarySplitBatchSaveDto
>
apiSalarySplitBatchSaveDtoList
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salarysplit/ApiSalarySplitPageRequest.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
feign
.
request
.
salarysplit
;
import
com.yd.common.dto.PageDto
;
import
lombok.Data
;
@Data
public
class
ApiSalarySplitPageRequest
extends
PageDto
{
/**
* 出账记录业务id(关联出账记录表)
*/
private
String
fortuneAccountBizId
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salarysplit/ApiSalarySplitQueryRateRequest.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
feign
.
request
.
salarysplit
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
ApiSalarySplitQueryRateRequest
{
/**
* 出账记录业务id(关联出账记录表)
*/
private
String
fortuneAccountBizId
;
/**
* 原币种
*/
private
String
fromCurrency
;
/**
* 原币种金额
*/
private
BigDecimal
fromAmount
;
/**
* 目标币种
*/
private
String
toCurrency
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salarysplit/ApiSalarySplitSummaryPageRequest.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
feign
.
request
.
salarysplit
;
import
com.yd.common.dto.PageDto
;
import
lombok.Data
;
@Data
public
class
ApiSalarySplitSummaryPageRequest
extends
PageDto
{
/**
* 转介人名称
*/
private
String
brokerName
;
/**
* 出账状态 可出账、待出账、已出账
*/
private
String
status
;
/**
* 出账月-开始月份
*/
private
Integer
startMonth
;
/**
* 出账月-结束月份
*/
private
Integer
endMonth
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salarysplit/ApiQueryRemainingResponse.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
feign
.
response
.
salarysplit
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
ApiQueryRemainingResponse
{
/**
* 原币种剩余总金额
*/
private
BigDecimal
fromAmount
;
/**
* 原币种(出账币种)
*/
private
String
currency
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salarysplit/ApiSalarySplitQueryRateResponse.java
0 → 100644
View file @
d2a0364c
package
com
.
yd
.
csf
.
feign
.
response
.
salarysplit
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
ApiSalarySplitQueryRateResponse
{
/**
* 原始金额
*/
private
BigDecimal
originalAmount
;
/**
* 原始币种代码
*/
private
String
originalCurrency
;
/**
* 转换后金额
*/
private
BigDecimal
convertedAmount
;
/**
* 目标币种代码
*/
private
String
targetCurrency
;
/**
* 汇率(原始币种 -> 目标币种)
*/
private
BigDecimal
exchangeRate
;
/**
* 反向汇率(目标币种 -> 原始币种)
*/
private
BigDecimal
reverseExchangeRate
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dao/SalarySplitMapper.java
View file @
d2a0364c
package
com
.
yd
.
csf
.
service
.
dao
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitPageDto
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitSummaryPageDto
;
import
com.yd.csf.feign.request.salarysplit.ApiSalarySplitPageRequest
;
import
com.yd.csf.feign.request.salarysplit.ApiSalarySplitSummaryPageRequest
;
import
com.yd.csf.service.model.SalarySplit
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* <p>
...
...
@@ -13,4 +20,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public
interface
SalarySplitMapper
extends
BaseMapper
<
SalarySplit
>
{
IPage
<
ApiSalarySplitSummaryPageDto
>
summaryPage
(
@Param
(
"page"
)
Page
<
ApiSalarySplitSummaryPageDto
>
page
,
@Param
(
"request"
)
ApiSalarySplitSummaryPageRequest
request
);
IPage
<
ApiSalarySplitPageDto
>
page
(
@Param
(
"page"
)
Page
<
ApiSalarySplitPageDto
>
page
,
@Param
(
"request"
)
ApiSalarySplitPageRequest
request
);
}
yd-csf-service/src/main/java/com/yd/csf/service/model/SalarySplit.java
View file @
d2a0364c
...
...
@@ -50,6 +50,12 @@ public class SalarySplit implements Serializable {
private
String
fortuneAccountBizId
;
/**
* 转介人名称
*/
@TableField
(
"broker_name"
)
private
String
brokerName
;
/**
* 转介人业务id
*/
@TableField
(
"broker_biz_id"
)
...
...
@@ -101,7 +107,7 @@ public class SalarySplit implements Serializable {
* 删除标识: 0-正常, 1-删除
*/
@TableField
(
"is_deleted"
)
private
Boolean
isDeleted
;
private
Integer
isDeleted
;
/**
* 创建人ID
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneAccountService.java
View file @
d2a0364c
...
...
@@ -38,4 +38,6 @@ public interface FortuneAccountService extends IService<FortuneAccount> {
* @return
*/
FortuneAccountStatisticsVO
getFortuneAccountStatistics
(
List
<
Long
>
fortuneAccountIdList
);
FortuneAccount
queryOne
(
String
fortuneAccountBizId
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/ISalarySplitService.java
View file @
d2a0364c
package
com
.
yd
.
csf
.
service
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitPageDto
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitSummaryPageDto
;
import
com.yd.csf.feign.request.salarysplit.ApiSalarySplitPageRequest
;
import
com.yd.csf.feign.request.salarysplit.ApiSalarySplitSummaryPageRequest
;
import
com.yd.csf.service.model.SalarySplit
;
import
com.baomidou.mybatisplus.extension.service.IService
;
...
...
@@ -13,4 +19,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public
interface
ISalarySplitService
extends
IService
<
SalarySplit
>
{
IPage
<
ApiSalarySplitSummaryPageDto
>
summaryPage
(
Page
<
ApiSalarySplitSummaryPageDto
>
page
,
ApiSalarySplitSummaryPageRequest
request
);
IPage
<
ApiSalarySplitPageDto
>
page
(
Page
<
ApiSalarySplitPageDto
>
page
,
ApiSalarySplitPageRequest
request
);
Boolean
deleteByFortuneAccountBizId
(
String
fortuneAccountBizId
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountServiceImpl.java
View file @
d2a0364c
...
...
@@ -4,6 +4,7 @@ import java.time.LocalDate;
import
java.time.LocalDateTime
;
import
java.util.Date
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
...
...
@@ -372,6 +373,19 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
vo
.
setBrokerCount
(
brokerCount
);
return
vo
;
}
/**
* 查询单个对象
* @param fortuneAccountBizId
* @return
*/
@Override
public
FortuneAccount
queryOne
(
String
fortuneAccountBizId
)
{
return
this
.
baseMapper
.
selectOne
(
new
LambdaQueryWrapper
<
FortuneAccount
>()
.
eq
(
FortuneAccount:
:
getFortuneAccountBizId
,
fortuneAccountBizId
)
.
last
(
" limit 1 "
)
);
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/SalarySplitServiceImpl.java
View file @
d2a0364c
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitPageDto
;
import
com.yd.csf.feign.dto.salarysplit.ApiSalarySplitSummaryPageDto
;
import
com.yd.csf.feign.request.salarysplit.ApiSalarySplitPageRequest
;
import
com.yd.csf.feign.request.salarysplit.ApiSalarySplitSummaryPageRequest
;
import
com.yd.csf.service.model.SalarySplit
;
import
com.yd.csf.service.dao.SalarySplitMapper
;
import
com.yd.csf.service.service.ISalarySplitService
;
...
...
@@ -17,4 +24,26 @@ import org.springframework.stereotype.Service;
@Service
public
class
SalarySplitServiceImpl
extends
ServiceImpl
<
SalarySplitMapper
,
SalarySplit
>
implements
ISalarySplitService
{
@Override
public
IPage
<
ApiSalarySplitSummaryPageDto
>
summaryPage
(
Page
<
ApiSalarySplitSummaryPageDto
>
page
,
ApiSalarySplitSummaryPageRequest
request
)
{
return
this
.
baseMapper
.
summaryPage
(
page
,
request
);
}
@Override
public
IPage
<
ApiSalarySplitPageDto
>
page
(
Page
<
ApiSalarySplitPageDto
>
page
,
ApiSalarySplitPageRequest
request
)
{
return
this
.
baseMapper
.
page
(
page
,
request
);
}
/**
* 根据出账记录删除对应薪资拆分记录信息
* @param fortuneAccountBizId
* @return
*/
@Override
public
Boolean
deleteByFortuneAccountBizId
(
String
fortuneAccountBizId
)
{
return
this
.
remove
(
new
LambdaQueryWrapper
<
SalarySplit
>()
.
eq
(
SalarySplit:
:
getFortuneAccountBizId
,
fortuneAccountBizId
));
}
}
yd-csf-service/src/main/resources/mappers/SalarySplitMapper.xml
View file @
d2a0364c
...
...
@@ -2,4 +2,42 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yd.csf.service.dao.SalarySplitMapper"
>
<select
id=
"page"
resultType=
"com.yd.csf.feign.dto.salarysplit.ApiSalarySplitPageDto"
>
select ss.* from salary_split ss
<where>
and ss.fortune_account_biz_id = #{request.fortuneAccountBizId}
and ss.is_deleted = 0
</where>
</select>
<select
id=
"summaryPage"
resultType=
"com.yd.csf.feign.dto.salarysplit.ApiSalarySplitSummaryPageDto"
>
select
ss.salary_split_no,
ss.fortune_account_biz_id,
ss.broker_name,
ss.broker_biz_id,
ss.internal_number,
fa.team,
ss.from_amount,
ss.to_currency,
ss.exchange_rate,
ss.to_amount,
fa.fortune_account_date,
ss.bill_org,
fa.status,
fa.amount,
fa.currency
from salary_split ss
inner join fortune_account fa on ss.fortune_account_biz_id = fa.fortune_account_biz_id and fa.is_deleted = 0
<where>
<if
test=
"request.brokerName != null and request.brokerName != ''"
>
and ss.broker_name like concat('%', #{request.brokerName}, '%')
</if>
<if
test=
"request.status != null and request.status != ''"
>
and fa.status = #{request.status}
</if>
and ss.is_deleted = 0
</where>
</select>
</mapper>
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