Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yifu-mvp
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fangxinjiang
yifu-mvp
Commits
ab920b18
Commit
ab920b18
authored
Jul 27, 2022
by
李灿灿
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
编辑接口调试
parent
1b289500
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
280 additions
and
64 deletions
+280
-64
InsurancesConstants.java
...lus/v1/yifu/insurances/constants/InsurancesConstants.java
+8
-0
TInsuranceDetail.java
...loud/plus/v1/yifu/insurances/entity/TInsuranceDetail.java
+1
-1
TInsuranceSettle.java
...loud/plus/v1/yifu/insurances/entity/TInsuranceSettle.java
+1
-1
LocalDateUtil.java
...ifu/cloud/plus/v1/yifu/insurances/util/LocalDateUtil.java
+81
-1
InsuranceListVO.java
...ifu/cloud/plus/v1/yifu/insurances/vo/InsuranceListVO.java
+6
-0
TInsuranceDetailController.java
...ifu/insurances/controller/TInsuranceDetailController.java
+4
-4
TInsuranceDetailService.java
...s/v1/yifu/insurances/service/TInsuranceDetailService.java
+4
-4
TInsuranceDetailServiceImpl.java
.../insurances/service/impl/TInsuranceDetailServiceImpl.java
+175
-53
No files found.
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/constants/InsurancesConstants.java
View file @
ab920b18
...
...
@@ -120,6 +120,10 @@ public class InsurancesConstants {
* 当前记录在减员流程中,无法替换
*/
public
static
final
String
REDUCE_REPLACE_IS_NOT_ALLOW
=
"当前记录在减员流程中,无法替换"
;
/**
* 已减员,无法退回
*/
public
static
final
String
REDUCE_ROLLBACK_IS_NOT_ALLOW
=
"已减员,无法退回"
;
/**
* 员工姓名不能为空
*/
...
...
@@ -184,6 +188,10 @@ public class InsurancesConstants {
* 险种不存在
*/
public
static
final
String
INSURANCE_TYPE_NAME_NOT_EXIST
=
"险种不存在"
;
/**
* 费率不存在
*/
public
static
final
String
INSURANCE_TYPE_RATE_NOT_EXIST
=
"费率不存在"
;
/**
* 保单开始时间不能为空
*/
...
...
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/entity/TInsuranceDetail.java
View file @
ab920b18
...
...
@@ -213,7 +213,7 @@ public class TInsuranceDetail extends BaseEntity {
* 默认结算信息id
*/
@Schema
(
description
=
"默认结算信息id"
)
private
Integer
defaultSettleId
;
private
String
defaultSettleId
;
/**
* 减员状态 1待减员 2减员中3减员退回
...
...
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/entity/TInsuranceSettle.java
View file @
ab920b18
...
...
@@ -35,7 +35,7 @@ public class TInsuranceSettle implements Serializable {
/**
* 结算状态
*/
@Schema
(
description
=
"结算状态"
)
@Schema
(
description
=
"结算状态
1、待结算,2、结算中,3、已结算
"
)
private
String
settleHandleStatus
;
/**
...
...
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/util/LocalDateUtil.java
View file @
ab920b18
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
util
;
import
cn.hutool.core.date.DateUtil
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
java.text.DateFormat
;
...
...
@@ -185,7 +186,86 @@ public class LocalDateUtil {
return
flag
;
}
/**
* 计算相差多少天,如果开始时间晚于结束时间会对调
*
* @author licancan
* @param startDate
* @param endDate
* @return {@link long}
*/
public
static
long
betweenDay
(
String
startDate
,
String
endDate
){
long
dif
=
0
;
//在日期字符串非空时执行
if
(!
Common
.
isEmpty
(
startDate
)
&&
!
Common
.
isEmpty
(
endDate
))
{
Date
parseStartDate
=
null
;
Date
parseEndDate
=
null
;
//格式化日期
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
NORM_DATE_PATTERN
,
Locale
.
CHINA
);
try
{
//将字符串转为日期格式,如果此处字符串为非合法日期就会抛出异常。
parseStartDate
=
sdf
.
parse
(
startDate
);
parseEndDate
=
sdf
.
parse
(
endDate
);
//调用hutool里面的DateUtil.betweenDay方法来做判断
dif
=
DateUtil
.
betweenDay
(
parseStartDate
,
parseEndDate
,
true
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
}
else
{
System
.
out
.
println
(
"日期参数不可为空"
);
}
return
dif
+
1
;
}
/**
* 计算相差月份,如果开始时间晚于结束时间会对调
* 公式:(endYear - starYear) * 12 + endMonth - startMonth + (endDay >= startDay ? 1 : 0)
* @author licancan
* @param startDate
* @param endDate
* @return {@link long}
*/
public
static
long
betweenMonth
(
String
startDate
,
String
endDate
){
long
dif
=
0
;
//在日期字符串非空时执行
if
(!
Common
.
isEmpty
(
startDate
)
&&
!
Common
.
isEmpty
(
endDate
))
{
Date
parseStartDate
=
null
;
Date
parseEndDate
=
null
;
//格式化日期
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
NORM_DATE_PATTERN
,
Locale
.
CHINA
);
try
{
//将字符串转为日期格式,如果此处字符串为非合法日期就会抛出异常。
parseStartDate
=
sdf
.
parse
(
startDate
);
parseEndDate
=
sdf
.
parse
(
endDate
);
//如果开始时间晚于结束时间对调
if
(
parseStartDate
.
after
(
parseEndDate
))
{
Date
t
=
parseStartDate
;
parseStartDate
=
parseEndDate
;
parseEndDate
=
t
;
}
Calendar
starCalendar
=
Calendar
.
getInstance
();
starCalendar
.
setTime
(
parseStartDate
);
Calendar
endCalendar
=
Calendar
.
getInstance
();
endCalendar
.
setTime
(
parseEndDate
);
int
starYear
=
starCalendar
.
get
(
Calendar
.
YEAR
);
int
startMonth
=
starCalendar
.
get
(
Calendar
.
MONTH
);
int
startDay
=
starCalendar
.
get
(
Calendar
.
DATE
);
int
endYear
=
endCalendar
.
get
(
Calendar
.
YEAR
);
int
endMonth
=
endCalendar
.
get
(
Calendar
.
MONTH
);
int
endDay
=
endCalendar
.
get
(
Calendar
.
DATE
);
dif
=
(
endYear
-
starYear
)
*
12
+
endMonth
-
startMonth
+
(
endDay
>=
startDay
?
1
:
0
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
}
else
{
System
.
out
.
println
(
"日期参数不可为空"
);
}
return
dif
;
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
compareDate
(
"2022-07-26"
,
"2022-07-27
"
));
System
.
out
.
println
(
betweenMonth
(
"2022-10-03"
,
"2022-08-03
"
));
}
}
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceListVO.java
View file @
ab920b18
...
...
@@ -115,4 +115,10 @@ public class InsuranceListVO implements Serializable {
*/
@Schema
(
description
=
"结算月"
)
private
String
settleMonth
;
/**
* 错误信息
*/
@Schema
(
description
=
"错误信息"
)
private
String
errorMessage
;
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TInsuranceDetailController.java
View file @
ab920b18
...
...
@@ -160,11 +160,11 @@ public class TInsuranceDetailController {
*
* @author licancan
* @param idList
* @return {@link R<List<
TInsuranceDetail
>>}
* @return {@link R<List<
InsuranceListVO
>>}
*/
@Operation
(
summary
=
"投保退回"
,
description
=
"投保退回"
)
@PostMapping
(
"/rollBackInsurance"
)
public
R
<
List
<
TInsuranceDetail
>>
rollBackInsurance
(
@RequestBody
@Valid
@Size
(
min
=
1
,
message
=
"集合不能为空"
)
List
<
String
>
idList
){
public
R
<
List
<
InsuranceListVO
>>
rollBackInsurance
(
@RequestBody
@Valid
@Size
(
min
=
1
,
message
=
"集合不能为空"
)
List
<
String
>
idList
){
return
tInsuranceDetailService
.
rollBackInsurance
(
idList
);
}
...
...
@@ -173,11 +173,11 @@ public class TInsuranceDetailController {
*
* @author licancan
* @param idList
* @return {@link R<List<
TInsuranceDetail
>>}
* @return {@link R<List<
InsuranceListVO
>>}
*/
@Operation
(
summary
=
"办理成功"
,
description
=
"办理成功"
)
@PostMapping
(
"/successfulInsurance"
)
public
R
<
List
<
TInsuranceDetail
>>
successfulInsurance
(
@RequestBody
@Valid
@Size
(
min
=
1
,
message
=
"集合不能为空"
)
List
<
String
>
idList
){
public
R
<
List
<
InsuranceListVO
>>
successfulInsurance
(
@RequestBody
@Valid
@Size
(
min
=
1
,
message
=
"集合不能为空"
)
List
<
String
>
idList
){
return
tInsuranceDetailService
.
successfulInsurance
(
idList
);
}
...
...
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/TInsuranceDetailService.java
View file @
ab920b18
...
...
@@ -104,18 +104,18 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> {
*
* @author licancan
* @param idList
* @return {@link R<List<
TInsuranceDetail
>>}
* @return {@link R<List<
InsuranceListVO
>>}
*/
R
<
List
<
TInsuranceDetail
>>
rollBackInsurance
(
List
<
String
>
idList
);
R
<
List
<
InsuranceListVO
>>
rollBackInsurance
(
List
<
String
>
idList
);
/**
* 办理成功
*
* @author licancan
* @param idList
* @return {@link R<List<
TInsuranceDetail
>>}
* @return {@link R<List<
InsuranceListVO
>>}
*/
R
<
List
<
TInsuranceDetail
>>
successfulInsurance
(
List
<
String
>
idList
);
R
<
List
<
InsuranceListVO
>>
successfulInsurance
(
List
<
String
>
idList
);
/**
* 登记保单保费
...
...
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/impl/TInsuranceDetailServiceImpl.java
View file @
ab920b18
...
...
@@ -62,6 +62,9 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
@Lazy
private
TInsuranceTypeStandardService
tInsuranceTypeStandardService
;
@Resource
@Lazy
private
TInsuranceTypeRateService
tInsuranceTypeRateService
;
@Resource
private
TInsuranceReplaceService
tInsuranceReplaceService
;
@Resource
private
ArchivesDaprUtil
archivesDaprUtil
;
...
...
@@ -88,20 +91,8 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
public
IPage
<
InsuranceListVO
>
getInsuranceListPage
(
Page
<
InsuranceListVO
>
page
,
InsuranceListParam
param
)
{
//todo 根据登录人获取数据权限
IPage
<
InsuranceListVO
>
insuranceList
=
baseMapper
.
getInsuranceListPage
(
page
,
param
);
if
(
CollectionUtils
.
isNotEmpty
(
insuranceList
.
getRecords
())){
//根据项目编码获取项目名称
List
<
String
>
collect
=
insuranceList
.
getRecords
().
stream
().
map
(
e
->
e
.
getDeptNo
()).
distinct
().
collect
(
Collectors
.
toList
());
R
<
SetInfoVo
>
setInfoByCodes
=
archivesDaprUtil
.
getSetInfoByCodes
(
collect
);
if
(
null
!=
setInfoByCodes
&&
setInfoByCodes
.
getCode
()
==
CommonConstants
.
SUCCESS
&&
Common
.
isNotNull
(
setInfoByCodes
.
getData
()))
{
Map
<
String
,
ProjectSetInfoVo
>
data
=
setInfoByCodes
.
getData
().
getProjectSetInfoVoMap
();
for
(
InsuranceListVO
record
:
insuranceList
.
getRecords
())
{
ProjectSetInfoVo
jsonObject
=
data
.
get
(
record
.
getDeptNo
());
if
(
null
!=
jsonObject
){
record
.
setProjectName
(
Optional
.
ofNullable
(
jsonObject
.
getDepartName
()).
orElse
(
""
));
}
}
}
}
setProjectNameByDeptNo
(
insuranceList
.
getRecords
());
return
insuranceList
;
}
...
...
@@ -116,20 +107,8 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
public
List
<
InsuranceListVO
>
getInsuranceList
(
InsuranceListParam
param
)
{
//todo 根据登录人获取数据权限
List
<
InsuranceListVO
>
insuranceList
=
baseMapper
.
getInsuranceList
(
param
);
if
(
CollectionUtils
.
isNotEmpty
(
insuranceList
)){
//根据项目编码获取项目名称
List
<
String
>
collect
=
insuranceList
.
stream
().
map
(
e
->
e
.
getDeptNo
()).
distinct
().
collect
(
Collectors
.
toList
());
R
<
SetInfoVo
>
setInfoByCodes
=
archivesDaprUtil
.
getSetInfoByCodes
(
collect
);
if
(
null
!=
setInfoByCodes
&&
setInfoByCodes
.
getCode
()
==
CommonConstants
.
SUCCESS
&&
Common
.
isNotNull
(
setInfoByCodes
.
getData
()))
{
Map
<
String
,
ProjectSetInfoVo
>
data
=
setInfoByCodes
.
getData
().
getProjectSetInfoVoMap
();
for
(
InsuranceListVO
record
:
insuranceList
)
{
ProjectSetInfoVo
jsonObject
=
data
.
get
(
record
.
getDeptNo
());
if
(
null
!=
jsonObject
){
record
.
setProjectName
(
Optional
.
ofNullable
(
jsonObject
.
getDepartName
()).
orElse
(
""
));
}
}
}
}
setProjectNameByDeptNo
(
insuranceList
);
return
insuranceList
;
}
...
...
@@ -546,11 +525,11 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
* 投保退回
*
* @param idList
* @return {@link R<List<
TInsuranceDetail
>>}
* @return {@link R<List<
InsuranceListVO
>>}
* @author licancan
*/
@Override
public
R
<
List
<
TInsuranceDetail
>>
rollBackInsurance
(
List
<
String
>
idList
)
{
public
R
<
List
<
InsuranceListVO
>>
rollBackInsurance
(
List
<
String
>
idList
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
if
(
user
==
null
||
Common
.
isEmpty
(
user
.
getId
()))
{
return
R
.
failed
(
CommonConstants
.
PLEASE_LOG_IN
);
...
...
@@ -559,19 +538,34 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
return
R
.
failed
(
CommonConstants
.
PARAM_IS_NOT_EMPTY
);
}
List
<
TInsuranceDetail
>
detailList
=
baseMapper
.
selectBatchIds
(
idList
);
List
<
TInsuranceDetail
>
errorList
=
new
ArrayList
<>();
//返回给前端的数据
List
<
InsuranceListVO
>
errorList
=
new
ArrayList
<>();
//后端处理的数据
List
<
TInsuranceDetail
>
successList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
detailList
)){
detailList
.
stream
().
forEach
(
e
->{
for
(
TInsuranceDetail
detail
:
detailList
)
{
if
(
detail
.
getBuyHandleStatus
()
==
CommonConstants
.
FIVE_INT
){
InsuranceListVO
listVO
=
new
InsuranceListVO
();
BeanCopyUtils
.
copyProperties
(
detail
,
listVO
);
listVO
.
setErrorMessage
(
InsurancesConstants
.
REDUCE_ROLLBACK_IS_NOT_ALLOW
);
errorList
.
add
(
listVO
);
}
else
{
// 记录状态置为「退回」
e
.
setBuyHandleStatus
(
CommonConstants
.
FOUR_INT
);
e
.
setUpdateBy
(
user
.
getId
());
e
.
setUpdateTime
(
LocalDateTime
.
now
());
});
//更新
this
.
saveOrUpdateBatch
(
detailList
);
detail
.
setBuyHandleStatus
(
CommonConstants
.
FOUR_INT
);
detail
.
setUpdateBy
(
user
.
getId
());
detail
.
setUpdateTime
(
LocalDateTime
.
now
());
successList
.
add
(
detail
);
}
}
}
if
(
CollectionUtils
.
isNotEmpty
(
successList
)){
//更新状态
this
.
saveOrUpdateBatch
(
successList
);
}
//根据项目编码获取项目名称
setProjectNameByDeptNo
(
errorList
);
//操作记录
addOperate
(
detail
List
,
user
,
InsurancesConstants
.
ROLLBACK
);
addOperate
(
success
List
,
user
,
InsurancesConstants
.
ROLLBACK
);
return
R
.
ok
(
errorList
,
InsurancesConstants
.
OPERATE_SUCCESS
);
}
...
...
@@ -579,11 +573,11 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
* 办理成功
*
* @param idList
* @return {@link R<List<
TInsuranceDetail
>>}
* @return {@link R<List<
InsuranceListVO
>>}
* @author licancan
*/
@Override
public
R
<
List
<
TInsuranceDetail
>>
successfulInsurance
(
List
<
String
>
idList
)
{
public
R
<
List
<
InsuranceListVO
>>
successfulInsurance
(
List
<
String
>
idList
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
if
(
user
==
null
||
Common
.
isEmpty
(
user
.
getId
()))
{
return
R
.
failed
(
CommonConstants
.
PLEASE_LOG_IN
);
...
...
@@ -592,9 +586,80 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
return
R
.
failed
(
CommonConstants
.
PARAM_IS_NOT_EMPTY
);
}
List
<
TInsuranceDetail
>
detailList
=
baseMapper
.
selectBatchIds
(
idList
);
List
<
TInsuranceDetail
>
errorList
=
new
ArrayList
<>();
//返回给前端的数据
List
<
InsuranceListVO
>
errorList
=
new
ArrayList
<>();
//后端处理的数据
List
<
TInsuranceDetail
>
successList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
detailList
)){
for
(
TInsuranceDetail
detail
:
detailList
)
{
//根据结算类型判断是否需要计算预估保费
//预估
if
(
detail
.
getSettleType
()
==
CommonConstants
.
ZERO_INT
){
//根据险种获取费率,没费率返回错误
TInsuranceType
insuranceType
=
tInsuranceTypeService
.
getById
(
detail
.
getInsuranceTypeId
());
//险种存不存在
if
(!
Optional
.
ofNullable
(
insuranceType
).
isPresent
()){
InsuranceListVO
listVO
=
new
InsuranceListVO
();
BeanCopyUtils
.
copyProperties
(
detail
,
listVO
);
listVO
.
setErrorMessage
(
InsurancesConstants
.
INSURANCE_TYPE_NAME_NOT_EXIST
);
errorList
.
add
(
listVO
);
}
else
{
TInsuranceCompany
insuranceCompany
=
tInsuranceCompanyService
.
getById
(
insuranceType
.
getInsuranceCompanyId
());
//保险公司存不存在
if
(!
Optional
.
ofNullable
(
insuranceCompany
).
isPresent
()){
InsuranceListVO
listVO
=
new
InsuranceListVO
();
BeanCopyUtils
.
copyProperties
(
detail
,
listVO
);
listVO
.
setErrorMessage
(
InsurancesConstants
.
INSURANCE_COMPANY_NAME_NOT_EXIST
);
errorList
.
add
(
listVO
);
}
else
{
if
(
CommonConstants
.
ONE_STRING
.
equals
(
insuranceCompany
.
getBillingType
())){
//按月查费率
//计算起止时间的月数
long
month
=
LocalDateUtil
.
betweenMonth
(
detail
.
getPolicyStart
().
toString
(),
detail
.
getPolicyEnd
().
toString
());
TInsuranceTypeRate
typeRate
=
tInsuranceTypeRateService
.
getOne
(
Wrappers
.<
TInsuranceTypeRate
>
query
().
lambda
()
.
eq
(
TInsuranceTypeRate:
:
getInsuranceTypeId
,
detail
.
getInsuranceTypeId
())
.
eq
(
TInsuranceTypeRate:
:
getMonth
,
month
)
.
eq
(
TInsuranceTypeRate:
:
getDeleteFlag
,
CommonConstants
.
ZERO_INT
)
.
last
(
CommonConstants
.
LAST_ONE_SQL
)
);
if
(!
Optional
.
ofNullable
(
typeRate
).
isPresent
()){
InsuranceListVO
listVO
=
new
InsuranceListVO
();
BeanCopyUtils
.
copyProperties
(
detail
,
listVO
);
listVO
.
setErrorMessage
(
InsurancesConstants
.
INSURANCE_TYPE_RATE_NOT_EXIST
);
errorList
.
add
(
listVO
);
}
else
{
// 预估保费 = 费率 * 购买标准
BigDecimal
estimatePremium
=
new
BigDecimal
(
detail
.
getBuyStandard
()).
multiply
(
new
BigDecimal
(
typeRate
.
getRate
())).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
detail
.
setEstimatePremium
(
estimatePremium
);
if
(
detail
.
getBuyType
()
==
CommonConstants
.
THREE_INT
){
detail
.
setPolicyEffect
(
LocalDate
.
now
().
plusDays
(
CommonConstants
.
ONE_INT
));
}
//记录状态均置为「已投保」
detail
.
setBuyHandleStatus
(
CommonConstants
.
THREE_INT
);
//记录的有效状态,置为「有效」
detail
.
setIsEffect
(
CommonConstants
.
ZERO_INT
);
detail
.
setIsOverdue
(
CommonConstants
.
ZERO_INT
);
//保费存储
TInsuranceSettle
settle
=
new
TInsuranceSettle
();
settle
.
setInsDetailId
(
detail
.
getId
());
settle
.
setSettleType
(
detail
.
getSettleType
());
settle
.
setSettleHandleStatus
(
CommonConstants
.
ONE_STRING
);
settle
.
setEstimatePremium
(
estimatePremium
);
settle
.
setIsEstimatePush
(
CommonConstants
.
ZERO_INT
);
settle
.
setCreateTime
(
LocalDateTime
.
now
());
tInsuranceSettleService
.
save
(
settle
);
detail
.
setDefaultSettleId
(
settle
.
getId
());
successList
.
add
(
detail
);
}
}
else
{
//按天
//计算起止时间的天数
long
day
=
LocalDateUtil
.
betweenDay
(
detail
.
getPolicyStart
().
toString
(),
detail
.
getPolicyEnd
().
toString
());
//预估保费 = (购买标准 / 365) * 天数
BigDecimal
estimatePremium
=
new
BigDecimal
(
detail
.
getBuyStandard
()).
divide
(
new
BigDecimal
(
"365"
)).
multiply
(
new
BigDecimal
(
day
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
detail
.
setEstimatePremium
(
estimatePremium
);
if
(
detail
.
getBuyType
()
==
CommonConstants
.
THREE_INT
){
detail
.
setPolicyEffect
(
LocalDate
.
now
().
plusDays
(
CommonConstants
.
ONE_INT
));
}
...
...
@@ -603,13 +668,47 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
//记录的有效状态,置为「有效」
detail
.
setIsEffect
(
CommonConstants
.
ZERO_INT
);
detail
.
setIsOverdue
(
CommonConstants
.
ZERO_INT
);
//保费存储
TInsuranceSettle
settle
=
new
TInsuranceSettle
();
settle
.
setInsDetailId
(
detail
.
getId
());
settle
.
setSettleType
(
detail
.
getSettleType
());
settle
.
setSettleHandleStatus
(
CommonConstants
.
ONE_STRING
);
settle
.
setEstimatePremium
(
estimatePremium
);
settle
.
setIsEstimatePush
(
CommonConstants
.
ZERO_INT
);
settle
.
setCreateTime
(
LocalDateTime
.
now
());
tInsuranceSettleService
.
save
(
settle
);
detail
.
setDefaultSettleId
(
settle
.
getId
());
successList
.
add
(
detail
);
}
}
}
}
//实缴
if
(
detail
.
getSettleType
()
==
CommonConstants
.
ONE_INT
){
if
(
detail
.
getBuyType
()
==
CommonConstants
.
THREE_INT
){
detail
.
setPolicyEffect
(
LocalDate
.
now
().
plusDays
(
CommonConstants
.
ONE_INT
));
}
//记录状态均置为「已投保」
detail
.
setBuyHandleStatus
(
CommonConstants
.
THREE_INT
);
//记录的有效状态,置为「有效」
detail
.
setIsEffect
(
CommonConstants
.
ZERO_INT
);
detail
.
setIsOverdue
(
CommonConstants
.
ZERO_INT
);
successList
.
add
(
detail
);
}
}
}
if
(
CollectionUtils
.
isNotEmpty
(
successList
)){
//更新
this
.
saveOrUpdateBatch
(
detailList
);
//todo 根据结算类型推送ekp
this
.
saveOrUpdateBatch
(
successList
);
//todo 根据结算类型推送预估保费到ekp
}
//根据项目编码获取项目名称
setProjectNameByDeptNo
(
errorList
);
//操作记录
addOperate
(
detail
List
,
user
,
InsurancesConstants
.
SUCCESSFUL
);
addOperate
(
success
List
,
user
,
InsurancesConstants
.
SUCCESSFUL
);
return
R
.
ok
(
errorList
,
InsurancesConstants
.
OPERATE_SUCCESS
);
}
...
...
@@ -1617,6 +1716,29 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
return
String
.
valueOf
(
RedisUtil
.
redis
.
opsForValue
().
get
(
CacheConstants
.
AREA_VALUE
+
areaString
));
}
/**
* 根据项目编码获取项目名称
*
* @author licancan
* @param insuranceList
* @return void
*/
private
void
setProjectNameByDeptNo
(
List
<
InsuranceListVO
>
insuranceList
)
{
if
(
CollectionUtils
.
isNotEmpty
(
insuranceList
)){
List
<
String
>
collect
=
insuranceList
.
stream
().
map
(
e
->
e
.
getDeptNo
()).
distinct
().
collect
(
Collectors
.
toList
());
R
<
SetInfoVo
>
setInfoByCodes
=
archivesDaprUtil
.
getSetInfoByCodes
(
collect
);
if
(
null
!=
setInfoByCodes
&&
setInfoByCodes
.
getCode
()
==
CommonConstants
.
SUCCESS
&&
Common
.
isNotNull
(
setInfoByCodes
.
getData
()))
{
Map
<
String
,
ProjectSetInfoVo
>
data
=
setInfoByCodes
.
getData
().
getProjectSetInfoVoMap
();
for
(
InsuranceListVO
record
:
insuranceList
)
{
ProjectSetInfoVo
jsonObject
=
data
.
get
(
record
.
getDeptNo
());
if
(
null
!=
jsonObject
){
record
.
setProjectName
(
Optional
.
ofNullable
(
jsonObject
.
getDepartName
()).
orElse
(
""
));
}
}
}
}
}
/**
* 操作记录
*
...
...
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