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
8c7d5131
Commit
8c7d5131
authored
Jan 21, 2026
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进v2
parent
232b09ed
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
85 additions
and
24 deletions
+85
-24
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+27
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
+11
-2
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
+23
-6
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FnaServiceImpl.java
+18
-15
yd-csf-service/src/main/java/com/yd/csf/service/vo/FnaVO.java
+6
-1
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
8c7d5131
...
...
@@ -35,9 +35,11 @@ import com.yd.csf.service.vo.PolicyFollowVO;
import
com.yd.feign.config.FeignTokenInterceptor
;
import
com.yd.insurance.base.feign.client.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyFeignClient
;
import
com.yd.insurance.base.feign.request.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyPageRequest
;
import
com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -87,6 +89,8 @@ public class ApiPolicyFollowController {
private
ApiInsuranceReconciliationCompanyFeignClient
apiInsuranceReconciliationCompanyFeignClient
;
@Resource
private
ApiExpectedFortuneService
apiExpectedFortuneService
;
@Resource
private
CommissionExpectedService
commissionExpectedService
;
@PostMapping
(
"/upload/excel"
)
...
...
@@ -535,8 +539,30 @@ public class ApiPolicyFollowController {
return
Result
.
fail
(
ResultCode
.
NULL_ERROR
.
getCode
(),
ResultCode
.
NULL_ERROR
.
getMessage
());
}
PolicyFollowStatusEnum
currentStatusEnum
=
PolicyFollowStatusEnum
.
getEnumByValue
(
changePolicyFollowStatusRequest
.
getStatus
());
// 修改为生效时需要校验、同步预计发佣
if
(
PolicyFollowStatusEnum
.
EFFECTIVE
.
equals
(
currentStatusEnum
))
{
String
productLaunchBizId
=
policyFollow
.
getProductLaunchBizId
();
// 校验产品是否维护预计来佣数据
if
(
ObjectUtils
.
isEmpty
(
productLaunchBizId
))
{
return
Result
.
fail
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"新单跟进记录中,productLaunchBizId不能为空"
);
}
List
<
ApiExpectedSpeciesListResponse
>
expectedSpeciesList
=
commissionExpectedService
.
queryExpectedSpeciesByFeign
(
productLaunchBizId
);
if
(
ObjectUtils
.
isEmpty
(
expectedSpeciesList
))
{
return
Result
.
fail
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"产品未维护预计来佣数据"
);
}
// 校验产品是否维护发佣信息
Boolean
hasCommissionInfo
=
commissionExpectedService
.
checkProductExpectedFortune
(
productLaunchBizId
);
if
(!
hasCommissionInfo
)
{
return
Result
.
fail
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"产品未维护发佣信息"
);
}
}
// 修改逻辑
policyFollowService
.
changePolicyFollowStatus
(
changePolicyFollowStatusRequest
,
policyFollow
);
// 修改为生效时需要同步预计发佣
if
(
PolicyFollowStatusEnum
.
EFFECTIVE
.
equals
(
currentStatusEnum
))
{
// 获取Token
String
token
=
request
.
getHeader
(
"Authorization"
);
// 异步:根据保单生成预计出账记录
...
...
@@ -560,6 +586,7 @@ public class ApiPolicyFollowController {
policyFollow
.
getPolicyNo
(),
e
.
getMessage
(),
e
);
}
});
}
return
Result
.
success
(
true
);
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
View file @
8c7d5131
...
...
@@ -12,10 +12,9 @@ import com.yd.csf.service.model.Policy;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
com.yd.csf.service.vo.ReceivableReportVO
;
import
com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author Zhang Jianan
...
...
@@ -62,6 +61,16 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
void
getExpectedCommissionByProductlaunchId
(
Policy
policy
,
String
productLaunchBizId
,
String
insuranceCompanyBizId
,
String
reconciliationCompany
,
String
reconciliationCompanyCode
,
String
reconciliationCompanyBizId
);
List
<
ApiExpectedSpeciesListResponse
>
queryExpectedSpeciesByFeign
(
String
productLaunchBizId
);
/**
* 检查产品是否维护发佣信息
*
* @param productLaunchBizId 产品计划业务ID
* @return true-已维护发佣信息,false-未维护发佣信息
*/
Boolean
checkProductExpectedFortune
(
String
productLaunchBizId
);
/**
* 应收款报表 - 按保单号和期数维度统计(分页)
* @param page 分页参数
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
View file @
8c7d5131
...
...
@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.common.constant.CommonConstant
;
import
com.yd.common.constant.RedisConstants
;
import
com.yd.common.enums.DictTypeEnum
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
...
...
@@ -25,6 +24,7 @@ import com.yd.csf.service.dao.CommissionExpectedMapper;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
com.yd.csf.service.vo.ReceivableReportVO
;
import
com.yd.product.feign.client.announcementcommissionratio.ApiAnnouncementCommissionRatioFeignClient
;
import
com.yd.product.feign.client.expectedspecies.ApiExpectedSpeciesFeignClient
;
import
com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesListRequest
;
import
com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse
;
...
...
@@ -67,6 +67,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
@Resource
private
ApiExpectedSpeciesFeignClient
apiExpectedSpeciesFeignClient
;
@Resource
private
ApiAnnouncementCommissionRatioFeignClient
apiAnnouncementCommissionRatioFeignClient
;
@Resource
private
RedisUtil
redisUtil
;
...
...
@@ -486,11 +488,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
List
<
GetDictItemListByDictTypeResponse
>
dictTypeResponses
=
redisUtil
.
getCacheObject
(
RedisConstants
.
DICT_LIST
);
if
(
StringUtils
.
isNotBlank
(
productLaunchBizId
))
{
ApiExpectedSpeciesListRequest
apiExpectedSpeciesListRequest
=
new
ApiExpectedSpeciesListRequest
();
apiExpectedSpeciesListRequest
.
setProductLaunchBizId
(
productLaunchBizId
);
Result
<
List
<
ApiExpectedSpeciesListResponse
>>
result
=
apiExpectedSpeciesFeignClient
.
list
(
apiExpectedSpeciesListRequest
);
if
(
result
.
getData
()
!=
null
)
{
List
<
ApiExpectedSpeciesListResponse
>
expectedSpeciesList
=
result
.
getData
();
List
<
ApiExpectedSpeciesListResponse
>
expectedSpeciesList
=
queryExpectedSpeciesByFeign
(
productLaunchBizId
);
List
<
CommissionExpected
>
commissionExpectedList
=
new
ArrayList
<>();
if
(
CollUtil
.
isNotEmpty
(
expectedSpeciesList
))
{
// 计算佣金总期数 list 中 endPeriod最大值
...
...
@@ -546,6 +544,25 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
}
}
}
@Override
public
List
<
ApiExpectedSpeciesListResponse
>
queryExpectedSpeciesByFeign
(
String
productLaunchBizId
)
{
ApiExpectedSpeciesListRequest
apiExpectedSpeciesListRequest
=
new
ApiExpectedSpeciesListRequest
();
apiExpectedSpeciesListRequest
.
setProductLaunchBizId
(
productLaunchBizId
);
Result
<
List
<
ApiExpectedSpeciesListResponse
>>
result
=
apiExpectedSpeciesFeignClient
.
list
(
apiExpectedSpeciesListRequest
);
if
(
ObjectUtils
.
isEmpty
(
result
.
getData
()))
{
return
result
.
getData
();
}
return
Collections
.
emptyList
();
}
@Override
public
Boolean
checkProductExpectedFortune
(
String
productLaunchBizId
)
{
Result
<
Boolean
>
result
=
apiAnnouncementCommissionRatioFeignClient
.
isData
(
productLaunchBizId
);
if
(
result
!=
null
&&
result
.
getData
()
!=
null
)
{
return
result
.
getData
();
}
return
false
;
}
private
BigDecimal
calculateExpectedAmount
(
BigDecimal
premium
,
BigDecimal
commissionRatio
,
String
commissionBizType
,
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FnaServiceImpl.java
View file @
8c7d5131
...
...
@@ -22,6 +22,7 @@ import com.yd.csf.service.enums.FnaStatusEnum;
import
com.yd.csf.service.model.Customer
;
import
com.yd.csf.service.model.Fna
;
import
com.yd.csf.service.model.FnaForm
;
import
com.yd.csf.service.model.Fortune
;
import
com.yd.csf.service.service.CustomerService
;
import
com.yd.csf.service.service.FnaFormService
;
import
com.yd.csf.service.service.FnaService
;
...
...
@@ -50,7 +51,6 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe
@Autowired
private
FnaFormService
fnaFormService
;
@Resource
private
CustomerService
customerService
;
...
...
@@ -207,10 +207,15 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe
List
<
FnaVO
>
fnaVOList
=
fnaList
.
stream
().
map
(
FnaVO:
:
objToVo
).
collect
(
Collectors
.
toList
());
// region 可选
// 1. 关联查询用户信息
// Set<Long> userIdSet = fnaList.stream().map(Fna::getUserId).collect(Collectors.toSet());
// Map<Long, List<User>> userIdUserListMap = userService.listByIds(userIdSet).stream()
// .collect(Collectors.groupingBy(User::getId));
// 1. 关联查询客户信息
Set
<
String
>
userIdSet
=
fnaList
.
stream
().
map
(
Fna:
:
getCustomerBizId
).
collect
(
Collectors
.
toSet
());
List
<
Customer
>
customerList
=
customerService
.
lambdaQuery
()
.
in
(
Customer:
:
getCustomerBizId
)
.
select
(
Customer:
:
getCustomerBizId
,
Customer:
:
getNameCn
)
.
list
();
// 客户映射
Map
<
String
,
Customer
>
customerMap
=
customerList
.
stream
().
collect
(
Collectors
.
toMap
(
Customer:
:
getCustomerBizId
,
f
->
f
));
// 2. 已登录,获取用户点赞、收藏状态
Map
<
Long
,
Boolean
>
fnaIdHasThumbMap
=
new
HashMap
<>();
...
...
@@ -219,16 +224,14 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe
// 填充信息
// fnaVOList.forEach(fnaVO -> {
// Long userId = fnaVO.getUserId();
// User user = null;
// if (userIdUserListMap.containsKey(userId)) {
// user = userIdUserListMap.get(userId).get(0);
// }
// fnaVO.setUser(userService.getUserVO(user));
// fnaVO.setHasThumb(fnaIdHasThumbMap.getOrDefault(fnaVO.getId(), false));
// fnaVO.setHasFavour(fnaIdHasFavourMap.getOrDefault(fnaVO.getId(), false));
// });
fnaVOList
.
forEach
(
fnaVO
->
{
String
customerBizId
=
fnaVO
.
getCustomerBizId
();
Customer
customer
=
customerMap
.
get
(
customerBizId
);
if
(
customer
!=
null
)
{
fnaVO
.
setCustomerNameCn
(
customer
.
getNameCn
());
}
});
// endregion
fnaVOPage
.
setRecords
(
fnaVOList
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/FnaVO.java
View file @
8c7d5131
...
...
@@ -11,7 +11,6 @@ import java.util.List;
/**
* fna视图
*
*/
@Data
public
class
FnaVO
implements
Serializable
{
...
...
@@ -47,6 +46,12 @@ public class FnaVO implements Serializable {
private
String
customerName
;
/**
* 客户姓名中文
*/
@Schema
(
description
=
"客户姓名中文"
)
private
String
customerNameCn
;
/**
* 客户唯一业务ID
*/
@Schema
(
description
=
"客户唯一业务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