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
f77c68b0
Commit
f77c68b0
authored
Oct 28, 2025
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进1
parent
79e3368c
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
555 additions
and
26 deletions
+555
-26
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+62
-4
yd-csf-service/src/main/java/com/yd/csf/service/dao/PolicyFollowRecordMapper.java
+18
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/AttachmentUploadRequest.java
+24
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/ChangePolicyFollowStatusRequest.java
+34
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowAddRequest.java
+12
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowUpdateRequest.java
+0
-6
yd-csf-service/src/main/java/com/yd/csf/service/enums/PolicyFollowStatusEnum.java
+20
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
+39
-5
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollowRecord.java
+62
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowRecordService.java
+17
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
+5
-4
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowRecordServiceImpl.java
+37
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
+80
-5
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowRecordVO.java
+65
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowVO.java
+58
-1
yd-csf-service/src/main/resources/mappers/PolicyFollowRecordMapper.xml
+22
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
f77c68b0
...
...
@@ -5,6 +5,7 @@ import com.alibaba.excel.ExcelReader;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.alibaba.excel.read.metadata.ReadSheet
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.utils.SecurityUtil
;
...
...
@@ -20,6 +21,7 @@ import com.yd.csf.service.dto.*;
import
com.yd.csf.service.enums.PolicyFollowStatusEnum
;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.service.*
;
import
com.yd.csf.service.vo.PolicyFollowRecordVO
;
import
com.yd.csf.service.vo.PolicyFollowVO
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
...
...
@@ -68,6 +70,8 @@ public class ApiPolicyFollowController {
private
CustomerService
customerService
;
@Resource
private
ReconciliationCompanyService
reconciliationCompanyService
;
@Resource
private
PolicyFollowRecordService
policyFollowRecordService
;
@PostMapping
(
"/upload/excel"
)
...
...
@@ -372,6 +376,24 @@ public class ApiPolicyFollowController {
}
/**
* 新单跟进上传附件
*
* @param attachmentUploadRequest
* @return
*/
@PostMapping
(
"/attachment/upload"
)
@Operation
(
summary
=
"新单跟进上传附件"
)
public
Result
<
Boolean
>
attachmentUpload
(
@RequestBody
AttachmentUploadRequest
attachmentUploadRequest
)
{
if
(
StringUtils
.
isBlank
(
attachmentUploadRequest
.
getPolicyBizId
()))
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"policyBizId不能为空"
);
}
if
(
CollectionUtils
.
isEmpty
(
attachmentUploadRequest
.
getAttachmentList
()))
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"附件地址列表不能为空"
);
}
return
Result
.
success
(
policyFollowService
.
uploadAttachment
(
attachmentUploadRequest
));
}
/**
* 根据 policyBizId 获取新单跟进(封装类)
*
* @param policyBizId
...
...
@@ -380,8 +402,8 @@ public class ApiPolicyFollowController {
@GetMapping
(
"/get/vo"
)
@Operation
(
summary
=
"根据 policyBizId 获取新单跟进详情"
)
public
Result
<
PolicyFollowVO
>
getPolicyFollowByPolicyBizId
(
@RequestParam
(
"policyBizId"
)
String
policyBizId
,
HttpServletRequest
request
)
{
if
(
policyBizId
==
null
)
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
ErrorCode
.
PARAMS_ERROR
.
getMessage
()
);
if
(
StringUtils
.
isBlank
(
policyBizId
)
)
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"policyBizId不能为空"
);
}
// 查询数据库
PolicyFollow
policyFollow
=
policyFollowService
.
getByPolicyBizId
(
policyBizId
);
...
...
@@ -419,7 +441,7 @@ public class ApiPolicyFollowController {
@PostMapping
(
"/list/page/vo"
)
@Operation
(
summary
=
"分页获取新单跟进列表"
)
public
Result
<
Page
<
PolicyFollowVO
>>
listPolicyFollowByPage
(
@RequestBody
PolicyFollowQueryRequest
policyFollowQueryRequest
,
HttpServletRequest
request
)
{
HttpServletRequest
request
)
{
long
current
=
policyFollowQueryRequest
.
getPageNo
();
long
size
=
policyFollowQueryRequest
.
getPageSize
();
...
...
@@ -430,4 +452,39 @@ public class ApiPolicyFollowController {
return
Result
.
success
(
policyFollowService
.
getPolicyFollowVOPage
(
policyFollowPage
));
}
}
/**
* 修改跟进状态
*
* @param changePolicyFollowStatusRequest
* @param request
* @return
*/
@PostMapping
(
"/change_status"
)
@Operation
(
summary
=
"修改跟进状态"
)
public
Result
<
Boolean
>
changePolicyFollowStatus
(
@RequestBody
ChangePolicyFollowStatusRequest
changePolicyFollowStatusRequest
,
HttpServletRequest
request
)
{
if
(
changePolicyFollowStatusRequest
==
null
||
StringUtils
.
isBlank
(
changePolicyFollowStatusRequest
.
getPolicyBizId
()))
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"policyBizId不能为空"
);
}
return
Result
.
success
(
policyFollowService
.
changePolicyFollowStatus
(
changePolicyFollowStatusRequest
));
}
/**
* 新单跟进状态列表查询
*
* @param policyBizId
* @return
*/
@GetMapping
(
"/status/list"
)
@Operation
(
summary
=
"新单跟进状态列表查询"
)
public
Result
<
List
<
PolicyFollowRecordVO
>>
getPolicyFollowRecordList
(
@RequestParam
(
"policyBizId"
)
String
policyBizId
)
{
if
(
policyBizId
==
null
)
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"policyBizId不能为空"
);
}
QueryWrapper
<
PolicyFollowRecord
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"policy_biz_id"
,
policyBizId
);
queryWrapper
.
orderByDesc
(
"id"
);
List
<
PolicyFollowRecord
>
policyFollowStatusList
=
policyFollowRecordService
.
list
(
queryWrapper
);
return
Result
.
success
(
policyFollowRecordService
.
getVOList
(
policyFollowStatusList
));
}
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/dao/PolicyFollowRecordMapper.java
0 → 100644
View file @
f77c68b0
package
com
.
yd
.
csf
.
service
.
dao
;
import
com.yd.csf.service.model.PolicyFollowRecord
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* @author Zhang Jianan
* @description 针对表【policy_follow_record(新单跟进记录表)】的数据库操作Mapper
* @createDate 2025-10-28 17:29:50
* @Entity generator.domain.PolicyFollowRecord
*/
public
interface
PolicyFollowRecordMapper
extends
BaseMapper
<
PolicyFollowRecord
>
{
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/AttachmentUploadRequest.java
0 → 100644
View file @
f77c68b0
package
com
.
yd
.
csf
.
service
.
dto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
@Data
public
class
AttachmentUploadRequest
implements
Serializable
{
/**
* 新单跟进bizId
*/
@Schema
(
description
=
"新单跟进bizId"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
policyBizId
;
/**
* 附件地址列表
*/
@Schema
(
description
=
"附件地址列表"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
List
<
String
>
attachmentList
;
private
static
final
long
serialVersionUID
=
1L
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/ChangePolicyFollowStatusRequest.java
0 → 100644
View file @
f77c68b0
package
com
.
yd
.
csf
.
service
.
dto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
ChangePolicyFollowStatusRequest
{
/**
* 新单编号
*/
@Schema
(
description
=
"新单编号"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
policyBizId
;
/**
* 新单状态
*/
@Schema
(
description
=
"新单状态 'CHECKING'-'文件检查中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消','FOLLOW_UP'-'待跟进', 字典值: policy_follow_status"
)
private
String
status
;
/**
* 跟进信息
*/
@Schema
(
description
=
"跟进信息"
)
private
String
message
;
/**
* 附件列表
*/
@Schema
(
description
=
"附件列表"
)
private
List
<
String
>
attachments
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowAddRequest.java
View file @
f77c68b0
...
...
@@ -24,6 +24,18 @@ public class PolicyFollowAddRequest implements Serializable {
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
signDate
;
/**
* 预约业务id
*/
@Schema
(
description
=
"预约业务id"
)
private
String
appointmentBizId
;
/**
* 预约单号
*/
@Schema
(
description
=
"预约单号"
)
private
String
appointmentNo
;
/**
* 签单人
*/
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowUpdateRequest.java
View file @
f77c68b0
...
...
@@ -19,12 +19,6 @@ public class PolicyFollowUpdateRequest {
private
String
policyBizId
;
/**
* 新单状态
*/
@Schema
(
description
=
"新单状态 'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消', 字典值: policy_follow_status"
)
private
String
status
;
/**
* 客户名称
*/
@Schema
(
description
=
"客户名称"
)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/enums/PolicyFollowStatusEnum.java
View file @
f77c68b0
...
...
@@ -7,7 +7,7 @@ import org.apache.commons.lang3.ObjectUtils;
*/
public
enum
PolicyFollowStatusEnum
{
FOLLOW_UP
(
"待跟进"
,
"FOLLOW_UP"
),
CHECKING
(
"
审核
中"
,
"CHECKING"
),
CHECKING
(
"
文件检查
中"
,
"CHECKING"
),
UNDERWRITING
(
"承保中"
,
"UNDERWRITING"
),
FINISHED
(
"已完成"
,
"FINISHED"
),
DECLINED
(
"已拒绝"
,
"DECLINED"
),
...
...
@@ -49,4 +49,23 @@ public enum PolicyFollowStatusEnum {
public
String
getItemValue
()
{
return
itemValue
;
}
/**
* 根据 value 获取枚举
*
* @param value
* @return
*/
public
static
PolicyFollowStatusEnum
getEnumByValue
(
String
value
)
{
if
(
ObjectUtils
.
isEmpty
(
value
))
{
return
null
;
}
for
(
PolicyFollowStatusEnum
anEnum
:
PolicyFollowStatusEnum
.
values
())
{
if
(
anEnum
.
getItemValue
().
equals
(
value
))
{
return
anEnum
;
}
}
return
null
;
}
}
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
View file @
f77c68b0
...
...
@@ -4,10 +4,8 @@ import com.baomidou.mybatisplus.annotation.*;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDate
;
import
java.util.Date
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
/**
...
...
@@ -48,8 +46,14 @@ public class PolicyFollow implements Serializable {
*/
private
String
userBizId
;
/**
* 客户业务id
*/
private
String
customerBizId
;
/**
* 客户名称
*/
private
String
customerName
;
/**
...
...
@@ -63,6 +67,11 @@ public class PolicyFollow implements Serializable {
private
String
signer
;
/**
* 缮发日期
*/
private
Date
issueDate
;
/**
* 生效日期
*/
private
Date
effectiveDate
;
...
...
@@ -93,11 +102,31 @@ public class PolicyFollow implements Serializable {
private
Integer
prepaidTerm
;
/**
* 预付额
*/
private
String
prepaidAmount
;
/**
* 折扣后预付额
*/
private
String
prepaidAmountAfterDiscount
;
/**
* 保单截止日期
*/
private
Date
policyExpirationDate
;
/**
* 缴费编号
*/
private
String
paymentNumber
;
/**
* 产品名称
*/
private
String
productName
;
/**
/**
* 产品类别
*/
private
String
productCate
;
...
...
@@ -148,14 +177,19 @@ public class PolicyFollow implements Serializable {
private
Object
initialPremium
;
/**
* 通用备注
* 附件列表
*/
private
String
attachments
;
/**
* 备注
*/
private
String
remark
;
/**
* 删除标识: 0-正常, 1-删除
*/
@Table
Logic
@Table
Field
()
private
Integer
isDeleted
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollowRecord.java
0 → 100644
View file @
f77c68b0
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 新单跟进记录表
* @TableName policy_follow_record
*/
@TableName
(
value
=
"policy_follow_record"
)
@Data
public
class
PolicyFollowRecord
implements
Serializable
{
/**
* id
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 新单跟进唯一业务ID
*/
private
String
policyBizId
;
/**
* 跟进状态
*/
private
String
title
;
/**
* 跟进信息
*/
private
String
message
;
/**
* 删除标识: 0-正常, 1-删除
*/
private
Integer
isDeleted
;
/**
* 创建人ID
*/
private
String
creatorId
;
/**
* 创建人名称
*/
private
String
creatorName
;
/**
* 创建时间
*/
private
Date
createTime
;
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowRecordService.java
0 → 100644
View file @
f77c68b0
package
com
.
yd
.
csf
.
service
.
service
;
import
com.yd.csf.service.model.PolicyFollowRecord
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yd.csf.service.vo.PolicyFollowRecordVO
;
import
java.util.List
;
/**
* @author Zhang Jianan
* @description 针对表【policy_follow_record(新单跟进记录表)】的数据库操作Service
* @createDate 2025-10-28 17:29:50
*/
public
interface
PolicyFollowRecordService
extends
IService
<
PolicyFollowRecord
>
{
List
<
PolicyFollowRecordVO
>
getVOList
(
List
<
PolicyFollowRecord
>
policyFollowStatusList
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
View file @
f77c68b0
...
...
@@ -3,10 +3,7 @@ package com.yd.csf.service.service;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yd.csf.service.dto.AddToPolicyRequest
;
import
com.yd.csf.service.dto.PolicyFollowAddRequest
;
import
com.yd.csf.service.dto.PolicyFollowQueryRequest
;
import
com.yd.csf.service.dto.PolicyFollowUpdateRequest
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.model.PolicyFollow
;
import
com.yd.csf.service.vo.PolicyFollowVO
;
...
...
@@ -32,4 +29,8 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
Map
<
String
,
Object
>
addPolicyFollow
(
PolicyFollowAddRequest
policyFollowAddRequest
);
Boolean
addToPolicy
(
AddToPolicyRequest
addToPolicyRequest
);
Boolean
changePolicyFollowStatus
(
ChangePolicyFollowStatusRequest
changePolicyFollowStatusRequest
);
Boolean
uploadAttachment
(
AttachmentUploadRequest
attachmentUploadRequest
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowRecordServiceImpl.java
0 → 100644
View file @
f77c68b0
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.csf.service.model.PolicyFollowRecord
;
import
com.yd.csf.service.service.PolicyFollowRecordService
;
import
com.yd.csf.service.dao.PolicyFollowRecordMapper
;
import
com.yd.csf.service.vo.PolicyFollowRecordVO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.stereotype.Service
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author Zhang Jianan
* @description 针对表【policy_follow_record(新单跟进记录表)】的数据库操作Service实现
* @createDate 2025-10-28 17:29:50
*/
@Service
public
class
PolicyFollowRecordServiceImpl
extends
ServiceImpl
<
PolicyFollowRecordMapper
,
PolicyFollowRecord
>
implements
PolicyFollowRecordService
{
@Override
public
List
<
PolicyFollowRecordVO
>
getVOList
(
List
<
PolicyFollowRecord
>
policyFollowStatusList
)
{
if
(
CollectionUtils
.
isEmpty
(
policyFollowStatusList
))
{
return
Collections
.
emptyList
();
}
return
policyFollowStatusList
.
stream
()
.
map
(
PolicyFollowRecordVO:
:
objToVO
)
.
collect
(
Collectors
.
toList
());
}
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
f77c68b0
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
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
;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.utils.SecurityUtil
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.enums.PolicyFollowStatusEnum
;
import
com.yd.csf.service.model.Policy
;
import
com.yd.csf.service.model.PolicyBroker
;
import
com.yd.csf.service.model.PolicyFollow
;
import
com.yd.csf.service.model.PolicyFollowRecord
;
import
com.yd.csf.service.service.PolicyBrokerService
;
import
com.yd.csf.service.service.PolicyFollowRecordService
;
import
com.yd.csf.service.service.PolicyFollowService
;
import
com.yd.csf.service.dao.PolicyFollowMapper
;
import
com.yd.csf.service.service.PolicyService
;
...
...
@@ -26,10 +29,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -45,6 +45,11 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
private
PolicyBrokerService
policyBrokerService
;
@Resource
private
PolicyService
policyService
;
@Resource
private
PolicyFollowService
policyFollowService
;
@Resource
private
PolicyFollowRecordService
policyFollowRecordService
;
@Override
public
PolicyFollow
getByPolicyBizId
(
String
policyBizId
)
{
...
...
@@ -228,6 +233,76 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return
true
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
changePolicyFollowStatus
(
ChangePolicyFollowStatusRequest
changePolicyFollowStatusRequest
)
{
String
policyBizId
=
changePolicyFollowStatusRequest
.
getPolicyBizId
();
PolicyFollow
policyFollow
=
getByPolicyBizId
(
policyBizId
);
if
(
policyFollow
==
null
)
{
throw
new
BusinessException
(
ErrorCode
.
NOT_FOUND_ERROR
.
getCode
(),
ErrorCode
.
NOT_FOUND_ERROR
.
getMessage
());
}
// 校验状态是否存在
PolicyFollowStatusEnum
policyFollowStatusEnum
=
PolicyFollowStatusEnum
.
getEnumByValue
(
changePolicyFollowStatusRequest
.
getStatus
());
if
(
policyFollowStatusEnum
==
null
)
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"跟进状态不存在"
);
}
// 获取当前跟进状态
PolicyFollowStatusEnum
currentStatusEnum
=
PolicyFollowStatusEnum
.
getEnumByValue
(
policyFollow
.
getStatus
());
// 校验状态
validPolicyFollowStatus
(
currentStatusEnum
,
policyFollowStatusEnum
);
// 获取当前登录用户
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
String
loginUserId
=
currentLoginUser
.
getId
().
toString
();
policyFollow
.
setStatus
(
changePolicyFollowStatusRequest
.
getStatus
());
policyFollow
.
setUpdaterId
(
loginUserId
);
policyFollowService
.
updateById
(
policyFollow
);
// 新增新单状态记录
PolicyFollowRecord
policyFollowRecord
=
new
PolicyFollowRecord
();
policyFollowRecord
.
setId
(
null
);
policyFollowRecord
.
setPolicyBizId
(
policyBizId
);
policyFollowRecord
.
setTitle
(
Objects
.
requireNonNull
(
policyFollowStatusEnum
.
getItemLabel
()));
policyFollowRecord
.
setMessage
(
changePolicyFollowStatusRequest
.
getMessage
());
policyFollowRecord
.
setCreatorId
(
loginUserId
);
policyFollowRecord
.
setCreateTime
(
new
Date
());
policyFollowRecordService
.
save
(
policyFollowRecord
);
return
true
;
}
@Override
public
Boolean
uploadAttachment
(
AttachmentUploadRequest
attachmentUploadRequest
)
{
String
policyBizId
=
attachmentUploadRequest
.
getPolicyBizId
();
PolicyFollow
policyFollow
=
getByPolicyBizId
(
policyBizId
);
if
(
policyFollow
==
null
)
{
throw
new
BusinessException
(
ErrorCode
.
NOT_FOUND_ERROR
.
getCode
(),
ErrorCode
.
NOT_FOUND_ERROR
.
getMessage
());
}
policyFollow
.
setAttachments
(
String
.
join
(
","
,
attachmentUploadRequest
.
getAttachmentList
()));
PolicyFollow
updateObj
=
new
PolicyFollow
();
updateObj
.
setId
(
policyFollow
.
getId
());
updateObj
.
setAttachments
(
policyFollow
.
getAttachments
());
return
updateById
(
updateObj
);
}
private
static
void
validPolicyFollowStatus
(
PolicyFollowStatusEnum
currentStatusEnum
,
PolicyFollowStatusEnum
policyFollowStatusEnum
)
{
if
(
PolicyFollowStatusEnum
.
FOLLOW_UP
.
equals
(
currentStatusEnum
)
&&
!
PolicyFollowStatusEnum
.
CHECKING
.
equals
(
policyFollowStatusEnum
))
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"待跟进状态只能改为文件检查中"
);
}
if
(
PolicyFollowStatusEnum
.
CHECKING
.
equals
(
currentStatusEnum
)
&&
!
PolicyFollowStatusEnum
.
UNDERWRITING
.
equals
(
policyFollowStatusEnum
))
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"文件检查中状态只能改为承保中"
);
}
if
(
PolicyFollowStatusEnum
.
UNDERWRITING
.
equals
(
currentStatusEnum
))
{
if
(
PolicyFollowStatusEnum
.
FINISHED
.
equals
(
policyFollowStatusEnum
)
||
PolicyFollowStatusEnum
.
DECLINED
.
equals
(
policyFollowStatusEnum
)
||
PolicyFollowStatusEnum
.
CANCELLED
.
equals
(
policyFollowStatusEnum
))
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"承保中状态只能改为已完成"
);
}
}
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowRecordVO.java
0 → 100644
View file @
f77c68b0
package
com
.
yd
.
csf
.
service
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yd.csf.service.model.PolicyFollowRecord
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
org.springframework.beans.BeanUtils
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
PolicyFollowRecordVO
implements
Serializable
{
@Schema
(
description
=
"id"
)
private
Long
id
;
/**
* 新单跟进唯一业务ID
*/
@Schema
(
description
=
"新单跟进唯一业务ID"
)
private
String
policyBizId
;
/**
* 跟进状态
*/
@Schema
(
description
=
"跟进状态"
)
private
String
title
;
/**
* 跟进信息
*/
@Schema
(
description
=
"跟进信息"
)
private
String
message
;
/**
* 创建人ID
*/
@Schema
(
description
=
"创建人ID"
)
private
String
creatorId
;
/**
* 创建人姓名
*/
@Schema
(
description
=
"创建人姓名"
)
private
String
creatorName
;
/**
* 创建时间
*/
@Schema
(
description
=
"创建时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
private
static
final
long
serialVersionUID
=
1L
;
public
static
PolicyFollowRecordVO
objToVO
(
PolicyFollowRecord
policyFollowRecord
)
{
if
(
policyFollowRecord
==
null
)
{
return
null
;
}
PolicyFollowRecordVO
policyFollowRecordVO
=
new
PolicyFollowRecordVO
();
BeanUtils
.
copyProperties
(
policyFollowRecord
,
policyFollowRecordVO
);
return
policyFollowRecordVO
;
}
}
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowVO.java
View file @
f77c68b0
...
...
@@ -26,6 +26,18 @@ public class PolicyFollowVO implements Serializable {
@Schema
(
description
=
"新单跟进唯一业务ID"
)
private
String
policyBizId
;
/**
* 预约业务id
*/
@Schema
(
description
=
"预约业务id"
)
private
String
appointmentBizId
;
/**
* 预约单号
*/
@Schema
(
description
=
"预约单号"
)
private
String
appointmentNo
;
/**
* 保单号
*/
...
...
@@ -64,6 +76,21 @@ public class PolicyFollowVO implements Serializable {
private
String
signer
;
/**
* 缮发日期
*/
private
Date
issueDate
;
/**
* 生效日期
*/
private
Date
effectiveDate
;
/**
* 续保日期
*/
private
Date
renewalDate
;
/**
* 供款年期
*/
@Schema
(
description
=
"供款年期"
)
...
...
@@ -76,6 +103,36 @@ public class PolicyFollowVO implements Serializable {
private
BigDecimal
paymentPremium
;
/**
* 是否预缴: 0-否, 1-是
*/
private
Integer
isPrepaid
;
/**
* 预缴年期
*/
private
Integer
prepaidTerm
;
/**
* 预付额
*/
private
String
prepaidAmount
;
/**
* 折扣后预付额
*/
private
String
prepaidAmountAfterDiscount
;
/**
* 保单截止日期
*/
private
Date
policyExpirationDate
;
/**
* 缴费编号
*/
private
String
paymentNumber
;
/**
* 产品名称
*/
@Schema
(
description
=
"产品名称"
)
...
...
@@ -108,7 +165,7 @@ public class PolicyFollowVO implements Serializable {
/**
* 新单跟进状态
*/
@Schema
(
description
=
"新单跟进状态
'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消',
字典值: policy_follow_status"
)
@Schema
(
description
=
"新单跟进状态 字典值: policy_follow_status"
)
private
String
status
;
/**
...
...
yd-csf-service/src/main/resources/mappers/PolicyFollowRecordMapper.xml
0 → 100644
View file @
f77c68b0
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yd.csf.service.dao.PolicyFollowRecordMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.yd.csf.service.model.PolicyFollowRecord"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"policyBizId"
column=
"policy_biz_id"
/>
<result
property=
"title"
column=
"title"
/>
<result
property=
"message"
column=
"message"
/>
<result
property=
"isDeleted"
column=
"is_deleted"
/>
<result
property=
"creatorId"
column=
"creator_id"
/>
<result
property=
"creatorName"
column=
"creator_name"
/>
<result
property=
"createTime"
column=
"create_time"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id,policy_biz_id,title,message,is_deleted,creator_id,
creator_name,create_time
</sql>
</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