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
ab1ac225
Commit
ab1ac225
authored
Jul 20, 2022
by
李灿灿
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature-licancan' into 'develop'
商险批增接口 See merge request fangxinjiang/yifu!10
parents
58dc8f00
6e343046
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
425 additions
and
0 deletions
+425
-0
CommonConstants.java
...ud.plus.v1/yifu/common/core/constant/CommonConstants.java
+5
-0
InsurancesConstants.java
...lus/v1/yifu/insurances/constants/InsurancesConstants.java
+8
-0
InsuranceBatchParam.java
...cloud/plus/v1/yifu/insurances/vo/InsuranceBatchParam.java
+162
-0
TInsuranceDetailController.java
...ifu/insurances/controller/TInsuranceDetailController.java
+13
-0
TInsuranceDetailService.java
...s/v1/yifu/insurances/service/TInsuranceDetailService.java
+10
-0
TInsuranceDetailServiceImpl.java
.../insurances/service/impl/TInsuranceDetailServiceImpl.java
+227
-0
No files found.
yifu-common/yifu-common-core/src/main/java/com/yifu.cloud.plus.v1/yifu/common/core/constant/CommonConstants.java
View file @
ab1ac225
...
...
@@ -146,6 +146,11 @@ public interface CommonConstants {
*/
String
THREE_STRING
=
"3"
;
/**
* 数字int 3
*/
int
THREE_INT
=
3
;
/**
* 下划线
* hgw 2022-6-9 17:36:35
...
...
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/constants/InsurancesConstants.java
View file @
ab1ac225
...
...
@@ -111,5 +111,13 @@ public class InsurancesConstants {
* 岗位不能为空
*/
public
static
final
String
POST_NOT_EMPTY
=
"岗位不能为空"
;
/**
* 保单号不能为空
*/
public
static
final
String
POLICY_NO_EMPTY
=
"保单号不能为空"
;
/**
* 保单号不存在
*/
public
static
final
String
POLICY_NO_EXIST
=
"保单号不存在"
;
}
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceBatchParam.java
0 → 100644
View file @
ab1ac225
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
vo
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.time.LocalDate
;
/**
* @author licancan
* @description 商险办理批增入参
* @date 2022-07-20 08:43:31
*/
@Data
@Tag
(
name
=
"商险办理批增入参"
)
public
class
InsuranceBatchParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2689686777914935788L
;
/**
* 订单编号
*/
@Schema
(
description
=
"订单编号"
)
private
String
orderNo
;
/**
* 项目编码
*/
@Schema
(
description
=
"项目编码"
)
private
String
deptNo
;
/**
* 员工姓名
*/
@Schema
(
description
=
"员工姓名"
)
private
String
empName
;
/**
* 员工身份证号
*/
@Schema
(
description
=
"员工身份证号"
)
private
String
empIdcardNo
;
/**
* 岗位
*/
@Schema
(
description
=
"岗位"
)
private
String
post
;
/**
* 保单号
*/
@Schema
(
description
=
"保单号"
)
private
String
policyNo
;
/**
* 保险公司名称
*/
@Schema
(
description
=
"保险公司名称"
)
private
String
insuranceCompanyName
;
/**
* 险种名称
*/
@Schema
(
description
=
"险种名称"
)
private
String
insuranceTypeName
;
/**
* 购买标准
*/
@Schema
(
description
=
"购买标准"
)
private
String
buyStandard
;
/**
* 商险购买地省名称
*/
@Schema
(
description
=
"商险购买地省名称"
)
private
String
insuranceProvinceName
;
/**
* 商险购买地市名称
*/
@Schema
(
description
=
"商险购买地市名称"
)
private
String
insuranceCityName
;
/**
* 商险办理省名称
*/
@Schema
(
description
=
"商险办理省名称"
)
private
String
insuranceHandleProvinceName
;
/**
* 商险办理城市名称
*/
@Schema
(
description
=
"商险办理城市名称"
)
private
String
insuranceHandleCityName
;
/**
* 结算月
*/
@Schema
(
description
=
"结算月"
)
private
String
settleMonth
;
/**
* 备注
*/
@Schema
(
description
=
"备注"
)
private
String
remark
;
/**
* 错误信息
*/
private
String
errorMessage
;
/***********************************以下字段由系统算出,前端不用传,是为了方便入库***********************************/
/**
* 结算类型 (1、单独结算 2、合并结算-和工资一起结算)
*/
private
Integer
settleType
;
/**
* 医疗额度
*/
private
String
medicalQuota
;
/**
* 身故或残疾额度
*/
private
String
dieDisableQuota
;
/**
* 险种主键
*/
private
Long
insuranceTypeId
;
/**
* 商险购买地省code
*/
private
Integer
insuranceProvince
;
/**
* 商险购买地市code
*/
private
Integer
insuranceCity
;
/**
* 商险办理省code
*/
private
Integer
insuranceHandleProvince
;
/**
* 商险办理城市code
*/
private
Integer
insuranceHandleCity
;
/**
* 保单开始时间
*/
private
LocalDate
policyStart
;
/**
* 保单结束时间
*/
private
LocalDate
policyEnd
;
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TInsuranceDetailController.java
View file @
ab1ac225
...
...
@@ -5,6 +5,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.InsuranceRefundCheck
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.TInsuranceDetailService
;
import
com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceAddParam
;
import
com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceBatchParam
;
import
io.swagger.v3.oas.annotations.security.SecurityRequirement
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
...
...
@@ -51,6 +52,18 @@ public class TInsuranceDetailController {
return
tInsuranceDetailService
.
addInsurance
(
paramList
);
}
/**
* 商险批增
*
* @author licancan
* @param paramList
* @return {@link R<List<InsuranceBatchParam>>}
*/
@PostMapping
(
"/batchInsurance"
)
public
R
<
List
<
InsuranceBatchParam
>>
batchInsurance
(
@RequestBody
@Valid
@Size
(
min
=
1
,
message
=
"集合不能为空"
)
List
<
InsuranceBatchParam
>
paramList
){
return
tInsuranceDetailService
.
batchInsurance
(
paramList
);
}
/***********************减员办理********************************/
/**
...
...
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/TInsuranceDetailService.java
View file @
ab1ac225
...
...
@@ -7,6 +7,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.InsuranceRefundCheck
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceDetail
;
import
com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceAddParam
;
import
com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceBatchParam
;
import
java.util.List
;
...
...
@@ -29,6 +30,15 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> {
*/
R
<
List
<
InsuranceAddParam
>>
addInsurance
(
List
<
InsuranceAddParam
>
paramList
);
/**
* 商险批增
*
* @author licancan
* @param paramList
* @return {@link R<List<InsuranceBatchParam>>}
*/
R
<
List
<
InsuranceBatchParam
>>
batchInsurance
(
List
<
InsuranceBatchParam
>
paramList
);
/***********************减员办理********************************/
/**
* 减员导入校验
...
...
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/impl/TInsuranceDetailServiceImpl.java
View file @
ab1ac225
...
...
@@ -23,6 +23,7 @@ import com.yifu.cloud.plus.v1.yifu.insurances.util.BeanCopyUtils;
import
com.yifu.cloud.plus.v1.yifu.insurances.util.LocalDateUtil
;
import
com.yifu.cloud.plus.v1.yifu.insurances.util.ValidityUtil
;
import
com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceAddParam
;
import
com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceBatchParam
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
...
...
@@ -92,6 +93,47 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
return
R
.
ok
(
listResult
,
InsurancesConstants
.
ADD_SUCCESS
);
}
/**
* 商险批增
*
* @param paramList
* @return {@link R<List<InsuranceBatchParam>>}
* @author licancan
*/
@Override
@Transactional
(
rollbackFor
=
{
Exception
.
class
})
public
R
<
List
<
InsuranceBatchParam
>>
batchInsurance
(
List
<
InsuranceBatchParam
>
paramList
)
{
if
(
CollectionUtils
.
isEmpty
(
paramList
)){
return
R
.
failed
(
CommonConstants
.
DATA_CAN_NOT_EMPTY
);
}
YifuUser
user
=
SecurityUtils
.
getUser
();
if
(
user
==
null
||
Common
.
isEmpty
(
user
.
getId
()))
{
return
R
.
failed
(
CommonConstants
.
PLEASE_LOG_IN
);
}
Map
<
String
,
List
<
InsuranceBatchParam
>>
map
=
batchInsuranceCheck
(
paramList
);
//返回给前端的结果
List
<
InsuranceBatchParam
>
listResult
=
map
.
get
(
"listResult"
);
//保存到数据库中的结果
List
<
InsuranceBatchParam
>
listSuccess
=
map
.
get
(
"listSuccess"
);
if
(
CollectionUtils
.
isNotEmpty
(
listSuccess
)){
List
<
TInsuranceDetail
>
detailList
=
new
ArrayList
<>();
for
(
InsuranceBatchParam
success
:
listSuccess
)
{
TInsuranceDetail
detail
=
new
TInsuranceDetail
();
BeanCopyUtils
.
copyProperties
(
success
,
detail
);
//购买类型,默认为「批增」
detail
.
setBuyType
(
CommonConstants
.
THREE_INT
);
//投保状态:待投保???
detail
.
setBuyHandleStatus
(
CommonConstants
.
ONE_INT
);
detail
.
setCreateBy
(
user
.
getId
());
detail
.
setCreateName
(
user
.
getNickname
());
detailList
.
add
(
detail
);
}
this
.
saveBatch
(
detailList
);
}
//todo 操作记录
return
R
.
ok
(
listResult
,
InsurancesConstants
.
ADD_SUCCESS
);
}
/**
* 商险新增校验
*
...
...
@@ -287,6 +329,191 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
return
map
;
}
/**
* 商险批增校验
*
* @author licancan
* @param paramList
* @return {@link Map< String, List< InsuranceBatchParam>>}
*/
private
Map
<
String
,
List
<
InsuranceBatchParam
>>
batchInsuranceCheck
(
List
<
InsuranceBatchParam
>
paramList
){
Map
<
String
,
List
<
InsuranceBatchParam
>>
map
=
new
HashMap
<>();
List
<
InsuranceBatchParam
>
listResult
=
new
ArrayList
<>();
List
<
InsuranceBatchParam
>
listSuccess
=
new
ArrayList
<>();
for
(
InsuranceBatchParam
param
:
paramList
)
{
// 必填校验
if
(
StringUtils
.
isBlank
(
param
.
getOrderNo
())){
param
.
setErrorMessage
(
InsurancesConstants
.
ORDER_NO_NOT_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
if
(
StringUtils
.
isBlank
(
param
.
getDeptNo
())){
param
.
setErrorMessage
(
InsurancesConstants
.
DEPT_NO_NOT_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
if
(
StringUtils
.
isBlank
(
param
.
getEmpName
())){
param
.
setErrorMessage
(
InsurancesConstants
.
EMP_NAME_NOT_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
if
(
StringUtils
.
isBlank
(
param
.
getEmpIdcardNo
())){
param
.
setErrorMessage
(
InsurancesConstants
.
EMP_IDCARD_NO_NOT_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
if
(
StringUtils
.
isBlank
(
param
.
getPost
())){
param
.
setErrorMessage
(
InsurancesConstants
.
POST_NOT_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
if
(
StringUtils
.
isBlank
(
param
.
getPolicyNo
())){
param
.
setErrorMessage
(
InsurancesConstants
.
POLICY_NO_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
if
(
StringUtils
.
isBlank
(
param
.
getInsuranceCompanyName
())){
param
.
setErrorMessage
(
InsurancesConstants
.
INSURANCE_COMPANY_NAME_NOT_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
if
(
StringUtils
.
isBlank
(
param
.
getInsuranceTypeName
())){
param
.
setErrorMessage
(
InsurancesConstants
.
INSURANCE_TYPE_NAME_NOT_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
if
(
StringUtils
.
isBlank
(
param
.
getBuyStandard
())){
param
.
setErrorMessage
(
InsurancesConstants
.
BUY_STANDARD_NOT_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
if
(
StringUtils
.
isBlank
(
param
.
getInsuranceProvinceName
())){
param
.
setErrorMessage
(
InsurancesConstants
.
INSURANCE_PROVINCE_NAME_NOT_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
if
(
StringUtils
.
isBlank
(
param
.
getInsuranceCityName
())){
param
.
setErrorMessage
(
InsurancesConstants
.
INSURANCE_CITY_NAME_NOT_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
if
(
StringUtils
.
isBlank
(
param
.
getInsuranceHandleProvinceName
())){
param
.
setErrorMessage
(
InsurancesConstants
.
INSURANCE_HANDLE_PROVINCE_NAME_NOT_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
if
(
StringUtils
.
isBlank
(
param
.
getInsuranceHandleCityName
())){
param
.
setErrorMessage
(
InsurancesConstants
.
INSURANCE_HANDLE_CITY_NAME_NOT_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
if
(
StringUtils
.
isBlank
(
param
.
getSettleMonth
())){
param
.
setErrorMessage
(
InsurancesConstants
.
SETTLE_MONTH_NOT_EMPTY
);
listResult
.
add
(
param
);
continue
;
}
// 身份证号位数校验(18 位合法)
if
(
ValidityUtil
.
validateIDCard
(
param
.
getEmpIdcardNo
())){
param
.
setErrorMessage
(
InsurancesConstants
.
EMP_IDCARD_NO_NOT_LEGITIMATE
);
listResult
.
add
(
param
);
continue
;
}
//todo 实名校验合法
//todo 根据项目编码和订单编号查询项目是否存在
//todo 结算类型,根据项目编码获取,并冗余到明细记录中
//param.setSettleType(CommonConstants.ONE_INT);
//todo 省市校验是否正确并设置对应code
//param.setInsuranceProvince();
//param.setInsuranceCity();
//param.setInsuranceHandleProvince();
//param.setInsuranceHandleCity();
// 保险公司-险种-购买标准 是否存在
TInsuranceCompany
insuranceCompany
=
tInsuranceCompanyService
.
getOne
(
Wrappers
.<
TInsuranceCompany
>
query
().
lambda
()
.
eq
(
TInsuranceCompany:
:
getCompanyName
,
param
.
getInsuranceCompanyName
())
.
eq
(
TInsuranceCompany:
:
getDeleteFlag
,
CommonConstants
.
ZERO_INT
)
);
if
(!
Optional
.
ofNullable
(
insuranceCompany
).
isPresent
()){
param
.
setErrorMessage
(
InsurancesConstants
.
INSURANCE_COMPANY_NAME_NOT_EXIST
);
listResult
.
add
(
param
);
continue
;
}
else
{
TInsuranceType
insuranceType
=
tInsuranceTypeService
.
getOne
(
Wrappers
.<
TInsuranceType
>
query
().
lambda
()
.
eq
(
TInsuranceType:
:
getName
,
param
.
getInsuranceTypeName
())
.
eq
(
TInsuranceType:
:
getInsuranceCompanyId
,
insuranceCompany
.
getId
())
.
eq
(
TInsuranceType:
:
getDeleteFlag
,
CommonConstants
.
ZERO_INT
)
);
if
(!
Optional
.
ofNullable
(
insuranceType
).
isPresent
()){
param
.
setErrorMessage
(
InsurancesConstants
.
INSURANCE_TYPE_NAME_NOT_EXIST
);
listResult
.
add
(
param
);
continue
;
}
else
{
TInsuranceTypeStandard
typeStandard
=
tInsuranceTypeStandardService
.
getOne
(
Wrappers
.<
TInsuranceTypeStandard
>
query
().
lambda
()
.
eq
(
TInsuranceTypeStandard:
:
getBuyStandard
,
param
.
getBuyStandard
())
.
eq
(
TInsuranceTypeStandard:
:
getInsuranceTypeId
,
insuranceType
.
getId
())
.
eq
(
TInsuranceTypeStandard:
:
getDeleteFlag
,
CommonConstants
.
ZERO_INT
)
);
if
(!
Optional
.
ofNullable
(
typeStandard
).
isPresent
()){
param
.
setErrorMessage
(
InsurancesConstants
.
BUY_STANDARD_NOT_EXIST
);
listResult
.
add
(
param
);
continue
;
}
else
{
// "医疗额度" 和 "身故或残疾",由系统根据 保险公司+险种+ 购买标准 关联查询,并补全
// 这里计算好赋值,是为了方便入库
param
.
setMedicalQuota
(
typeStandard
.
getMedicalQuota
());
param
.
setDieDisableQuota
(
typeStandard
.
getDieDisableQuota
());
param
.
setInsuranceTypeId
(
typeStandard
.
getInsuranceTypeId
());
}
}
}
//记录查重校验:姓名 + 身份证号 + 保险公司 + 险种
TInsuranceDetail
insuranceDetail
=
this
.
baseMapper
.
selectOne
(
Wrappers
.<
TInsuranceDetail
>
query
().
lambda
()
.
eq
(
TInsuranceDetail:
:
getEmpName
,
param
.
getEmpName
())
.
eq
(
TInsuranceDetail:
:
getEmpIdcardNo
,
param
.
getEmpIdcardNo
())
.
eq
(
TInsuranceDetail:
:
getInsuranceCompanyName
,
param
.
getInsuranceCompanyName
())
.
eq
(
TInsuranceDetail:
:
getInsuranceTypeName
,
param
.
getInsuranceTypeName
())
//是否需要加状态过滤?
.
eq
(
TInsuranceDetail:
:
getDeleteFlag
,
CommonConstants
.
ZERO_INT
)
);
if
(
Optional
.
ofNullable
(
insuranceDetail
).
isPresent
()){
param
.
setErrorMessage
(
InsurancesConstants
.
DATA_IS_EXIST
);
listResult
.
add
(
param
);
continue
;
}
//保单开始日期、结束日期,由系统根据保单号关联查询投保状态为 "已投保" 的商险记录的任意一条
TInsuranceDetail
limitOne
=
this
.
baseMapper
.
selectOne
(
Wrappers
.<
TInsuranceDetail
>
query
().
lambda
()
.
eq
(
TInsuranceDetail:
:
getPolicyNo
,
param
.
getPolicyNo
())
.
eq
(
TInsuranceDetail:
:
getBuyHandleStatus
,
CommonConstants
.
THREE_INT
)
.
eq
(
TInsuranceDetail:
:
getDeleteFlag
,
CommonConstants
.
ZERO_INT
)
.
last
(
CommonConstants
.
LAST_ONE_SQL
)
);
if
(!
Optional
.
ofNullable
(
limitOne
).
isPresent
()){
param
.
setErrorMessage
(
InsurancesConstants
.
POLICY_NO_EXIST
);
listResult
.
add
(
param
);
continue
;
}
else
{
param
.
setPolicyStart
(
limitOne
.
getPolicyStart
());
param
.
setPolicyEnd
(
limitOne
.
getPolicyEnd
());
}
// 结算月份 >= 派单月份(结算月 < 派单月份的记录予以拦截,并提示)
if
(!
LocalDateUtil
.
isDate
(
param
.
getSettleMonth
(),
LocalDateUtil
.
NORM_MONTH_PATTERN
)){
param
.
setErrorMessage
(
InsurancesConstants
.
SETTLE_MONTH_PARSE_ERROR
);
listResult
.
add
(
param
);
continue
;
}
if
(!
LocalDateUtil
.
isCurrentOrFutureMonth
(
param
.
getSettleMonth
())){
param
.
setErrorMessage
(
InsurancesConstants
.
SETTLE_MONTH_SHOULD_IS_FUTURE
);
listResult
.
add
(
param
);
continue
;
}
listSuccess
.
add
(
param
);
}
map
.
put
(
"listResult"
,
listResult
);
map
.
put
(
"listSuccess"
,
listSuccess
);
return
map
;
}
/***********************减员办理********************************/
@Override
public
R
checkInsuranceRefundList
(
List
<
InsuranceRefundCheck
>
insuranceRefundCheckList
)
{
...
...
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