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
b70d4af7
Commit
b70d4af7
authored
Nov 24, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/test' into test
parents
744d58f7
0707d9ed
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
352 additions
and
9 deletions
+352
-9
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
+32
-5
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+96
-3
yd-csf-service/pom.xml
+19
-0
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionMapper.java
+5
-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/CommissionQueryRequest.java
+8
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionStatisticsRequest.java
+15
-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/PolicyReportData.java
+39
-0
yd-csf-service/src/main/java/com/yd/csf/service/enums/FortuneStatusEnum.java
+1
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/Fortune.java
+5
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionService.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
+0
-0
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/PolicyFollowServiceImpl.java
+41
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionStatisticsVO.java
+44
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionVO.java
+6
-0
yd-csf-service/src/main/resources/font/DFKai-SB.ttf
+0
-0
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
+22
-0
yd-csf-service/src/main/resources/mappers/FortuneMapper.xml
+2
-1
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
View file @
b70d4af7
package
com
.
yd
.
csf
.
api
.
controller
;
import
com.alibaba.excel.EasyExcel
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.utils.SecurityUtil
;
...
...
@@ -14,6 +15,7 @@ import com.yd.csf.service.model.Commission;
import
com.yd.csf.service.model.CommissionExpected
;
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
;
...
...
@@ -30,7 +32,9 @@ import javax.servlet.http.HttpServletRequest;
import
java.io.IOException
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -247,6 +251,19 @@ public class ApiCommissionController {
}
/**
* 计算统计数据 总金额、总入账金额、待入账金额、已入账比例(已入账金额/总金额)、总保单数
*/
@PostMapping
(
"/statistics"
)
@Operation
(
summary
=
"计算统计数据 总金额、总入账金额、待入账金额、已入账比例(已入账金额/总金额)、总保单数"
)
public
Result
<
CommissionStatisticsVO
>
getCommissionStatistics
(
@RequestBody
CommissionStatisticsRequest
commissionStatisticsRequest
)
{
if
(
commissionStatisticsRequest
==
null
)
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
ErrorCode
.
PARAMS_ERROR
.
getMessage
());
}
return
Result
.
success
(
commissionService
.
getCommissionStatistics
(
commissionStatisticsRequest
.
getCommissionIds
()));
}
/**
* 根据 commissionBizId 获取保单来佣(封装类)
*
* @param commissionBizId
...
...
@@ -293,16 +310,26 @@ public class ApiCommissionController {
*/
@PostMapping
(
"/list/page/vo"
)
@Operation
(
summary
=
"分页获取保单来佣列表"
)
public
Result
<
Page
<
CommissionVO
>>
listPolicyFollowByPage
(
@RequestBody
CommissionQueryRequest
commissionQueryRequest
,
public
Result
<
Map
<
String
,
Object
>>
listPolicyFollowByPage
(
@RequestBody
CommissionQueryRequest
commissionQueryRequest
,
HttpServletRequest
request
)
{
long
current
=
commissionQueryRequest
.
getPageNo
();
long
size
=
commissionQueryRequest
.
getPageSize
();
// 查询数据库
// 查询列表数据
QueryWrapper
<
Commission
>
queryWrapper
=
commissionService
.
getQueryWrapper
(
commissionQueryRequest
);
Page
<
Commission
>
commissionPage
=
commissionService
.
page
(
new
Page
<>(
current
,
size
),
commissionService
.
getQueryWrapper
(
commissionQueryRequest
));
// 获取封装类
return
Result
.
success
(
commissionService
.
getCommissionVOPage
(
commissionPage
));
queryWrapper
);
// 查询统计数据
List
<
Commission
>
commissionList
=
commissionService
.
list
(
queryWrapper
);
// 计算统计数据
List
<
Long
>
commissionIds
=
commissionList
.
stream
().
map
(
Commission:
:
getId
).
collect
(
Collectors
.
toList
());
CommissionStatisticsVO
commissionStatisticsVO
=
commissionService
.
getCommissionStatistics
(
commissionIds
);
// 组装返回值
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"commissionStatisticsVO"
,
commissionStatisticsVO
);
map
.
put
(
"page"
,
commissionService
.
getCommissionVOPage
(
commissionPage
));
return
Result
.
success
(
map
);
}
}
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
b70d4af7
...
...
@@ -12,19 +12,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.utils.SecurityUtil
;
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.api.dto.CommissionExcelDTO
;
import
com.yd.csf.api.dto.PolicyExcelDTO
;
import
com.yd.csf.api.dto.PolicyFollowDTO
;
import
com.yd.csf.api.listener.PolicyDataListener
;
import
com.yd.csf.api.service.ApiExpectedFortuneService
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.enums.PolicyFollowStatusEnum
;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.service.*
;
import
com.yd.csf.service.utils.AsyncQueryUtil
;
import
com.yd.csf.service.vo.PolicyFollowDetailVO
;
import
com.yd.csf.service.vo.PolicyFollowRecordVO
;
import
com.yd.csf.service.vo.PolicyFollowVO
;
...
...
@@ -35,13 +34,15 @@ import org.apache.commons.lang3.StringUtils;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
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.*
;
...
...
@@ -82,6 +83,10 @@ public class ApiPolicyFollowController {
private
PolicyFollowFileService
policyFollowFileService
;
@Resource
private
PolicyReportPdfService
policyReportPdfService
;
@PostMapping
(
"/upload/excel"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
Boolean
>
uploadExcel
(
@RequestParam
(
"file"
)
MultipartFile
file
)
throws
Exception
{
...
...
@@ -258,6 +263,8 @@ public class ApiPolicyFollowController {
if
(
policyFollow
.
getEffectiveDate
()!=
null
&&
policyFollow
.
getCoolingOffDays
()
!=
null
)
{
policyFollow
.
setCoolingOffEndDate
(
DateUtil
.
offset
(
policyFollow
.
getEffectiveDate
(),
DateField
.
DAY_OF_MONTH
,
policyFollow
.
getCoolingOffDays
()));
}
// 获取币种字典值
policyFollow
.
setCurrency
(
policyFollowService
.
getCurrencyValue
(
policyExcelDTO
.
getCurrency
()));
// 转换为Policy对象
Policy
policy
=
new
Policy
();
...
...
@@ -549,4 +556,89 @@ public class ApiPolicyFollowController {
List
<
PolicyFollowRecord
>
policyFollowStatusList
=
policyFollowRecordService
.
list
(
queryWrapper
);
return
Result
.
success
(
policyFollowRecordService
.
getVOList
(
policyFollowStatusList
));
}
/**
* 生成签约单
*/
@GetMapping
(
value
=
"/report/download"
,
produces
=
"application/pdf"
)
@Operation
(
summary
=
"生成签约单"
)
public
void
previewPolicyReport
(
@RequestParam
(
"policyBizId"
)
String
policyBizId
,
HttpServletResponse
response
)
{
PolicyFollow
policyFollow
=
policyFollowService
.
getByPolicyBizId
(
policyBizId
);
if
(
policyFollow
==
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
));
try
{
log
.
info
(
"收到PDF生成请求: {}"
,
reportData
);
log
.
info
(
"PolicyReportData 内容检查:"
);
log
.
info
(
"startTime: {}"
,
reportData
.
getStartTime
());
log
.
info
(
"endTime: {}"
,
reportData
.
getEndTime
());
log
.
info
(
"location: {}"
,
reportData
.
getLocation
());
log
.
info
(
"serviceManager: {}"
,
reportData
.
getServiceManager
());
byte
[]
pdfBytes
=
policyReportPdfService
.
generatePolicyReport
(
reportData
);
if
(
pdfBytes
==
null
||
pdfBytes
.
length
==
0
)
{
log
.
error
(
"生成的PDF为空"
);
throw
new
BusinessException
(
"生成的PDF内容为空"
);
}
log
.
info
(
"PDF生成成功,大小: {} bytes"
,
pdfBytes
.
length
);
// 设置下载响应头
response
.
setContentType
(
"application/pdf"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment; filename=policy-report-"
+
reportData
.
getPolicyNumber
()
+
".pdf"
);
response
.
setContentLength
(
pdfBytes
.
length
);
// 写入响应流
ServletOutputStream
outputStream
=
response
.
getOutputStream
();
outputStream
.
write
(
pdfBytes
);
outputStream
.
flush
();
log
.
info
(
"PDF响应发送完成"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"PDF预览失败"
,
e
);
throw
new
BusinessException
(
"PDF预览失败: "
+
e
.
getMessage
());
}
}
}
\ No newline at end of file
yd-csf-service/pom.xml
View file @
b70d4af7
...
...
@@ -12,6 +12,20 @@
<artifactId>
yd-csf-service
</artifactId>
<dependencies>
<!-- 公共工具类 -->
<dependency>
<groupId>
commons-io
</groupId>
<artifactId>
commons-io
</artifactId>
<version>
2.11.0
</version>
</dependency>
<!-- itextpdf -->
<dependency>
<groupId>
com.github.librepdf
</groupId>
<artifactId>
openpdf
</artifactId>
<version>
1.3.30
</version>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
easyexcel
</artifactId>
...
...
@@ -104,5 +118,10 @@
<artifactId>
yd-feign
</artifactId>
<version>
${project.version}
</version>
</dependency>
<!-- 添加AOP依赖 -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-aop
</artifactId>
</dependency>
</dependencies>
</project>
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionMapper.java
View file @
b70d4af7
package
com
.
yd
.
csf
.
service
.
dao
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.yd.csf.service.dto.CommissionBindPolicyBrokerDto
;
import
com.yd.csf.service.dto.CommissionDto
;
import
com.yd.csf.service.model.Commission
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yd.csf.service.vo.CommissionStatisticsVO
;
import
com.yd.csf.service.vo.CommissionVO
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
...
...
@@ -17,6 +20,8 @@ import java.util.List;
public
interface
CommissionMapper
extends
BaseMapper
<
Commission
>
{
List
<
CommissionBindPolicyBrokerDto
>
queryCommissionBindPolicyBrokerList
(
@Param
(
"dto"
)
CommissionDto
dto
);
CommissionStatisticsVO
getCommissionStatistics
(
@Param
(
"commissionIdList"
)
List
<
Long
>
commissionIdList
);
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionAddRequest.java
View file @
b70d4af7
...
...
@@ -64,6 +64,12 @@ public class CommissionAddRequest implements Serializable {
private
String
currency
;
/**
* 结算汇率
*/
@Schema
(
description
=
"结算汇率"
)
private
String
exchangeRate
;
/**
* 来佣日期
*/
@Schema
(
description
=
"来佣日期"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
format
=
"yyyy-MM-dd"
)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionQueryRequest.java
View file @
b70d4af7
...
...
@@ -49,5 +49,12 @@ public class CommissionQueryRequest extends PageDto implements Serializable {
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
commissionDateEnd
;
/**
* 预计入账日期
*/
@Schema
(
description
=
"预计入账日期 格式-yyyy-MM-dd"
,
example
=
"2023-01-01"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
expectedDate
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionStatisticsRequest.java
0 → 100644
View file @
b70d4af7
package
com
.
yd
.
csf
.
service
.
dto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
CommissionStatisticsRequest
{
/**
* 佣金ID列表
*/
@Schema
(
description
=
"佣金ID列表"
)
private
List
<
Long
>
commissionIds
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionUpdateRequest.java
View file @
b70d4af7
...
...
@@ -75,6 +75,12 @@ public class CommissionUpdateRequest implements Serializable {
@Schema
(
description
=
"来佣币种"
)
private
String
currency
;
/**
* 结算汇率
*/
@Schema
(
description
=
"结算汇率"
)
private
String
exchangeRate
;
/**
* 来佣日期
*/
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyReportData.java
0 → 100644
View file @
b70d4af7
package
com
.
yd
.
csf
.
service
.
dto
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Data
public
class
PolicyReportData
{
// 基本信息
private
String
startTime
;
private
String
endTime
;
private
String
location
;
private
String
serviceManager
;
// 保单详细信息
private
String
policyHolder
;
private
String
policyNumber
;
private
String
insuranceCompany
;
private
String
insuredPerson
;
private
String
insurancePlan
;
private
Integer
insuredAge
;
private
String
currency
;
private
Integer
paymentPeriod
;
private
BigDecimal
annualAmount
;
private
BigDecimal
totalPrepayment
;
private
BigDecimal
premiumFee
;
// 附加险信息
private
List
<
AdditionalInsurance
>
additionalInsurances
;
@Data
public
static
class
AdditionalInsurance
{
private
String
name
;
private
String
paymentTerm
;
private
String
currency
;
private
BigDecimal
firstYearAmount
;
}
}
yd-csf-service/src/main/java/com/yd/csf/service/enums/FortuneStatusEnum.java
View file @
b70d4af7
...
...
@@ -9,6 +9,7 @@ public enum FortuneStatusEnum {
WAIT
(
"待出账"
,
"0"
),
CAN_SEND
(
"可出账"
,
"1"
),
SENT
(
"已出账"
,
"2"
),
MATCH_FAIL
(
"未找到当前预计发佣对应的来佣"
,
"3"
),
;
//字典项标签(名称)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Fortune.java
View file @
b70d4af7
...
...
@@ -30,6 +30,11 @@ public class Fortune implements Serializable {
*/
private
String
fortuneBizId
;
/**
* 来佣保单业务id
*/
private
String
commissionBizId
;
/**
* 保单号
*/
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionService.java
View file @
b70d4af7
...
...
@@ -7,6 +7,7 @@ import com.yd.csf.service.dto.*;
import
com.yd.csf.service.model.Commission
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yd.csf.service.model.CommissionExpected
;
import
com.yd.csf.service.vo.CommissionStatisticsVO
;
import
com.yd.csf.service.vo.CommissionVO
;
import
java.util.List
;
...
...
@@ -36,4 +37,6 @@ public interface CommissionService extends IService<Commission> {
List
<
Commission
>
queryList
(
CommissionDto
dto
);
List
<
CommissionBindPolicyBrokerDto
>
queryCommissionBindPolicyBrokerList
(
CommissionDto
dto
);
CommissionStatisticsVO
getCommissionStatistics
(
List
<
Long
>
commissionIds
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
View file @
b70d4af7
...
...
@@ -42,4 +42,6 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
PolicyFollowAggregateDto
getPolicyFollowAggregate
(
String
policyBizId
);
Page
<
PolicyFollowDetailVO
>
getPolicyFollowDetailVOList
(
Page
<
PolicyFollow
>
policyFollowPage
);
String
getCurrencyValue
(
String
currency
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyReportPdfService.java
0 → 100644
View file @
b70d4af7
This diff is collapsed.
Click to expand it.
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
b70d4af7
This diff is collapsed.
Click to expand it.
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
b70d4af7
...
...
@@ -157,6 +157,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
if
(
policyFollowUpdateDto
.
getCoolingOffDays
()
!=
null
&&
policyFollowUpdateDto
.
getEffectiveDate
()
!=
null
)
{
policyFollow
.
setCoolingOffEndDate
(
DateUtil
.
offset
(
policyFollowUpdateDto
.
getEffectiveDate
(),
DateField
.
DAY_OF_MONTH
,
policyFollowUpdateDto
.
getCoolingOffDays
()));
}
// 获取币种字典值
policyFollow
.
setCurrency
(
this
.
getCurrencyValue
(
policyFollowUpdateDto
.
getCurrency
()));
}
// 设置核保信息
setValidPolicyInfo
(
policyFollow
,
policyFollowUpdateRequest
.
getVerifyPolicyInfo
());
...
...
@@ -248,6 +250,9 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
if
(
policyFollowAddRequest
.
getCoolingOffDays
()
!=
null
)
{
policyFollow
.
setCoolingOffEndDate
(
DateUtil
.
offset
(
policyFollowAddRequest
.
getEffectiveDate
(),
DateField
.
DAY_OF_MONTH
,
policyFollowAddRequest
.
getCoolingOffDays
()));
}
// 获取币种字典值
policyFollow
.
setCurrency
(
this
.
getCurrencyValue
(
policyFollowAddRequest
.
getCurrency
()));
// 创建 Policy对象
Policy
policy
=
new
Policy
();
BeanUtils
.
copyProperties
(
policyFollowAddRequest
,
policy
);
...
...
@@ -527,6 +532,42 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
}
@Override
public
String
getCurrencyValue
(
String
currency
)
{
if
(
StringUtils
.
isBlank
(
currency
))
{
return
null
;
}
switch
(
currency
)
{
case
"美元"
:
currency
=
"USD"
;
break
;
case
"人民幣"
:
currency
=
"CNY"
;
break
;
case
"港幣"
:
currency
=
"HKD"
;
break
;
case
"澳元"
:
currency
=
"AUD"
;
break
;
case
"加元"
:
currency
=
"CAD"
;
break
;
case
"欧元"
:
currency
=
"EUR"
;
break
;
case
"英鎊"
:
currency
=
"GBP"
;
break
;
case
"新加坡元"
:
currency
=
"SGD"
;
break
;
default
:
break
;
}
return
currency
;
}
@Override
public
Boolean
uploadAttachment
(
AttachmentUploadRequest
attachmentUploadRequest
)
{
String
policyBizId
=
attachmentUploadRequest
.
getPolicyBizId
();
if
(
policyBizId
==
null
)
{
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionStatisticsVO.java
0 → 100644
View file @
b70d4af7
package
com
.
yd
.
csf
.
service
.
vo
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* 佣金统计VO 包含总金额、总入账金额、待入账金额、已入账比例(已入账金额/总金额)、总保单数
*/
@Data
public
class
CommissionStatisticsVO
{
/**
* 总金额
*/
@Schema
(
description
=
"总金额"
)
private
BigDecimal
totalAmount
;
/**
* 总入账金额
*/
@Schema
(
description
=
"总入账金额"
)
private
BigDecimal
totalPaidAmount
;
/**
* 待入账金额
*/
@Schema
(
description
=
"待入账金额"
)
private
BigDecimal
pendingPaidAmount
;
/**
* 已入账比例(已入账金额/总金额)
*/
@Schema
(
description
=
"已入账比例(已入账金额/总金额)"
)
private
String
paidAmountRatio
;
/**
* 总保单数
*/
@Schema
(
description
=
"总保单数"
)
private
Integer
totalPolicyCount
;
}
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionVO.java
View file @
b70d4af7
...
...
@@ -14,6 +14,12 @@ import java.util.Date;
public
class
CommissionVO
implements
Serializable
{
/**
* commission id
*/
@Schema
(
description
=
"commission id"
)
private
Long
id
;
/**
* 保单来佣业务id
*/
@Schema
(
description
=
"保单来佣业务id"
)
...
...
yd-csf-service/src/main/resources/font/DFKai-SB.ttf
0 → 100644
View file @
b70d4af7
File added
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
View file @
b70d4af7
...
...
@@ -52,4 +52,26 @@
left join policy_broker pb on pb.policy_no = p.policy_no and pb.is_deleted = 0
</select>
<!-- 总金额:统计保单预计来佣表 已入账金额:统计来佣表-->
<select
id=
"getCommissionStatistics"
resultType=
"com.yd.csf.service.vo.CommissionStatisticsVO"
>
SELECT
COALESCE(SUM(e.amount), 0) as totalAmount,
COALESCE(SUM(c.amount), 0) as totalPaidAmount,
COUNT(DISTINCT c.policy_no) as totalPolicyCount
FROM commission c
LEFT JOIN (
SELECT policy_no, SUM(amount) as amount
FROM commission_expected
GROUP BY policy_no
) e ON c.policy_no = e.policy_no
<where>
<if
test=
"commissionIdList != null and commissionIdList.size > 0"
>
c.id IN
<foreach
collection=
"commissionIdList"
item=
"item"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
</where>
</select>
</mapper>
yd-csf-service/src/main/resources/mappers/FortuneMapper.xml
View file @
b70d4af7
...
...
@@ -7,6 +7,7 @@
<resultMap
id=
"BaseResultMap"
type=
"com.yd.csf.service.model.Fortune"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"fortuneBizId"
column=
"fortune_biz_id"
/>
<result
property=
"commissionBizId"
column=
"commission_biz_id"
/>
<result
property=
"policyNo"
column=
"policy_no"
/>
<result
property=
"fortunePeriod"
column=
"fortune_period"
/>
<result
property=
"fortuneTotalPeriod"
column=
"fortune_total_period"
/>
...
...
@@ -36,7 +37,7 @@
</resultMap>
<sql
id=
"Base_Column_List"
>
id,fortune_biz_id,policy_no,fortune_period,fortune_total_period,broker_biz_id,
id,fortune_biz_id,
commission_biz_id,
policy_no,fortune_period,fortune_total_period,broker_biz_id,
team_biz_id,grade_commission_rate,share_rate,fortune_name,fortune_type,
amount,currency,status,payout_date,is_tax,
tax_amount,net_amount,salary_biz_id,base_rule_biz_id,settlement_biz_id,
...
...
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