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
bedd41e8
Commit
bedd41e8
authored
Jan 26, 2026
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进v2
parent
08ef6c9e
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
71 additions
and
8 deletions
+71
-8
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
+4
-0
yd-csf-api/src/main/java/com/yd/csf/api/dto/CommissionExcelDTO.java
+6
-5
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+61
-3
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
View file @
bedd41e8
...
...
@@ -206,6 +206,10 @@ public class ApiCommissionController {
if
(
ObjectUtils
.
isEmpty
(
excelDTO
.
getExchangeRate2
()))
{
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行关联保单应收单, 结算汇率不能为空"
);
}
}
else
{
if
(
StringUtils
.
isBlank
(
excelDTO
.
getReconciliationCompany2
()))
{
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行, 非关联保单应收单, 对账公司不能为空"
);
}
}
}
if
(
errorMsg
.
length
()
>
0
)
{
...
...
yd-csf-api/src/main/java/com/yd/csf/api/dto/CommissionExcelDTO.java
View file @
bedd41e8
...
...
@@ -25,9 +25,6 @@ public class CommissionExcelDTO {
@ExcelProperty
(
"保费"
)
private
String
premium
;
@ExcelProperty
(
"对账公司"
)
private
String
reconciliationCompany
;
@ExcelProperty
(
"当前来佣期数"
)
private
Integer
commissionPeriod
;
...
...
@@ -76,6 +73,9 @@ public class CommissionExcelDTO {
@ExcelProperty
(
"结算汇率(实)"
)
private
BigDecimal
exchangeRate2
;
@ExcelProperty
(
"对账公司"
)
private
String
reconciliationCompany2
;
/**
* 数据转换
...
...
@@ -94,6 +94,7 @@ public class CommissionExcelDTO {
entity
.
setCurrency
(
CurrencyEnum
.
getEnumByItemLabel
(
data
.
getCurrency2
()));
entity
.
setExchangeRate
(
data
.
getExchangeRate2
());
entity
.
setCommissionDate
(
data
.
getCommissionDate2
());
entity
.
setReconciliationCompany
(
data
.
getReconciliationCompany2
());
entity
.
setRemark
(
data
.
getRemark
());
entity
.
setStatus
(
null
);
entity
.
setCreatorId
(
loginUserId
);
...
...
@@ -113,7 +114,7 @@ public class CommissionExcelDTO {
entity
.
setPolicyNo
(
data
.
getPolicyNo
());
entity
.
setPremium
(
data
.
getPremium
());
entity
.
setCommissionBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_COMMISSION
.
getCode
()));
entity
.
setReconciliationCompany
(
data
.
getReconciliationCompany
());
entity
.
setReconciliationCompany
(
data
.
getReconciliationCompany
2
());
entity
.
setCommissionPeriod
(
data
.
getCommissionPeriod
());
entity
.
setTotalPeriod
(
data
.
getTotalPeriod
());
entity
.
setCommissionName
(
data
.
getCommissionName
());
...
...
@@ -142,7 +143,7 @@ public class CommissionExcelDTO {
// 字段映射
entity
.
setPolicyNo
(
data
.
getPolicyNo
());
entity
.
setCommissionExpectedBizId
(
RandomStringGenerator
.
generateBizId16
(
"commission_expected"
));
entity
.
setReconciliationCompany
(
data
.
getReconciliationCompany
());
entity
.
setReconciliationCompany
(
data
.
getReconciliationCompany
2
());
entity
.
setCommissionPeriod
(
data
.
getCommissionPeriod
());
entity
.
setTotalPeriod
(
data
.
getTotalPeriod
());
entity
.
setCommissionName
(
data
.
getCommissionName
());
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
bedd41e8
...
...
@@ -25,6 +25,8 @@ import com.yd.csf.service.service.*;
import
com.yd.csf.service.dao.CommissionMapper
;
import
com.yd.csf.service.vo.CommissionStatisticsVO
;
import
com.yd.csf.service.vo.CommissionVO
;
import
com.yd.insurance.base.feign.client.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyFeignClient
;
import
com.yd.insurance.base.feign.request.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyPageRequest
;
import
com.yd.user.feign.client.sysdict.ApiSysDictFeignClient
;
import
com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -81,6 +83,8 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
private
ReceivableService
receivableService
;
@Autowired
private
ApiSysDictFeignClient
apiSysDictFeignClient
;
@Resource
private
ApiInsuranceReconciliationCompanyFeignClient
apiInsuranceReconciliationCompanyFeignClient
;
@Override
...
...
@@ -250,8 +254,19 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
CommissionExpected:
:
getStatus
)
.
list
();
// 3.查询对账公司列表
Set
<
String
>
reconciliationCompanySet
=
commissionList
.
stream
()
.
map
(
Commission:
:
getReconciliationCompany
)
.
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toSet
());
List
<
Map
<
String
,
Object
>>
reconciliationCompanyList
=
Collections
.
emptyList
();
if
(!
reconciliationCompanySet
.
isEmpty
())
{
reconciliationCompanyList
=
queryReconciliationCompanyListByFeign
();
}
// 填充信息
commissionList
.
forEach
(
commission
->
{
for
(
Commission
commission
:
commissionList
)
{
Policy
policy
=
policyMap
.
get
(
commission
.
getPolicyNo
());
if
(
policy
!=
null
)
{
// 填充保费、产品名称、保险公司、对账公司
...
...
@@ -277,9 +292,52 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission
.
setRemark
(
"未查询到预计来佣记录"
);
commission
.
setStatus
(
CommissionStatusEnum
.
MATCH_FAILED
.
getItemValue
());
}
// 设置对账公司信息
if
(!
reconciliationCompanyList
.
isEmpty
())
{
setReconciliationCompanyInfo
(
commission
,
reconciliationCompanyList
);
}
// 计算来佣金额(港币)
commission
.
setHkdAmount
(
calculateHKDAmount
(
commission
.
getAmount
(),
commission
.
getExchangeRate
(),
commission
.
getCurrency
()));
});
}
}
private
void
setReconciliationCompanyInfo
(
Commission
commission
,
List
<
Map
<
String
,
Object
>>
reconciliationCompanyList
)
{
for
(
Map
<
String
,
Object
>
map
:
reconciliationCompanyList
)
{
String
name
=
(
String
)
map
.
get
(
"name"
);
if
(
name
.
contains
(
commission
.
getReconciliationCompany
()))
{
commission
.
setReconciliationCompany
(
Convert
.
toStr
(
map
.
get
(
"name"
)));
commission
.
setReconciliationCompanyBizId
(
Convert
.
toStr
(
map
.
get
(
"reconciliationCompanyBizId"
)));
commission
.
setReconciliationCompanyCode
(
Convert
.
toStr
(
map
.
get
(
"code"
)));
break
;
}
}
}
public
List
<
Map
<
String
,
Object
>>
queryReconciliationCompanyListByFeign
()
{
ApiInsuranceReconciliationCompanyPageRequest
reconciliationCompanyPageRequest
=
new
ApiInsuranceReconciliationCompanyPageRequest
();
reconciliationCompanyPageRequest
.
setPageNo
(
1
);
reconciliationCompanyPageRequest
.
setPageSize
(
999
);
Result
iPageResult
=
apiInsuranceReconciliationCompanyFeignClient
.
page
(
reconciliationCompanyPageRequest
);
// 解析响应获取对账公司编码
if
(
iPageResult
!=
null
&&
iPageResult
.
getCode
()
==
200
)
{
try
{
// Feign 返回的泛型会被反序列化为 LinkedHashMap,需要手动提取
Object
data
=
iPageResult
.
getData
();
if
(
data
instanceof
Map
)
{
Map
<
String
,
Object
>
dataMap
=
(
Map
<
String
,
Object
>)
data
;
Object
recordsObj
=
dataMap
.
get
(
"records"
);
if
(
recordsObj
instanceof
List
)
{
List
<
Map
<
String
,
Object
>>
records
=
(
List
<
Map
<
String
,
Object
>>)
recordsObj
;
return
records
;
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"解析对账公司响应失败: {}"
,
e
.
getMessage
(),
e
);
}
}
return
Collections
.
emptyList
();
}
private
CommissionExpected
findExpectedFromList
(
Commission
commission
,
List
<
CommissionExpected
>
commissionExpectedList
)
{
...
...
@@ -655,7 +713,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return
BigDecimal
.
valueOf
(
1
);
}
Result
<
List
<
GetDictItemListByDictTypeResponse
>>
result
=
apiSysDictFeignClient
.
getDictItemListByDictType
(
"csf_exchange_rate_hkd"
);
if
(
org
.
apache
.
commons
.
collections4
.
CollectionUtils
.
isNotEmpty
(
result
.
getData
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
result
.
getData
()))
{
for
(
GetDictItemListByDictTypeResponse
dictItem
:
result
.
getData
())
{
if
(
StringUtils
.
equalsIgnoreCase
(
dictItem
.
getItemLabel
(),
currency
))
{
return
new
BigDecimal
(
dictItem
.
getItemValue
());
...
...
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