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
a2d0c11b
Commit
a2d0c11b
authored
Nov 10, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
基本法
parent
8d0d7161
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
357 additions
and
135 deletions
+357
-135
yd-csf-api/src/main/java/com/yd/csf/api/dto/AlgorithmDto.java
+6
-1
yd-csf-api/src/main/java/com/yd/csf/api/dto/AlgorithmResDto.java
+0
-3
yd-csf-api/src/main/java/com/yd/csf/api/dto/ExecuteBillingDto.java
+18
-4
yd-csf-api/src/main/java/com/yd/csf/api/dto/GenerateAgentDetailFycDto.java
+10
-7
yd-csf-api/src/main/java/com/yd/csf/api/dto/GenerateFortuneDto.java
+3
-4
yd-csf-api/src/main/java/com/yd/csf/api/dto/SqlAlgorithmResultDto.java
+18
-2
yd-csf-api/src/main/java/com/yd/csf/api/dto/SqlTemplateParamDto.java
+35
-3
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAgentDetailFycServiceImpl.java
+23
-50
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiBasicLawCalculateServiceImpl.java
+0
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiVariableServiceImpl.java
+45
-37
yd-csf-api/src/main/java/com/yd/csf/api/utils/FormulaParser.java
+28
-22
yd-csf-feign/src/main/java/com/yd/csf/feign/request/commissionruleconfig/ApiCommissionRuleConfigAddRequest.java
+3
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/request/commissionruleconfig/ApiCommissionRuleConfigEditRequest.java
+3
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/request/variable/ApiVariableAddRequest.java
+1
-1
yd-csf-feign/src/main/java/com/yd/csf/feign/request/variable/ApiVariableEditRequest.java
+1
-1
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionMapper.java
+6
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionBindPolicyBrokerDto.java
+103
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionRuleBindingDto.java
+4
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionRuleBinding.java
+6
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionService.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneService.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionRuleBindingServiceImpl.java
+1
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+10
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
+11
-0
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
+18
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/dto/AlgorithmDto.java
View file @
a2d0c11b
...
...
@@ -21,11 +21,16 @@ public class AlgorithmDto {
private
String
batchBizId
;
/**
* 转介人业务ID(客户端用户表唯一业务ID)
*
保单绑定的
转介人业务ID(客户端用户表唯一业务ID)
*/
private
String
brokerBizId
;
/**
* 获得积分的用户(客户端用户表唯一业务ID)
*/
private
String
clientUserBizId
;
/**
* 基本法配置表唯一业务ID(业务员绑定的基本法类型(类型中含多个基本法项目(基本法项目绑定公式)))
*/
private
String
ruleBizId
;
...
...
yd-csf-api/src/main/java/com/yd/csf/api/dto/AlgorithmResDto.java
View file @
a2d0c11b
package
com
.
yd
.
csf
.
api
.
dto
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.List
;
...
...
@@ -12,7 +10,6 @@ import java.util.List;
@Data
public
class
AlgorithmResDto
{
/**
* 基本法配置表唯一业务ID(基本法类型)
*/
...
...
yd-csf-api/src/main/java/com/yd/csf/api/dto/ExecuteBillingDto.java
View file @
a2d0c11b
package
com
.
yd
.
csf
.
api
.
dto
;
import
com.yd.csf.service.dto.CommissionBindPolicyBrokerDto
;
import
com.yd.csf.service.model.Commission
;
import
com.yd.csf.service.model.CommissionRuleBinding
;
import
com.yd.csf.service.model.Policy
;
import
com.yd.csf.service.model.PolicyBroker
;
import
lombok.AllArgsConstructor
;
...
...
@@ -14,11 +16,23 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
public
class
ExecuteBillingDto
{
private
PolicyBroker
policyBroker
;
/**
* 获得积分的业务员(客户端用户表唯一业务ID)
*/
private
String
clientUserBizId
;
private
Policy
policy
;
private
Commission
commission
;
/**
* 获得积分的业务员姓名
*/
private
String
name
;
/**
* 出账的批次号
*/
private
String
batchBizId
;
/**
* 来佣绑定的保单和转介人(销售)信息封装
*/
private
CommissionBindPolicyBrokerDto
brokerDto
;
}
yd-csf-api/src/main/java/com/yd/csf/api/dto/GenerateAgentDetailFycDto.java
View file @
a2d0c11b
package
com
.
yd
.
csf
.
api
.
dto
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
...
...
@@ -18,27 +16,32 @@ import java.util.List;
public
class
GenerateAgentDetailFycDto
{
/**
*
业务员ID(客户端用户表唯一业务ID,转介人
业务ID)
*
获得积分的业务员(客户端用户唯一
业务ID)
*/
private
String
agentId
;
/**
* 积分来源类型:保单转介费、一级管理奖、二级管理奖、辅导津贴奖、终身推荐奖
*
提供
积分来源类型:保单转介费、一级管理奖、二级管理奖、辅导津贴奖、终身推荐奖
*/
private
String
sourceType
;
/**
* 积分提供的保单号
* 提供积分的业务员(客户端用户唯一业务ID)
*/
private
String
provider
;
/**
* 提供积分的保单号
*/
private
String
policyNo
;
/**
* 保单发佣批次ID
*
提供积分的
保单发佣批次ID
*/
private
String
batchBizId
;
/**
*
转介人绑定的基本法列表对应计算值
*
获得积分的业务员绑定的基本法列表(基本法计算值列表)
*/
private
List
<
AlgorithmResDto
>
algorithmResDtoList
;
}
yd-csf-api/src/main/java/com/yd/csf/api/dto/GenerateFortuneDto.java
View file @
a2d0c11b
package
com
.
yd
.
csf
.
api
.
dto
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
...
...
@@ -41,12 +40,12 @@ public class GenerateFortuneDto {
private
Integer
fortuneTotalPeriod
;
/**
* 转介人
* 转介人
(获得积分的业务员)
*/
private
String
broker
;
/**
* 转介人业务ID
* 转介人业务ID
(获得积分的业务员)
*/
private
String
brokerBizId
;
...
...
@@ -96,7 +95,7 @@ public class GenerateFortuneDto {
private
String
ruleItemBizId
;
/**
*
转介人
绑定的基本法列表对应计算值
*
获得积分业务员
绑定的基本法列表对应计算值
*/
private
List
<
AlgorithmResDto
>
algorithmResDtoList
;
}
yd-csf-api/src/main/java/com/yd/csf/api/dto/SqlAlgorithmResultDto.java
View file @
a2d0c11b
...
...
@@ -8,15 +8,31 @@ import lombok.Data;
@Data
public
class
SqlAlgorithmResultDto
{
//以下通用字段
/**
* 计算的积分值提供者(业务员-客户端用户业务ID)
*/
private
String
provider
;
/**
* 计算值
* 计算
的积分
值
*/
private
String
calculatedValue
;
//TODO 后续扩展
//以下扩展字段
/**
* 计算的积分值提供者(业务员-客户端用户业务ID)绑定的保单发佣批次ID
*/
private
String
batchBizId
;
/**
* 计算的积分值提供者(业务员-客户端用户业务ID)绑定的保单发佣业务id
*/
private
String
fortuneBizId
;
/**
* 计算的积分值提供者(业务员-客户端用户业务ID)绑定的保单号
*/
private
String
policyNo
;
}
yd-csf-api/src/main/java/com/yd/csf/api/dto/SqlTemplateParamDto.java
View file @
a2d0c11b
...
...
@@ -15,7 +15,27 @@ import lombok.NoArgsConstructor;
public
class
SqlTemplateParamDto
{
/**
* 条件类型表唯一业务ID
* 保单绑定转介人业务ID(销售业务员,客户端用户表唯一业务ID,也可以单独用作客户端用户ID非绑定保单使用)
*/
private
String
brokerBizId
;
/**
* 获得积分的用户(客户端用户表唯一业务ID)
*/
private
String
clientUserBizId
;
/**
* 保单发佣批次ID
*/
private
String
batchBizId
;
/**
* 保单来佣业务id
*/
private
String
commissionBizId
;
/**
* 基本法-条件类型表唯一业务ID
*/
private
String
conditionTypeBizId
;
...
...
@@ -24,13 +44,25 @@ public class SqlTemplateParamDto {
*/
private
String
policyNo
;
//======计算SQL-产品公告比例入参参数-start======
/**
* 保险产品唯一业务ID
*/
private
String
productBizId
;
/**
* 产品代码
*/
private
String
productCode
;
/**
*
保单绑定转介人业务ID(销售业务员,客户端用户表唯一业务ID)
*
供款年期(产品有5年期的有10年期等)(总期数)
*/
private
String
brokerBizId
;
private
Integer
term
;
/**
* 期数(数字代表第几年)
*/
private
Integer
issueNumber
;
//======计算SQL-产品公告比例入参参数-end======
}
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAgentDetailFycServiceImpl.java
View file @
a2d0c11b
...
...
@@ -10,6 +10,7 @@ import com.yd.csf.service.model.AgentDetailFyc;
import
com.yd.csf.service.service.IAgentAccumulatedFycService
;
import
com.yd.csf.service.service.IAgentDetailFycService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
...
...
@@ -45,56 +46,28 @@ public class ApiAgentDetailFycServiceImpl implements ApiAgentDetailFycService {
}
if
(!
CollectionUtils
.
isEmpty
(
algorithmResDtoList
))
{
for
(
AlgorithmResDto
algorithmResDto
:
algorithmResDtoList
){
if
(!
CollectionUtils
.
isEmpty
(
algorithmResDto
.
getSqlAlgorithmResultDtoList
()))
{
for
(
SqlAlgorithmResultDto
sqlAlgorithmResultDto
:
algorithmResDto
.
getSqlAlgorithmResultDtoList
())
{
AgentDetailFyc
agentDetailFyc
=
new
AgentDetailFyc
();
//变化前的业务员总FYC积分 -> 查询
agentDetailFyc
.
setBeforeFyc
(
totalFyc
);
//累加积分值
totalFyc
=
totalFyc
.
add
(
new
BigDecimal
(
sqlAlgorithmResultDto
.
getCalculatedValue
()));
//变化值(-代表减少)
agentDetailFyc
.
setChangeFyc
(
sqlAlgorithmResultDto
.
getCalculatedValue
());
//变化后的业务员总FYC积分
agentDetailFyc
.
setAfterFyc
(
totalFyc
);
//业务员ID(客户端用户表唯一业务ID)获取积分的人
agentDetailFyc
.
setAgentId
(
dto
.
getAgentId
());
//积分来源类型 TODO
// agentDetailFyc.setSourceType();
//积分来源基本法项目配置表唯一业务ID
agentDetailFyc
.
setRuleItemBizId
(
algorithmResDto
.
getRuleItemBizId
());
//保单发佣批次ID
agentDetailFyc
.
setBatchBizId
(
dto
.
getBatchBizId
());
//积分提供的保单号
agentDetailFyc
.
setPolicyNo
(
dto
.
getPolicyNo
());
//积分提供者(客户端用户表唯一业务ID)
agentDetailFyc
.
setProvideId
(
sqlAlgorithmResultDto
.
getProvider
());
agentDetailFycList
.
add
(
agentDetailFyc
);
}
}
else
{
AgentDetailFyc
agentDetailFyc
=
new
AgentDetailFyc
();
//变化前的业务员总FYC积分 -> 查询
agentDetailFyc
.
setBeforeFyc
(
totalFyc
);
//累加积分值
totalFyc
=
totalFyc
.
add
(
algorithmResDto
.
getCalculatedValue
());
//变化值(-代表减少)
agentDetailFyc
.
setChangeFyc
(
algorithmResDto
.
getCalculatedValue
().
toString
());
//变化后的业务员总FYC积分
agentDetailFyc
.
setAfterFyc
(
totalFyc
);
//业务员ID(客户端用户表唯一业务ID)获取积分的人
agentDetailFyc
.
setAgentId
(
dto
.
getAgentId
());
//积分来源类型 TODO
// agentDetailFyc.setSourceType();
//积分来源基本法项目配置表唯一业务ID
agentDetailFyc
.
setRuleItemBizId
(
algorithmResDto
.
getRuleItemBizId
());
//保单发佣批次ID
agentDetailFyc
.
setBatchBizId
(
dto
.
getBatchBizId
());
//积分提供的保单号
agentDetailFyc
.
setPolicyNo
(
dto
.
getPolicyNo
());
//积分提供者(客户端用户表唯一业务ID)
// agentDetailFyc.setProvideId(sqlAlgorithmResultDto.getProvider());
agentDetailFycList
.
add
(
agentDetailFyc
);
}
AgentDetailFyc
agentDetailFyc
=
new
AgentDetailFyc
();
//变化前的业务员总FYC积分 -> 查询
agentDetailFyc
.
setBeforeFyc
(
totalFyc
);
//累加积分值
totalFyc
=
totalFyc
.
add
(
algorithmResDto
.
getCalculatedValue
());
//变化值(-代表减少)
agentDetailFyc
.
setChangeFyc
(
algorithmResDto
.
getCalculatedValue
().
toString
());
//变化后的业务员总FYC积分
agentDetailFyc
.
setAfterFyc
(
totalFyc
);
//获得积分的业务员(客户端用户唯一业务ID)
agentDetailFyc
.
setAgentId
(
dto
.
getAgentId
());
//积分来源类型 TODO
// agentDetailFyc.setSourceType();
//积分来源基本法项目配置表唯一业务ID
agentDetailFyc
.
setRuleItemBizId
(
algorithmResDto
.
getRuleItemBizId
());
//提供积分的保单发佣批次ID
agentDetailFyc
.
setBatchBizId
(
dto
.
getBatchBizId
());
//提供积分的保单号
agentDetailFyc
.
setPolicyNo
(
dto
.
getPolicyNo
());
//提供积分的业务员(客户端用户唯一业务ID)
agentDetailFyc
.
setProvideId
(
dto
.
getProvider
());
agentDetailFycList
.
add
(
agentDetailFyc
);
}
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiBasicLawCalculateServiceImpl.java
View file @
a2d0c11b
This diff is collapsed.
Click to expand it.
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiVariableServiceImpl.java
View file @
a2d0c11b
...
...
@@ -26,6 +26,7 @@ import com.yd.csf.service.dto.VariableDto;
import
com.yd.csf.service.model.Variable
;
import
com.yd.csf.service.service.IRelObjectConditionService
;
import
com.yd.csf.service.service.IVariableService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -115,26 +116,30 @@ public class ApiVariableServiceImpl implements ApiVariableService {
iVariableService
.
saveOrUpdate
(
variable
);
//绑定的条件类型业务ID - 保存对象条件关系表数据
List
<
String
>
conditionTypeBizIdList
=
new
ArrayList
<>();
conditionTypeBizIdList
.
add
(
request
.
getConditionTypeBizId
());
apiRelObjectConditionService
.
saveRelList
(
ApiRelObjectConditionDto
.
builder
()
.
objectBizId
(
variable
.
getVariableBizId
())
.
objectName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getName
())
.
objectTableName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
objectType
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
conditionTypeBizIdList
(
conditionTypeBizIdList
)
.
build
());
if
(
StringUtils
.
isNotBlank
(
request
.
getConditionTypeBizId
()))
{
List
<
String
>
conditionTypeBizIdList
=
new
ArrayList
<>();
conditionTypeBizIdList
.
add
(
request
.
getConditionTypeBizId
());
apiRelObjectConditionService
.
saveRelList
(
ApiRelObjectConditionDto
.
builder
()
.
objectBizId
(
variable
.
getVariableBizId
())
.
objectName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getName
())
.
objectTableName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
objectType
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
conditionTypeBizIdList
(
conditionTypeBizIdList
)
.
build
());
}
//绑定的sql模板业务ID - 保存对象sql模板关系表数据
List
<
String
>
sqlTemplateBizIdList
=
new
ArrayList
<>();
sqlTemplateBizIdList
.
add
(
request
.
getSqlTemplateBizId
());
apiRelObjectSqlService
.
saveRelList
(
ApiRelObjectSqlDto
.
builder
()
.
objectBizId
(
variable
.
getVariableBizId
())
.
objectName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getName
())
.
objectTableName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
objectType
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
sqlTemplateBizIdList
(
sqlTemplateBizIdList
)
.
build
());
if
(
StringUtils
.
isNotBlank
(
request
.
getSqlTemplateBizId
()))
{
List
<
String
>
sqlTemplateBizIdList
=
new
ArrayList
<>();
sqlTemplateBizIdList
.
add
(
request
.
getSqlTemplateBizId
());
apiRelObjectSqlService
.
saveRelList
(
ApiRelObjectSqlDto
.
builder
()
.
objectBizId
(
variable
.
getVariableBizId
())
.
objectName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getName
())
.
objectTableName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
objectType
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
sqlTemplateBizIdList
(
sqlTemplateBizIdList
)
.
build
());
}
return
Result
.
success
();
}
...
...
@@ -171,27 +176,30 @@ public class ApiVariableServiceImpl implements ApiVariableService {
iVariableService
.
saveOrUpdate
(
variable
);
//绑定的条件类型业务ID - 保存对象条件关系表数据
List
<
String
>
conditionTypeBizIdList
=
new
ArrayList
<>();
conditionTypeBizIdList
.
add
(
request
.
getConditionTypeBizId
());
apiRelObjectConditionService
.
saveRelList
(
ApiRelObjectConditionDto
.
builder
()
.
objectBizId
(
variable
.
getVariableBizId
())
.
objectName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getName
())
.
objectTableName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
objectType
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
conditionTypeBizIdList
(
conditionTypeBizIdList
)
.
build
());
if
(
StringUtils
.
isNotBlank
(
request
.
getConditionTypeBizId
()))
{
List
<
String
>
conditionTypeBizIdList
=
new
ArrayList
<>();
conditionTypeBizIdList
.
add
(
request
.
getConditionTypeBizId
());
apiRelObjectConditionService
.
saveRelList
(
ApiRelObjectConditionDto
.
builder
()
.
objectBizId
(
variable
.
getVariableBizId
())
.
objectName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getName
())
.
objectTableName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
objectType
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
conditionTypeBizIdList
(
conditionTypeBizIdList
)
.
build
());
}
//绑定的sql模板业务ID - 保存对象sql模板关系表数据
List
<
String
>
sqlTemplateBizIdList
=
new
ArrayList
<>();
sqlTemplateBizIdList
.
add
(
request
.
getSqlTemplateBizId
());
apiRelObjectSqlService
.
saveRelList
(
ApiRelObjectSqlDto
.
builder
()
.
objectBizId
(
variable
.
getVariableBizId
())
.
objectName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getName
())
.
objectTableName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
objectType
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
sqlTemplateBizIdList
(
sqlTemplateBizIdList
)
.
build
());
if
(
StringUtils
.
isNotBlank
(
request
.
getSqlTemplateBizId
()))
{
List
<
String
>
sqlTemplateBizIdList
=
new
ArrayList
<>();
sqlTemplateBizIdList
.
add
(
request
.
getSqlTemplateBizId
());
apiRelObjectSqlService
.
saveRelList
(
ApiRelObjectSqlDto
.
builder
()
.
objectBizId
(
variable
.
getVariableBizId
())
.
objectName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getName
())
.
objectTableName
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
objectType
(
CommonEnum
.
UID_TYPE_VARIABLE
.
getCode
())
.
sqlTemplateBizIdList
(
sqlTemplateBizIdList
)
.
build
());
}
return
Result
.
success
();
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/utils/FormulaParser.java
View file @
a2d0c11b
...
...
@@ -7,7 +7,7 @@ import java.util.regex.*;
* 公式解析工具类
*/
public
class
FormulaParser
{
/**
* 从公式字符串中解析出所有变量业务ID
* @param calculationFormulaBizId 公式字符串,如 "(variable_1001 + variable_2123) * variable_4455"
...
...
@@ -15,22 +15,22 @@ public class FormulaParser {
*/
public
static
Set
<
String
>
parseVariableBizIds
(
String
calculationFormulaBizId
)
{
Set
<
String
>
variableIds
=
new
HashSet
<>();
if
(
calculationFormulaBizId
==
null
||
calculationFormulaBizId
.
trim
().
isEmpty
())
{
return
variableIds
;
}
//
正则表达式匹配 variable_ 后面跟着数字的模式
Pattern
pattern
=
Pattern
.
compile
(
"variable_
\\d
+"
);
//
修改正则表达式以匹配新的变量ID格式(包含字母和数字)
Pattern
pattern
=
Pattern
.
compile
(
"variable_
[a-zA-Z0-9]
+"
);
Matcher
matcher
=
pattern
.
matcher
(
calculationFormulaBizId
);
while
(
matcher
.
find
())
{
variableIds
.
add
(
matcher
.
group
());
}
return
variableIds
;
}
/**
* 从公式字符串中解析出所有变量业务ID(返回列表,保持顺序)
* @param calculationFormulaBizId 公式字符串
...
...
@@ -38,21 +38,22 @@ public class FormulaParser {
*/
public
static
List
<
String
>
parseVariableBizIdsOrdered
(
String
calculationFormulaBizId
)
{
List
<
String
>
variableIds
=
new
ArrayList
<>();
if
(
calculationFormulaBizId
==
null
||
calculationFormulaBizId
.
trim
().
isEmpty
())
{
return
variableIds
;
}
Pattern
pattern
=
Pattern
.
compile
(
"variable_\\d+"
);
// 修改正则表达式以匹配新的变量ID格式(包含字母和数字)
Pattern
pattern
=
Pattern
.
compile
(
"variable_[a-zA-Z0-9]+"
);
Matcher
matcher
=
pattern
.
matcher
(
calculationFormulaBizId
);
while
(
matcher
.
find
())
{
variableIds
.
add
(
matcher
.
group
());
}
return
variableIds
;
}
/**
* 从公式字符串中解析出纯数字ID部分
* @param calculationFormulaBizId 公式字符串
...
...
@@ -60,25 +61,30 @@ public class FormulaParser {
*/
public
static
Set
<
Long
>
parseVariableNumericIds
(
String
calculationFormulaBizId
)
{
Set
<
Long
>
numericIds
=
new
HashSet
<>();
if
(
calculationFormulaBizId
==
null
||
calculationFormulaBizId
.
trim
().
isEmpty
())
{
return
numericIds
;
}
// 匹配 variable_ 后面的
数字部分
Pattern
pattern
=
Pattern
.
compile
(
"variable_(
\\d
+)"
);
// 匹配 variable_ 后面的
字母数字部分(由于新格式可能包含字母,此方法可能不再适用)
Pattern
pattern
=
Pattern
.
compile
(
"variable_(
[a-zA-Z0-9]
+)"
);
Matcher
matcher
=
pattern
.
matcher
(
calculationFormulaBizId
);
while
(
matcher
.
find
())
{
try
{
Long
numericId
=
Long
.
parseLong
(
matcher
.
group
(
1
));
numericIds
.
add
(
numericId
);
// 注意:新格式可能包含字母,无法直接转换为Long
// 这里保留原有逻辑,但实际可能返回空集合
String
idPart
=
matcher
.
group
(
1
);
if
(
idPart
.
matches
(
"\\d+"
))
{
Long
numericId
=
Long
.
parseLong
(
idPart
);
numericIds
.
add
(
numericId
);
}
}
catch
(
NumberFormatException
e
)
{
// 忽略格式错误的ID
System
.
err
.
println
(
"无效的数字ID: "
+
matcher
.
group
(
1
));
}
}
return
numericIds
;
}
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/request/commissionruleconfig/ApiCommissionRuleConfigAddRequest.java
View file @
a2d0c11b
package
com
.
yd
.
csf
.
feign
.
request
.
commissionruleconfig
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
...
...
@@ -23,11 +24,13 @@ public class ApiCommissionRuleConfigAddRequest {
/**
* 生效开始日期
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
effectiveStart
;
/**
* 生效结束日期
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
effectiveEnd
;
/**
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/request/commissionruleconfig/ApiCommissionRuleConfigEditRequest.java
View file @
a2d0c11b
package
com
.
yd
.
csf
.
feign
.
request
.
commissionruleconfig
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
...
...
@@ -28,11 +29,13 @@ public class ApiCommissionRuleConfigEditRequest {
/**
* 生效开始日期
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
effectiveStart
;
/**
* 生效结束日期
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
effectiveEnd
;
/**
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/request/variable/ApiVariableAddRequest.java
View file @
a2d0c11b
...
...
@@ -28,7 +28,7 @@ public class ApiVariableAddRequest {
/**
* 变量值
*/
@NotBlank
(
message
=
"变量值不能为空"
)
//
@NotBlank(message = "变量值不能为空")
private
String
value
;
// /**
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/request/variable/ApiVariableEditRequest.java
View file @
a2d0c11b
...
...
@@ -35,7 +35,7 @@ public class ApiVariableEditRequest {
/**
* 变量值
*/
@NotBlank
(
message
=
"变量值不能为空"
)
//
@NotBlank(message = "变量值不能为空")
private
String
value
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionMapper.java
View file @
a2d0c11b
package
com
.
yd
.
csf
.
service
.
dao
;
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
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* @author Zhang Jianan
...
...
@@ -11,6 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public
interface
CommissionMapper
extends
BaseMapper
<
Commission
>
{
List
<
CommissionBindPolicyBrokerDto
>
queryCommissionBindPolicyBrokerList
(
@Param
(
"dto"
)
CommissionDto
dto
);
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionBindPolicyBrokerDto.java
0 → 100644
View file @
a2d0c11b
package
com
.
yd
.
csf
.
service
.
dto
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* 来佣绑定的保单和转介人信息封装
*/
@Data
public
class
CommissionBindPolicyBrokerDto
{
/**
* 保单号
*/
private
String
policyNo
;
//======来佣信息start=======
/**
* 保单来佣业务id
*/
private
String
commissionBizId
;
/**
* 佣金期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
private
Integer
commissionPeriod
;
/**
* 总来佣期数
*/
private
Integer
totalPeriod
;
/**
* 来佣名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
private
String
commissionName
;
/**
* 来佣类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
private
String
commissionType
;
/**
* 来佣金额
*/
private
BigDecimal
amount
;
/**
* 来佣币种
*/
private
String
currency
;
/**
* 来佣日期
*/
private
Date
commissionDate
;
/**
* 来佣状态 0=未比对 1=比对成功 2=比对失败
*/
private
String
commissionStatus
;
//======来佣信息end=======
//======保单信息start=======
/**
* 用户业务id
*/
private
String
userBizId
;
/**
* 产品业务id
*/
private
String
planBizId
;
/**
* 产品代码
*/
private
String
productCode
;
//======保单信息end=======
//======保单转介人信息start=======
/**
* 转介人名称
*/
private
String
brokerName
;
/**
* 转介人业务ID(客户端用户表唯一业务ID)
*/
private
String
brokerBizId
;
/**
* 所属团队
*/
private
String
team
;
/**
* 所属团队业务id
*/
private
String
teamBizId
;
//======保单转介人信息end=======
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionRuleBindingDto.java
View file @
a2d0c11b
...
...
@@ -6,6 +6,8 @@ import lombok.Builder;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
@Data
@Builder
@NoArgsConstructor
...
...
@@ -31,4 +33,6 @@ public class CommissionRuleBindingDto {
* 目标ID,业务员ID或团队ID
*/
private
String
targetId
;
private
List
<
String
>
targetIdList
;
}
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionRuleBinding.java
View file @
a2d0c11b
...
...
@@ -55,6 +55,12 @@ public class CommissionRuleBinding implements Serializable {
private
String
targetId
;
/**
* 目标名称,业务员姓名或团队名称
*/
@TableField
(
"target_name"
)
private
String
targetName
;
/**
* 生效开始时间,绑定关系开始生效的时间
*/
@TableField
(
"effective_start"
)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionService.java
View file @
a2d0c11b
...
...
@@ -31,4 +31,6 @@ public interface CommissionService extends IService<Commission> {
Commission
getByCommissionBizId
(
String
commissionBizId
);
List
<
Commission
>
queryList
(
CommissionDto
dto
);
List
<
CommissionBindPolicyBrokerDto
>
queryCommissionBindPolicyBrokerList
(
CommissionDto
dto
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneService.java
View file @
a2d0c11b
...
...
@@ -33,4 +33,6 @@ public interface FortuneService extends IService<Fortune> {
Fortune
getByFortuneBizId
(
String
fortuneBizId
);
Boolean
addFortune
(
FortuneAddRequest
fortuneAddRequest
);
Fortune
queryOne
(
String
fortuneBizId
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionRuleBindingServiceImpl.java
View file @
a2d0c11b
...
...
@@ -33,6 +33,7 @@ public class CommissionRuleBindingServiceImpl extends ServiceImpl<CommissionRule
public
List
<
CommissionRuleBinding
>
queryList
(
CommissionRuleBindingDto
dto
)
{
List
<
CommissionRuleBinding
>
list
=
baseMapper
.
selectList
(
new
LambdaQueryWrapper
<
CommissionRuleBinding
>()
.
eq
(
StringUtils
.
isNotBlank
(
dto
.
getTargetId
()),
CommissionRuleBinding:
:
getTargetId
,
dto
.
getTargetId
())
.
in
(!
CollectionUtils
.
isEmpty
(
dto
.
getTargetIdList
()),
CommissionRuleBinding:
:
getTargetId
,
dto
.
getTargetIdList
())
);
return
list
;
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
a2d0c11b
...
...
@@ -204,6 +204,16 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
);
return
list
;
}
/**
* 查询来佣保单转介人关系信息
* @param dto
* @return
*/
@Override
public
List
<
CommissionBindPolicyBrokerDto
>
queryCommissionBindPolicyBrokerList
(
CommissionDto
dto
)
{
return
baseMapper
.
queryCommissionBindPolicyBrokerList
(
dto
);
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
View file @
a2d0c11b
...
...
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import
cn.hutool.core.collection.CollUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
...
...
@@ -275,6 +276,16 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
return
this
.
save
(
fortune
);
}
/**
* 查询单个对象
* @param fortuneBizId
* @return
*/
@Override
public
Fortune
queryOne
(
String
fortuneBizId
)
{
return
this
.
getOne
(
new
LambdaQueryWrapper
<
Fortune
>().
eq
(
Fortune:
:
getFortuneBizId
,
fortuneBizId
));
}
}
...
...
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
View file @
a2d0c11b
...
...
@@ -32,4 +32,22 @@
commission_date,status,remark,is_deleted,creator_id,
updater_id,create_time,update_time
</sql>
<select
id=
"queryCommissionBindPolicyBrokerList"
resultType=
"com.yd.csf.service.dto.CommissionBindPolicyBrokerDto"
>
select c.*,p.*,pb.*
from commission c
left join policy p on p.policy_no = c.policy_no and p.is_deleted = 0
left join policy_broker pb on pb.policy_no = p.policy_no and pb.is_deleted = 0
<where>
<if
test=
"dto.commissionBizIdList != null and dto.commissionBizIdList.size > 0"
>
and c.commission_biz_id in
<foreach
collection=
"dto.commissionBizIdList"
item=
"item"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
and c.is_deleted = 0
</where>
group by c.policy_no
</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