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
92508ba1
Commit
92508ba1
authored
Jun 17, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
b3ea220d
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
123 additions
and
0 deletions
+123
-0
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiSalaryController.java
+11
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiSalaryService.java
+4
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiSalaryServiceImpl.java
+68
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/client/salary/ApiSalaryFeignClient.java
+9
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/fallback/salary/ApiSalaryFeignFallbackFactory.java
+7
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salary/ApiSalaryBrokerListResponse.java
+23
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneAccountService.java
+1
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiSalaryController.java
View file @
92508ba1
...
...
@@ -5,6 +5,7 @@ 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.*
;
import
com.yd.csf.feign.response.salary.ApiSalaryBrokerListResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryDetailResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryPageResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryPushPageResponse
;
...
...
@@ -15,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
import
javax.validation.constraints.NotBlank
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* 薪资单信息
...
...
@@ -180,5 +182,14 @@ public class ApiSalaryController implements ApiSalaryFeignClient {
return
apiSalaryService
.
calculateTotalAmount
(
request
);
}
/**
* 查询薪资单转介人列表信息
* @return
*/
@Override
public
Result
<
List
<
ApiSalaryBrokerListResponse
>>
brokerList
()
{
return
apiSalaryService
.
brokerList
();
}
}
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiSalaryService.java
View file @
92508ba1
...
...
@@ -3,11 +3,13 @@ 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.*
;
import
com.yd.csf.feign.response.salary.ApiSalaryBrokerListResponse
;
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
;
import
java.util.List
;
public
interface
ApiSalaryService
{
Result
<
IPage
<
ApiSalaryPageResponse
>>
page
(
ApiSalaryPageRequest
request
);
...
...
@@ -39,4 +41,6 @@ public interface ApiSalaryService {
Result
<
BigDecimal
>
calculatePaidAmount
(
ApiSalaryCalculatePaidAmountRequest
request
);
Result
<
BigDecimal
>
calculateTotalAmount
(
ApiSalaryCalculateTotalAmountRequest
request
);
Result
<
List
<
ApiSalaryBrokerListResponse
>>
brokerList
();
}
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiSalaryServiceImpl.java
View file @
92508ba1
package
com
.
yd
.
csf
.
api
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.base.feign.client.exchangerate.ApiExchangeRateFeignClient
;
...
...
@@ -17,6 +18,7 @@ import com.yd.csf.feign.dto.salaryremittance.ApiSalaryRemittanceDTO;
import
com.yd.csf.feign.dto.salaryremittance.ApiSalaryRemittanceFzDTO
;
import
com.yd.csf.feign.enums.SalaryStatusEnum
;
import
com.yd.csf.feign.request.salary.*
;
import
com.yd.csf.feign.response.salary.ApiSalaryBrokerListResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryDetailResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryPageResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryPushPageResponse
;
...
...
@@ -405,6 +407,72 @@ public class ApiSalaryServiceImpl implements ApiSalaryService {
}
/**
* 查询薪资单转介人列表信息
* @return
*/
@Override
public
Result
<
List
<
ApiSalaryBrokerListResponse
>>
brokerList
()
{
// 构造查询条件:状态为“完成出账”(2) 且 未删除
QueryWrapper
<
FortuneAccount
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"status"
,
FortuneAccountStatusEnum
.
SENT
.
getItemValue
())
.
eq
(
"is_deleted"
,
0
);
// 查询所有符合条件的出账记录
List
<
FortuneAccount
>
accountList
=
fortuneAccountService
.
list
(
wrapper
);
if
(
CollectionUtils
.
isEmpty
(
accountList
))
{
return
Result
.
success
(
Collections
.
emptyList
());
}
// 按 brokerBizId 分组,收集月份(去重)
Map
<
String
,
Set
<
String
>>
brokerMonthMap
=
new
LinkedHashMap
<>();
Map
<
String
,
String
>
brokerNameMap
=
new
HashMap
<>();
DateTimeFormatter
monthFormatter
=
DateTimeFormatter
.
ofPattern
(
"yyyyMM"
);
for
(
FortuneAccount
account
:
accountList
)
{
String
bizId
=
account
.
getBrokerBizId
();
String
brokerName
=
account
.
getBroker
();
Date
date
=
account
.
getFortuneAccountDate
();
if
(
StringUtils
.
isBlank
(
bizId
)
||
StringUtils
.
isBlank
(
brokerName
)
||
date
==
null
)
{
continue
;
// 跳过无效数据
}
// 转换为 yyyyMM 格式
LocalDate
localDate
=
date
.
toInstant
().
atZone
(
ZoneId
.
systemDefault
()).
toLocalDate
();
String
month
=
localDate
.
format
(
monthFormatter
);
// 存储转介人名称(首次出现)
brokerNameMap
.
putIfAbsent
(
bizId
,
brokerName
);
// 收集月份(自动去重)
brokerMonthMap
.
computeIfAbsent
(
bizId
,
k
->
new
LinkedHashSet
<>()).
add
(
month
);
}
// 组装响应对象
List
<
ApiSalaryBrokerListResponse
>
resultList
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
String
,
Set
<
String
>>
entry
:
brokerMonthMap
.
entrySet
())
{
String
bizId
=
entry
.
getKey
();
Set
<
String
>
monthSet
=
entry
.
getValue
();
ApiSalaryBrokerListResponse
response
=
new
ApiSalaryBrokerListResponse
();
response
.
setBrokerBizId
(
bizId
);
response
.
setBroker
(
brokerNameMap
.
getOrDefault
(
bizId
,
""
));
// 月份列表按时间升序排序
List
<
String
>
sortedMonths
=
new
ArrayList
<>(
monthSet
);
Collections
.
sort
(
sortedMonths
);
response
.
setMonthList
(
sortedMonths
);
resultList
.
add
(
response
);
}
// 最终按转介人名称排序
resultList
.
sort
(
Comparator
.
comparing
(
ApiSalaryBrokerListResponse:
:
getBroker
,
Comparator
.
nullsLast
(
String:
:
compareTo
)));
return
Result
.
success
(
resultList
);
}
/**
* 批量校验同一转介人同一年月只能有一条薪资单记录
* @param apiSalaryBatchAddDTOList 批量新增DTO列表
*/
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/client/salary/ApiSalaryFeignClient.java
View file @
92508ba1
...
...
@@ -3,6 +3,7 @@ package com.yd.csf.feign.client.salary;
import
com.yd.common.result.Result
;
import
com.yd.csf.feign.fallback.salary.ApiSalaryFeignFallbackFactory
;
import
com.yd.csf.feign.request.salary.*
;
import
com.yd.csf.feign.response.salary.ApiSalaryBrokerListResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryDetailResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.validation.annotation.Validated
;
...
...
@@ -10,6 +11,7 @@ import org.springframework.web.bind.annotation.*;
import
javax.validation.constraints.NotBlank
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* 香港保险服务-薪资单信息Feign客户端
...
...
@@ -136,4 +138,11 @@ public interface ApiSalaryFeignClient {
*/
@PostMapping
(
"/calculate/totalAmount"
)
Result
<
BigDecimal
>
calculateTotalAmount
(
@Validated
@RequestBody
ApiSalaryCalculateTotalAmountRequest
request
);
/**
* 查询薪资单转介人列表信息
* @return
*/
@GetMapping
(
"/broker/list"
)
Result
<
List
<
ApiSalaryBrokerListResponse
>>
brokerList
();
}
yd-csf-feign/src/main/java/com/yd/csf/feign/fallback/salary/ApiSalaryFeignFallbackFactory.java
View file @
92508ba1
...
...
@@ -3,6 +3,7 @@ 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.*
;
import
com.yd.csf.feign.response.salary.ApiSalaryBrokerListResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryDetailResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.cloud.openfeign.FallbackFactory
;
...
...
@@ -10,6 +11,7 @@ import org.springframework.stereotype.Component;
import
javax.validation.constraints.NotBlank
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* 香港保险服务-薪资单信息Feign降级处理
...
...
@@ -94,6 +96,11 @@ public class ApiSalaryFeignFallbackFactory implements FallbackFactory<ApiSalaryF
public
Result
<
BigDecimal
>
calculateTotalAmount
(
ApiSalaryCalculateTotalAmountRequest
request
)
{
return
null
;
}
@Override
public
Result
<
List
<
ApiSalaryBrokerListResponse
>>
brokerList
()
{
return
null
;
}
};
}
}
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salary/ApiSalaryBrokerListResponse.java
0 → 100644
View file @
92508ba1
package
com
.
yd
.
csf
.
feign
.
response
.
salary
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
ApiSalaryBrokerListResponse
{
/**
* 转介人
*/
private
String
broker
;
/**
* 转介人业务id
*/
private
String
brokerBizId
;
/**
* 月份列表(格式: 202606)
*/
private
List
<
String
>
monthList
;
}
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneAccountService.java
View file @
92508ba1
...
...
@@ -45,4 +45,5 @@ public interface FortuneAccountService extends IService<FortuneAccount> {
List
<
FortuneAccount
>
queryList
(
String
brokerBizId
,
String
month
,
String
status
);
List
<
FortuneAccount
>
queryList
(
List
<
Map
.
Entry
<
String
,
String
>>
pairs
,
String
status
);
}
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