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
09508880
Commit
09508880
authored
May 09, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
6104eda1
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
301 additions
and
21 deletions
+301
-21
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiSalaryController.java
+44
-5
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiSalaryService.java
+12
-4
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiSalaryServiceImpl.java
+73
-5
yd-csf-feign/src/main/java/com/yd/csf/feign/client/salary/ApiSalaryFeignClient.java
+25
-1
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salary/CalculateTotalAmountDTO.java
+27
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/fallback/salary/ApiSalaryFeignFallbackFactory.java
+17
-4
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salary/ApiSalaryCalculatePaidAmountRequest.java
+5
-1
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salary/ApiSalaryCalculateTotalAmountRequest.java
+13
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salary/ApiSalaryPushPageRequest.java
+23
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salary/ApiSalaryPushPageResponse.java
+50
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/Salary.java
+1
-1
yd-csf-service/src/main/java/com/yd/csf/service/service/ISalaryRemittanceService.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/ISalaryService.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/SalaryRemittanceServiceImpl.java
+7
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiSalaryController.java
View file @
09508880
...
...
@@ -4,18 +4,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.yd.common.result.Result
;
import
com.yd.csf.api.service.ApiSalaryService
;
import
com.yd.csf.feign.client.salary.ApiSalaryFeignClient
;
import
com.yd.csf.feign.request.salary.ApiSalaryAddRequest
;
import
com.yd.csf.feign.request.salary.ApiSalaryBatchAddRequest
;
import
com.yd.csf.feign.request.salary.ApiSalaryEditRequest
;
import
com.yd.csf.feign.request.salary.ApiSalaryPageRequest
;
import
com.yd.csf.feign.request.salary.*
;
import
com.yd.csf.feign.response.salary.ApiSalaryDetailResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryPageResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryPushPageResponse
;
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
;
import
javax.validation.constraints.NotBlank
;
import
java.math.BigDecimal
;
/**
* 薪资单信息
...
...
@@ -32,7 +31,7 @@ public class ApiSalaryController implements ApiSalaryFeignClient {
private
ApiSalaryService
apiSalaryService
;
/**
* 分页查询-
薪资单
信息
* 分页查询-
制作薪资单列表
信息
* @param request
* @return
*/
...
...
@@ -42,6 +41,16 @@ public class ApiSalaryController implements ApiSalaryFeignClient {
}
/**
* 分页查询-电子薪资单列表信息(推送列表信息)
* @param request
* @return
*/
@Override
public
Result
<
IPage
<
ApiSalaryPushPageResponse
>>
pushPage
(
ApiSalaryPushPageRequest
request
)
{
return
apiSalaryService
.
pushPage
(
request
);
}
/**
* 详情-薪资单信息
* @param salaryBizId
* @return
...
...
@@ -81,5 +90,35 @@ public class ApiSalaryController implements ApiSalaryFeignClient {
return
apiSalaryService
.
batchAdd
(
request
);
}
/**
* 删除-薪资单汇款明细信息
* @param salaryRemittanceBizId
* @return
*/
@Override
public
Result
delSalaryRemittance
(
String
salaryRemittanceBizId
)
{
return
apiSalaryService
.
delSalaryRemittance
(
salaryRemittanceBizId
);
}
/**
* 计算-实发金额
* @param request
* @return
*/
@Override
public
Result
<
BigDecimal
>
calculatePaidAmount
(
ApiSalaryCalculatePaidAmountRequest
request
)
{
return
apiSalaryService
.
calculatePaidAmount
(
request
);
}
/**
* 计算-薪资汇款明细合计发放金额(单位:HKD)
* @param request
* @return
*/
@Override
public
Result
<
BigDecimal
>
calculateTotalAmount
(
ApiSalaryCalculateTotalAmountRequest
request
)
{
return
apiSalaryService
.
calculateTotalAmount
(
request
);
}
}
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiSalaryService.java
View file @
09508880
...
...
@@ -2,16 +2,18 @@ package com.yd.csf.api.service;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.yd.common.result.Result
;
import
com.yd.csf.feign.request.salary.ApiSalaryAddRequest
;
import
com.yd.csf.feign.request.salary.ApiSalaryBatchAddRequest
;
import
com.yd.csf.feign.request.salary.ApiSalaryEditRequest
;
import
com.yd.csf.feign.request.salary.ApiSalaryPageRequest
;
import
com.yd.csf.feign.request.salary.*
;
import
com.yd.csf.feign.response.salary.ApiSalaryDetailResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryPageResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryPushPageResponse
;
import
java.math.BigDecimal
;
public
interface
ApiSalaryService
{
Result
<
IPage
<
ApiSalaryPageResponse
>>
page
(
ApiSalaryPageRequest
request
);
Result
<
IPage
<
ApiSalaryPushPageResponse
>>
pushPage
(
ApiSalaryPushPageRequest
request
);
Result
<
ApiSalaryDetailResponse
>
detail
(
String
salaryBizId
);
Result
add
(
ApiSalaryAddRequest
request
);
...
...
@@ -19,4 +21,10 @@ public interface ApiSalaryService {
Result
edit
(
ApiSalaryEditRequest
request
);
Result
batchAdd
(
ApiSalaryBatchAddRequest
request
);
Result
delSalaryRemittance
(
String
salaryRemittanceBizId
);
Result
<
BigDecimal
>
calculatePaidAmount
(
ApiSalaryCalculatePaidAmountRequest
request
);
Result
<
BigDecimal
>
calculateTotalAmount
(
ApiSalaryCalculateTotalAmountRequest
request
);
}
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiSalaryServiceImpl.java
View file @
09508880
...
...
@@ -10,14 +10,13 @@ import com.yd.common.utils.RandomStringGenerator;
import
com.yd.csf.api.service.ApiSalaryRemittanceService
;
import
com.yd.csf.api.service.ApiSalaryService
;
import
com.yd.csf.feign.dto.salary.ApiSalaryBatchAddDTO
;
import
com.yd.csf.feign.dto.salary.CalculateTotalAmountDTO
;
import
com.yd.csf.feign.dto.salaryremittance.ApiSalaryRemittanceDTO
;
import
com.yd.csf.feign.dto.salaryremittance.ApiSalaryRemittanceFzDTO
;
import
com.yd.csf.feign.request.salary.ApiSalaryAddRequest
;
import
com.yd.csf.feign.request.salary.ApiSalaryBatchAddRequest
;
import
com.yd.csf.feign.request.salary.ApiSalaryEditRequest
;
import
com.yd.csf.feign.request.salary.ApiSalaryPageRequest
;
import
com.yd.csf.feign.request.salary.*
;
import
com.yd.csf.feign.response.salary.ApiSalaryDetailResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryPageResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryPushPageResponse
;
import
com.yd.csf.service.model.Salary
;
import
com.yd.csf.service.model.SalaryRemittance
;
import
com.yd.csf.service.service.ISalaryRemittanceService
;
...
...
@@ -49,7 +48,7 @@ public class ApiSalaryServiceImpl implements ApiSalaryService {
private
ISalaryRemittanceService
iSalaryRemittanceService
;
/**
* 分页查询-
薪资单
信息
* 分页查询-
制作薪资单列表
信息
* @param request
* @return
*/
...
...
@@ -61,6 +60,18 @@ public class ApiSalaryServiceImpl implements ApiSalaryService {
}
/**
* 分页查询-电子薪资单列表信息(推送列表信息)
* @param request
* @return
*/
@Override
public
Result
<
IPage
<
ApiSalaryPushPageResponse
>>
pushPage
(
ApiSalaryPushPageRequest
request
)
{
Page
<
ApiSalaryPushPageResponse
>
page
=
new
Page
<>(
request
.
getPageNo
(),
request
.
getPageSize
());
// IPage<ApiSalaryPushPageResponse> iPage = iSalaryService.pushPage(page, request);
return
Result
.
success
();
}
/**
* 详情-薪资单信息
* @param salaryBizId
* @return
...
...
@@ -198,6 +209,63 @@ public class ApiSalaryServiceImpl implements ApiSalaryService {
}
/**
* 删除-薪资单汇款明细信息
* @param salaryRemittanceBizId
* @return
*/
@Override
public
Result
delSalaryRemittance
(
String
salaryRemittanceBizId
)
{
SalaryRemittance
salaryRemittance
=
iSalaryRemittanceService
.
queryOne
(
salaryRemittanceBizId
);
if
(
salaryRemittance
==
null
)
{
throw
new
BusinessException
(
"薪资单汇款明细信息不存在"
);
}
iSalaryRemittanceService
.
removeById
(
salaryRemittance
.
getId
());
return
Result
.
success
();
}
/**
* 计算-实发金额
* @param request
* @return
*/
@Override
public
Result
<
BigDecimal
>
calculatePaidAmount
(
ApiSalaryCalculatePaidAmountRequest
request
)
{
//应发总金额
BigDecimal
grossAmount
=
ObjectUtils
.
defaultIfNull
(
request
.
getGrossAmount
(),
BigDecimal
.
ZERO
);
//MPF事项总金额
BigDecimal
mpfAmount
=
ObjectUtils
.
defaultIfNull
(
request
.
getMpfAmount
(),
BigDecimal
.
ZERO
);
//其他调整总金额
BigDecimal
otherAmount
=
ObjectUtils
.
defaultIfNull
(
request
.
getOtherAmount
(),
BigDecimal
.
ZERO
);
//实发金额 = 应发金额-MPF事项+其他调整
BigDecimal
paidAmount
=
grossAmount
.
subtract
(
mpfAmount
).
add
(
otherAmount
);
return
Result
.
success
(
paidAmount
);
}
/**
* 计算-薪资汇款明细合计发放金额(单位:HKD)
* @param request
* @return
*/
@Override
public
Result
<
BigDecimal
>
calculateTotalAmount
(
ApiSalaryCalculateTotalAmountRequest
request
)
{
List
<
CalculateTotalAmountDTO
>
calculateTotalAmountDTOList
=
request
.
getCalculateTotalAmountDTOList
();
if
(
CollectionUtils
.
isEmpty
(
calculateTotalAmountDTOList
))
{
throw
new
BusinessException
(
"计算入参的值不能为空"
);
}
BigDecimal
totalAmount
=
BigDecimal
.
ZERO
;
calculateTotalAmountDTOList
.
forEach
(
dto
->
{
//发放金额
BigDecimal
amount
=
ObjectUtils
.
defaultIfNull
(
dto
.
getAmount
(),
BigDecimal
.
ZERO
);
//汇率
BigDecimal
exchangeRate
=
ObjectUtils
.
defaultIfNull
(
dto
.
getExchangeRate
(),
BigDecimal
.
ZERO
);
//港币金额 = 发放金额 * 汇率
BigDecimal
hkdAmount
=
amount
.
multiply
(
exchangeRate
);
totalAmount
.
add
(
hkdAmount
);
});
return
Result
.
success
(
totalAmount
);
}
/**
* 批量校验同一转介人同一年月只能有一条薪资单记录
* @param apiSalaryBatchAddDTOList
*/
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/client/salary/ApiSalaryFeignClient.java
View file @
09508880
...
...
@@ -18,7 +18,7 @@ import java.math.BigDecimal;
public
interface
ApiSalaryFeignClient
{
/**
* 分页查询-
薪资单
信息
* 分页查询-
制作薪资单列表
信息
* @param request
* @return
*/
...
...
@@ -26,6 +26,14 @@ public interface ApiSalaryFeignClient {
Result
page
(
@Validated
@RequestBody
ApiSalaryPageRequest
request
);
/**
* 分页查询-电子薪资单列表信息(推送列表信息)
* @param request
* @return
*/
@PostMapping
(
"/push/page"
)
Result
pushPage
(
@Validated
@RequestBody
ApiSalaryPushPageRequest
request
);
/**
* 详情-薪资单信息
* @param salaryBizId
* @return
...
...
@@ -58,10 +66,26 @@ public interface ApiSalaryFeignClient {
Result
batchAdd
(
@Validated
@RequestBody
ApiSalaryBatchAddRequest
request
);
/**
* 删除-薪资单汇款明细信息
* @param salaryRemittanceBizId
* @return
*/
@DeleteMapping
(
"/delSalaryRemittance"
)
Result
delSalaryRemittance
(
@NotBlank
(
message
=
"薪资汇款明细表唯一业务ID不能为空"
)
@RequestParam
(
value
=
"salaryRemittanceBizId"
)
String
salaryRemittanceBizId
);
/**
* 计算-实发金额
* @param request
* @return
*/
@PostMapping
(
"/calculate/paidAmount"
)
Result
<
BigDecimal
>
calculatePaidAmount
(
@Validated
@RequestBody
ApiSalaryCalculatePaidAmountRequest
request
);
/**
* 计算-薪资汇款明细合计发放金额(单位:HKD)
* @param request
* @return
*/
@PostMapping
(
"/calculate/totalAmount"
)
Result
<
BigDecimal
>
calculateTotalAmount
(
@Validated
@RequestBody
ApiSalaryCalculateTotalAmountRequest
request
);
}
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salary/CalculateTotalAmountDTO.java
0 → 100644
View file @
09508880
package
com
.
yd
.
csf
.
feign
.
dto
.
salary
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.math.BigDecimal
;
@Data
public
class
CalculateTotalAmountDTO
{
/**
* 汇款币种
*/
private
String
currency
;
/**
* 发放金额
*/
@NotNull
(
message
=
"发放金额不能为空"
)
private
BigDecimal
amount
;
/**
* 汇率
*/
@NotNull
(
message
=
"汇率不能为空"
)
private
BigDecimal
exchangeRate
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/fallback/salary/ApiSalaryFeignFallbackFactory.java
View file @
09508880
...
...
@@ -2,16 +2,14 @@ package com.yd.csf.feign.fallback.salary;
import
com.yd.common.result.Result
;
import
com.yd.csf.feign.client.salary.ApiSalaryFeignClient
;
import
com.yd.csf.feign.request.salary.ApiSalaryAddRequest
;
import
com.yd.csf.feign.request.salary.ApiSalaryBatchAddRequest
;
import
com.yd.csf.feign.request.salary.ApiSalaryEditRequest
;
import
com.yd.csf.feign.request.salary.ApiSalaryPageRequest
;
import
com.yd.csf.feign.request.salary.*
;
import
com.yd.csf.feign.response.salary.ApiSalaryDetailResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.cloud.openfeign.FallbackFactory
;
import
org.springframework.stereotype.Component
;
import
javax.validation.constraints.NotBlank
;
import
java.math.BigDecimal
;
/**
* 香港保险服务-薪资单信息Feign降级处理
...
...
@@ -46,6 +44,21 @@ public class ApiSalaryFeignFallbackFactory implements FallbackFactory<ApiSalaryF
public
Result
batchAdd
(
ApiSalaryBatchAddRequest
request
)
{
return
null
;
}
@Override
public
Result
delSalaryRemittance
(
String
salaryRemittanceBizId
)
{
return
null
;
}
@Override
public
Result
<
BigDecimal
>
calculatePaidAmount
(
ApiSalaryCalculatePaidAmountRequest
request
)
{
return
null
;
}
@Override
public
Result
<
BigDecimal
>
calculateTotalAmount
(
ApiSalaryCalculateTotalAmountRequest
request
)
{
return
null
;
}
};
}
}
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salary/ApiSalaryCalculatePaidAmountRequest.java
View file @
09508880
package
com
.
yd
.
csf
.
feign
.
request
.
salary
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.math.BigDecimal
;
@Data
...
...
@@ -9,16 +11,18 @@ public class ApiSalaryCalculatePaidAmountRequest {
/**
* 应发总金额(单位:HKD)
*/
@NotNull
(
message
=
"应发总金额不能为空"
)
private
BigDecimal
grossAmount
;
/**
* MPF事项总金额(单位:HKD)
*/
@NotNull
(
message
=
"MPF事项总金额不能为空"
)
private
BigDecimal
mpfAmount
;
/**
* 其他调整总金额(单位:HKD)
*/
@NotNull
(
message
=
"其他调整总金额不能为空"
)
private
BigDecimal
otherAmount
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salary/ApiSalaryCalculateTotalAmountRequest.java
0 → 100644
View file @
09508880
package
com
.
yd
.
csf
.
feign
.
request
.
salary
;
import
com.yd.csf.feign.dto.salary.CalculateTotalAmountDTO
;
import
lombok.Data
;
import
javax.validation.Valid
;
import
java.util.List
;
@Data
public
class
ApiSalaryCalculateTotalAmountRequest
{
@Valid
private
List
<
CalculateTotalAmountDTO
>
calculateTotalAmountDTOList
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salary/ApiSalaryPushPageRequest.java
0 → 100644
View file @
09508880
package
com
.
yd
.
csf
.
feign
.
request
.
salary
;
import
com.yd.common.dto.PageDto
;
import
lombok.Data
;
@Data
public
class
ApiSalaryPushPageRequest
extends
PageDto
{
/**
* 转介人名称
*/
private
String
brokerName
;
/**
* 薪资月份(同出账月,如:202605)
*/
private
String
month
;
/**
* 薪资单状态:1-待审核提交 2-待审核 3-审核退回 4-待核对提交 5-待核对 6-核对退回 7-已核对 8-已推送 9-已取消
*/
private
String
status
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salary/ApiSalaryPushPageResponse.java
0 → 100644
View file @
09508880
package
com
.
yd
.
csf
.
feign
.
response
.
salary
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
@Data
public
class
ApiSalaryPushPageResponse
{
/**
* 转介人名称
*/
private
String
brokerName
;
/**
* 薪资月份(同出账月,如:202605)
*/
private
String
month
;
/**
* 实发总金额(单位:HKD)
*/
private
BigDecimal
paidAmount
;
/**
* 应发总金额(单位:HKD)
*/
private
BigDecimal
grossAmount
;
/**
* 扣款合计(单位:HKD)
*/
private
BigDecimal
totalDeductions
;
/**
* 其他调整的备注
*/
private
String
otherRemark
;
/**
* 制作人(创建人名称)
*/
private
String
creatorName
;
/**
* 制作时间(创建时间)
*/
private
LocalDateTime
createTime
;
}
yd-csf-service/src/main/java/com/yd/csf/service/model/Salary.java
View file @
09508880
...
...
@@ -110,7 +110,7 @@ public class Salary implements Serializable {
private
String
otherRemark
;
/**
* 薪资单状态:1-待
提交 2-待审核 3-审核退回 4-待核对 5-核对退回 6-已核对 7-已推送 8
-已取消
* 薪资单状态:1-待
审核提交 2-待审核 3-审核退回 4-待核对提交 5-待核对 6-核对退回 7-已核对 8-已推送 9
-已取消
*/
@TableField
(
"status"
)
private
String
status
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/ISalaryRemittanceService.java
View file @
09508880
...
...
@@ -18,4 +18,6 @@ public interface ISalaryRemittanceService extends IService<SalaryRemittance> {
Boolean
delBySalaryBizId
(
String
salaryBizId
);
List
<
SalaryRemittance
>
queryList
(
String
salaryBizId
);
SalaryRemittance
queryOne
(
String
salaryRemittanceBizId
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/ISalaryService.java
View file @
09508880
...
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.feign.request.salary.ApiSalaryPageRequest
;
import
com.yd.csf.feign.response.salary.ApiSalaryPageResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryPushPageResponse
;
import
com.yd.csf.service.model.Salary
;
import
com.baomidou.mybatisplus.extension.service.IService
;
...
...
@@ -20,6 +21,7 @@ public interface ISalaryService extends IService<Salary> {
IPage
<
ApiSalaryPageResponse
>
page
(
Page
<
ApiSalaryPageResponse
>
page
,
ApiSalaryPageRequest
request
);
Salary
queryOne
(
String
brokerBizId
,
String
month
,
String
salaryBizId
,
Boolean
isExcludeMy
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/SalaryRemittanceServiceImpl.java
View file @
09508880
...
...
@@ -31,4 +31,11 @@ public class SalaryRemittanceServiceImpl extends ServiceImpl<SalaryRemittanceMap
return
this
.
baseMapper
.
selectList
(
new
LambdaQueryWrapper
<
SalaryRemittance
>()
.
eq
(
SalaryRemittance:
:
getSalaryBizId
,
salaryBizId
));
}
@Override
public
SalaryRemittance
queryOne
(
String
salaryRemittanceBizId
)
{
return
this
.
baseMapper
.
selectOne
(
new
LambdaQueryWrapper
<
SalaryRemittance
>()
.
eq
(
SalaryRemittance:
:
getSalaryRemittanceBizId
,
salaryRemittanceBizId
)
.
last
(
" limit 1 "
));
}
}
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