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
32a01ef1
Commit
32a01ef1
authored
Jun 24, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
e5522735
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
181 additions
and
1 deletions
+181
-1
.idea/encodings.xml
+0
-1
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiSalaryController.java
+10
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiSalaryService.java
+2
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiSalaryServiceImpl.java
+85
-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
+6
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salary/ApiSalaryConditionListRequest.java
+21
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salary/ApiSalaryConditionListResponse.java
+19
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salary/ApiSalaryConditionResponse.java
+29
-0
No files found.
.idea/encodings.xml
View file @
32a01ef1
...
...
@@ -5,7 +5,6 @@
<file
url=
"file://$PROJECT_DIR$/yd-csf-api/src/main/java"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/yd-csf-api/src/main/resources"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/yd-csf-feign/src/main/java"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/yd-csf-feign/src/main/resources"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/yd-csf-service/src/main/java"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/yd-csf-service/src/main/resources"
charset=
"UTF-8"
/>
</component>
...
...
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiSalaryController.java
View file @
32a01ef1
...
...
@@ -198,4 +198,14 @@ public class ApiSalaryController implements ApiSalaryFeignClient {
return
apiSalaryService
.
export
(
request
);
}
/**
* 条件查询-电子薪资单列表信息(查询已推送薪资单信息)
* @param request
* @return
*/
@Override
public
Result
<
ApiSalaryConditionListResponse
>
conditionList
(
ApiSalaryConditionListRequest
request
)
{
return
apiSalaryService
.
conditionList
(
request
);
}
}
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiSalaryService.java
View file @
32a01ef1
...
...
@@ -39,6 +39,8 @@ public interface ApiSalaryService {
Result
<
BigDecimal
>
calculateTotalAmount
(
ApiSalaryCalculateTotalAmountRequest
request
);
Result
<
ApiSalaryConditionListResponse
>
conditionList
(
ApiSalaryConditionListRequest
request
);
Result
<
ApiSalaryExportResponse
>
export
(
ApiSalaryExportRequest
request
);
Result
<
List
<
ApiSalaryBrokerListResponse
>>
brokerList
(
String
name
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiSalaryServiceImpl.java
View file @
32a01ef1
...
...
@@ -456,6 +456,91 @@ public class ApiSalaryServiceImpl implements ApiSalaryService {
}
/**
* 条件查询-电子薪资单列表信息
* @param request
* @return
*/
@Override
public
Result
<
ApiSalaryConditionListResponse
>
conditionList
(
ApiSalaryConditionListRequest
request
)
{
// 1. 根据手机号查询转介人信息
ApiUserSaleExpandListRequest
listRequest
=
new
ApiUserSaleExpandListRequest
();
listRequest
.
setPhone
(
request
.
getMobile
());
Result
<
List
<
ApiUserSaleExpandDetailResponse
>>
result
=
apiUserSaleExpandFeignClient
.
list
(
listRequest
);
if
(
CollectionUtils
.
isEmpty
(
result
.
getData
()))
{
// 无转介人信息,返回空列表
ApiSalaryConditionListResponse
response
=
new
ApiSalaryConditionListResponse
();
response
.
setCount
(
0
);
response
.
setConditionResponseList
(
Collections
.
emptyList
());
return
Result
.
success
(
response
);
}
// 取第一个转介人(通常一个手机号对应一个转介人)
ApiUserSaleExpandDetailResponse
userDetail
=
result
.
getData
().
get
(
0
);
String
brokerBizId
=
userDetail
.
getClientUserBizId
();
if
(
StringUtils
.
isBlank
(
brokerBizId
))
{
// 转介人业务ID为空,返回空列表
ApiSalaryConditionListResponse
response
=
new
ApiSalaryConditionListResponse
();
response
.
setCount
(
0
);
response
.
setConditionResponseList
(
Collections
.
emptyList
());
return
Result
.
success
(
response
);
}
// 2. 根据转介人业务ID和年份查询薪资单
String
year
=
request
.
getYear
();
LambdaQueryWrapper
<
Salary
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
Salary:
:
getBrokerBizId
,
brokerBizId
)
.
likeRight
(
Salary:
:
getMonth
,
year
)
// month 为 yyyyMM,匹配前四位年份
.
eq
(
Salary:
:
getIsDeleted
,
0
)
.
orderByDesc
(
Salary:
:
getMonth
);
// 按月份降序排列(最近的在前面)
List
<
Salary
>
salaryList
=
iSalaryService
.
list
(
wrapper
);
if
(
CollectionUtils
.
isEmpty
(
salaryList
))
{
ApiSalaryConditionListResponse
response
=
new
ApiSalaryConditionListResponse
();
response
.
setCount
(
0
);
response
.
setConditionResponseList
(
Collections
.
emptyList
());
return
Result
.
success
(
response
);
}
// 3. 转换为响应对象
List
<
ApiSalaryConditionResponse
>
conditionResponseList
=
salaryList
.
stream
()
.
map
(
salary
->
{
ApiSalaryConditionResponse
resp
=
new
ApiSalaryConditionResponse
();
resp
.
setSalaryBizId
(
salary
.
getSalaryBizId
());
// 格式化月份为 "xxxx年MM月"
String
month
=
salary
.
getMonth
();
String
yearMonth
=
formatYearMonth
(
month
);
resp
.
setYearMonth
(
yearMonth
);
resp
.
setPaidAmount
(
salary
.
getPaidAmount
());
// 状态名称转换
// resp.setStatusName(getStatusDesc(salary.getStatus()));
resp
.
setStatusName
(
"已发放"
);
return
resp
;
})
.
collect
(
Collectors
.
toList
());
// 4. 组装最终响应
ApiSalaryConditionListResponse
response
=
new
ApiSalaryConditionListResponse
();
response
.
setCount
(
conditionResponseList
.
size
());
response
.
setConditionResponseList
(
conditionResponseList
);
return
Result
.
success
(
response
);
}
/**
* 将 yyyyMM 格式的月份转为 xxxx年MM月
*/
private
String
formatYearMonth
(
String
month
)
{
if
(
StringUtils
.
isBlank
(
month
)
||
month
.
length
()
!=
6
)
{
return
month
;
}
try
{
String
year
=
month
.
substring
(
0
,
4
);
String
mm
=
month
.
substring
(
4
,
6
);
return
year
+
"年"
+
mm
+
"月"
;
}
catch
(
Exception
e
)
{
return
month
;
}
}
/**
* 电子薪资单-导出
* @param request
* @return
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/client/salary/ApiSalaryFeignClient.java
View file @
32a01ef1
...
...
@@ -4,6 +4,7 @@ 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.ApiSalaryConditionListResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryDetailResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryExportResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
...
...
@@ -154,4 +155,12 @@ public interface ApiSalaryFeignClient {
*/
@PostMapping
(
"/salary/export"
)
Result
<
ApiSalaryExportResponse
>
export
(
@Validated
@RequestBody
ApiSalaryExportRequest
request
);
/**
* 条件查询-电子薪资单列表信息
* @param request
* @return
*/
@PostMapping
(
"/condition/list"
)
Result
<
ApiSalaryConditionListResponse
>
conditionList
(
@Validated
@RequestBody
ApiSalaryConditionListRequest
request
);
}
yd-csf-feign/src/main/java/com/yd/csf/feign/fallback/salary/ApiSalaryFeignFallbackFactory.java
View file @
32a01ef1
...
...
@@ -4,6 +4,7 @@ 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.ApiSalaryConditionListResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryDetailResponse
;
import
com.yd.csf.feign.response.salary.ApiSalaryExportResponse
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -107,6 +108,11 @@ public class ApiSalaryFeignFallbackFactory implements FallbackFactory<ApiSalaryF
public
Result
<
ApiSalaryExportResponse
>
export
(
ApiSalaryExportRequest
request
)
{
return
null
;
}
@Override
public
Result
<
ApiSalaryConditionListResponse
>
conditionList
(
ApiSalaryConditionListRequest
request
)
{
return
null
;
}
};
}
}
yd-csf-feign/src/main/java/com/yd/csf/feign/request/salary/ApiSalaryConditionListRequest.java
0 → 100644
View file @
32a01ef1
package
com
.
yd
.
csf
.
feign
.
request
.
salary
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
@Data
public
class
ApiSalaryConditionListRequest
{
/**
* 手机号(用于和CSF系统人员信息匹配)
*/
@NotBlank
(
message
=
"手机号不能为空"
)
private
String
mobile
;
/**
* 薪资年份(格式:yyyy)
*/
@NotBlank
(
message
=
"薪资年份不能为空"
)
private
String
year
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salary/ApiSalaryConditionListResponse.java
0 → 100644
View file @
32a01ef1
package
com
.
yd
.
csf
.
feign
.
response
.
salary
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
ApiSalaryConditionListResponse
{
/**
* 列表数量
*/
private
Integer
count
;
/**
* 薪资列表信息
*/
private
List
<
ApiSalaryConditionResponse
>
conditionResponseList
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/response/salary/ApiSalaryConditionResponse.java
0 → 100644
View file @
32a01ef1
package
com
.
yd
.
csf
.
feign
.
response
.
salary
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
ApiSalaryConditionResponse
{
/**
* 薪资单表唯一业务ID
*/
private
String
salaryBizId
;
/**
* 薪资年月(同出账月,如:xxxx年MM月)
*/
private
String
yearMonth
;
/**
* 实发总金额(单位:HKD)
*/
private
BigDecimal
paidAmount
;
/**
* 状态名称
*/
private
String
statusName
;
}
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