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
f447d3aa
Commit
f447d3aa
authored
Mar 04, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
587fbc2a
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
113 additions
and
17 deletions
+113
-17
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+22
-1
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
+38
-15
yd-csf-service/src/main/java/com/yd/csf/service/dao/PolicyBrokerMapper.java
+4
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyBrokerService.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyBrokerServiceImpl.java
+5
-0
yd-csf-service/src/main/resources/mappers/PolicyBrokerMapper.xml
+42
-1
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
f447d3aa
...
...
@@ -46,6 +46,7 @@ import org.apache.commons.lang3.StringUtils;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
...
...
@@ -91,6 +92,9 @@ public class ApiPolicyFollowController {
@Resource
private
ApiPolicyFollowService
apiPolicyFollowService
;
@Resource
private
ApiExpectedFortuneService
apiExpectedFortuneService
;
@PostMapping
(
"/upload/excel"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -542,12 +546,29 @@ public class ApiPolicyFollowController {
String
token
=
request
.
getHeader
(
"Authorization"
);
log
.
info
(
"修改跟进状态获取token:{}"
,
token
);
// 同步:根据保单生成预计出账记录
apiPolicyFollowService
.
generateExpectedFortuneSync
(
token
,
policyFollow
.
getPolicyNo
());
execute
(
token
,
policyFollow
.
getPolicyNo
());
}
return
Result
.
success
(
true
);
}
/**
* 异步处理
*
* @return
*/
public
Result
execute
(
String
token
,
String
policyNo
)
{
// 调用 ApiExpectedFortuneService 的 generateSyncWithLogAndRedis(同步版本,包含日志和Redis处理)
ApiGenerateExpectedFortuneRequest
generateExpectedFortuneRequest
=
new
ApiGenerateExpectedFortuneRequest
();
generateExpectedFortuneRequest
.
setPolicyNo
(
policyNo
);
log
.
info
(
"生成预计发佣generateSyncWithLogAndRedis——>PolicyNo:{}"
,
policyNo
);
Result
<
ApiGenerateExpectedFortuneResponse
>
result
=
apiExpectedFortuneService
.
generateSyncWithLogAndRedis
(
generateExpectedFortuneRequest
);
if
(
result
!=
null
&&
result
.
getCode
()
==
200
)
{
log
.
info
(
"新单跟进-同步生成预计出账记录成功:保单号={}"
,
policyNo
);
}
return
Result
.
success
();
}
/**
* 新单跟进状态列表查询
*
* @param policyBizId
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
View file @
f447d3aa
...
...
@@ -168,21 +168,21 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
throw
new
BusinessException
(
"保单和转介人信息不存在"
);
}
//查询所有绑定基本法的业务员(客户端用户表用户), 计算业务员绑定的所有基本法对应的计算值, 新增积分明细和发佣记录
List
<
CommissionRuleBinding
>
commissionRuleBindingList
=
new
ArrayList
<>();
//根据租户ID和项目ID查询客户端用户ID列表
Result
<
List
<
String
>>
result
=
apiClientUserFeignClient
.
clientUserBizIdList
(
TenantEnum
.
YD
.
getTenantBizId
(),
ProjectEnum
.
CSF_MINI_PROGRAM
.
getProjectBizId
());
if
(!
CollectionUtils
.
isEmpty
(
result
.
getData
()))
{
commissionRuleBindingList
=
iCommissionRuleBindingService
.
queryList
(
CommissionRuleBindingDto
.
builder
()
.
targetIdList
(
result
.
getData
())
.
build
());
}
if
(
CollectionUtils
.
isEmpty
(
commissionRuleBindingList
))
{
throw
new
BusinessException
(
"绑定基本法数据不存在"
);
}
//
//查询所有绑定基本法的业务员(客户端用户表用户), 计算业务员绑定的所有基本法对应的计算值, 新增积分明细和发佣记录
//
List<CommissionRuleBinding> commissionRuleBindingList = new ArrayList<>();
//
//根据租户ID和项目ID查询客户端用户ID列表
//
Result<List<String>> result = apiClientUserFeignClient.clientUserBizIdList(TenantEnum.YD.getTenantBizId(), ProjectEnum.CSF_MINI_PROGRAM.getProjectBizId());
//
if (!CollectionUtils.isEmpty(result.getData())) {
//
commissionRuleBindingList = iCommissionRuleBindingService.queryList(CommissionRuleBindingDto.builder()
//
.targetIdList(result.getData())
//
.build());
//
}
//
if (CollectionUtils.isEmpty(commissionRuleBindingList)) {
//
throw new BusinessException("绑定基本法数据不存在");
//
}
//遍历保单转介人列表信息 -> 调用基本法算出预计发佣列表(同步执行)
executeSync
(
queryPolicyAndBrokerDtoList
,
commissionRuleBindingList
,
request
.
getPolicyNo
());
executeSync
(
queryPolicyAndBrokerDtoList
,
request
.
getPolicyNo
());
return
Result
.
success
(
null
,
"生成预计发佣成功"
);
}
...
...
@@ -336,16 +336,19 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
});
}
@Override
public
Result
executeSync
(
List
<
QueryPolicyAndBrokerDto
>
queryPolicyAndBrokerDtoList
,
List
<
CommissionRuleBinding
>
commissionRuleBindingList
,
String
policyNo
)
{
return
null
;
}
/**
* 同步处理-> 遍历保单转介人列表信息 -> 调用基本法算出预计发佣列表
*
* @param queryPolicyAndBrokerDtoList
* @param commissionRuleBindingList
* @param policyNo
* @return
*/
public
Result
executeSync
(
List
<
QueryPolicyAndBrokerDto
>
queryPolicyAndBrokerDtoList
,
List
<
CommissionRuleBinding
>
commissionRuleBindingList
,
String
policyNo
)
{
// 使用编程式事务,确保方法内的事务一致性
...
...
@@ -357,6 +360,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
throw
new
BusinessException
(
"保单的供款年期不存在"
);
}
List
<
CommissionRuleBinding
>
commissionRuleBindingList
=
brokerRelUserIdList
(
brokerDto
);
for
(
int
i
=
1
;
i
<=
paymentTerm
;
i
++)
{
executeBilling
(
ExecuteBillingDto
.
builder
()
.
name
(
brokerDto
.
getBrokerName
())
...
...
@@ -364,6 +369,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
.
issueNumber
(
i
)
.
build
());
if
(!
CollectionUtils
.
isEmpty
(
commissionRuleBindingList
))
{
for
(
CommissionRuleBinding
binding
:
commissionRuleBindingList
)
{
executeReward
(
ExecuteBillingDto
.
builder
()
.
clientUserBizId
(
binding
.
getTargetId
())
...
...
@@ -374,6 +380,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
}
}
}
}
//批量设置应付款编号
updatePayableNoBatch
(
policyNo
);
...
...
@@ -404,6 +411,22 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
});
}
/**
* 查询和当前转介人相关关系(推荐,一级管理,二级管理,辅导)的客户端用户ID列表数据
* @param brokerDto
* @return
*/
public
List
<
CommissionRuleBinding
>
brokerRelUserIdList
(
QueryPolicyAndBrokerDto
brokerDto
)
{
List
<
CommissionRuleBinding
>
commissionRuleBindingList
=
new
ArrayList
<>();
List
<
String
>
userIdList
=
policyBrokerService
.
selectRelatedBrokerBizIds
(
brokerDto
.
getBrokerBizId
());
if
(!
CollectionUtils
.
isEmpty
(
userIdList
))
{
commissionRuleBindingList
=
iCommissionRuleBindingService
.
queryList
(
CommissionRuleBindingDto
.
builder
()
.
targetIdList
(
userIdList
)
.
build
());
}
return
commissionRuleBindingList
;
}
private
void
updatePayableNoBatch
(
String
policyNo
)
{
// 查询最新一条有 payableNo 记录
ExpectedFortune
latest
=
iExpectedFortuneService
.
getOne
(
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dao/PolicyBrokerMapper.java
View file @
f447d3aa
...
...
@@ -2,6 +2,9 @@ package com.yd.csf.service.dao;
import
com.yd.csf.service.model.PolicyBroker
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* @author Zhang Jianan
...
...
@@ -11,6 +14,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public
interface
PolicyBrokerMapper
extends
BaseMapper
<
PolicyBroker
>
{
List
<
String
>
selectRelatedBrokerBizIds
(
@Param
(
"clientUserId"
)
String
clientUserId
);
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyBrokerService.java
View file @
f447d3aa
...
...
@@ -18,4 +18,6 @@ public interface PolicyBrokerService extends IService<PolicyBroker> {
PolicyBroker
queryOne
(
QueryPolicyBrokerDto
dto
);
void
removeByPolicyBizId
(
String
policyBizId
);
List
<
String
>
selectRelatedBrokerBizIds
(
String
clientUserId
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyBrokerServiceImpl.java
View file @
f447d3aa
...
...
@@ -49,6 +49,11 @@ public class PolicyBrokerServiceImpl extends ServiceImpl<PolicyBrokerMapper, Pol
.
eq
(
PolicyBroker:
:
getPolicyBizId
,
policyBizId
)
);
}
@Override
public
List
<
String
>
selectRelatedBrokerBizIds
(
String
clientUserId
)
{
return
baseMapper
.
selectRelatedBrokerBizIds
(
clientUserId
);
}
}
...
...
yd-csf-service/src/main/resources/mappers/PolicyBrokerMapper.xml
View file @
f447d3aa
...
...
@@ -22,10 +22,51 @@
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
</resultMap>
<!-- 在PolicyBrokerMapper.xml里面写个SQL,通过传入的客户端用户ID字段,查询该客户端用户ID在三张关系表里面的,推荐人的客户端用户ID, 一级管理人客户端用户ID,二级管理人客户端用户ID,辅导人客户端用户ID,这些客户端用户ID整合返回List<String>客户端用户ID列表-->
<sql
id=
"Base_Column_List"
>
id,policy_biz_id,policy_no,broker_name,broker_biz_id,gender,internal_code,
team,broker_ratio,team_biz_id,remark,is_deleted,creator_id,updater_id,
create_time,update_time
</sql>
<!-- 根据客户端用户ID查询关联的推荐人、管理人(一级、二级)、辅导人ID列表 -->
<select
id=
"selectRelatedBrokerBizIds"
parameterType=
"java.lang.String"
resultType=
"java.lang.String"
>
SELECT DISTINCT related_user_id FROM (
-- 推荐人
SELECT referrer_id AS related_user_id
FROM agent_referral_relation
WHERE agent_id = #{clientUserId}
AND is_deleted = 0
AND is_active = 1
UNION
-- 一级管理人
SELECT manage_id AS related_user_id
FROM agent_manage_relation
WHERE agent_id = #{clientUserId}
AND is_deleted = 0
AND is_active = 1
UNION
-- 二级管理人:通过一级管理人关联查询
SELECT m2.manage_id AS related_user_id
FROM agent_manage_relation m1
JOIN agent_manage_relation m2 ON m1.manage_id = m2.agent_id
WHERE m1.agent_id = #{clientUserId}
AND m1.is_deleted = 0 AND m1.is_active = 1
AND m2.is_deleted = 0 AND m2.is_active = 1
UNION
-- 辅导人
SELECT tutor_id AS related_user_id
FROM agent_tutoring_relation
WHERE agent_id = #{clientUserId}
AND is_deleted = 0
AND is_active = 1
) AS t
WHERE related_user_id IS NOT NULL
</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