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
088170a8
Commit
088170a8
authored
Dec 01, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/test' into test
parents
99069997
e59b9174
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
59 changed files
with
1374 additions
and
125 deletions
+1374
-125
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
+60
-8
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
+1
-0
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiFortuneController.java
+80
-12
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+45
-42
yd-csf-api/src/main/java/com/yd/csf/api/dto/CommissionExcelDTO.java
+10
-1
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
+1
-1
yd-csf-service/pom.xml
+6
-0
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionCompareRecordMapper.java
+18
-0
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionEditRecordMapper.java
+18
-0
yd-csf-service/src/main/java/com/yd/csf/service/dao/FortuneAccountEditRecordMapper.java
+18
-0
yd-csf-service/src/main/java/com/yd/csf/service/dao/FortuneMapper.java
+5
-0
yd-csf-service/src/main/java/com/yd/csf/service/dao/PolicyFollowMapper.java
+3
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionAddRequest.java
+6
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionCompareRecordQueryRequest.java
+14
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionEditRecordQueryRequest.java
+14
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionExpectedAddDto.java
+3
-3
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionExpectedEditRequest.java
+37
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionExpectedUpdateRequest.java
+11
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionUpdateRequest.java
+6
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneAccountEditRecordQueryRequest.java
+14
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneAccountStatisticsQueryRequest.java
+15
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneAccountStatisticsVO.java
+21
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneStatisticsRequest.java
+15
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneStatisticsVO.java
+27
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/Commission.java
+46
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionCompareRecord.java
+97
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionEditRecord.java
+88
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionExpected.java
+22
-2
yd-csf-service/src/main/java/com/yd/csf/service/model/FortuneAccountEditRecord.java
+70
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
+2
-2
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionCompareRecordService.java
+16
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionEditRecordService.java
+13
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionService.java
+3
-1
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneAccountEditRecordService.java
+13
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneAccountService.java
+8
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneService.java
+3
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyReportPdfService.java
+45
-5
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionCompareRecordServiceImpl.java
+22
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionEditRecordServiceImpl.java
+22
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
+65
-5
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+0
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CustomerServiceImpl.java
+8
-9
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountEditRecordServiceImpl.java
+22
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountServiceImpl.java
+64
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
+27
-5
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
+34
-18
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedVO.java
+26
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionVO.java
+54
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneAccountVO.java
+6
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneVO.java
+18
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowDetailVO.java
+2
-2
yd-csf-service/src/main/resources/mappers/CommissionCompareRecordMapper.xml
+27
-0
yd-csf-service/src/main/resources/mappers/CommissionEditRecordMapper.xml
+25
-0
yd-csf-service/src/main/resources/mappers/CommissionExpectedMapper.xml
+6
-3
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
+9
-4
yd-csf-service/src/main/resources/mappers/FortuneAccountEditRecordMapper.xml
+22
-0
yd-csf-service/src/main/resources/mappers/FortuneMapper.xml
+13
-0
yd-csf-service/src/main/resources/mappers/PolicyFollowMapper.xml
+26
-2
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
View file @
088170a8
package
com
.
yd
.
csf
.
api
.
controller
;
import
com.alibaba.excel.EasyExcel
;
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.yd.auth.core.dto.AuthUserDto
;
...
...
@@ -11,12 +12,16 @@ import com.yd.common.result.Result;
import
com.yd.csf.api.dto.CommissionExcelDTO
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.enums.CommissionStatusEnum
;
import
com.yd.csf.service.model.Commission
;
import
com.yd.csf.service.model.CommissionCompareRecord
;
import
com.yd.csf.service.model.CommissionEditRecord
;
import
com.yd.csf.service.model.CommissionExpected
;
import
com.yd.csf.service.service.CommissionCompareRecordService
;
import
com.yd.csf.service.service.CommissionEditRecordService
;
import
com.yd.csf.service.service.CommissionExpectedService
;
import
com.yd.csf.service.service.CommissionService
;
import
com.yd.csf.service.vo.CommissionStatisticsVO
;
import
com.yd.csf.service.vo.CommissionVO
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
org.apache.commons.collections4.CollectionUtils
;
...
...
@@ -56,6 +61,13 @@ public class ApiCommissionController {
@Resource
private
CommissionExpectedService
commissionExpectedService
;
@Resource
private
CommissionEditRecordService
commissionEditRecordService
;
@Resource
private
CommissionCompareRecordService
commissionCompareRecordService
;
@PostMapping
(
"/upload/excel"
)
@Operation
(
summary
=
"上传保单来佣Excel文件"
)
...
...
@@ -140,13 +152,17 @@ public class ApiCommissionController {
Integer
commissionPeriod
=
commission
.
getCommissionPeriod
();
String
commissionName
=
commission
.
getCommissionName
();
CommissionExpected
expected
=
getCommissionExpected
(
expectedList
,
policyNo
,
commissionPeriod
,
commissionName
);
if
(
expected
!=
null
)
{
commissionService
.
compareWithExpected
(
commission
,
expected
);
}
else
{
// 查询预计来佣
CommissionExpected
commissionExpected
;
try
{
commissionExpected
=
commissionService
.
queryByCommission
(
commission
);
// 对比预计来佣
commissionService
.
compareWithExpected
(
commission
.
getPremium
(),
commission
,
commissionExpected
);
commissionExpectedService
.
updateById
(
commissionExpected
);
}
catch
(
Exception
e
)
{
// 预计来佣不存在,来佣状态设置为 比对失败
commission
.
setStatus
(
"2"
);
commission
.
setRemark
(
"未找到当前来佣对应的预计来佣,比对失败"
);
commission
.
setStatus
(
CommissionStatusEnum
.
COMPARE_FAIL
.
getItemValue
()
);
commission
.
setRemark
(
e
.
getMessage
()
);
}
}
...
...
@@ -183,7 +199,6 @@ public class ApiCommissionController {
return
Result
.
success
(
commissionService
.
generateFortune
(
generateFortuneRequest
));
}
/**
* 创建保单来佣
*
...
...
@@ -201,6 +216,24 @@ public class ApiCommissionController {
}
/**
* 来佣比对记录列表
*/
@PostMapping
(
"/compare/records"
)
@Operation
(
summary
=
"来佣比对记录列表"
)
public
Result
<
Page
<
CommissionCompareRecord
>>
getCommissionCompareRecords
(
@RequestBody
CommissionCompareRecordQueryRequest
queryRequest
)
{
if
(
StringUtils
.
isBlank
(
queryRequest
.
getCommissionBizId
()))
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"commissionBizId不能为空"
);
}
// 查询来佣比对记录
Page
<
CommissionCompareRecord
>
page
=
commissionCompareRecordService
.
page
(
new
Page
<>(
queryRequest
.
getPageNo
(),
queryRequest
.
getPageSize
()),
new
LambdaQueryWrapper
<
CommissionCompareRecord
>()
.
eq
(
CommissionCompareRecord:
:
getCommissionBizId
,
queryRequest
.
getCommissionBizId
())
.
orderByAsc
(
CommissionCompareRecord:
:
getCommissionPeriod
));
return
Result
.
success
(
page
);
}
/**
* 删除来佣
*
* @param deleteRequest
...
...
@@ -251,6 +284,25 @@ public class ApiCommissionController {
}
/**
* 来佣操作记录列表
*
* @param queryRequest
* @return
*/
@PostMapping
(
"/edit/records"
)
@Operation
(
summary
=
"来佣操作记录列表"
)
public
Result
<
Page
<
CommissionEditRecord
>>
getCommissionEditRecords
(
@RequestBody
CommissionEditRecordQueryRequest
queryRequest
)
{
if
(
StringUtils
.
isBlank
(
queryRequest
.
getCommissionBizId
()))
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"commissionBizId不能为空"
);
}
// 查询来佣操作记录
Page
<
CommissionEditRecord
>
page
=
commissionEditRecordService
.
page
(
new
Page
<>(
queryRequest
.
getPageNo
(),
queryRequest
.
getPageSize
()),
new
LambdaQueryWrapper
<
CommissionEditRecord
>()
.
eq
(
CommissionEditRecord:
:
getCommissionBizId
,
queryRequest
.
getCommissionBizId
())
.
orderByAsc
(
CommissionEditRecord:
:
getSeq
));
return
Result
.
success
(
page
);
}
/**
* 计算统计数据 总金额、总入账金额、待入账金额、已入账比例(已入账金额/总金额)、总保单数
*/
@PostMapping
(
"/statistics"
)
...
...
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
View file @
088170a8
...
...
@@ -113,6 +113,7 @@ public class ApiCommissionExpectedController {
}
long
current
=
CommissionExpectedQueryRequest
.
getPageNo
();
long
size
=
CommissionExpectedQueryRequest
.
getPageSize
();
// 查询数据库
Page
<
CommissionExpected
>
CommissionExpectedPage
=
CommissionExpectedService
.
page
(
new
Page
<>(
current
,
size
),
CommissionExpectedService
.
getQueryWrapper
(
CommissionExpectedQueryRequest
));
...
...
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiFortuneController.java
View file @
088170a8
package
com
.
yd
.
csf
.
api
.
controller
;
import
com.alibaba.excel.EasyExcel
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.yd.auth.core.dto.AuthUserDto
;
...
...
@@ -15,10 +17,10 @@ import com.yd.csf.service.common.ErrorCode;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.model.Fortune
;
import
com.yd.csf.service.model.FortuneAccount
;
import
com.yd.csf.service.model.FortuneAccountEditRecord
;
import
com.yd.csf.service.service.FortuneAccountEditRecordService
;
import
com.yd.csf.service.service.FortuneAccountService
;
import
com.yd.csf.service.service.FortuneService
;
import
com.yd.csf.service.vo.FortuneAccountVO
;
import
com.yd.csf.service.vo.FortuneVO
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
org.apache.commons.collections4.CollectionUtils
;
...
...
@@ -34,8 +36,8 @@ import javax.annotation.Resource;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.UnsupportedEncodingException
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
...
...
@@ -59,6 +61,9 @@ public class ApiFortuneController {
@Resource
private
FortuneAccountService
fortuneAccountService
;
@Resource
private
FortuneAccountEditRecordService
fortuneAccountEditRecordService
;
@PostMapping
(
"/upload/excel"
)
@Operation
(
summary
=
"上传保单发佣Excel文件"
)
...
...
@@ -187,7 +192,7 @@ public class ApiFortuneController {
Result
<
String
>
errorResult
=
Result
.
fail
(
ResultCode
.
FAIL
.
getCode
(),
"文件下载失败: "
+
e
.
getMessage
()
e
.
getMessage
()
);
response
.
getWriter
().
write
(
new
ObjectMapper
().
writeValueAsString
(
errorResult
));
...
...
@@ -203,19 +208,43 @@ public class ApiFortuneController {
*/
@PostMapping
(
"/list/page/fortuneAccount"
)
@Operation
(
summary
=
"分页获取出账列表"
)
public
Result
<
Page
<
FortuneAccountVO
>>
listAccountByPage
(
@RequestBody
FortuneAccountQueryRequest
fortuneAccountQueryRequest
,
public
Result
<
Map
<
String
,
Object
>>
listAccountByPage
(
@RequestBody
FortuneAccountQueryRequest
fortuneAccountQueryRequest
,
HttpServletRequest
request
)
{
long
current
=
fortuneAccountQueryRequest
.
getPageNo
();
long
size
=
fortuneAccountQueryRequest
.
getPageSize
();
// 查询数据库
QueryWrapper
<
FortuneAccount
>
queryWrapper
=
fortuneAccountService
.
getQueryWrapper
(
fortuneAccountQueryRequest
);
Page
<
FortuneAccount
>
fortunePage
=
fortuneAccountService
.
page
(
new
Page
<>(
current
,
size
),
fortuneAccountService
.
getQueryWrapper
(
fortuneAccountQueryRequest
));
queryWrapper
);
// 统计数据 总金额、总人数
List
<
FortuneAccount
>
fortuneAccountList
=
fortuneAccountService
.
list
(
queryWrapper
);
FortuneAccountStatisticsVO
statisticsVO
=
fortuneAccountService
.
getFortuneAccountStatistics
(
fortuneAccountList
.
stream
()
.
map
(
FortuneAccount:
:
getId
)
.
collect
(
Collectors
.
toList
()));
// 获取封装类
return
Result
.
success
(
fortuneAccountService
.
getFortuneAccountVOPage
(
fortunePage
));
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
result
.
put
(
"page"
,
fortuneAccountService
.
getFortuneAccountVOPage
(
fortunePage
));
result
.
put
(
"statisticsVO"
,
statisticsVO
);
return
Result
.
success
(
result
);
}
/**
* 统计数据 总金额、总人数
*
* @param fortuneAccountQueryRequest
* @param request
* @return
*/
@PostMapping
(
"/fortuneAccount/statistics"
)
@Operation
(
summary
=
"统计数据 总金额、总人数"
)
public
Result
<
FortuneAccountStatisticsVO
>
getFortuneAccountStatistics
(
@RequestBody
FortuneAccountStatisticsQueryRequest
fortuneAccountQueryRequest
,
HttpServletRequest
request
)
{
return
Result
.
success
(
fortuneAccountService
.
getFortuneAccountStatistics
(
fortuneAccountQueryRequest
.
getFortuneAccountIdList
()));
}
/**
* 创建出账
*
* @param fortuneAccountAddRequest
...
...
@@ -283,6 +312,24 @@ public class ApiFortuneController {
}
/**
* 修订记录
*
* @param queryRequest
* @return
*/
@PostMapping
(
"/editRecords/fortuneAccount"
)
@Operation
(
summary
=
"修订记录"
)
public
Result
<
Page
<
FortuneAccountEditRecord
>>
getFortuneAccountEditRecords
(
@RequestBody
FortuneAccountEditRecordQueryRequest
queryRequest
)
{
if
(
StringUtils
.
isBlank
(
queryRequest
.
getFortuneAccountBizId
()))
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"fortuneAccountBizId不能为空"
);
}
Page
<
FortuneAccountEditRecord
>
page
=
fortuneAccountEditRecordService
.
page
(
new
Page
<>(
queryRequest
.
getPageNo
(),
queryRequest
.
getPageSize
()),
new
QueryWrapper
<
FortuneAccountEditRecord
>()
.
eq
(
"fortune_account_biz_id"
,
queryRequest
.
getFortuneAccountBizId
()));
return
Result
.
success
(
page
);
}
/**
* 完成出账
*
* @param completeFortuneAccountRequest
...
...
@@ -411,16 +458,37 @@ public class ApiFortuneController {
*/
@PostMapping
(
"/list/page/vo"
)
@Operation
(
summary
=
"分页获取保单发佣列表"
)
public
Result
<
Page
<
FortuneVO
>>
listFortuneByPage
(
@RequestBody
FortuneQueryRequest
fortuneQueryRequest
,
public
Result
<
Map
<
String
,
Object
>>
listFortuneByPage
(
@RequestBody
FortuneQueryRequest
fortuneQueryRequest
,
HttpServletRequest
request
)
{
long
current
=
fortuneQueryRequest
.
getPageNo
();
long
size
=
fortuneQueryRequest
.
getPageSize
();
// 查询数据库
// 查询条件
Wrapper
<
Fortune
>
queryWrapper
=
fortuneService
.
getQueryWrapper
(
fortuneQueryRequest
);
// 分页查询
Page
<
Fortune
>
fortunePage
=
fortuneService
.
page
(
new
Page
<>(
current
,
size
),
fortuneService
.
getQueryWrapper
(
fortuneQueryRequest
));
// 获取封装类
return
Result
.
success
(
fortuneService
.
getFortuneVOPage
(
fortunePage
));
queryWrapper
);
// 查询统计数据
List
<
Fortune
>
fortuneList
=
fortuneService
.
list
(
queryWrapper
);
FortuneStatisticsVO
statisticsVO
=
fortuneService
.
getFortuneStatistics
(
fortuneList
.
stream
().
map
(
Fortune:
:
getId
).
collect
(
Collectors
.
toList
()));
// 组装返回结果
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
result
.
put
(
"statisticsVO"
,
statisticsVO
);
result
.
put
(
"page"
,
fortuneService
.
getFortuneVOPage
(
fortunePage
));
return
Result
.
success
(
result
);
}
/**
* 计算统计数据 总出账金额、对应这些保单的总入账金额、总保单数
*/
@PostMapping
(
"/statistics"
)
@Operation
(
summary
=
"计算统计数据 总出账金额、对应这些保单的总入账金额、总保单数"
)
public
Result
<
FortuneStatisticsVO
>
getFortuneStatistics
(
@RequestBody
FortuneStatisticsRequest
statisticsRequest
)
{
if
(
CollectionUtils
.
isEmpty
(
statisticsRequest
.
getFortuneIdList
()))
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"fortuneId列表不能为空"
);
}
return
Result
.
success
(
fortuneService
.
getFortuneStatistics
(
statisticsRequest
.
getFortuneIdList
()));
}
}
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
088170a8
...
...
@@ -27,6 +27,7 @@ import com.yd.csf.service.service.*;
import
com.yd.csf.service.vo.PolicyFollowDetailVO
;
import
com.yd.csf.service.vo.PolicyFollowRecordVO
;
import
com.yd.csf.service.vo.PolicyFollowVO
;
import
com.yd.product.feign.client.expectedcommissionratio.ApiExpectedCommissionRatioFeignClient
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
org.apache.commons.collections4.CollectionUtils
;
...
...
@@ -42,7 +43,6 @@ import javax.annotation.Resource;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.math.BigDecimal
;
import
java.text.DecimalFormat
;
import
java.text.ParseException
;
import
java.util.*
;
...
...
@@ -81,10 +81,10 @@ public class ApiPolicyFollowController {
private
PolicyFollowRecordService
policyFollowRecordService
;
@Resource
private
PolicyFollowFileService
policyFollowFileService
;
@Resource
private
PolicyReportPdfService
policyReportPdfService
;
@Resource
private
ApiExpectedCommissionRatioFeignClient
apiExpectedCommissionRatioFeignClient
;
@PostMapping
(
"/upload/excel"
)
...
...
@@ -159,14 +159,14 @@ public class ApiPolicyFollowController {
// 获取当前登录用户的ID
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
String
loginUserId
=
currentLoginUser
.
getId
().
toString
();
//
保存预计来佣
List
<
CommissionExpected
>
commissionExpectedList
=
new
ArrayList
<>();
for
(
CommissionExcelDTO
commissionExcelDTO
:
dataList
)
{
CommissionExpected
commissionExpected
=
CommissionExcelDTO
.
convertToCommissionExpectedObj
(
commissionExcelDTO
,
loginUserId
);
commissionExpected
.
setReconciliationCompanyBizId
(
reconciliationCompanyMap
.
get
(
commissionExcelDTO
.
getReconciliationCompany
()));
commissionExpectedList
.
add
(
commissionExpected
);
}
commissionExpectedService
.
saveBatch
(
commissionExpectedList
);
//
todo 保存预计来佣, 查询产品获取预计来佣比例
//
List<CommissionExpected> commissionExpectedList = new ArrayList<>();
//
for (CommissionExcelDTO commissionExcelDTO : dataList) {
//
CommissionExpected commissionExpected = CommissionExcelDTO.convertToCommissionExpectedObj(commissionExcelDTO, loginUserId);
//
commissionExpected.setReconciliationCompanyBizId(reconciliationCompanyMap.get(commissionExcelDTO.getReconciliationCompany()));
//
commissionExpectedList.add(commissionExpected);
//
}
//
commissionExpectedService.saveBatch(commissionExpectedList);
return
Result
.
success
(
true
);
}
...
...
@@ -463,6 +463,27 @@ public class ApiPolicyFollowController {
if
(
policyFollow
==
null
)
{
return
Result
.
fail
(
ErrorCode
.
NOT_FOUND_ERROR
.
getCode
(),
ErrorCode
.
NOT_FOUND_ERROR
.
getMessage
());
}
// 异步查询产品上架信息表
if
(
StringUtils
.
isNotBlank
(
policyFollow
.
getPolicyNo
())
&&
StringUtils
.
isBlank
(
policyFollow
.
getProductLaunchBizId
()))
{
// 异步查询产品上架信息表
// ApiExpectedCommissionRatioPageRequest apiExpectedCommissionRatioPageRequest = new ApiExpectedCommissionRatioPageRequest();
// apiExpectedCommissionRatioPageRequest.setPageNo(1);
// apiExpectedCommissionRatioPageRequest.setPageSize(100);
// apiExpectedCommissionRatioPageRequest.setWarrantyPeriod(String.valueOf(policyFollow.getPaymentTerm()));
// Result<Page<ApiExpectedCommissionRatioPageResponse>> result = apiExpectedCommissionRatioFeignClient.page(apiExpectedCommissionRatioPageRequest);
// if (result != null && result.getData() != null) {
// List<ApiExpectedCommissionRatioPageResponse> records = (List<ApiExpectedCommissionRatioPageResponse>) result.getData();
// if (CollectionUtils.isNotEmpty(records)) {
// policyFollow.setProductLaunchBizId(records.get(0).getProductLaunchBizId());
// }
// }
PolicyFollow
updatePolicyFollow
=
new
PolicyFollow
();
updatePolicyFollow
.
setId
(
policyFollow
.
getId
());
updatePolicyFollow
.
setProductLaunchBizId
(
"product_launch_kudwRqXsz1"
);
policyFollowService
.
updateById
(
updatePolicyFollow
);
}
// 获取封装类
return
Result
.
success
(
policyFollowService
.
getPolicyFollowVO
(
policyFollow
));
...
...
@@ -565,44 +586,26 @@ public class ApiPolicyFollowController {
public
void
previewPolicyReport
(
@RequestParam
(
"policyBizId"
)
String
policyBizId
,
HttpServletResponse
response
)
{
Policy
Follow
policyFollow
=
policyFollowService
.
getByPolicyBizId
(
policyBizId
);
if
(
policyFollow
==
null
)
{
Policy
ReportData
reportData
=
policyFollowService
.
queryPolicyReportData
(
policyBizId
);
if
(
reportData
==
null
)
{
throw
new
BusinessException
(
ErrorCode
.
NOT_FOUND_ERROR
.
getCode
(),
ErrorCode
.
NOT_FOUND_ERROR
.
getMessage
());
}
PolicyReportData
reportData
=
new
PolicyReportData
();
// 填充数据
// reportData.setStartTime("2025-10-30");
// reportData.setEndTime("2025-10-30");
// reportData.setLocation("香港");
// reportData.setServiceManager("Vickie");
// reportData.setPolicyHolder(policyFollow.getPolicyHolder());
// reportData.setPolicyNumber(policyFollow.getPolicyNo());
// reportData.setInsuranceCompany(policyFollow.getInsurer());
// reportData.setInsuredPerson(policyFollow.getInsured());
// reportData.setInsurancePlan(policyFollow.getProductName());
// reportData.setInsuredAge(0);
// reportData.setCurrency(policyFollow.getCurrency());
// reportData.setPaymentPeriod((Integer) policyFollow.getPaymentTerm());
// reportData.setAnnualAmount(policyFollow.getPaymentPremium());
// reportData.setTotalPrepayment(BigDecimal.ZERO);
// reportData.setPremiumFee(BigDecimal.ZERO);
reportData
.
setStartTime
(
"2025-10-30"
);
reportData
.
setEndTime
(
"2025-10-30"
);
reportData
.
setLocation
(
"香港"
);
reportData
.
setServiceManager
(
"Vickie"
);
reportData
.
setPolicyHolder
(
"policyHolder"
);
reportData
.
setPolicyNumber
(
"B635379588"
);
reportData
.
setInsuranceCompany
(
"友邦保险"
);
reportData
.
setInsuredPerson
(
"insuredPerson"
);
reportData
.
setInsurancePlan
(
"环宇盈活储蓄保险计划"
);
reportData
.
setInsuredAge
(
1
);
reportData
.
setCurrency
(
"HKD"
);
reportData
.
setPaymentPeriod
(
5
);
reportData
.
setAnnualAmount
(
BigDecimal
.
valueOf
(
30000.08
));
reportData
.
setTotalPrepayment
(
BigDecimal
.
valueOf
(
150064.70
));
reportData
.
setPremiumFee
(
BigDecimal
.
valueOf
(
12.86
));
// reportData.setPolicyHolder("policyHolder");
// reportData.setPolicyNumber("B635379588");
// reportData.setInsuranceCompany("友邦保险");
// reportData.setInsuredPerson("insuredPerson");
// reportData.setInsurancePlan("环宇盈活储蓄保险计划");
// reportData.setInsuredAge(1);
// reportData.setCurrency("HKD");
// reportData.setPaymentPeriod(5);
// reportData.setAnnualAmount(BigDecimal.valueOf(30000.08));
// reportData.setTotalPrepayment(BigDecimal.valueOf(150064.70));
// reportData.setPremiumFee(BigDecimal.valueOf(12.86));
try
{
log
.
info
(
"收到PDF生成请求: {}"
,
reportData
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/dto/CommissionExcelDTO.java
View file @
088170a8
...
...
@@ -17,6 +17,9 @@ public class CommissionExcelDTO {
@ExcelProperty
(
"保单号"
)
private
String
policyNo
;
@ExcelProperty
(
"保费"
)
private
String
premium
;
@ExcelProperty
(
"对账公司"
)
private
String
reconciliationCompany
;
...
...
@@ -35,6 +38,9 @@ public class CommissionExcelDTO {
@ExcelProperty
(
"来佣币种"
)
private
String
currency
;
@ExcelProperty
(
"结算汇率"
)
private
String
exchangeRate
;
@ExcelProperty
(
"来佣日期"
)
private
Date
commissionDate
;
...
...
@@ -48,6 +54,7 @@ public class CommissionExcelDTO {
Commission
entity
=
new
Commission
();
// 字段映射
entity
.
setPolicyNo
(
data
.
getPolicyNo
());
entity
.
setPremium
(
data
.
getPremium
());
entity
.
setCommissionBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_COMMISSION
.
getCode
()));
entity
.
setReconciliationCompany
(
data
.
getReconciliationCompany
());
entity
.
setCommissionPeriod
(
data
.
getCommissionPeriod
());
...
...
@@ -55,6 +62,7 @@ public class CommissionExcelDTO {
entity
.
setCommissionName
(
data
.
getCommissionName
());
entity
.
setAmount
(
data
.
getAmount
());
entity
.
setCurrency
(
data
.
getCurrency
());
entity
.
setExchangeRate
(
data
.
getExchangeRate
());
entity
.
setCommissionDate
(
data
.
getCommissionDate
());
entity
.
setRemark
(
data
.
getRemark
());
entity
.
setStatus
(
null
);
...
...
@@ -81,8 +89,9 @@ public class CommissionExcelDTO {
entity
.
setCommissionPeriod
(
data
.
getCommissionPeriod
());
entity
.
setTotalPeriod
(
data
.
getTotalPeriod
());
entity
.
setCommissionName
(
data
.
getCommissionName
());
entity
.
set
Amount
(
data
.
getAmount
());
entity
.
set
CommissionRatio
(
data
.
getAmount
());
entity
.
setCurrency
(
data
.
getCurrency
());
entity
.
setCommissionRatio
(
null
);
entity
.
setCommissionDate
(
data
.
getCommissionDate
());
entity
.
setRemark
(
data
.
getRemark
());
entity
.
setStatus
(
"0"
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
View file @
088170a8
...
...
@@ -471,7 +471,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
}
//待跟进
follow
.
setStatus
(
PolicyFollowStatusEnum
.
FOLLOW_UP
.
getItemValue
());
follow
.
setNextStatusList
(
policyFollowService
.
getNextStatus
(
PolicyFollowStatusEnum
.
CHECKING
));
follow
.
setNextStatusList
(
policyFollowService
.
getNextStatus
(
PolicyFollowStatusEnum
.
FOLLOW_UP
));
//TODO 保险公司业务id
// follow.setInsurerBizId();
//TODO 期交保费
...
...
yd-csf-service/pom.xml
View file @
088170a8
...
...
@@ -99,6 +99,12 @@
<artifactId>
yd-oss-feign
</artifactId>
<version>
${project.version}
</version>
</dependency>
<!-- yd-product-feign模块 -->
<dependency>
<groupId>
com.yd
</groupId>
<artifactId>
yd-product-feign
</artifactId>
<version>
${project.version}
</version>
</dependency>
<!-- 认证模块 -->
<dependency>
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionCompareRecordMapper.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
dao
;
import
com.yd.csf.service.model.CommissionCompareRecord
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* @author Zhang Jianan
* @description 针对表【commission_compare_record(来佣比对记录表)】的数据库操作Mapper
* @createDate 2025-11-25 13:43:10
* @Entity generator.domain.CommissionCompareRecord
*/
public
interface
CommissionCompareRecordMapper
extends
BaseMapper
<
CommissionCompareRecord
>
{
}
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionEditRecordMapper.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
dao
;
import
com.yd.csf.service.model.CommissionEditRecord
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* @author Zhang Jianan
* @description 针对表【commission_edit_record(来佣修改记录表)】的数据库操作Mapper
* @createDate 2025-11-24 16:45:37
* @Entity generator.domain.CommissionEditRecord
*/
public
interface
CommissionEditRecordMapper
extends
BaseMapper
<
CommissionEditRecord
>
{
}
yd-csf-service/src/main/java/com/yd/csf/service/dao/FortuneAccountEditRecordMapper.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
dao
;
import
com.yd.csf.service.model.FortuneAccountEditRecord
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* @author Zhang Jianan
* @description 针对表【fortune_account_edit_record(薪资修订记录表)】的数据库操作Mapper
* @createDate 2025-11-25 11:14:20
* @Entity generator.domain.FortuneAccountEditRecord
*/
public
interface
FortuneAccountEditRecordMapper
extends
BaseMapper
<
FortuneAccountEditRecord
>
{
}
yd-csf-service/src/main/java/com/yd/csf/service/dao/FortuneMapper.java
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
dao
;
import
com.yd.csf.service.dto.FortuneStatisticsVO
;
import
com.yd.csf.service.model.Fortune
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* @author Zhang Jianan
...
...
@@ -11,6 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public
interface
FortuneMapper
extends
BaseMapper
<
Fortune
>
{
FortuneStatisticsVO
getFortuneStatistics
(
@Param
(
"fortuneIdList"
)
List
<
Long
>
fortuneIdList
);
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dao/PolicyFollowMapper.java
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yd.csf.service.dto.PolicyReportData
;
import
com.yd.csf.service.model.PolicyFollow
;
import
org.apache.ibatis.annotations.Param
;
/**
* @author Zhang Jianan
...
...
@@ -11,6 +13,7 @@ import com.yd.csf.service.model.PolicyFollow;
*/
public
interface
PolicyFollowMapper
extends
BaseMapper
<
PolicyFollow
>
{
PolicyReportData
queryPolicyReportData
(
@Param
(
"policyBizId"
)
String
policyBizId
);
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionAddRequest.java
View file @
088170a8
...
...
@@ -16,6 +16,12 @@ public class CommissionAddRequest implements Serializable {
@Schema
(
description
=
"保单号"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
policyNo
;
/**
* 保费
*/
@Schema
(
description
=
"保费"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
premium
;
/**
* 对账公司
*/
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionCompareRecordQueryRequest.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.yd.common.dto.PageDto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
@Data
public
class
CommissionCompareRecordQueryRequest
extends
PageDto
{
/**
* 来佣业务ID
*/
@Schema
(
description
=
"来佣业务ID"
)
private
String
commissionBizId
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionEditRecordQueryRequest.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.yd.common.dto.PageDto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
@Data
public
class
CommissionEditRecordQueryRequest
extends
PageDto
{
/**
* 来佣业务ID
*/
@Schema
(
description
=
"来佣业务ID"
)
private
String
commissionBizId
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionExpectedAddDto.java
View file @
088170a8
...
...
@@ -63,10 +63,10 @@ public class CommissionExpectedAddDto {
private
String
commissionType
;
/**
* 来佣
金额
* 来佣
比例 (%)
*/
@Schema
(
description
=
"来佣
金额
"
)
private
BigDecimal
amount
;
@Schema
(
description
=
"来佣
比例 (%)
"
)
private
BigDecimal
commissionRatio
;
/**
* 来佣币种
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionExpectedEditRequest.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
dto
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 编辑预计来佣请求
*
*/
@Data
public
class
CommissionExpectedEditRequest
implements
Serializable
{
/**
* id
*/
private
Long
id
;
/**
* 标题
*/
private
String
title
;
/**
* 内容
*/
private
String
content
;
/**
* 标签列表
*/
private
List
<
String
>
tags
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionExpectedUpdateRequest.java
View file @
088170a8
...
...
@@ -67,6 +67,17 @@ public class CommissionExpectedUpdateRequest implements Serializable {
@Schema
(
description
=
"来佣类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)"
)
private
String
commissionType
;
/**
* 来佣比例
*/
@Schema
(
description
=
"来佣比例"
)
private
BigDecimal
commissionRatio
;
/**
* 来佣比例
*/
private
BigDecimal
ratio
;
/**
* 来佣金额
*/
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionUpdateRequest.java
View file @
088170a8
...
...
@@ -21,6 +21,12 @@ public class CommissionUpdateRequest implements Serializable {
@Schema
(
description
=
"保单号"
)
private
String
policyNo
;
/**
* 保费
*/
@Schema
(
description
=
"保费"
)
private
String
premium
;
/**
* 对账公司
*/
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneAccountEditRecordQueryRequest.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.yd.common.dto.PageDto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
@Data
public
class
FortuneAccountEditRecordQueryRequest
extends
PageDto
{
/**
* 薪资记录业务ID
*/
@Schema
(
description
=
"薪资记录业务ID"
)
private
String
fortuneAccountBizId
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneAccountStatisticsQueryRequest.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
dto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
FortuneAccountStatisticsQueryRequest
{
/**
* 薪资记录id列表
*/
@Schema
(
description
=
"薪资记录id列表"
)
private
List
<
Long
>
fortuneAccountIdList
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneAccountStatisticsVO.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
dto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
FortuneAccountStatisticsVO
{
/**
* 总金额
*/
@Schema
(
description
=
"总金额"
)
private
BigDecimal
totalAmount
;
/**
* 总人数
*/
@Schema
(
description
=
"总人数"
)
private
Object
brokerCount
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneStatisticsRequest.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
dto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
FortuneStatisticsRequest
{
/**
* fortuneId 列表
*/
@Schema
(
description
=
"fortuneId 列表"
)
private
List
<
Long
>
fortuneIdList
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneStatisticsVO.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
dto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
FortuneStatisticsVO
{
/**
* 总出账金额
*/
@Schema
(
description
=
"总出账金额"
)
private
BigDecimal
totalOutAmount
;
/**
* 总入账金额
*/
@Schema
(
description
=
"总入账金额"
)
private
BigDecimal
totalInAmount
;
/**
* 总保单数
*/
@Schema
(
description
=
"总保单数"
)
private
Long
totalPolicyCount
;
}
yd-csf-service/src/main/java/com/yd/csf/service/model/Commission.java
View file @
088170a8
...
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.*;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
lombok.Data
;
/**
...
...
@@ -30,6 +31,11 @@ public class Commission implements Serializable {
*/
private
String
policyNo
;
/**
* 保费
*/
private
String
premium
;
/**
* 对账公司
*/
...
...
@@ -71,6 +77,26 @@ public class Commission implements Serializable {
private
String
currency
;
/**
* 结算汇率
*/
private
String
exchangeRate
;
/**
* 当前来佣比例
*/
private
BigDecimal
currentCommissionRatio
;
/**
* 当期已入账来佣比例
*/
private
BigDecimal
periodPaidRatio
;
/**
* 当期剩余来佣比例
*/
private
BigDecimal
periodPendingRatio
;
/**
* 来佣日期
*/
private
Date
commissionDate
;
...
...
@@ -81,6 +107,26 @@ public class Commission implements Serializable {
private
String
status
;
/**
* 预计来佣业务id
*/
private
String
commissionExpectedBizId
;
/**
* 总金额
*/
private
BigDecimal
expectedAmount
;
/**
* 已入账金额
*/
private
BigDecimal
paidAmount
;
/**
* 待入账金额
*/
private
BigDecimal
pendingAmount
;
/**
* 通用备注
*/
private
String
remark
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionCompareRecord.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
/**
* 来佣比对记录表
* @TableName commission_compare_record
*/
@TableName
(
value
=
"commission_compare_record"
)
@Data
public
class
CommissionCompareRecord
implements
Serializable
{
/**
* 主键
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 预计来佣业务id
*/
@Schema
(
description
=
"预计来佣业务id"
)
private
String
commissionExpectedBizId
;
/**
* 保单来佣业务id
*/
@Schema
(
description
=
"保单来佣业务id"
)
private
String
commissionBizId
;
/**
* 佣金期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@Schema
(
description
=
"佣金期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)"
)
private
Integer
commissionPeriod
;
/**
* 总期数
*/
@Schema
(
description
=
"总期数"
)
private
Integer
totalPeriod
;
/**
* 比对状态 1=比对成功 2=比对失败
*/
@Schema
(
description
=
"比对状态 1=比对成功 2=比对失败"
)
private
String
status
;
/**
* 来佣币种
*/
@Schema
(
description
=
"来佣币种"
)
private
String
currency
;
/**
* 比对时间
*/
@Schema
(
description
=
"比对时间"
)
private
Date
createTime
;
/**
* 结算汇率
*/
@Schema
(
description
=
"结算汇率"
)
private
String
exchangeRate
;
/**
* 入账金额
*/
@Schema
(
description
=
"入账金额"
)
private
BigDecimal
amount
;
/**
* 通用备注
*/
@JsonIgnore
private
String
remark
;
/**
* 删除标识: 0-正常, 1-删除
*/
@JsonIgnore
private
Integer
isDeleted
;
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionEditRecord.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.util.Date
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
/**
* 来佣修改记录表
* @TableName commission_edit_record
*/
@TableName
(
value
=
"commission_edit_record"
)
@Data
public
class
CommissionEditRecord
implements
Serializable
{
/**
* 主键
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 保单来佣业务id
*/
@Schema
(
description
=
"保单来佣业务id"
)
private
String
commissionBizId
;
/**
* 操作人userid
*/
@Schema
(
description
=
"操作人userid"
)
private
String
userBizId
;
/**
* 操作人
*/
@Schema
(
description
=
"操作人"
)
private
String
userName
;
/**
* 序号
*/
@Schema
(
description
=
"序号"
)
private
Integer
seq
;
/**
* 变更字段
*/
@Schema
(
description
=
"变更字段"
)
private
String
field
;
/**
* 变更前信息
*/
@Schema
(
description
=
"变更前信息"
)
private
Object
beforeChange
;
/**
* 变更后信息
*/
@Schema
(
description
=
"变更后信息"
)
private
Object
afterChange
;
/**
* 备注
*/
@Schema
(
description
=
"备注"
)
private
String
remark
;
/**
* 删除标识: 0-正常, 1-删除
*/
private
Integer
isDeleted
;
/**
* 创建时间
*/
@Schema
(
description
=
"创建时间"
)
private
Date
createTime
;
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionExpected.java
View file @
088170a8
...
...
@@ -66,9 +66,9 @@ public class CommissionExpected implements Serializable {
private
String
commissionType
;
/**
* 来佣
金额
* 来佣
比例 (%)
*/
private
BigDecimal
amount
;
private
BigDecimal
commissionRatio
;
/**
* 来佣币种
...
...
@@ -86,6 +86,26 @@ public class CommissionExpected implements Serializable {
private
String
status
;
/**
* 默认结算汇率
*/
private
BigDecimal
defaultExchangeRate
;
/**
* 预计来佣金额
*/
private
BigDecimal
expectedAmount
;
/**
* 已入账来佣金额
*/
private
BigDecimal
paidAmount
;
/**
* 已入账来佣比例
*/
private
BigDecimal
paidRatio
;
/**
* 通用备注
*/
private
String
remark
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/FortuneAccountEditRecord.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.util.Date
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
/**
* 薪资修订记录表
* @TableName fortune_account_edit_record
*/
@TableName
(
value
=
"fortune_account_edit_record"
)
@Data
public
class
FortuneAccountEditRecord
implements
Serializable
{
/**
* 主键
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 薪资记录业务id
*/
@Schema
(
description
=
"薪资记录业务id"
)
private
String
fortuneAccountBizId
;
/**
* 修订人userid
*/
@Schema
(
description
=
"修订人userid"
)
private
String
userBizId
;
/**
* 修订人
*/
@Schema
(
description
=
"修订人"
)
private
String
userName
;
/**
* 修订内容
*/
@Schema
(
description
=
"修订内容"
)
private
String
editContent
;
/**
* 备注
*/
@Schema
(
description
=
"备注"
)
private
String
remark
;
/**
* 删除标识: 0-正常, 1-删除
*/
private
Integer
isDeleted
;
/**
* 创建时间
*/
@Schema
(
description
=
"创建时间"
)
private
Date
createTime
;
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
View file @
088170a8
...
...
@@ -139,9 +139,9 @@ public class PolicyFollow implements Serializable {
private
String
paymentNumber
;
/**
* 产品
业务id
* 产品
上架信息表唯一业务ID
*/
private
String
productBizId
;
private
String
product
Launch
BizId
;
/**
* 产品名称
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionCompareRecordService.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
service
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.service.model.CommissionCompareRecord
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
java.util.List
;
/**
* @author Zhang Jianan
* @description 针对表【commission_compare_record(来佣比对记录表)】的数据库操作Service
* @createDate 2025-11-25 13:43:10
*/
public
interface
CommissionCompareRecordService
extends
IService
<
CommissionCompareRecord
>
{
}
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionEditRecordService.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
service
;
import
com.yd.csf.service.model.CommissionEditRecord
;
import
com.baomidou.mybatisplus.extension.service.IService
;
/**
* @author Zhang Jianan
* @description 针对表【commission_edit_record(来佣修改记录表)】的数据库操作Service
* @createDate 2025-11-24 16:45:37
*/
public
interface
CommissionEditRecordService
extends
IService
<
CommissionEditRecord
>
{
}
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionService.java
View file @
088170a8
...
...
@@ -32,11 +32,13 @@ public interface CommissionService extends IService<Commission> {
Commission
getByCommissionBizId
(
String
commissionBizId
);
void
compareWithExpected
(
Commission
commission
,
CommissionExpected
expected
);
void
compareWithExpected
(
String
premium
,
Commission
commission
,
CommissionExpected
expected
);
List
<
Commission
>
queryList
(
CommissionDto
dto
);
List
<
CommissionBindPolicyBrokerDto
>
queryCommissionBindPolicyBrokerList
(
CommissionDto
dto
);
CommissionStatisticsVO
getCommissionStatistics
(
List
<
Long
>
commissionIds
);
CommissionExpected
queryByCommission
(
Commission
commission
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneAccountEditRecordService.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
service
;
import
com.yd.csf.service.model.FortuneAccountEditRecord
;
import
com.baomidou.mybatisplus.extension.service.IService
;
/**
* @author Zhang Jianan
* @description 针对表【fortune_account_edit_record(薪资修订记录表)】的数据库操作Service
* @createDate 2025-11-25 11:14:20
*/
public
interface
FortuneAccountEditRecordService
extends
IService
<
FortuneAccountEditRecord
>
{
}
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneAccountService.java
View file @
088170a8
...
...
@@ -30,4 +30,12 @@ public interface FortuneAccountService extends IService<FortuneAccount> {
Boolean
updateFortuneAccount
(
FortuneAccountUpdateRequest
fortuneAccountUpdateRequest
);
Boolean
completeFortuneAccount
(
CompleteFortuneAccountRequest
completeFortuneAccountRequest
);
/**
* 统计数据 总金额、总人数
*
* @param fortuneAccountIdList
* @return
*/
FortuneAccountStatisticsVO
getFortuneAccountStatistics
(
List
<
Long
>
fortuneAccountIdList
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneService.java
View file @
088170a8
...
...
@@ -10,6 +10,7 @@ import com.yd.csf.service.vo.FortuneVO;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.UnsupportedEncodingException
;
import
java.util.List
;
/**
* @author Zhang Jianan
...
...
@@ -35,4 +36,6 @@ public interface FortuneService extends IService<Fortune> {
Boolean
addFortune
(
FortuneAddRequest
fortuneAddRequest
);
Fortune
queryOne
(
String
fortuneBizId
);
FortuneStatisticsVO
getFortuneStatistics
(
List
<
Long
>
fortuneIdList
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
View file @
088170a8
...
...
@@ -44,4 +44,6 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
Page
<
PolicyFollowDetailVO
>
getPolicyFollowDetailVOList
(
Page
<
PolicyFollow
>
policyFollowPage
);
String
getCurrencyValue
(
String
currency
);
PolicyReportData
queryPolicyReportData
(
String
policyBizId
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyReportPdfService.java
View file @
088170a8
...
...
@@ -69,7 +69,9 @@ public class PolicyReportPdfService {
addPolicyDetailFields
(
document
,
reportData
);
// 7. 附加险表头
addAdditionalInsuranceHeader
(
document
);
// 8. 详细信息下方水平线
// 8. 附加险详细信息表格
addAdditionalInsuranceDetail
(
document
,
reportData
);
// 9. 详细信息下方水平线
addHorizontalLine
(
document
,
writer
);
// 移除了原来的备注说明,因为现在备注已经整合到保单详细字段中
...
...
@@ -82,6 +84,44 @@ public class PolicyReportPdfService {
}
/**
* 附加险详细信息表格
*/
private
void
addAdditionalInsuranceDetail
(
Document
document
,
PolicyReportData
reportData
)
throws
DocumentException
{
if
(
reportData
.
getAdditionalInsurances
()
==
null
||
reportData
.
getAdditionalInsurances
().
isEmpty
())
{
return
;
}
PdfPTable
table
=
new
PdfPTable
(
4
);
table
.
setWidthPercentage
(
100
);
table
.
setWidths
(
new
float
[]{
25
,
25
,
25
,
25
});
table
.
setSpacingBefore
(
0
f
);
table
.
setSpacingAfter
(
ROW_SPACING
);
// 添加附加险数据行
for
(
PolicyReportData
.
AdditionalInsurance
insurance
:
reportData
.
getAdditionalInsurances
())
{
addTableCenterCellNoBorder
(
table
,
insurance
.
getName
()
!=
null
?
insurance
.
getName
()
:
""
);
addTableCenterCellNoBorder
(
table
,
insurance
.
getPaymentTerm
()
!=
null
?
String
.
valueOf
(
insurance
.
getPaymentTerm
())
:
""
);
addTableCenterCellNoBorder
(
table
,
insurance
.
getCurrency
()
!=
null
?
insurance
.
getCurrency
()
:
""
);
addTableCenterCellNoBorder
(
table
,
insurance
.
getFirstYearAmount
()
!=
null
?
formatAmount
(
insurance
.
getFirstYearAmount
())
:
""
);
}
document
.
add
(
table
);
}
/**
* 添加居中对齐的无边框内容单元格
*/
private
void
addTableCenterCellNoBorder
(
PdfPTable
table
,
String
text
)
{
Paragraph
para
=
new
Paragraph
(
text
,
chineseFont
);
com
.
lowagie
.
text
.
pdf
.
PdfPCell
cell
=
new
com
.
lowagie
.
text
.
pdf
.
PdfPCell
(
para
);
cell
.
setBorder
(
com
.
lowagie
.
text
.
Rectangle
.
NO_BORDER
);
cell
.
setHorizontalAlignment
(
com
.
lowagie
.
text
.
Element
.
ALIGN_CENTER
);
cell
.
setVerticalAlignment
(
com
.
lowagie
.
text
.
Element
.
ALIGN_MIDDLE
);
cell
.
setPadding
(
2
f
);
table
.
addCell
(
cell
);
}
/**
* 主标题 - 放大并居中
*/
private
void
addMainTitle
(
Document
document
,
String
title
)
throws
DocumentException
{
...
...
@@ -170,12 +210,12 @@ public class PolicyReportPdfService {
// 第一行:保單持有人 | 持有人值 | 保險公司 | 公司值
addTableHeaderCellNoBorder
(
table
,
"保單持有人"
);
addTableCellNoBorder
(
table
,
data
.
getPolicyHolder
()
!=
null
?
data
.
getPolicyHolder
()
:
""
);
addTableHeaderCellNoBorder
(
table
,
"保險公司"
);
addTableCellNoBorder
(
table
,
data
.
getInsuranceCompany
()
!=
null
?
data
.
getInsuranceCompany
()
:
""
);
// 第二行:保單受保人 | 受保人值 | 受保人年齡 | 年齡值
addTableHeaderCellNoBorder
(
table
,
"保單受保人"
);
addTableCellNoBorder
(
table
,
data
.
getInsuredPerson
()
!=
null
?
data
.
getInsuredPerson
()
:
""
);
// 第二行:保單受保人 | 受保人值 | 受保人年齡 | 年齡值
addTableHeaderCellNoBorder
(
table
,
"保險公司"
);
addTableCellNoBorder
(
table
,
data
.
getInsuranceCompany
()
!=
null
?
data
.
getInsuranceCompany
()
:
""
);
addTableHeaderCellNoBorder
(
table
,
"受保人年齡"
);
addTableCellNoBorder
(
table
,
data
.
getInsuredAge
()
!=
null
?
String
.
valueOf
(
data
.
getInsuredAge
())
:
""
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionCompareRecordServiceImpl.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.csf.service.model.CommissionCompareRecord
;
import
com.yd.csf.service.service.CommissionCompareRecordService
;
import
com.yd.csf.service.dao.CommissionCompareRecordMapper
;
import
org.springframework.stereotype.Service
;
/**
* @author Zhang Jianan
* @description 针对表【commission_compare_record(来佣比对记录表)】的数据库操作Service实现
* @createDate 2025-11-25 13:43:10
*/
@Service
public
class
CommissionCompareRecordServiceImpl
extends
ServiceImpl
<
CommissionCompareRecordMapper
,
CommissionCompareRecord
>
implements
CommissionCompareRecordService
{
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionEditRecordServiceImpl.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.csf.service.model.CommissionEditRecord
;
import
com.yd.csf.service.service.CommissionEditRecordService
;
import
com.yd.csf.service.dao.CommissionEditRecordMapper
;
import
org.springframework.stereotype.Service
;
/**
* @author Zhang Jianan
* @description 针对表【commission_edit_record(来佣修改记录表)】的数据库操作Service实现
* @createDate 2025-11-24 16:45:37
*/
@Service
public
class
CommissionEditRecordServiceImpl
extends
ServiceImpl
<
CommissionEditRecordMapper
,
CommissionEditRecord
>
implements
CommissionEditRecordService
{
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
View file @
088170a8
...
...
@@ -14,8 +14,12 @@ import com.yd.csf.service.dto.CommissionExpectedQueryRequest;
import
com.yd.csf.service.dto.CommissionExpectedUpdateRequest
;
import
com.yd.csf.service.enums.CommissionExpectedStatusEnum
;
import
com.yd.csf.service.model.CommissionExpected
;
import
com.yd.csf.service.model.Policy
;
import
com.yd.csf.service.model.PolicyFollow
;
import
com.yd.csf.service.service.CommissionExpectedService
;
import
com.yd.csf.service.dao.CommissionExpectedMapper
;
import
com.yd.csf.service.service.PolicyFollowService
;
import
com.yd.csf.service.service.PolicyService
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
...
...
@@ -24,7 +28,9 @@ import org.springframework.beans.BeanUtils;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -37,6 +43,13 @@ import java.util.stream.Collectors;
public
class
CommissionExpectedServiceImpl
extends
ServiceImpl
<
CommissionExpectedMapper
,
CommissionExpected
>
implements
CommissionExpectedService
{
@Resource
private
PolicyService
policyService
;
@Resource
private
PolicyFollowService
policyFollowService
;
@Override
public
Page
<
CommissionExpectedVO
>
getCommissionExpectedVOPage
(
Page
<
CommissionExpected
>
commissionExpectedPage
)
{
List
<
CommissionExpected
>
CommissionExpectedList
=
commissionExpectedPage
.
getRecords
();
...
...
@@ -45,8 +58,23 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
return
CommissionExpectedVOPage
;
}
// 关联查询保单信息
Set
<
String
>
policyNoSet
=
CommissionExpectedList
.
stream
().
map
(
CommissionExpected:
:
getPolicyNo
).
collect
(
Collectors
.
toSet
());
QueryWrapper
<
PolicyFollow
>
queryWrapper
=
new
QueryWrapper
<
PolicyFollow
>();
queryWrapper
.
select
(
"policy_no"
,
"payment_premium"
);
queryWrapper
.
in
(
"policy_no"
,
policyNoSet
);
Map
<
String
,
PolicyFollow
>
policyMap
=
policyFollowService
.
list
(
queryWrapper
)
.
stream
().
collect
(
Collectors
.
toMap
(
PolicyFollow:
:
getPolicyNo
,
a
->
a
,
(
oldValue
,
newValue
)
->
newValue
));
// 填充信息
List
<
CommissionExpectedVO
>
CommissionExpectedVOList
=
CommissionExpectedList
.
stream
().
map
(
CommissionExpectedVO:
:
objToVo
).
collect
(
Collectors
.
toList
());
List
<
CommissionExpectedVO
>
CommissionExpectedVOList
=
CommissionExpectedList
.
stream
().
map
(
commissionExpected
->
{
CommissionExpectedVO
commissionExpectedVO
=
CommissionExpectedVO
.
objToVo
(
commissionExpected
);
PolicyFollow
policyFollow
=
policyMap
.
get
(
commissionExpected
.
getPolicyNo
());
if
(
policyFollow
!=
null
)
{
commissionExpectedVO
.
setPremium
(
policyFollow
.
getPaymentPremium
());
}
return
commissionExpectedVO
;
}).
collect
(
Collectors
.
toList
());
CommissionExpectedVOPage
.
setRecords
(
CommissionExpectedVOList
);
return
CommissionExpectedVOPage
;
}
...
...
@@ -70,9 +98,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if
(
StringUtils
.
isBlank
(
commissionName
))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"来佣名称不能为空"
);
}
BigDecimal
amount
=
commissionExpected
.
getAmount
();
if
(
ObjectUtils
.
isEmpty
(
amount
))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"来佣
金额
不能为空"
);
BigDecimal
commissionRatio
=
commissionExpected
.
getCommissionRatio
();
if
(
ObjectUtils
.
isEmpty
(
commissionRatio
))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"来佣
比例
不能为空"
);
}
Integer
commissionPeriod
=
commissionExpected
.
getCommissionPeriod
();
if
(
ObjectUtils
.
isEmpty
(
commissionPeriod
))
{
...
...
@@ -144,12 +172,26 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if
(
CollUtil
.
isEmpty
(
addDtoList
))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"预计来佣列表不能为空"
);
}
// 查询保单信息
String
policyNo
=
addDtoList
.
get
(
0
).
getPolicyNo
();
Policy
policy
=
policyService
.
getOne
(
new
QueryWrapper
<
Policy
>().
eq
(
"policy_no"
,
policyNo
));
List
<
CommissionExpected
>
addList
=
new
ArrayList
<>();
List
<
CommissionExpected
>
updateList
=
new
ArrayList
<>();
for
(
CommissionExpectedAddDto
addDto
:
addDtoList
)
{
CommissionExpected
commissionExpected
=
new
CommissionExpected
();
BeanUtils
.
copyProperties
(
addDto
,
commissionExpected
);
// 默认结算汇率 7.8 美元对港币
commissionExpected
.
setDefaultExchangeRate
(
BigDecimal
.
valueOf
(
7.8
));
// 预计总金额
if
(
policy
!=
null
)
{
BigDecimal
expectedAmount
=
policy
.
getPaymentPremium
()
.
multiply
(
commissionExpected
.
getCommissionRatio
())
.
multiply
(
commissionExpected
.
getDefaultExchangeRate
())
.
divide
(
BigDecimal
.
valueOf
(
100
),
2
,
RoundingMode
.
HALF_UP
);
commissionExpected
.
setExpectedAmount
(
expectedAmount
);
}
// 校验参数
validCommissionExpected
(
commissionExpected
,
true
);
...
...
@@ -166,13 +208,19 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
commissionExpected
.
setUpdateTime
(
new
Date
());
updateList
.
add
(
commissionExpected
);
}
}
// 新增预计来佣
if
(
CollectionUtils
.
isNotEmpty
(
addList
))
{
this
.
saveBatch
(
addList
);
}
if
(
CollectionUtils
.
isNotEmpty
(
updateList
))
{
List
<
String
>
bizIdList
=
updateList
.
stream
().
map
(
CommissionExpected:
:
getCommissionExpectedBizId
).
collect
(
Collectors
.
toList
());
List
<
CommissionExpected
>
list
=
this
.
list
(
new
QueryWrapper
<
CommissionExpected
>().
in
(
"commission_expected_biz_id"
,
bizIdList
));
Map
<
String
,
CommissionExpected
>
map
=
list
.
stream
().
collect
(
Collectors
.
toMap
(
CommissionExpected:
:
getCommissionExpectedBizId
,
a
->
a
));
for
(
CommissionExpected
update
:
updateList
)
{
CommissionExpected
commissionExpectedFromDb
=
map
.
get
(
update
.
getCommissionExpectedBizId
());
update
.
setId
(
commissionExpectedFromDb
.
getId
());
}
this
.
updateBatchById
(
updateList
);
}
return
true
;
...
...
@@ -198,10 +246,22 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if
(
commissionExpected
==
null
)
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"预计来佣不存在"
);
}
if
(
commissionExpected
.
getCommissionRatio
()
==
null
)
{
if
(
commissionExpectedUpdateRequest
.
getRatio
()
!=
null
)
{
commissionExpected
.
setCommissionRatio
(
commissionExpectedUpdateRequest
.
getRatio
());
}
else
{
commissionExpected
.
setCommissionRatio
(
commissionExpectedUpdateRequest
.
getCommissionRatio
());
}
}
// 校验数据
validCommissionExpected
(
commissionExpected
,
false
);
// 转换为实体类
BeanUtils
.
copyProperties
(
commissionExpectedUpdateRequest
,
commissionExpected
);
if
(
commissionExpectedUpdateRequest
.
getRatio
()
!=
null
)
{
commissionExpected
.
setCommissionRatio
(
commissionExpectedUpdateRequest
.
getRatio
());
}
else
{
commissionExpected
.
setCommissionRatio
(
commissionExpectedUpdateRequest
.
getCommissionRatio
());
}
commissionExpected
.
setUpdateTime
(
new
Date
());
// 更新预计来佣
return
this
.
updateById
(
commissionExpected
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
088170a8
This diff is collapsed.
Click to expand it.
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CustomerServiceImpl.java
View file @
088170a8
...
...
@@ -10,25 +10,20 @@ import com.google.gson.Gson;
import
com.google.gson.reflect.TypeToken
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dao.CustomerMapper
;
import
com.yd.csf.service.dto.CustomerAddRequest
;
import
com.yd.csf.service.dto.CustomerQueryRequest
;
import
com.yd.csf.service.dto.CustomerUpdateRequest
;
import
com.yd.csf.service.dto.FnaQueryRequest
;
import
com.yd.csf.service.model.Customer
;
import
com.yd.csf.service.model.CustomerExpand
;
import
com.yd.csf.service.model.Fna
;
import
com.yd.csf.service.service.CustomerExpandService
;
import
com.yd.csf.service.service.CustomerService
;
import
com.yd.csf.service.service.FnaService
;
import
com.yd.csf.service.utils.ValidateUtil
;
import
com.yd.csf.service.vo.AddressVO
;
import
com.yd.csf.service.vo.CustomerExpandVO
;
import
com.yd.csf.service.vo.CustomerVO
;
import
com.yd.csf.service.vo.FnaVO
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
...
...
@@ -86,16 +81,20 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
String
name
=
customerQueryRequest
.
getName
();
String
phone
=
customerQueryRequest
.
getPhone
();
String
email
=
customerQueryRequest
.
getEmail
();
queryWrapper
.
lambda
().
like
(
StringUtils
.
isNotBlank
(
name
),
Customer:
:
getName
,
name
)
.
like
(
StringUtils
.
isNotBlank
(
phone
),
Customer:
:
getPhone
,
phone
)
.
like
(
StringUtils
.
isNotBlank
(
email
),
Customer:
:
getEmail
,
email
);
queryWrapper
.
like
(
StringUtils
.
isNotBlank
(
name
),
"name"
,
name
)
.
or
().
like
(
StringUtils
.
isNotBlank
(
name
),
"first_name_pinyin"
,
name
);
queryWrapper
.
like
(
StringUtils
.
isNotBlank
(
phone
),
"phone"
,
phone
);
queryWrapper
.
like
(
StringUtils
.
isNotBlank
(
email
),
"email"
,
email
);
return
queryWrapper
;
}
@Override
public
CustomerExpand
getCustomerExpand
(
CustomerAddRequest
customerAddRequest
)
{
CustomerExpand
customerExpand
=
new
CustomerExpand
();
BeanUtils
.
copyProperties
(
customerAddRequest
,
customerExpand
);
BeanUtils
.
copyProperties
(
customerAddRequest
,
customerExpand
,
"addressList"
);
List
<
AddressVO
>
addressList
=
customerAddRequest
.
getAddressList
();
if
(
CollUtil
.
isNotEmpty
(
addressList
))
{
customerExpand
.
setAddressList
(
GSON
.
toJson
(
addressList
));
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountEditRecordServiceImpl.java
0 → 100644
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.csf.service.model.FortuneAccountEditRecord
;
import
com.yd.csf.service.service.FortuneAccountEditRecordService
;
import
com.yd.csf.service.dao.FortuneAccountEditRecordMapper
;
import
org.springframework.stereotype.Service
;
/**
* @author Zhang Jianan
* @description 针对表【fortune_account_edit_record(薪资修订记录表)】的数据库操作Service实现
* @createDate 2025-11-25 11:14:20
*/
@Service
public
class
FortuneAccountEditRecordServiceImpl
extends
ServiceImpl
<
FortuneAccountEditRecordMapper
,
FortuneAccountEditRecord
>
implements
FortuneAccountEditRecordService
{
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountServiceImpl.java
View file @
088170a8
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
java.util.Date
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
...
@@ -15,6 +16,8 @@ import com.yd.csf.service.enums.FortuneAccountStatusEnum;
import
com.yd.csf.service.enums.FortuneStatusEnum
;
import
com.yd.csf.service.model.Fortune
;
import
com.yd.csf.service.model.FortuneAccount
;
import
com.yd.csf.service.model.FortuneAccountEditRecord
;
import
com.yd.csf.service.service.FortuneAccountEditRecordService
;
import
com.yd.csf.service.service.FortuneAccountService
;
import
com.yd.csf.service.dao.FortuneAccountMapper
;
import
com.yd.csf.service.service.FortuneService
;
...
...
@@ -41,6 +44,9 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
@Resource
private
FortuneService
fortuneService
;
@Resource
private
FortuneAccountEditRecordService
fortuneAccountEditRecordService
;
private
final
Gson
GSON
=
new
Gson
();
@Override
...
...
@@ -185,6 +191,8 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
if
(
fortuneAccount
==
null
)
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
ResultCode
.
NULL_ERROR
.
getMessage
());
}
// 保存修改记录
saveUpdateFortuneAccountRecord
(
fortuneAccount
,
fortuneAccountUpdateRequest
);
fortuneAccount
.
setBroker
(
fortuneAccountUpdateRequest
.
getBroker
());
fortuneAccount
.
setTeam
(
fortuneAccountUpdateRequest
.
getTeam
());
...
...
@@ -196,9 +204,40 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
fortuneAccount
.
setUpdateTime
(
new
Date
());
this
.
updateById
(
fortuneAccount
);
return
true
;
}
private
void
saveUpdateFortuneAccountRecord
(
FortuneAccount
fortuneAccount
,
FortuneAccountUpdateRequest
fortuneAccountUpdateRequest
)
{
FortuneAccountEditRecord
fortuneAccountEditRecord
=
new
FortuneAccountEditRecord
();
// 薪资记录业务id
fortuneAccountEditRecord
.
setFortuneAccountBizId
(
fortuneAccount
.
getFortuneAccountBizId
());
fortuneAccountEditRecord
.
setIsDeleted
(
0
);
fortuneAccountEditRecord
.
setCreateTime
(
new
Date
());
// 当前登录用户
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
Long
loginUserId
=
currentLoginUser
.
getId
();
fortuneAccountEditRecord
.
setUserBizId
(
loginUserId
.
toString
());
fortuneAccountEditRecord
.
setUserName
(
currentLoginUser
.
getUsername
());
// 构建修改内容
StringBuilder
editContentBuilder
=
new
StringBuilder
();
editContentBuilder
.
append
(
"修改了薪资记录:"
);
editContentBuilder
.
append
(
"转介人:"
).
append
(
fortuneAccountUpdateRequest
.
getBroker
()).
append
(
";"
);
editContentBuilder
.
append
(
"团队:"
).
append
(
fortuneAccountUpdateRequest
.
getTeam
()).
append
(
";"
);
editContentBuilder
.
append
(
"出账金额:"
).
append
(
fortuneAccountUpdateRequest
.
getAmount
()).
append
(
";"
);
editContentBuilder
.
append
(
"出账币种:"
).
append
(
fortuneAccountUpdateRequest
.
getCurrency
()).
append
(
";"
);
if
(
StringUtils
.
isNotBlank
(
fortuneAccountUpdateRequest
.
getRemark
()))
{
editContentBuilder
.
append
(
"备注:"
).
append
(
fortuneAccountUpdateRequest
.
getRemark
()).
append
(
";"
);
}
fortuneAccountEditRecord
.
setEditContent
(
editContentBuilder
.
toString
());
fortuneAccountEditRecord
.
setRemark
(
fortuneAccountUpdateRequest
.
getRemark
());
fortuneAccountEditRecordService
.
save
(
fortuneAccountEditRecord
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
completeFortuneAccount
(
CompleteFortuneAccountRequest
completeFortuneAccountRequest
)
{
...
...
@@ -235,6 +274,31 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
return
true
;
}
@Override
public
FortuneAccountStatisticsVO
getFortuneAccountStatistics
(
List
<
Long
>
fortuneAccountIdList
)
{
if
(
CollectionUtils
.
isEmpty
(
fortuneAccountIdList
))
{
FortuneAccountStatisticsVO
vo
=
new
FortuneAccountStatisticsVO
();
vo
.
setTotalAmount
(
BigDecimal
.
ZERO
);
vo
.
setBrokerCount
(
0L
);
return
vo
;
}
// 统计总金额和总人数
List
<
FortuneAccount
>
fortuneAccountList
=
this
.
baseMapper
.
selectBatchIds
(
fortuneAccountIdList
);
BigDecimal
totalAmount
=
fortuneAccountList
.
stream
()
.
map
(
FortuneAccount:
:
getAmount
)
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
int
brokerCount
=
fortuneAccountList
.
stream
()
.
map
(
FortuneAccount:
:
getBroker
)
.
collect
(
Collectors
.
toSet
()).
size
();
FortuneAccountStatisticsVO
vo
=
new
FortuneAccountStatisticsVO
();
vo
.
setTotalAmount
(
totalAmount
);
vo
.
setBrokerCount
(
brokerCount
);
return
vo
;
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
View file @
088170a8
...
...
@@ -16,11 +16,14 @@ import com.yd.common.exception.BusinessException;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.enums.FortuneStatusEnum
;
import
com.yd.csf.service.model.Commission
;
import
com.yd.csf.service.model.Fortune
;
import
com.yd.csf.service.service.CommissionService
;
import
com.yd.csf.service.service.FortuneAccountService
;
import
com.yd.csf.service.service.FortuneService
;
import
com.yd.csf.service.dao.FortuneMapper
;
import
com.yd.csf.service.vo.FortuneVO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
...
...
@@ -48,6 +51,9 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
@Resource
private
FortuneAccountService
fortuneAccountService
;
@Resource
private
CommissionService
commissionService
;
@Override
public
Wrapper
<
Fortune
>
getQueryWrapper
(
FortuneQueryRequest
fortuneQueryRequest
)
{
QueryWrapper
<
Fortune
>
queryWrapper
=
new
QueryWrapper
<>();
...
...
@@ -71,11 +77,14 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
return
fortuneVOPage
;
}
List
<
FortuneVO
>
fortuneVOList
=
fortuneList
.
stream
().
map
(
fortune
->
{
FortuneVO
fortuneVO
=
new
FortuneVO
();
BeanUtils
.
copyProperties
(
fortune
,
fortuneVO
);
return
fortuneVO
;
}).
collect
(
Collectors
.
toList
());
List
<
FortuneVO
>
fortuneVOList
=
fortuneList
.
stream
().
map
(
FortuneVO:
:
objToVo
).
collect
(
Collectors
.
toList
());
// 关联查询已来佣金额
List
<
Commission
>
commissionList
=
commissionService
.
list
(
new
QueryWrapper
<
Commission
>().
in
(
"commission_biz_id"
,
fortuneList
.
stream
().
map
(
Fortune:
:
getCommissionBizId
).
collect
(
Collectors
.
toList
())));
Map
<
String
,
BigDecimal
>
commissionAmountMap
=
commissionList
.
stream
().
collect
(
Collectors
.
toMap
(
Commission:
:
getCommissionBizId
,
Commission:
:
getAmount
));
fortuneVOList
.
forEach
(
fortuneVO
->
{
String
commissionBizId
=
fortuneVO
.
getCommissionBizId
();
fortuneVO
.
setCommissionAmount
(
commissionAmountMap
.
getOrDefault
(
commissionBizId
,
BigDecimal
.
ZERO
));
});
fortuneVOPage
.
setRecords
(
fortuneVOList
);
return
fortuneVOPage
;
...
...
@@ -297,6 +306,19 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
return
this
.
getOne
(
new
LambdaQueryWrapper
<
Fortune
>().
eq
(
Fortune:
:
getFortuneBizId
,
fortuneBizId
));
}
@Override
public
FortuneStatisticsVO
getFortuneStatistics
(
List
<
Long
>
fortuneIdList
)
{
if
(
CollectionUtils
.
isEmpty
(
fortuneIdList
))
{
FortuneStatisticsVO
fortuneStatisticsVO
=
new
FortuneStatisticsVO
();
fortuneStatisticsVO
.
setTotalOutAmount
(
BigDecimal
.
ZERO
);
fortuneStatisticsVO
.
setTotalInAmount
(
BigDecimal
.
ZERO
);
fortuneStatisticsVO
.
setTotalPolicyCount
(
0L
);
return
fortuneStatisticsVO
;
}
// 自定义查询
return
this
.
baseMapper
.
getFortuneStatistics
(
fortuneIdList
);
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
088170a8
...
...
@@ -11,7 +11,6 @@ import com.yd.auth.core.utils.SecurityUtil;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.*
;
...
...
@@ -174,6 +173,7 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
// 修改转介人
List
<
PolicyBrokerDto
>
brokerList
=
policyFollowUpdateRequest
.
getBrokerList
();
if
(
CollUtil
.
isNotEmpty
(
brokerList
))
{
log
.
info
(
"修改转介人,查看保单号: {}, 转介人数量: {}"
,
policyFollow
.
getPolicyNo
(),
brokerList
.
size
());
// 先删除原有的转介人
policyBrokerService
.
remove
(
new
QueryWrapper
<
PolicyBroker
>().
eq
(
"policy_biz_id"
,
policyBizId
));
...
...
@@ -335,8 +335,6 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
)
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"已完成、已拒绝、已取消状态不能变更"
);
}
// 校验状态
validPolicyFollowStatus
(
currentStatusEnum
,
policyFollowStatusEnum
);
String
policyBizId
=
changePolicyFollowStatusRequest
.
getPolicyBizId
();
...
...
@@ -380,21 +378,9 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
@Override
public
String
getNextStatus
(
PolicyFollowStatusEnum
policyFollowStatusEnum
)
{
switch
(
policyFollowStatusEnum
)
{
case
FOLLOW_UP:
return
PolicyFollowStatusEnum
.
CHECKING
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
DECLINED
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
CANCELLED
.
getItemValue
();
case
CHECKING:
return
PolicyFollowStatusEnum
.
UNDERWRITING
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
CANCELLED
.
getItemValue
();
case
UNDERWRITING:
return
PolicyFollowStatusEnum
.
FINISHED
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
DECLINED
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
CANCELLED
.
getItemValue
();
default
:
return
null
;
}
return
PolicyFollowStatusEnum
.
FINISHED
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
DECLINED
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
CANCELLED
.
getItemValue
();
}
/**
...
...
@@ -568,6 +554,36 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
}
@Override
public
PolicyReportData
queryPolicyReportData
(
String
policyBizId
)
{
// 查询主险信息
PolicyReportData
policyReportData
=
this
.
baseMapper
.
queryPolicyReportData
(
policyBizId
);
// 处理附加险信息
List
<
PolicyAdditional
>
additionalList
=
policyAdditionalService
.
list
(
new
QueryWrapper
<
PolicyAdditional
>().
eq
(
"policy_biz_id"
,
policyBizId
));
List
<
PolicyReportData
.
AdditionalInsurance
>
additionalInsurances
=
new
ArrayList
<>();
if
(
CollUtil
.
isNotEmpty
(
additionalList
))
{
for
(
PolicyAdditional
additional
:
additionalList
)
{
PolicyReportData
.
AdditionalInsurance
additionalInsurance
=
new
PolicyReportData
.
AdditionalInsurance
();
additionalInsurance
.
setName
(
additional
.
getAddProductName
());
additionalInsurance
.
setPaymentTerm
(
null
);
additionalInsurance
.
setCurrency
(
getCurrencyValue
(
additional
.
getCurrency
()));
additionalInsurance
.
setFirstYearAmount
(
additional
.
getPremium
());
additionalInsurances
.
add
(
additionalInsurance
);
}
}
// 处理附加险信息
policyReportData
.
setAdditionalInsurances
(
additionalInsurances
);
// 处理服务经理
String
signerList
=
policyReportData
.
getServiceManager
();
if
(
StringUtils
.
isNotBlank
(
signerList
))
{
PolicySigner
[]
signers
=
GSONUtil
.
fromJson
(
signerList
,
PolicySigner
[].
class
);
policyReportData
.
setServiceManager
(
signers
[
0
].
getSigner
());
}
// 处理位置
policyReportData
.
setLocation
(
"香港"
);
return
policyReportData
;
}
@Override
public
Boolean
uploadAttachment
(
AttachmentUploadRequest
attachmentUploadRequest
)
{
String
policyBizId
=
attachmentUploadRequest
.
getPolicyBizId
();
if
(
policyBizId
==
null
)
{
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedVO.java
View file @
088170a8
...
...
@@ -15,6 +15,12 @@ import java.util.Date;
public
class
CommissionExpectedVO
implements
Serializable
{
/**
* 预计来佣id
*/
@Schema
(
description
=
"预计来佣id"
)
private
Long
id
;
/**
* 预计来佣业务id
*/
@Schema
(
description
=
"预计来佣业务id"
)
...
...
@@ -27,6 +33,12 @@ public class CommissionExpectedVO implements Serializable {
private
String
policyNo
;
/**
* 保费
*/
@Schema
(
description
=
"保费"
)
private
Object
premium
;
/**
* 对账公司
*/
@Schema
(
description
=
"对账公司"
)
...
...
@@ -57,6 +69,18 @@ public class CommissionExpectedVO implements Serializable {
private
String
commissionType
;
/**
* 来佣比例 (%)
*/
@Schema
(
description
=
"来佣比例 (%)"
)
private
BigDecimal
commissionRatio
;
/**
* 来佣比例 (%)
*/
@Schema
(
description
=
"来佣比例 (%)"
)
private
BigDecimal
ratio
;
/**
* 来佣金额
*/
@Schema
(
description
=
"来佣金额"
)
...
...
@@ -127,6 +151,8 @@ public class CommissionExpectedVO implements Serializable {
}
CommissionExpectedVO
commissionVO
=
new
CommissionExpectedVO
();
BeanUtils
.
copyProperties
(
commissionExpected
,
commissionVO
);
commissionVO
.
setRatio
(
commissionExpected
.
getCommissionRatio
());
return
commissionVO
;
}
}
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionVO.java
View file @
088170a8
...
...
@@ -32,6 +32,12 @@ public class CommissionVO implements Serializable {
private
String
policyNo
;
/**
* 保费
*/
@Schema
(
description
=
"保费"
)
private
String
premium
;
/**
* 对账公司
*/
@Schema
(
description
=
"对账公司"
)
...
...
@@ -62,6 +68,12 @@ public class CommissionVO implements Serializable {
private
String
commissionType
;
/**
* 当前结算汇率
*/
@Schema
(
description
=
"当前结算汇率"
)
private
String
exchangeRate
;
/**
* 来佣金额
*/
@Schema
(
description
=
"来佣金额"
)
...
...
@@ -81,12 +93,54 @@ public class CommissionVO implements Serializable {
private
Date
commissionDate
;
/**
* 当前来佣比例
*/
@Schema
(
description
=
"当前来佣比例"
)
private
BigDecimal
currentCommissionRatio
;
/**
* 当期已入账比例
*/
@Schema
(
description
=
"已入账来佣比例"
)
private
BigDecimal
periodPaidRatio
;
/**
* 待入账来佣比例
*/
@Schema
(
description
=
"当期剩余来佣比例"
)
private
BigDecimal
periodPendingRatio
;
/**
* 来佣状态
*/
@Schema
(
description
=
"来佣状态 0=未比对 1=比对成功 2=比对失败 字典值: csf_commission_status"
)
private
String
status
;
/**
* 预计来佣业务id
*/
@Schema
(
description
=
"预计来佣业务id"
)
private
String
commissionExpectedBizId
;
/**
* 总金额
*/
@Schema
(
description
=
"总金额"
)
private
String
expectedAmount
;
/**
* 已入账金额
*/
@Schema
(
description
=
"已入账金额"
)
private
String
paidAmount
;
/**
* 待入账金额
*/
@Schema
(
description
=
"待入账金额"
)
private
String
pendingAmount
;
/**
* 通用备注
*/
@Schema
(
description
=
"备注"
)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneAccountVO.java
View file @
088170a8
...
...
@@ -14,6 +14,12 @@ import java.util.Map;
@Data
public
class
FortuneAccountVO
{
/**
* fortuneAccount id
*/
@Schema
(
description
=
"fortuneAccount id"
)
private
Long
id
;
/**
* 出账记录业务id
*/
@Schema
(
description
=
"出账记录业务id"
)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneVO.java
View file @
088170a8
...
...
@@ -15,6 +15,12 @@ import java.util.Date;
public
class
FortuneVO
implements
Serializable
{
/**
* fortune id
*/
@Schema
(
description
=
"fortune id"
)
private
Long
id
;
/**
* 保单发佣业务id
*/
@Schema
(
description
=
"保单发佣业务id"
)
...
...
@@ -27,6 +33,18 @@ public class FortuneVO implements Serializable {
private
String
policyNo
;
/**
* 来佣业务id
*/
@Schema
(
description
=
"来佣业务id"
)
private
String
commissionBizId
;
/**
* 本次已来佣金额
*/
@Schema
(
description
=
"本次已来佣金额"
)
private
Object
commissionAmount
;
/**
* 发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@Schema
(
description
=
"发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)"
)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowDetailVO.java
View file @
088170a8
...
...
@@ -128,9 +128,9 @@ public class PolicyFollowDetailVO implements Serializable {
private
String
paymentNumber
;
/**
* 产品
业务id
* 产品
上架信息表唯一业务ID
*/
private
String
productBizId
;
private
String
product
Launch
BizId
;
/**
* 产品名称
...
...
yd-csf-service/src/main/resources/mappers/CommissionCompareRecordMapper.xml
0 → 100644
View file @
088170a8
<?xml version="1.0" encoding="UTF-8"?>
<!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.CommissionCompareRecordMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.yd.csf.service.model.CommissionCompareRecord"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"commissionExpectedBizId"
column=
"commission_expected_biz_id"
/>
<result
property=
"commissionBizId"
column=
"commission_biz_id"
/>
<result
property=
"commissionPeriod"
column=
"commission_period"
/>
<result
property=
"totalPeriod"
column=
"total_period"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"currency"
column=
"currency"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"exchangeRate"
column=
"exchange_rate"
/>
<result
property=
"amount"
column=
"amount"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"isDeleted"
column=
"is_deleted"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id,commission_expected_biz_id,commission_biz_id,commission_period,total_period,status,
currency,create_time,exchange_rate,amount,remark,
is_deleted
</sql>
</mapper>
yd-csf-service/src/main/resources/mappers/CommissionEditRecordMapper.xml
0 → 100644
View file @
088170a8
<?xml version="1.0" encoding="UTF-8"?>
<!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.CommissionEditRecordMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.yd.csf.service.model.CommissionEditRecord"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"commissionBizId"
column=
"commission_biz_id"
/>
<result
property=
"userBizId"
column=
"user_biz_id"
/>
<result
property=
"userName"
column=
"user_name"
/>
<result
property=
"seq"
column=
"seq"
/>
<result
property=
"field"
column=
"field"
/>
<result
property=
"beforeChange"
column=
"before_change"
/>
<result
property=
"afterChange"
column=
"after_change"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"isDeleted"
column=
"is_deleted"
/>
<result
property=
"createTime"
column=
"create_time"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id,commission_biz_id,user_biz_id,user_name,seq,field,before_change,
after_change,remark,is_deleted,create_time
</sql>
</mapper>
yd-csf-service/src/main/resources/mappers/CommissionExpectedMapper.xml
View file @
088170a8
...
...
@@ -14,10 +14,13 @@
<result
property=
"totalPeriod"
column=
"total_period"
/>
<result
property=
"commissionName"
column=
"commission_name"
/>
<result
property=
"commissionType"
column=
"commission_type"
/>
<result
property=
"
amount"
column=
"amount
"
/>
<result
property=
"
commissionRatio"
column=
"commission_ratio
"
/>
<result
property=
"currency"
column=
"currency"
/>
<result
property=
"commissionDate"
column=
"commission_date"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"defaultExchangeRate"
column=
"default_exchange_rate"
/>
<result
property=
"expectedAmount"
column=
"expected_amount"
/>
<result
property=
"paidAmount"
column=
"paid_amount"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"isDeleted"
column=
"is_deleted"
/>
<result
property=
"creatorId"
column=
"creator_id"
/>
...
...
@@ -28,8 +31,8 @@
<sql
id=
"Base_Column_List"
>
id,commission_expected_biz_id,policy_no,reconciliation_company,reconciliation_company_biz_id,commission_period,
total_period,commission_name,commission_type,
amount,currency
,
commission_date,status,remark,is_deleted,creator_id,
total_period,commission_name,commission_type,
commission_ratio,currency,default_exchange_rate,expected_amount
,
commission_date,status,
paid_amount,
remark,is_deleted,creator_id,
updater_id,create_time,update_time
</sql>
</mapper>
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
View file @
088170a8
...
...
@@ -8,15 +8,20 @@
<id
property=
"id"
column=
"id"
/>
<result
property=
"commissionBizId"
column=
"commission_biz_id"
/>
<result
property=
"policyNo"
column=
"policy_no"
/>
<result
property=
"premium"
column=
"premium"
/>
<result
property=
"reconciliationCompany"
column=
"reconciliation_company"
/>
<result
property=
"reconciliationCompanyBizId"
column=
"reconciliation_company_biz_id"
/>
<result
property=
"commissionPeriod"
column=
"commission_period"
/>
<result
property=
"totalPeriod"
column=
"total_period"
/>
<result
property=
"commissionName"
column=
"commission_name"
/>
<result
property=
"commissionType"
column=
"commission_type"
/>
<result
property=
"exchangeRate"
column=
"exchange_rate"
/>
<result
property=
"amount"
column=
"amount"
/>
<result
property=
"currency"
column=
"currency"
/>
<result
property=
"commissionDate"
column=
"commission_date"
/>
<result
property=
"currentCommissionRatio"
column=
"current_commission_ratio"
/>
<result
property=
"periodPaidRatio"
column=
"period_paid_ratio"
/>
<result
property=
"periodPendingRatio"
column=
"period_pending_ratio"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"isDeleted"
column=
"is_deleted"
/>
...
...
@@ -27,9 +32,9 @@
</resultMap>
<sql
id=
"Base_Column_List"
>
id,commission_biz_id,policy_no,reconciliation_company,reconciliation_company_biz_id,commission_period,
total_period,commission_name,commission_type,amount,currency,
commission_date,status,remark,is_deleted,creator_id,
id,commission_biz_id,policy_no,
premium,
reconciliation_company,reconciliation_company_biz_id,commission_period,
total_period,commission_name,commission_type,
exchange_rate,
amount,currency,
commission_date,
current_commission_ratio,period_paid_ratio,period_pending_ratio,
status,remark,is_deleted,creator_id,
updater_id,create_time,update_time
</sql>
...
...
@@ -61,7 +66,7 @@
COUNT(DISTINCT c.policy_no) as totalPolicyCount
FROM commission c
LEFT JOIN (
SELECT policy_no, SUM(amount) as amount
SELECT policy_no, SUM(
expected_
amount) as amount
FROM commission_expected
GROUP BY policy_no
) e ON c.policy_no = e.policy_no
...
...
yd-csf-service/src/main/resources/mappers/FortuneAccountEditRecordMapper.xml
0 → 100644
View file @
088170a8
<?xml version="1.0" encoding="UTF-8"?>
<!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.FortuneAccountEditRecordMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.yd.csf.service.model.FortuneAccountEditRecord"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"fortuneAccountBizId"
column=
"fortune_account_biz_id"
/>
<result
property=
"userBizId"
column=
"user_biz_id"
/>
<result
property=
"userName"
column=
"user_name"
/>
<result
property=
"editContent"
column=
"edit_content"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"isDeleted"
column=
"is_deleted"
/>
<result
property=
"createTime"
column=
"create_time"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id,fortune_account_biz_id,user_biz_id,user_name,edit_content,remark,
is_deleted,create_time
</sql>
</mapper>
yd-csf-service/src/main/resources/mappers/FortuneMapper.xml
View file @
088170a8
...
...
@@ -44,4 +44,17 @@
calculation_formula,remark,is_deleted,creator_id,updater_id,
create_time,update_time
</sql>
<select
id=
"getFortuneStatistics"
resultType=
"com.yd.csf.service.dto.FortuneStatisticsVO"
>
select
ifnull(f.amount,0) as totalOutAmount,
ifnull(c.amount,0) as totalInAmount,
count(distinct f.policy_no) as totalPolicyCount
from fortune f
left join commission c on f.commission_biz_id = c.commission_biz_id
where f.id in
<foreach
collection=
"fortuneIdList"
item=
"fortuneId"
open=
"("
close=
")"
separator=
","
>
#{fortuneId}
</foreach>
</select>
</mapper>
yd-csf-service/src/main/resources/mappers/PolicyFollowMapper.xml
View file @
088170a8
...
...
@@ -29,7 +29,7 @@
<result
property=
"prepaidAmountAfterDiscount"
column=
"prepaid_amount_after_discount"
/>
<result
property=
"policyExpirationDate"
column=
"policy_expiration_date"
/>
<result
property=
"paymentNumber"
column=
"payment_number"
/>
<result
property=
"product
BizId"
column=
"product
_biz_id"
/>
<result
property=
"product
LaunchBizId"
column=
"product_launch
_biz_id"
/>
<result
property=
"productName"
column=
"product_name"
/>
<result
property=
"productCate"
column=
"product_cate"
/>
<result
property=
"insurer"
column=
"insurer"
/>
...
...
@@ -65,11 +65,35 @@
customer_biz_id,submit_date,customer_name,sign_date,signer_list,
issue_date,effective_date,cooling_off_end_date,cooling_off_days,renewal_date,payment_term,payment_premium,
is_prepaid,prepaid_term,prepaid_amount,prepaid_amount_after_discount,policy_expiration_date,
payment_number,product_biz_id,product_name,product_cate,insurer,
payment_number,product_
launch_
biz_id,product_name,product_cate,insurer,
insurer_biz_id,reconciliation_company,reconciliation_company_biz_id,status,next_status_list,
policy_holder,insured,currency,initial_premium,initial_premium_paid,initial_premium_due,latest_payment_date,policy_levy,mailing_method,
delivery_no,broker_sign_date,insurer_mailing_date,customer_sign_date,attachments,
remark,is_deleted,creator_id,updater_id,create_time,
update_time
</sql>
<select
id=
"queryPolicyReportData"
resultType=
"com.yd.csf.service.dto.PolicyReportData"
>
select
t.id,
t.policy_biz_id,
t.policy_no as policyNumber,
t.insurer as insuranceCompany,
t.product_name as insurancePlan,
t.payment_term as paymentPeriod,
t.initial_premium as annualAmount,
t.prepaid_amount as totalPrepayment,
t.payment_premium as premiumFee,
t.sign_date as startTime,
t.sign_date as endTime,
t.signer_list as serviceManager,
t.policy_holder as policyHolder,
t.currency as currency,
ifnull(i.name, i.name_en) as insuredPerson,
i.age as insuredAge
from policy_follow t
left join policy_insurant i on t.policy_biz_id = i.policy_biz_id
where t.policy_biz_id = #{policyBizId}
</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