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
fe59ea40
Commit
fe59ea40
authored
Nov 07, 2025
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进50
parent
89792737
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
88 additions
and
43 deletions
+88
-43
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
+1
-1
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
+26
-4
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+17
-12
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
+11
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
+0
-15
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowDetailVO.java
+18
-5
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowVO.java
+15
-6
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
View file @
fe59ea40
...
...
@@ -105,7 +105,7 @@ public class ApiCommissionExpectedController {
* @return
*/
@PostMapping
(
"/list/page"
)
@Operation
(
summary
=
"分页获取预计来佣列表"
)
@Operation
(
summary
=
"分页获取预计来佣列表"
,
description
=
"可根据 reconciliation_company、commission_name、commission_period、amount 排序,默认按照佣金期数升序排序"
)
public
Result
<
Page
<
CommissionExpectedVO
>>
listCommissionExpectedByPage
(
@RequestBody
CommissionExpectedQueryRequest
CommissionExpectedQueryRequest
)
{
long
current
=
CommissionExpectedQueryRequest
.
getPageNo
();
long
size
=
CommissionExpectedQueryRequest
.
getPageSize
();
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
View file @
fe59ea40
...
...
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
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.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.utils.RandomStringGenerator
;
...
...
@@ -16,6 +17,7 @@ import com.yd.csf.service.model.CommissionExpected;
import
com.yd.csf.service.service.CommissionExpectedService
;
import
com.yd.csf.service.dao.CommissionExpectedMapper
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
...
...
@@ -103,8 +105,19 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
String
policyNo
=
commissionExpectedQueryRequest
.
getPolicyNo
();
// 精确查询
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
policyNo
),
"policy_no"
,
policyNo
);
// 排序规则
//
默认
排序规则
queryWrapper
.
orderByAsc
(
"commission_period"
);
// 排序字段
String
sortField
=
commissionExpectedQueryRequest
.
getSortField
();
String
sortOrder
=
commissionExpectedQueryRequest
.
getSortOrder
();
queryWrapper
.
orderBy
(
ObjectUtils
.
isNotEmpty
(
sortField
)
&&
sortField
.
equals
(
"reconciliation_company"
),
sortOrder
.
equals
(
CommonConstant
.
SORT_ORDER_ASC
),
sortField
);
queryWrapper
.
orderBy
(
ObjectUtils
.
isNotEmpty
(
sortField
)
&&
sortField
.
equals
(
"commission_name"
),
sortOrder
.
equals
(
CommonConstant
.
SORT_ORDER_ASC
),
sortField
);
queryWrapper
.
orderBy
(
ObjectUtils
.
isNotEmpty
(
sortField
)
&&
sortField
.
equals
(
"commission_period"
),
sortOrder
.
equals
(
CommonConstant
.
SORT_ORDER_ASC
),
sortField
);
queryWrapper
.
orderBy
(
ObjectUtils
.
isNotEmpty
(
sortField
)
&&
sortField
.
equals
(
"amount"
),
sortOrder
.
equals
(
CommonConstant
.
SORT_ORDER_ASC
),
sortField
);
return
queryWrapper
;
}
...
...
@@ -132,6 +145,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"预计来佣列表不能为空"
);
}
List
<
CommissionExpected
>
addList
=
new
ArrayList
<>();
List
<
CommissionExpected
>
updateList
=
new
ArrayList
<>();
for
(
CommissionExpectedAddDto
addDto
:
addDtoList
)
{
CommissionExpected
commissionExpected
=
new
CommissionExpected
();
...
...
@@ -144,13 +158,21 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
commissionExpected
.
setUpdateTime
(
new
Date
());
// 设置默认状态
commissionExpected
.
setStatus
(
CommissionExpectedStatusEnum
.
PENDING
.
getItemValue
());
addList
.
add
(
commissionExpected
);
}
else
{
commissionExpected
.
setUpdateTime
(
new
Date
());
updateList
.
add
(
commissionExpected
);
}
updateList
.
add
(
commissionExpected
);
}
// 新增预计来佣
if
(
CollectionUtils
.
isNotEmpty
(
addList
))
{
this
.
saveBatch
(
addList
);
}
if
(
CollectionUtils
.
isNotEmpty
(
updateList
))
{
this
.
updateBatchById
(
updateList
);
}
// 新增或更新预计来佣
return
this
.
saveOrUpdateBatch
(
updateList
);
return
true
;
}
@Override
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
fe59ea40
...
...
@@ -98,12 +98,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
}
BeanUtils
.
copyProperties
(
commissionUpdateRequest
,
commission
,
"id"
,
"commissionBizId"
);
// 查询预计来佣
QueryWrapper
<
CommissionExpected
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"commission_biz_id"
,
commissionBizId
);
queryWrapper
.
eq
(
"commission_name"
,
commission
.
getCommissionName
());
queryWrapper
.
eq
(
"commission_period"
,
commission
.
getCommissionPeriod
());
queryWrapper
.
eq
(
"commission_currency"
,
commission
.
getCurrency
());
CommissionExpected
commissionExpected
=
commissionExpectedService
.
getOne
(
queryWrapper
);
CommissionExpected
commissionExpected
=
queryByCommission
(
commission
);
if
(
commissionExpected
!=
null
)
{
// 对比预计来佣
compareWithExpected
(
commission
,
commissionExpected
);
...
...
@@ -119,11 +114,26 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return
this
.
updateById
(
commission
);
}
private
CommissionExpected
queryByCommission
(
Commission
commission
)
{
QueryWrapper
<
CommissionExpected
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"policy_no"
,
commission
.
getPolicyNo
());
queryWrapper
.
eq
(
"commission_name"
,
commission
.
getCommissionName
());
queryWrapper
.
eq
(
"commission_period"
,
commission
.
getCommissionPeriod
());
queryWrapper
.
eq
(
"currency"
,
commission
.
getCurrency
());
return
commissionExpectedService
.
getOne
(
queryWrapper
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
generateFortune
(
GenerateFortuneRequest
generateFortuneRequest
)
{
List
<
String
>
commissionBizIdList
=
generateFortuneRequest
.
getCommissionBizIdList
();
List
<
Commission
>
commissionList
=
this
.
list
(
new
QueryWrapper
<
Commission
>().
in
(
"commission_biz_id"
,
commissionBizIdList
));
// 校验来佣记录状态
for
(
Commission
commission
:
commissionList
)
{
if
(
StringUtils
.
equals
(
commission
.
getStatus
(),
CommissionStatusEnum
.
WAIT
.
getItemValue
()))
{
throw
new
BusinessException
(
ResultCode
.
FAIL
.
getCode
(),
"来佣记录为未比对,不能生成出帐"
);
}
}
// 获取所有保单号
Set
<
String
>
policyNoSet
=
commissionList
.
stream
().
map
(
Commission:
:
getPolicyNo
).
collect
(
Collectors
.
toSet
());
...
...
@@ -206,12 +216,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 设置默认状态
commission
.
setStatus
(
CommissionStatusEnum
.
WAIT
.
getItemValue
());
// 查询预计来佣
QueryWrapper
<
CommissionExpected
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"commission_biz_id"
,
commissionBizId
);
queryWrapper
.
eq
(
"commission_name"
,
commissionAddRequest
.
getCommissionName
());
queryWrapper
.
eq
(
"commission_period"
,
commissionAddRequest
.
getCommissionPeriod
());
queryWrapper
.
eq
(
"commission_currency"
,
commissionAddRequest
.
getCurrency
());
CommissionExpected
commissionExpected
=
commissionExpectedService
.
getOne
(
queryWrapper
);
CommissionExpected
commissionExpected
=
queryByCommission
(
commission
);
if
(
commissionExpected
!=
null
)
{
// 对比预计来佣
compareWithExpected
(
commission
,
commissionExpected
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
View file @
fe59ea40
...
...
@@ -134,6 +134,17 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
List
<
String
>
fortuneBizIdList
=
fortuneDownloadRequest
.
getFortuneBizIdList
();
if
(
CollUtil
.
isNotEmpty
(
fortuneBizIdList
))
{
List
<
Fortune
>
fortuneList
=
this
.
list
(
new
QueryWrapper
<
Fortune
>().
in
(
"fortune_biz_id"
,
fortuneBizIdList
));
// 校验发佣记录状态
StringBuilder
validateMsg
=
new
StringBuilder
();
for
(
Fortune
fortune
:
fortuneList
)
{
if
(
StringUtils
.
equals
(
fortune
.
getStatus
(),
FortuneStatusEnum
.
WAIT
.
getItemValue
()))
{
validateMsg
.
append
(
fortune
.
getPolicyNo
()).
append
(
"-"
).
append
(
fortune
.
getBroker
()).
append
(
"为待出账,不能生成出账记录; "
);
}
}
if
(
StringUtils
.
isNotBlank
(
validateMsg
.
toString
()))
{
throw
new
BusinessException
(
ResultCode
.
FAIL
.
getCode
(),
validateMsg
.
toString
());
}
if
(
CollUtil
.
isNotEmpty
(
fortuneList
))
{
// 按人和币种分组
Map
<
String
,
List
<
Fortune
>>
fortuneMap
=
fortuneList
.
stream
().
collect
(
Collectors
.
groupingBy
(
fortune
->
fortune
.
getBroker
()
+
"_"
+
fortune
.
getCurrency
()));
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
fe59ea40
...
...
@@ -457,21 +457,6 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
if
(
CollUtil
.
isEmpty
(
policyFollowList
))
{
return
policyFollowDetailVOPage
;
}
// 处理 nextStatusList 字段
policyFollowList
.
forEach
(
policyFollow
->
{
Object
nextStatusList
=
policyFollow
.
getNextStatusList
();
if
(
nextStatusList
!=
null
&&
!
nextStatusList
.
toString
().
isEmpty
())
{
String
[]
statusArr
=
nextStatusList
.
toString
().
split
(
","
);
List
<
Map
<
String
,
String
>>
statusMapList
=
new
ArrayList
<>();
for
(
String
status
:
statusArr
)
{
Map
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"itemLabel"
,
PolicyFollowStatusEnum
.
getEnumByValue
(
status
).
getItemLabel
());
map
.
put
(
"itemValue"
,
status
);
statusMapList
.
add
(
map
);
}
policyFollow
.
setNextStatusList
(
statusMapList
);
}
});
// 对象列表 => 封装对象列表
List
<
PolicyFollowDetailVO
>
policyFollowDetailVOList
=
policyFollowList
.
stream
().
map
(
PolicyFollowDetailVO:
:
objToVo
).
collect
(
Collectors
.
toList
());
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowDetailVO.java
View file @
fe59ea40
package
com
.
yd
.
csf
.
service
.
vo
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.yd.csf.service.enums.PolicyFollowStatusEnum
;
import
com.yd.csf.service.model.PolicyBroker
;
import
com.yd.csf.service.model.PolicyFollow
;
import
io.swagger.v3.oas.annotations.media.Schema
;
...
...
@@ -9,8 +10,7 @@ import org.springframework.beans.BeanUtils;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.*
;
/**
* 新单跟进 DetailVO
...
...
@@ -57,7 +57,7 @@ public class PolicyFollowDetailVO implements Serializable {
*/
private
String
customerName
;
/**
/**
* 递交日期
*/
private
Date
submitDate
;
...
...
@@ -127,7 +127,7 @@ public class PolicyFollowDetailVO implements Serializable {
*/
private
String
paymentNumber
;
/**
/**
* 产品业务id
*/
private
String
productBizId
;
...
...
@@ -167,7 +167,7 @@ public class PolicyFollowDetailVO implements Serializable {
*/
private
String
status
;
/**
/**
* 下一步跟进状态列表
*/
private
Object
nextStatusList
;
...
...
@@ -276,6 +276,19 @@ public class PolicyFollowDetailVO implements Serializable {
PolicyFollowDetailVO
.
setPolicyBizId
(
policyFollow
.
getPolicyBizId
());
// 转换PolicyFollow
BeanUtils
.
copyProperties
(
policyFollow
,
PolicyFollowDetailVO
);
// 处理 nextStatusList 字段
Object
nextStatusList
=
policyFollow
.
getNextStatusList
();
if
(
nextStatusList
!=
null
&&
!
nextStatusList
.
toString
().
isEmpty
())
{
String
[]
statusArr
=
nextStatusList
.
toString
().
split
(
","
);
List
<
Map
<
String
,
String
>>
statusMapList
=
new
ArrayList
<>();
for
(
String
status
:
statusArr
)
{
Map
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"itemLabel"
,
PolicyFollowStatusEnum
.
getEnumByValue
(
status
).
getItemLabel
());
map
.
put
(
"itemValue"
,
status
);
statusMapList
.
add
(
map
);
}
PolicyFollowDetailVO
.
setNextStatusList
(
statusMapList
);
}
return
PolicyFollowDetailVO
;
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowVO.java
View file @
fe59ea40
...
...
@@ -3,6 +3,7 @@ package com.yd.csf.service.vo;
import
com.yd.csf.service.dto.PolicyFollowUpdateDto
;
import
com.yd.csf.service.dto.PolicyMailing
;
import
com.yd.csf.service.dto.VerifyPolicyInfo
;
import
com.yd.csf.service.enums.PolicyFollowStatusEnum
;
import
com.yd.csf.service.model.PolicyBroker
;
import
com.yd.csf.service.model.PolicyFollow
;
import
io.swagger.v3.oas.annotations.media.Schema
;
...
...
@@ -10,12 +11,10 @@ import lombok.Data;
import
org.springframework.beans.BeanUtils
;
import
java.io.Serializable
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.*
;
/**
* 新单跟进视图
*
*/
@Data
public
class
PolicyFollowVO
implements
Serializable
{
...
...
@@ -28,7 +27,7 @@ public class PolicyFollowVO implements Serializable {
@Schema
(
description
=
"新单跟进唯一业务ID"
)
private
String
policyBizId
;
/**
/**
* 下一步跟进状态列表
*/
@Schema
(
description
=
"下一步跟进状态列表, 下拉框"
)
...
...
@@ -82,8 +81,18 @@ public class PolicyFollowVO implements Serializable {
BeanUtils
.
copyProperties
(
policyFollow
,
policyFollowUpdateDto
);
policyFollowVO
.
setPolicyFollowUpdateDto
(
policyFollowUpdateDto
);
if
(
policyFollow
.
getNextStatusList
()
!=
null
)
{
policyFollowVO
.
setNextStatusList
(
policyFollow
.
getNextStatusList
());
// 处理 nextStatusList 字段
Object
nextStatusList
=
policyFollow
.
getNextStatusList
();
if
(
nextStatusList
!=
null
&&
!
nextStatusList
.
toString
().
isEmpty
())
{
String
[]
statusArr
=
nextStatusList
.
toString
().
split
(
","
);
List
<
Map
<
String
,
String
>>
statusMapList
=
new
ArrayList
<>();
for
(
String
status
:
statusArr
)
{
Map
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"itemLabel"
,
PolicyFollowStatusEnum
.
getEnumByValue
(
status
).
getItemLabel
());
map
.
put
(
"itemValue"
,
status
);
statusMapList
.
add
(
map
);
}
policyFollowVO
.
setNextStatusList
(
statusMapList
);
}
VerifyPolicyInfo
verifyPolicyInfo
=
new
VerifyPolicyInfo
();
...
...
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