Commit bc285116 by zhangxingmin

Merge remote-tracking branch 'origin/test' into dev_zxm_wx

# Conflicts:
#	yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyDto.java
#	yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyService.java
#	yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyServiceImpl.java
parents 247f8530 0c0237f2
...@@ -79,7 +79,7 @@ public class ApiFnaController { ...@@ -79,7 +79,7 @@ public class ApiFnaController {
@Operation(summary = "更新流程") @Operation(summary = "更新流程")
public Result<Boolean> updateFna(@RequestBody FnaUpdateRequest fnaUpdateRequest) { public Result<Boolean> updateFna(@RequestBody FnaUpdateRequest fnaUpdateRequest) {
if (fnaUpdateRequest == null || StringUtils.isBlank(fnaUpdateRequest.getFnaBizId())) { if (fnaUpdateRequest == null || StringUtils.isBlank(fnaUpdateRequest.getFnaBizId())) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), ResultCode.PARAMS_ERROR.getMessage()); throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "fnaBizId不能为空");
} }
String appointmentNo = null; String appointmentNo = null;
if (StringUtils.isNotBlank(fnaUpdateRequest.getAppointmentBizId())) { if (StringUtils.isNotBlank(fnaUpdateRequest.getAppointmentBizId())) {
...@@ -103,7 +103,7 @@ public class ApiFnaController { ...@@ -103,7 +103,7 @@ public class ApiFnaController {
@Operation(summary = "流程详情") @Operation(summary = "流程详情")
public Result<FnaVO> getFnaVOByBizId(String fnaBizId, HttpServletRequest request) { public Result<FnaVO> getFnaVOByBizId(String fnaBizId, HttpServletRequest request) {
if (StringUtils.isBlank(fnaBizId)) { if (StringUtils.isBlank(fnaBizId)) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), ResultCode.PARAMS_ERROR.getMessage()); return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "fnaBizId不能为空");
} }
// 查询数据库 // 查询数据库
Fna fna = fnaService.getByBizId(fnaBizId); Fna fna = fnaService.getByBizId(fnaBizId);
......
package com.yd.csf.api.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.enums.ResultCode;
import com.yd.common.result.Result;
import com.yd.csf.service.dto.*;
import com.yd.csf.service.model.PolicyAdditional;
import com.yd.csf.service.service.*;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* policy_additional接口
*
* @author jianan
* @since 2025-09-20
*/
@RestController
@RequestMapping("/policy_additional")
@Tag(name = "保单附加险接口")
public class ApiPolicyAdditionalController {
@Resource
private PolicyAdditionalService policyAdditionalService;
/**
* 创建保单附加险
*
* @param policyAdditionalAddRequest
* @param request
* @return
*/
@Operation(summary = "创建保单附加险")
@PostMapping("/add")
public Result<Map<String, Object>> addPolicyAdditional(@RequestBody PolicyAdditionalAddRequest policyAdditionalAddRequest, HttpServletRequest request) {
if (policyAdditionalAddRequest == null) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), ResultCode.PARAMS_ERROR.getMessage());
}
return Result.success(policyAdditionalService.addPolicyAdditional(policyAdditionalAddRequest));
}
/**
* 删除保单附加险
*
* @param policyAdditionalBizId
* @param request
* @return
*/
@DeleteMapping("/delete")
@Operation(summary = "删除保单附加险")
public Result<Boolean> deletePolicyAdditional(@RequestParam("policyAdditionalBizId") String policyAdditionalBizId, HttpServletRequest request) {
if (policyAdditionalBizId == null || StringUtils.isBlank(policyAdditionalBizId)) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "policyAdditionalBizId不能为空");
}
// User user = userService.getLoginUser(request);
// long id = deleteRequest.getId();
// 判断是否存在
PolicyAdditional policyAdditional = policyAdditionalService.getByBizId(policyAdditionalBizId);
if (policyAdditional == null) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), ResultCode.NULL_ERROR.getMessage());
}
// 仅本人或管理员可删除
// if (!oldFna.getUserId().equals(user.getId()) && !userService.isAdmin(request)) {
// throw new BusinessException(ErrorCode.NO_AUTH_ERROR);
// }
// 操作数据库
return Result.success(policyAdditionalService.removeById(policyAdditional.getId()));
}
/**
* 更新保单附加险(产品计划)
*
* @param policyUpdateRequest
* @return
*/
@PostMapping("/update")
@Operation(summary = "更新保单附加险信息")
public Result<Boolean> updatePolicyAdditional(@RequestBody PolicyAdditionalUpdateRequest policyUpdateRequest) {
if (policyUpdateRequest == null || policyUpdateRequest.getPolicyAdditionalBizId() == null) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), ResultCode.PARAMS_ERROR.getMessage());
}
return Result.success(policyAdditionalService.updatePolicyAdditional(policyUpdateRequest));
}
/**
* 根据 policyBizId 获取保单附加险(封装类)
*
* @param policyAdditionalBizId
* @return
*/
@GetMapping("/get/vo")
@Operation(summary = "根据 policyBizId 获取保单附加险详情")
public Result<PolicyAdditional> getPolicyByPolicyAdditionalBizId(@RequestParam("policyAdditionalBizId") String policyAdditionalBizId, HttpServletRequest request) {
if (policyAdditionalBizId == null) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), ResultCode.PARAMS_ERROR.getMessage());
}
// 查询数据库
PolicyAdditional policyAdditional = policyAdditionalService.getByBizId(policyAdditionalBizId);
if (policyAdditional == null) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), ResultCode.NULL_ERROR.getMessage());
}
// 获取封装类
return Result.success(policyAdditional);
}
/**
* 分页获取保单附加险列表
*
* @param PolicyQueryRequest
* @param request
* @return
*/
@PostMapping("/list")
@Operation(summary = "分页获取保单附加险列表")
public Result<Page<PolicyAdditional>> listPolicyByPage(@RequestBody PolicyAdditionalQueryRequest PolicyQueryRequest,
HttpServletRequest request) {
long current = PolicyQueryRequest.getPageNo();
long size = PolicyQueryRequest.getPageSize();
// 查询数据库
QueryWrapper<PolicyAdditional> queryWrapper = new QueryWrapper<PolicyAdditional>();
queryWrapper.eq("policy_biz_id", PolicyQueryRequest.getPolicyBizId());
queryWrapper.orderByAsc("id");
Page<PolicyAdditional> policyAdditionalPage = policyAdditionalService.page(new Page<>(current, size),
queryWrapper);
// 获取封装类
return Result.success(policyAdditionalPage);
}
}
...@@ -2,14 +2,14 @@ package com.yd.csf.api.controller; ...@@ -2,14 +2,14 @@ package com.yd.csf.api.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.enums.ResultCode;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.csf.service.dto.CommissionExpectedQueryRequest; import com.yd.csf.service.dao.PolicyMapper;
import com.yd.csf.service.dto.PolicyQueryRequest; import com.yd.csf.service.dto.*;
import com.yd.csf.service.model.CommissionExpected; import com.yd.csf.service.model.CommissionExpected;
import com.yd.csf.service.model.Policy; import com.yd.csf.service.model.Policy;
import com.yd.csf.service.service.CommissionExpectedService; import com.yd.csf.service.service.*;
import com.yd.csf.service.service.PolicyService;
import com.yd.csf.service.vo.CommissionExpectedVO; import com.yd.csf.service.vo.CommissionExpectedVO;
import com.yd.csf.service.vo.PolicyVO; import com.yd.csf.service.vo.PolicyVO;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
...@@ -34,7 +34,10 @@ public class ApiPolicyController { ...@@ -34,7 +34,10 @@ public class ApiPolicyController {
private PolicyService policyService; private PolicyService policyService;
@Resource @Resource
private CommissionExpectedService commissionExpectedService; private CommissionExpectedService commissionExpectedService;
@Resource
private PolicyPolicyholderService policyPolicyholderService;
@Resource
private PolicyInsurantService policyInsurantService;
/** /**
* 创建保单 * 创建保单
...@@ -81,19 +84,49 @@ public class ApiPolicyController { ...@@ -81,19 +84,49 @@ public class ApiPolicyController {
// } // }
/** /**
* 更新保单 * 更新保单(产品计划)
* *
* @param PolicyUpdateRequest * @param policyUpdateRequest
* @return * @return
*/ */
// @PostMapping("/update") @PostMapping("/update")
// @Operation(summary = "更新保单信息") @Operation(summary = "更新保单信息")
// public Result<Boolean> updatePolicy(@RequestBody PolicyUpdateRequest PolicyUpdateRequest) { public Result<Boolean> updatePolicy(@RequestBody PolicyUpdateRequest policyUpdateRequest) {
// if (PolicyUpdateRequest == null || PolicyUpdateRequest.getPolicyBizId() == null) { if (policyUpdateRequest == null || policyUpdateRequest.getPolicyBizId() == null) {
// return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage()); return Result.fail(ResultCode.PARAMS_ERROR.getCode(), ResultCode.PARAMS_ERROR.getMessage());
// } }
// return Result.success(PolicyService.updatePolicy(PolicyUpdateRequest)); return Result.success(policyService.updatePolicy(policyUpdateRequest));
// } }
/**
* 更新投保人信息
*
* @param policyPolicyholderUpdateRequest
* @return
*/
@PostMapping("/update_policyholder")
@Operation(summary = "更新保单投保人信息")
public Result<Boolean> updatePolicyholder(@RequestBody PolicyPolicyholderUpdateRequest policyPolicyholderUpdateRequest) {
if (policyPolicyholderUpdateRequest == null || policyPolicyholderUpdateRequest.getPolicyPolicyholderBizId() == null) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), ResultCode.PARAMS_ERROR.getMessage());
}
return Result.success(policyPolicyholderService.update(policyPolicyholderUpdateRequest));
}
/**
* 更新受保人信息
*
* @param policyInsurantUpdateRequest
* @return
*/
@PostMapping("/update_policy_insurant")
@Operation(summary = "更新保单受保人信息")
public Result<Boolean> updatePolicyInsurant(@RequestBody PolicyInsurantUpdateRequest policyInsurantUpdateRequest) {
if (policyInsurantUpdateRequest == null || policyInsurantUpdateRequest.getPolicyInsurantBizId() == null) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "policyInsurantBizId不能为空");
}
return Result.success(policyInsurantService.update(policyInsurantUpdateRequest));
}
/** /**
* 根据 policyBizId 获取保单(封装类) * 根据 policyBizId 获取保单(封装类)
......
...@@ -5,6 +5,7 @@ import com.alibaba.excel.ExcelReader; ...@@ -5,6 +5,7 @@ import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.read.metadata.ReadSheet; 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.auth.core.dto.AuthUserDto; import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil; import com.yd.auth.core.utils.SecurityUtil;
...@@ -20,6 +21,7 @@ import com.yd.csf.service.dto.*; ...@@ -20,6 +21,7 @@ import com.yd.csf.service.dto.*;
import com.yd.csf.service.enums.PolicyFollowStatusEnum; import com.yd.csf.service.enums.PolicyFollowStatusEnum;
import com.yd.csf.service.model.*; import com.yd.csf.service.model.*;
import com.yd.csf.service.service.*; import com.yd.csf.service.service.*;
import com.yd.csf.service.vo.PolicyFollowRecordVO;
import com.yd.csf.service.vo.PolicyFollowVO; import com.yd.csf.service.vo.PolicyFollowVO;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
...@@ -68,6 +70,10 @@ public class ApiPolicyFollowController { ...@@ -68,6 +70,10 @@ public class ApiPolicyFollowController {
private CustomerService customerService; private CustomerService customerService;
@Resource @Resource
private ReconciliationCompanyService reconciliationCompanyService; private ReconciliationCompanyService reconciliationCompanyService;
@Resource
private PolicyFollowRecordService policyFollowRecordService;
@Resource
private PolicyFollowFileService policyFollowFileService;
@PostMapping("/upload/excel") @PostMapping("/upload/excel")
...@@ -365,13 +371,65 @@ public class ApiPolicyFollowController { ...@@ -365,13 +371,65 @@ public class ApiPolicyFollowController {
@PostMapping("/update") @PostMapping("/update")
@Operation(summary = "更新新单跟进信息") @Operation(summary = "更新新单跟进信息")
public Result<Boolean> updatePolicyFollow(@RequestBody PolicyFollowUpdateRequest policyFollowUpdateRequest) { public Result<Boolean> updatePolicyFollow(@RequestBody PolicyFollowUpdateRequest policyFollowUpdateRequest) {
if (policyFollowUpdateRequest == null || policyFollowUpdateRequest.getPolicyBizId() == null) { if (policyFollowUpdateRequest == null || StringUtils.isBlank(policyFollowUpdateRequest.getPolicyBizId())) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage()); return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
} }
return Result.success(policyFollowService.updatePolicyFollow(policyFollowUpdateRequest)); return Result.success(policyFollowService.updatePolicyFollow(policyFollowUpdateRequest));
} }
/** /**
* 新单跟进上传附件
*
* @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不能为空");
}
return Result.success(policyFollowService.uploadAttachment(attachmentUploadRequest));
}
/**
* 新单跟进附件列表分页查询
*
* @param queryRequest
* @return
*/
@PostMapping("/attachment/list/page")
@Operation(summary = "新单跟进附件列表分页查询")
public Result<Page<PolicyFollowFile>> attachmentListPage(@RequestBody PolicyFollowFileQueryRequest queryRequest) {
if (StringUtils.isBlank(queryRequest.getPolicyBizId())) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
}
long current = queryRequest.getPageNo();
long size = queryRequest.getPageSize();
QueryWrapper<PolicyFollowFile> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("policy_biz_id", queryRequest.getPolicyBizId());
queryWrapper.eq("is_deleted", 0);
Page<PolicyFollowFile> policyFollowFilePage = policyFollowFileService.page(new Page<>(current, size), queryWrapper);
return Result.success(policyFollowFilePage);
}
/**
* 删除新单跟进附件
*
* @param fileId
* @return
*/
@DeleteMapping("/attachment/delete")
@Operation(summary = "删除新单跟进附件")
public Result<Boolean> deletePolicyFollowAttachment(@RequestParam("fileId") Long fileId) {
if (fileId == null) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "fileId不能为空");
}
return Result.success(policyFollowFileService.removeById(fileId));
}
/**
* 根据 policyBizId 获取新单跟进(封装类) * 根据 policyBizId 获取新单跟进(封装类)
* *
* @param policyBizId * @param policyBizId
...@@ -380,8 +438,8 @@ public class ApiPolicyFollowController { ...@@ -380,8 +438,8 @@ public class ApiPolicyFollowController {
@GetMapping("/get/vo") @GetMapping("/get/vo")
@Operation(summary = "根据 policyBizId 获取新单跟进详情") @Operation(summary = "根据 policyBizId 获取新单跟进详情")
public Result<PolicyFollowVO> getPolicyFollowByPolicyBizId(@RequestParam("policyBizId") String policyBizId, HttpServletRequest request) { public Result<PolicyFollowVO> getPolicyFollowByPolicyBizId(@RequestParam("policyBizId") String policyBizId, HttpServletRequest request) {
if (policyBizId == null) { if (StringUtils.isBlank(policyBizId)) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage()); return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
} }
// 查询数据库 // 查询数据库
PolicyFollow policyFollow = policyFollowService.getByPolicyBizId(policyBizId); PolicyFollow policyFollow = policyFollowService.getByPolicyBizId(policyBizId);
...@@ -393,6 +451,18 @@ public class ApiPolicyFollowController { ...@@ -393,6 +451,18 @@ public class ApiPolicyFollowController {
return Result.success(policyFollowService.getPolicyFollowVO(policyFollow)); return Result.success(policyFollowService.getPolicyFollowVO(policyFollow));
} }
@GetMapping("/detail/{policyBizId}")
@Operation(summary = "根据 policyBizId 获取新单跟进聚合详情")
public Result<PolicyFollowAggregateDto> getPolicyFollowAggregate(@PathVariable String policyBizId) {
try {
PolicyFollowAggregateDto result = policyFollowService.getPolicyFollowAggregate(policyBizId);
return Result.success(result);
} catch (Exception e) {
log.error("获取新单跟进聚合详情失败, policyBizId: {}", policyBizId, e);
return Result.fail("查询失败: " + e.getMessage());
}
}
/** /**
* 分页获取新单跟进列表(仅管理员可用) * 分页获取新单跟进列表(仅管理员可用)
* *
...@@ -410,7 +480,7 @@ public class ApiPolicyFollowController { ...@@ -410,7 +480,7 @@ public class ApiPolicyFollowController {
// } // }
/** /**
* 分页获取新单跟进列表(VO) * 分页获取新单跟进列表
* *
* @param policyFollowQueryRequest * @param policyFollowQueryRequest
* @param request * @param request
...@@ -418,8 +488,8 @@ public class ApiPolicyFollowController { ...@@ -418,8 +488,8 @@ public class ApiPolicyFollowController {
*/ */
@PostMapping("/list/page/vo") @PostMapping("/list/page/vo")
@Operation(summary = "分页获取新单跟进列表") @Operation(summary = "分页获取新单跟进列表")
public Result<Page<PolicyFollowVO>> listPolicyFollowByPage(@RequestBody PolicyFollowQueryRequest policyFollowQueryRequest, public Result<Page<PolicyFollow>> listPolicyFollowByPage(@RequestBody PolicyFollowQueryRequest policyFollowQueryRequest,
HttpServletRequest request) { HttpServletRequest request) {
long current = policyFollowQueryRequest.getPageNo(); long current = policyFollowQueryRequest.getPageNo();
long size = policyFollowQueryRequest.getPageSize(); long size = policyFollowQueryRequest.getPageSize();
...@@ -427,7 +497,42 @@ public class ApiPolicyFollowController { ...@@ -427,7 +497,42 @@ public class ApiPolicyFollowController {
Page<PolicyFollow> policyFollowPage = policyFollowService.page(new Page<>(current, size), Page<PolicyFollow> policyFollowPage = policyFollowService.page(new Page<>(current, size),
policyFollowService.getQueryWrapper(policyFollowQueryRequest)); policyFollowService.getQueryWrapper(policyFollowQueryRequest));
// 获取封装类 // 获取封装类
return Result.success(policyFollowService.getPolicyFollowVOPage(policyFollowPage)); return Result.success(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
...@@ -24,4 +24,14 @@ public class CustomerTypeIndividualCheckCommonDto { ...@@ -24,4 +24,14 @@ public class CustomerTypeIndividualCheckCommonDto {
* 性别(字典) * 性别(字典)
*/ */
private String gender; private String gender;
/**
* 证件类型(字典)
*/
private String documentType;
/**
* 证件号码
*/
private String idNumber;
} }
...@@ -282,9 +282,9 @@ public class ApiAppointmentCheckServiceImpl implements ApiAppointmentCheckServic ...@@ -282,9 +282,9 @@ public class ApiAppointmentCheckServiceImpl implements ApiAppointmentCheckServic
if (Objects.isNull(dto.getEachIssuePremium())) { if (Objects.isNull(dto.getEachIssuePremium())) {
throw new BusinessException(tipStr+"每期保费不能为空"); throw new BusinessException(tipStr+"每期保费不能为空");
} }
if (Objects.isNull(dto.getSumInsured())) { // if (Objects.isNull(dto.getSumInsured())) {
throw new BusinessException(tipStr+"保额不能为空"); // throw new BusinessException(tipStr+"保额不能为空");
} // }
if (Objects.isNull(dto.getIsPrepay())) { if (Objects.isNull(dto.getIsPrepay())) {
throw new BusinessException(tipStr+"是否预缴保费不能为空"); throw new BusinessException(tipStr+"是否预缴保费不能为空");
} }
...@@ -326,9 +326,9 @@ public class ApiAppointmentCheckServiceImpl implements ApiAppointmentCheckServic ...@@ -326,9 +326,9 @@ public class ApiAppointmentCheckServiceImpl implements ApiAppointmentCheckServic
if (Objects.isNull(dto.getPremium())) { if (Objects.isNull(dto.getPremium())) {
throw new BusinessException(tipStr+"第"+i+"项的保费不能为空"); throw new BusinessException(tipStr+"第"+i+"项的保费不能为空");
} }
if (Objects.isNull(dto.getSumInsured())) { // if (Objects.isNull(dto.getSumInsured())) {
throw new BusinessException(tipStr+"第"+i+"项的保额不能为空"); // throw new BusinessException(tipStr+"第"+i+"项的保额不能为空");
} // }
i++; i++;
} }
return Result.success(); return Result.success();
...@@ -362,9 +362,9 @@ public class ApiAppointmentCheckServiceImpl implements ApiAppointmentCheckServic ...@@ -362,9 +362,9 @@ public class ApiAppointmentCheckServiceImpl implements ApiAppointmentCheckServic
if (Objects.isNull(dto.getPremium())) { if (Objects.isNull(dto.getPremium())) {
throw new BusinessException(tipStr+"保费不能为空"); throw new BusinessException(tipStr+"保费不能为空");
} }
if (Objects.isNull(dto.getSumInsured())) { // if (Objects.isNull(dto.getSumInsured())) {
throw new BusinessException(tipStr+"保额不能为空"); // throw new BusinessException(tipStr+"保额不能为空");
} // }
return Result.success(); return Result.success();
} }
...@@ -578,9 +578,9 @@ public class ApiAppointmentCheckServiceImpl implements ApiAppointmentCheckServic ...@@ -578,9 +578,9 @@ public class ApiAppointmentCheckServiceImpl implements ApiAppointmentCheckServic
if (CustomerTypeEnum.INDIVIDUAL.getItemValue().equals(dto.getCustomerType())) { if (CustomerTypeEnum.INDIVIDUAL.getItemValue().equals(dto.getCustomerType())) {
//客户类型为个人的字段校验 //客户类型为个人的字段校验
//校验客户类型为个人类型的公共参数字段 //校验客户类型为个人类型的公共参数字段
if (StringUtils.isBlank(dto.getName())) { // if (StringUtils.isBlank(dto.getName())) {
throw new BusinessException(tipStr+"第"+i+"项的名字不能为空"); // throw new BusinessException(tipStr+"第"+i+"项的名字不能为空");
} // }
if (StringUtils.isBlank(dto.getNameEn())) { if (StringUtils.isBlank(dto.getNameEn())) {
throw new BusinessException(tipStr+"第"+i+"项的名字-英文不能为空"); throw new BusinessException(tipStr+"第"+i+"项的名字-英文不能为空");
} }
...@@ -825,15 +825,21 @@ public class ApiAppointmentCheckServiceImpl implements ApiAppointmentCheckServic ...@@ -825,15 +825,21 @@ public class ApiAppointmentCheckServiceImpl implements ApiAppointmentCheckServic
* @return * @return
*/ */
public Result checkCustomerTypeIndividualCheckCommonDto(CustomerTypeIndividualCheckCommonDto dto,String tipStr){ public Result checkCustomerTypeIndividualCheckCommonDto(CustomerTypeIndividualCheckCommonDto dto,String tipStr){
if (StringUtils.isBlank(dto.getName())) { // if (StringUtils.isBlank(dto.getName())) {
throw new BusinessException(tipStr+"名字不能为空"); // throw new BusinessException(tipStr+"名字不能为空");
} // }
if (StringUtils.isBlank(dto.getNameEn())) { if (StringUtils.isBlank(dto.getNameEn())) {
throw new BusinessException(tipStr+"名字-英文不能为空"); throw new BusinessException(tipStr+"名字-英文不能为空");
} }
if (StringUtils.isBlank(dto.getGender())) { if (StringUtils.isBlank(dto.getGender())) {
throw new BusinessException(tipStr+"性别不能为空"); throw new BusinessException(tipStr+"性别不能为空");
} }
if (StringUtils.isBlank(dto.getDocumentType())) {
throw new BusinessException(tipStr+"证件类型不能为空");
}
if (StringUtils.isBlank(dto.getIdNumber())) {
throw new BusinessException(tipStr+"证件号码不能为空");
}
return Result.success(); return Result.success();
} }
} }
...@@ -3,6 +3,8 @@ package com.yd.csf.feign.dto.appointmentfile; ...@@ -3,6 +3,8 @@ package com.yd.csf.feign.dto.appointmentfile;
import com.yd.oss.feign.annotation.PdfField; import com.yd.oss.feign.annotation.PdfField;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime;
/** /**
* 预约行程单PDF字段映射实体类 * 预约行程单PDF字段映射实体类
*/ */
...@@ -104,4 +106,10 @@ public class ItineraryDto { ...@@ -104,4 +106,10 @@ public class ItineraryDto {
*/ */
@PdfField("remark") @PdfField("remark")
private String remark; private String remark;
/**
* 确定预约时间(年月日,时分)
*/
@PdfField("confirmAppointmentTime")
private String confirmAppointmentTime;
} }
package com.yd.csf.service.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
@Configuration
@EnableAsync
public class AsyncConfig {
/**
* 异步聚合查询线程池
*/
@Bean("asyncQueryExecutor")
public Executor asyncQueryExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// 核心线程数(根据CPU核心数动态设置)
executor.setCorePoolSize(Runtime.getRuntime().availableProcessors());
// 最大线程数
executor.setMaxPoolSize(Runtime.getRuntime().availableProcessors() * 2);
// 队列容量
executor.setQueueCapacity(100);
// 线程名前缀
executor.setThreadNamePrefix("async-query-");
// 拒绝策略:由调用线程处理(保证不会丢失任务)
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
// 等待任务完成再关闭
executor.setWaitForTasksToCompleteOnShutdown(true);
executor.setAwaitTerminationSeconds(60);
// 空闲线程存活时间
executor.setKeepAliveSeconds(60);
executor.initialize();
return executor;
}
/**
* 通用异步任务线程池
*/
@Bean("commonAsyncExecutor")
public Executor commonAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(5);
executor.setMaxPoolSize(10);
executor.setQueueCapacity(50);
executor.setThreadNamePrefix("common-async-");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.setWaitForTasksToCompleteOnShutdown(true);
executor.setAwaitTerminationSeconds(30);
executor.setKeepAliveSeconds(30);
executor.initialize();
return executor;
}
}
\ No newline at end of file
package com.yd.csf.service.dao;
import com.yd.csf.service.model.PolicyAdditional;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author Zhang Jianan
* @description 针对表【policy_additional(保单附加险信息表)】的数据库操作Mapper
* @createDate 2025-11-03 11:05:09
* @Entity generator.domain.PolicyAdditional
*/
public interface PolicyAdditionalMapper extends BaseMapper<PolicyAdditional> {
}
package com.yd.csf.service.dao;
import com.yd.csf.service.model.PolicyBeneficiary;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author Zhang Jianan
* @description 针对表【policy_beneficiary(受益人信息表)】的数据库操作Mapper
* @createDate 2025-10-31 11:43:16
* @Entity generator.domain.PolicyBeneficiary
*/
public interface PolicyBeneficiaryMapper extends BaseMapper<PolicyBeneficiary> {
}
package com.yd.csf.service.dao;
import com.yd.csf.service.model.PolicyFollowFile;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author Zhang Jianan
* @description 针对表【policy_follow_file(新单跟进附件信息表)】的数据库操作Mapper
* @createDate 2025-10-29 13:32:29
* @Entity generator.domain.PolicyFollowFile
*/
public interface PolicyFollowFileMapper extends BaseMapper<PolicyFollowFile> {
}
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> {
}
package com.yd.csf.service.dao;
import com.yd.csf.service.model.PolicyInsurant;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author Zhang Jianan
* @description 针对表【policy_insurant(保单受保人信息表)】的数据库操作Mapper
* @createDate 2025-10-31 13:29:18
* @Entity generator.domain.PolicyInsurant
*/
public interface PolicyInsurantMapper extends BaseMapper<PolicyInsurant> {
}
package com.yd.csf.service.dao;
import com.yd.csf.service.model.PolicyPolicyholder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author Zhang Jianan
* @description 针对表【policy_policyholder(保单投保人信息表)】的数据库操作Mapper
* @createDate 2025-10-31 11:43:10
* @Entity generator.domain.PolicyPolicyholder
*/
public interface PolicyPolicyholderMapper extends BaseMapper<PolicyPolicyholder> {
}
package com.yd.csf.service.dao;
import com.yd.csf.service.model.PolicySecondHolder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author Zhang Jianan
* @description 针对表【policy_second_holder(第二持有人信息表)】的数据库操作Mapper
* @createDate 2025-10-31 13:29:23
* @Entity generator.domain.PolicySecondHolder
*/
public interface PolicySecondHolderMapper extends BaseMapper<PolicySecondHolder> {
}
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
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;
/**
* 中台文件元数据表唯一业务ID
*/
@NotBlank(message = "中台文件元数据表唯一业务ID不能为空")
@Schema(description = "中台文件元数据表唯一业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String ossFileBizId;
/**
* 文件名
*/
@NotBlank(message = "文件名不能为空")
@Schema(description = "文件名", requiredMode = Schema.RequiredMode.REQUIRED)
private String fileName;
/**
* 文件访问路径
*/
@NotBlank(message = "文件访问路径为空")
@Schema(description = "文件访问路径", requiredMode = Schema.RequiredMode.REQUIRED)
private String fileUrl;
private static final long serialVersionUID = 1L;
}
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 = "跟进状态 通过`PolicyFollowVO`中的nextStatusList下拉框选择")
private String status;
/**
* 跟进信息
*/
@Schema(description = "跟进信息")
private String message;
}
...@@ -5,13 +5,13 @@ import lombok.Data; ...@@ -5,13 +5,13 @@ import lombok.Data;
@Data @Data
public class PersonalData { public class PersonalData {
@Schema(description = "陪同顾问姓名", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "转介人", requiredMode = Schema.RequiredMode.REQUIRED)
private String accountName; private String accountName;
@Schema(description = "理财顾问注册编号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "签单员注册编号", requiredMode = Schema.RequiredMode.REQUIRED)
private String registrationNumber; private String registrationNumber;
@Schema(description = "理财顾问内部编码") @Schema(description = "签单员内部编码")
private String number; private String number;
@Schema(description = "客户姓名", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "客户姓名", requiredMode = Schema.RequiredMode.REQUIRED)
......
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class PolicyAdditionalAddRequest implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 新单跟进业务ID
*/
@Schema(description = "新单跟进业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyBizId;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 产品计划信息表唯一业务ID
*/
@Schema(description = "产品计划信息表唯一业务ID")
private String planBizId;
/**
* 保险附加产品唯一业务ID(中台保险附加产品业务id,冗余)
*/
@Schema(description = "保险附加产品唯一业务ID(中台保险附加产品业务id,冗余)")
private String additionalProductBizId;
/**
* 保险附加产品名称(中台保险附加产品名称,冗余)
*/
@Schema(description = "保险附加产品名称(中台保险附加产品名称,冗余)")
private String addProductName;
/**
* 货币(字典)
*/
@Schema(description = "货币(字典)")
private String currency;
/**
* 保费
*/
@Schema(description = "保费")
private BigDecimal premium;
/**
* 保额
*/
@Schema(description = "保额")
private BigDecimal sumInsured;
/**
* 保障地区(字典)
*/
@Schema(description = "保障地区(字典)")
private String guaranteeRegion;
/**
* 等级(字典)
*/
@Schema(description = "等级(字典)")
private String level;
/**
* 自付额(字典)
*/
@Schema(description = "自付额(字典)")
private String deductibles;
/**
* 附加保障(json串)
*/
@Schema(description = "附加保障(json串)")
private String additionalSafeguards;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}
package com.yd.csf.service.dto;
import com.yd.common.dto.PageDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
public class PolicyAdditionalQueryRequest extends PageDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 保单业务ID
*/
@Schema(description = "保单业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyBizId;
}
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
public class PolicyAdditionalUpdateRequest extends PolicyAdditionalAddRequest implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 保单附加险业务ID
*/
@Schema(description = "保单附加险业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyAdditionalBizId;
}
package com.yd.csf.service.dto; package com.yd.csf.service.dto;
import lombok.AllArgsConstructor; import com.yd.csf.feign.dto.appointment.ApiProductPlanAdditionalInfoDto;
import lombok.Builder; import com.yd.csf.service.model.Policy;
import com.yd.csf.service.model.PolicyAdditional;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List; import java.util.List;
@Data @Data
@Builder public class PolicyDto implements Serializable {
@NoArgsConstructor private static final long serialVersionUID = 1L;
@AllArgsConstructor
public class PolicyDto {
/** /**
* 保单号列表 * 产品计划(保单信息)
*/ */
private List<String> policyNoList; @Schema(description = "产品计划(保单信息)")
private Policy apiProductPlanMainInfoDto;
/**
* 保单附加险列表
*/
@Schema(description = "保单附加险列表")
private List<ApiProductPlanAdditionalInfoDto> apiProductPlanAdditionalInfoDtoList;
} }
...@@ -24,6 +24,18 @@ public class PolicyFollowAddRequest implements Serializable { ...@@ -24,6 +24,18 @@ public class PolicyFollowAddRequest implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private Date signDate; private Date signDate;
/**
* 预约业务id
*/
@Schema(description = "预约业务id")
private String appointmentBizId;
/**
* 预约单号
*/
@Schema(description = "预约单号")
private String appointmentNo;
/** /**
* 签单人 * 签单人
*/ */
......
package com.yd.csf.service.dto;
import com.yd.csf.feign.dto.appointment.*;
import com.yd.csf.service.model.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 新单跟进聚合查询结果DTO
*/
@Data
public class PolicyFollowAggregateDto implements Serializable {
/**
* 新单跟进业务ID
*/
@Schema(description = "新单跟进业务ID")
private String policyBizId;
/**
* 客户业务ID
*/
@Schema(description = "客户业务ID")
private String customerBizId;
/**
* 问卷业务ID
*/
@Schema(description = "问卷业务ID 新单跟进问卷中,objectBizId为policyBizId")
private String questionnaireBizId;
/**
* 保单产品计划(保单)
*/
@Schema(description = "保单产品计划(保单)")
private PolicyDto apiProductPlanInfoDto;
/**
* 保单投保人
*/
@Schema(description = "保单投保人")
private ApiPolicyholderInfoDto apiPolicyholderInfoDto;
/**
* 保单受保人
*/
@Schema(description = "保单受保人")
private ApiInsurantInfoDto apiInsurantInfoDto;
/**
* 保单受益人
*/
@Schema(description = "保单受益人")
private List<ApiBeneficiaryInfoDto> apiBeneficiaryInfoDtoList;
/**
* 保单第二持有人
*/
@Schema(description = "保单第二持有人")
private ApiSecondHolderInfoDto apiSecondHolderInfoDto;
// todo 健康问卷
// private Object policyholderInfo;
// 错误信息(如果有查询失败的情况)
private String errorMessage;
private static final long serialVersionUID = 1L;
public static PolicyFollowAggregateDto convertToDto(Policy policy,
List<PolicyAdditional> policyAdditionals,
PolicyPolicyholder policyPolicyholder,
PolicyInsurant policyInsurant,
List<PolicyBeneficiary> beneficiaryList,
PolicySecondHolder policySecondHolder) {
PolicyFollowAggregateDto dto = new PolicyFollowAggregateDto();
if (ObjectUtils.isEmpty(policy)) {
return dto;
}
// 设置保单产品计划(保单)
if (ObjectUtils.isNotEmpty(policy)) {
PolicyDto apiProductPlanInfoDto = new PolicyDto();
// 产品计划主信息
apiProductPlanInfoDto.setApiProductPlanMainInfoDto(policy);
// 附加险列表
List<ApiProductPlanAdditionalInfoDto> apiProductPlanAdditionalInfoDtoList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(policyAdditionals)) {
policyAdditionals.forEach(policyAdditional -> {
ApiProductPlanAdditionalInfoDto apiProductPlanAdditionalInfoDto = new ApiProductPlanAdditionalInfoDto();
BeanUtils.copyProperties(policyAdditional, apiProductPlanAdditionalInfoDto);
apiProductPlanAdditionalInfoDtoList.add(apiProductPlanAdditionalInfoDto);
});
}
apiProductPlanInfoDto.setApiProductPlanAdditionalInfoDtoList(apiProductPlanAdditionalInfoDtoList);
dto.setApiProductPlanInfoDto(apiProductPlanInfoDto);
}
// 设置保单投保人
if (ObjectUtils.isNotEmpty(policyPolicyholder)) {
ApiPolicyholderInfoDto apiPolicyholderInfoDto = new ApiPolicyholderInfoDto();
BeanUtils.copyProperties(policyPolicyholder, apiPolicyholderInfoDto);
dto.setApiPolicyholderInfoDto(apiPolicyholderInfoDto);
}
// 设置保单受保人
if (ObjectUtils.isNotEmpty(policyInsurant)) {
ApiInsurantInfoDto apiInsurantInfoDto = new ApiInsurantInfoDto();
BeanUtils.copyProperties(policyInsurant, apiInsurantInfoDto);
dto.setApiInsurantInfoDto(apiInsurantInfoDto);
}
// 设置保单受益人
if (CollectionUtils.isNotEmpty(beneficiaryList)) {
List<ApiBeneficiaryInfoDto> apiBeneficiaryInfoDtoList = new ArrayList<>();
beneficiaryList.forEach(beneficiary -> {
ApiBeneficiaryInfoDto apiBeneficiaryInfoDto = new ApiBeneficiaryInfoDto();
BeanUtils.copyProperties(beneficiary, apiBeneficiaryInfoDto);
apiBeneficiaryInfoDtoList.add(apiBeneficiaryInfoDto);
});
dto.setApiBeneficiaryInfoDtoList(apiBeneficiaryInfoDtoList);
}
// 设置保单第二持有人
if (ObjectUtils.isNotEmpty(policySecondHolder)) {
ApiSecondHolderInfoDto apiSecondHolderInfoDto = new ApiSecondHolderInfoDto();
BeanUtils.copyProperties(policySecondHolder, apiSecondHolderInfoDto);
dto.setApiSecondHolderInfoDto(apiSecondHolderInfoDto);
}
return dto;
}
}
\ No newline at end of file
package com.yd.csf.service.dto;
import com.yd.common.dto.PageDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
public class PolicyFollowFileQueryRequest extends PageDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 新单跟进唯一业务ID
*/
@Schema(description = "新单跟进唯一业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyBizId;
}
package com.yd.csf.service.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
public class PolicyFollowUpdateDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 新单编号
*/
@Schema(description = "新单编号", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyBizId;
/**
* 客户名称
*/
@Schema(description = "客户名称")
private String customerName;
/**
* 客户编号
*/
@Schema(description = "客户编号")
private String customerBizId;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 签单日期
*/
@Schema(description = "签单日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date signDate;
/**
* 签单人
*/
@Schema(description = "签单人")
private String signer;
/**
* 生效日期
*/
@Schema(description = "生效日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date effectiveDate;
/**
* 续保日期
*/
@Schema(description = "续保日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date renewalDate;
/**
* 供款年期
*/
@Schema(description = "供款年期")
private Integer paymentTerm;
/**
* 期交保费
*/
@Schema(description = "期交保费")
private BigDecimal paymentPremium;
/**
* 是否预缴: 0-否, 1-是
*/
@Schema(description = "是否预缴: 0-否, 1-是")
private Integer isPrepaid;
/**
* 预缴年期
*/
@Schema(description = "预缴年期")
private Integer prepaidTerm;
/**
* 产品业务id
*/
@Schema(description = "产品业务id")
private String productBizId;
/**
* 产品名称
*/
@Schema(description = "产品名称")
private String productName;
/**
* 产品类别
*/
@Schema(description = "产品类别")
private String productCate;
/**
* 保险公司
*/
@Schema(description = "保险公司")
private String insurer;
/**
* 保险公司业务id
*/
@Schema(description = "保险公司业务id")
private String insurerBizId;
/**
* 对账公司
*/
@Schema(description = "对账公司")
private String reconciliationCompany;
/**
* 对账公司业务id
*/
@Schema(description = "对账公司业务id")
private String reconciliationCompanyBizId;
/**
* 保單持有人
*/
@Schema(description = "保單持有人")
private String policyHolder;
/**
* 受保人
*/
@Schema(description = "受保人")
private String insured;
/**
* 币种
*/
@Schema(description = "币种")
private String currency;
/**
* 首期保费(不含徽费,预缴保费)
*/
@Schema(description = "首期保费(不含徽费,预缴保费)")
private Object initialPremium;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}
package com.yd.csf.service.dto; package com.yd.csf.service.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yd.csf.service.dto.PolicyBrokerDto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
public class PolicyFollowUpdateRequest { public class PolicyFollowUpdateRequest {
/** /**
* 新单编号 * 新单编号
*/ */
...@@ -19,139 +14,10 @@ public class PolicyFollowUpdateRequest { ...@@ -19,139 +14,10 @@ public class PolicyFollowUpdateRequest {
private String policyBizId; private String policyBizId;
/** /**
* 新单状态 * 新单修改Dto
*/
@Schema(description = "新单状态 'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消', 字典值: policy_follow_status")
private String status;
/**
* 客户名称
*/
@Schema(description = "客户名称")
private String customerName;
/**
* 客户编号
*/
@Schema(description = "客户编号")
private String customerBizId;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 签单日期
*/
@Schema(description = "签单日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date signDate;
/**
* 签单人
*/
@Schema(description = "签单人")
private String signer;
/**
* 生效日期
*/
@Schema(description = "生效日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date effectiveDate;
/**
* 续保日期
*/
@Schema(description = "续保日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date renewalDate;
/**
* 供款年期
*/
@Schema(description = "供款年期")
private Integer paymentTerm;
/**
* 期交保费
*/
@Schema(description = "期交保费")
private BigDecimal paymentPremium;
/**
* 是否预缴: 0-否, 1-是
*/
@Schema(description = "是否预缴: 0-否, 1-是")
private Integer isPrepaid;
/**
* 预缴年期
*/ */
@Schema(description = "预缴年期") @Schema(description = "新单修改Dto")
private Integer prepaidTerm; private PolicyFollowUpdateDto policyFollowUpdateDto;
/**
* 产品名称
*/
@Schema(description = "产品名称")
private String productName;
/**
* 产品类别
*/
@Schema(description = "产品类别")
private String productCate;
/**
* 保险公司
*/
@Schema(description = "保险公司")
private String insurer;
/**
* 保险公司业务id
*/
@Schema(description = "保险公司业务id")
private String insurerBizId;
/**
* 对账公司
*/
@Schema(description = "对账公司")
private String reconciliationCompany;
/**
* 对账公司业务id
*/
@Schema(description = "对账公司业务id")
private String reconciliationCompanyBizId;
/**
* 保單持有人
*/
@Schema(description = "保單持有人")
private String policyHolder;
/**
* 受保人
*/
@Schema(description = "受保人")
private String insured;
/**
* 币种
*/
@Schema(description = "币种")
private String currency;
/**
* 首期保费(不含徽费,预缴保费)
*/
@Schema(description = "首期保费(不含徽费,预缴保费)")
private Object initialPremium;
/** /**
* 转介人列表 * 转介人列表
...@@ -160,8 +26,14 @@ public class PolicyFollowUpdateRequest { ...@@ -160,8 +26,14 @@ public class PolicyFollowUpdateRequest {
private List<PolicyBrokerDto> brokerList; private List<PolicyBrokerDto> brokerList;
/** /**
* 备注 * 核保信息
*/
@Schema(description = "核保信息")
private VerifyPolicyInfo verifyPolicyInfo;
/**
* 保单邮寄
*/ */
@Schema(description = "备注") @Schema(description = "保单邮寄")
private String remark; private PolicyMailing policyMailing;
} }
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class PolicyInsurantUpdateRequest implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 保单受保人BizId
*/
@Schema(description = "保单受保人BizId", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyInsurantBizId;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 客户类型(字典)
*/
@Schema(description = "客户类型(字典)")
private String customerType;
/**
* 关联客户信息表唯一业务ID(冗余字段)
*/
@Schema(description = "关联客户信息表唯一业务ID(冗余字段)")
private String customerBizId;
/**
* 关联客户编号(和客户信息表唯一业务ID是一对,唯一,冗余字段)
*/
@Schema(description = "关联客户编号(和客户信息表唯一业务ID是一对,唯一,冗余字段)")
private String customerNo;
/**
* 与投保人关系(字典)
*/
@Schema(description = "与投保人关系(字典)")
private String policyholderRel;
/**
* 受保人姓名
*/
@Schema(description = "受保人姓名")
private String name;
/**
* 名字-英文
*/
@Schema(description = "名字-英文")
private String nameEn;
/**
* 性别(字典)
*/
@Schema(description = "性别(字典)")
private String gender;
/**
* 证件类型(字典)
*/
@Schema(description = "证件类型(字典)")
private String documentType;
/**
* 证件号码
*/
@Schema(description = "证件号码")
private String idNumber;
/**
* 出生日期
*/
@Schema(description = "出生日期")
private Date birthday;
/**
* 年龄
*/
@Schema(description = "年龄")
private String age;
/**
* 居住地址
*/
@Schema(description = "居住地址")
private String residentialAddress;
/**
* 通讯地址
*/
@Schema(description = "通讯地址")
private String mailingAddress;
/**
* 移动电话区号
*/
@Schema(description = "移动电话区号")
private String mobileCode;
/**
* 移动电话
*/
@Schema(description = "移动电话")
private String mobile;
/**
* 邮箱
*/
@Schema(description = "邮箱")
private String email;
/**
* 公司名称
*/
@Schema(description = "公司名称")
private String companyName;
/**
* 公司地址
*/
@Schema(description = "公司地址")
private String companyAddress;
/**
* 行业
*/
@Schema(description = "行业")
private String industry;
/**
* 职位
*/
@Schema(description = "职位")
private String position;
/**
* 风险偏好(字典)
*/
@Schema(description = "风险偏好(字典)")
private String riskAppetite;
/**
* 是否VIP: 0-否, 1-是(字典)
*/
@Schema(description = "是否VIP: 0-否, 1-是(字典)")
private Integer isVip;
/**
* vip备注
*/
@Schema(description = "vip备注")
private String vipRemark;
/**
* 称谓(字典)
*/
@Schema(description = "称谓(字典)")
private String appellation;
/**
* 是否区分吸烟(字典)
*/
@Schema(description = "是否区分吸烟(字典)")
private String smokingAllowed;
/**
* 出生地(省市)
*/
@Schema(description = "出生地(省市)")
private String birthplace;
/**
* 国籍
*/
@Schema(description = "国籍")
private String nationality;
/**
* 护照号码
*/
@Schema(description = "护照号码")
private String passportNo;
/**
* 通行证号码
*/
@Schema(description = "通行证号码")
private String passNo;
/**
* 身高
*/
@Schema(description = "身高")
private String height;
/**
* 体重
*/
@Schema(description = "体重")
private String weight;
/**
* BMI
*/
@Schema(description = "BMI")
private String bmi;
/**
* 受雇于现职年期
*/
@Schema(description = "受雇于现职年期")
private BigDecimal currentTenure;
/**
* 总负债额
*/
@Schema(description = "总负债额")
private BigDecimal totalDebt;
/**
* 受供养人数目
*/
@Schema(description = "受供养人数目")
private Integer dependentsNum;
/**
* 婚姻状况(字典)
*/
@Schema(description = "婚姻状况(字典)")
private String maritalStatus;
/**
* 教育程度(字典)
*/
@Schema(description = "教育程度(字典)")
private String educationLevel;
/**
* 总工作年期
*/
@Schema(description = "总工作年期")
private BigDecimal totalWorkingYears;
/**
* 现时每月收入
*/
@Schema(description = "现时每月收入")
private BigDecimal currentMonthlyIncome;
/**
* 公司电话区号
*/
@Schema(description = "公司电话区号")
private String companyMobileCode;
/**
* 公司电话
*/
@Schema(description = "公司电话")
private String companyMobile;
/**
* 固定电话区号
*/
@Schema(description = "固定电话区号")
private String landlineCode;
/**
* 固定电话
*/
@Schema(description = "固定电话")
private String landline;
/**
* 其他电话
*/
@Schema(description = "其他电话")
private String otherMobile;
/**
* 过往一年是否所属国家以外地区居住超过182日: 0-否, 1-是(字典)
*/
@Schema(description = "过往一年是否所属国家以外地区居住超过182日: 0-否, 1-是(字典)")
private Integer isExceed;
/**
* 是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典)
*/
@Schema(description = "是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典)")
private Integer isOtherCountry;
/**
* 是否接受推广信息: 0-否, 1-是(字典)
*/
@Schema(description = "是否接受推广信息: 0-否, 1-是(字典)")
private Integer isPromotion;
/**
* 旅行(字典)
*/
@Schema(description = "旅行(字典)")
private String travel;
/**
* 运动(字典)
*/
@Schema(description = "运动(字典)")
private String exercise;
/**
* 游戏(字典)
*/
@Schema(description = "游戏(字典)")
private String game;
/**
* 电影/戏剧(字典)
*/
@Schema(description = "电影/戏剧(字典)")
private String movieDrama;
/**
* 美食(字典)
*/
@Schema(description = "美食(字典)")
private String delicacy;
/**
* 地址列表(json串)
*/
@Schema(description = "地址列表(json串)")
private String addressList;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
* 吸烟量(支/天)
*/
@Schema(description = "吸烟量(支/天)")
private String smokingVolume;
/**
* 货币(字典)
*/
@Schema(description = "货币(字典)")
private String currency;
/**
* 公司名称(英文)
*/
@Schema(description = "公司名称(英文)")
private String companyNameEn;
/**
* 公司商业登记号码
*/
@Schema(description = "公司商业登记号码")
private String companyBusinessNo;
/**
* 公司注册日期
*/
@Schema(description = "公司注册日期")
private Date companyRegisterTime;
/**
* 公司注册地区(字典)
*/
@Schema(description = "公司注册地区(字典)")
private String companyRegisterRegion;
/**
* 公司邮箱
*/
@Schema(description = "公司邮箱")
private String companyEmail;
/**
* 公司登记地址
*/
@Schema(description = "公司登记地址")
private String companyEnterAddress;
/**
* 授权代表姓名中文-名字
*/
@Schema(description = "授权代表姓名中文-名字")
private String authNameCn;
/**
* 授权代表姓名英文-名字
*/
@Schema(description = "授权代表姓名英文-名字")
private String authNameEn;
/**
* 授权代表职称
*/
@Schema(description = "授权代表职称")
private String authProfessional;
/**
* 授权代表电话区号
*/
@Schema(description = "授权代表电话区号")
private String authMobileCode;
/**
* 授权代表电话
*/
@Schema(description = "授权代表电话")
private String authMobile;
}
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
public class PolicyMailing implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 寄送方式
*/
@Schema(description = "寄送方式")
private String mailingMethod;
/**
* 经纪公司签收日期
*/
@Schema(description = "经纪公司签收日期")
private String brokerSignDate;
/**
* 保险公司寄出日期
*/
@Schema(description = "保险公司寄出日期")
private String insurerMailingDate;
/**
* 客户签收日期
*/
@Schema(description = "客户签收日期")
private String customerSignDate;
}
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class PolicyUpdateRequest implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 新单跟进唯一业务ID
*/
@Schema(description = "新单跟进唯一业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyBizId;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 产品业务id
*/
@Schema(description = "产品业务id")
private String planBizId;
/**
* 产品代码
*/
@Schema(description = "产品代码")
private String productCode;
/**
* 产品名称
*/
@Schema(description = "产品名称")
private String productName;
/**
* 产品险种
*/
@Schema(description = "产品险种")
private String productCate;
/**
* 保险公司
*/
@Schema(description = "保险公司")
private String insurer;
/**
* 保险公司业务id
*/
@Schema(description = "保险公司业务id")
private String insurerBizId;
/**
* 地区
*/
@Schema(description = "地区")
private String region;
/**
* 保單投保人业务id
*/
@Schema(description = "保單投保人业务id")
private String policyPolicyholderBizId;
/**
* 保單持有人名称
*/
@Schema(description = "保單持有人名称")
private String policyHolder;
/**
* 保单受保人业务id
*/
@Schema(description = "保单受保人业务id")
private String policyInsurantBizId;
/**
* 保单受保人名称
*/
@Schema(description = "保单受保人名称")
private String insured;
/**
* 供款年期(字典)
*/
@Schema(description = "供款年期(字典)")
private Integer paymentTerm;
/**
* 付款频率(字典)
*/
@Schema(description = "付款频率(字典)")
private String paymentFrequency;
/**
* 期交保费
*/
@Schema(description = "期交保费")
private BigDecimal paymentPremium;
/**
* 保单状态
*/
@Schema(description = "保单状态 字典值:csf_policy_status")
private String status;
/**
* 币种
*/
@Schema(description = "币种")
private String currency;
/**
* 首期保费(不含徽费,预缴保费)
*/
@Schema(description = "首期保费(不含徽费,预缴保费)")
private Integer initialPremium;
/**
* 签单日期
*/
@Schema(description = "签单日期 格式:yyyy-MM-dd")
private Date signDate;
/**
* 缮发日期
*/
@Schema(description = "缮发日期 格式:yyyy-MM-dd")
private Date issueDate;
/**
* 生效日期
*/
@Schema(description = "生效日期 格式:yyyy-MM-dd")
private Date effectiveDate;
/**
* 续保日期
*/
@Schema(description = "续保日期 格式:yyyy-MM-dd")
private Date renewalDate;
/**
* 是否预缴: 0-否, 1-是
*/
@Schema(description = "是否预缴: 0-否, 1-是")
private Integer isPrepaid;
/**
* 预付额
*/
@Schema(description = "预付额")
private String deductibles;
/**
* 预缴年期
*/
@Schema(description = "预缴年期")
private Integer prepaidTerm;
/**
* 首期付款方式(字典)
*/
@Schema(description = "首期付款方式(字典)")
private String initialPaymentMethod;
/**
* 续期付款方式(字典)
*/
@Schema(description = "续期付款方式(字典)")
private String renewalPaymentMethod;
/**
* 红利分配方式(字典)
*/
@Schema(description = "红利分配方式(字典)")
private String dividendDistributionMethod;
/**
* 保单日期回溯: 0-否, 1-是(字典)
*/
@Schema(description = "保单日期回溯: 0-否, 1-是(字典)")
private Integer isBacktrack;
/**
* 是否参加递增保障权益: 0-否, 1-是(字典)
*/
@Schema(description = "是否参加递增保障权益: 0-否, 1-是(字典)")
private Integer isJoin;
/**
* 对账公司
*/
@Schema(description = "对账公司")
private String reconciliationCompany;
/**
* 对账公司业务id
*/
@Schema(description = "对账公司业务id")
private String reconciliationCompanyBizId;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}
package com.yd.csf.service.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class VerifyPolicyInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 保险种类
*/
@Schema(description = "保险种类")
private String productCate;
/**
* 递交日期
*/
@Schema(description = "递交日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date submitDate;
/**
* 签单日期
*/
@Schema(description = "签单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date signDate;
/**
* 缮发日期
*/
@Schema(description = "缮发日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date issueDate;
/**
* 保单生效日
*/
@Schema(description = "保单生效日")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date effectiveDate;
/**
* 是否预缴: 0-否, 1-是
*/
@Schema(description = "是否预缴: 0-否, 1-是")
private Integer isPrepaid;
/**
* 预付额
*/
@Schema(description = "预付额")
private String prepaidAmount;
/**
* 折扣后预付额
*/
@Schema(description = "折扣后预付额")
private String prepaidAmountAfterDiscount;
/**
* 保单截止日期
*/
@Schema(description = "保单截止日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date policyExpirationDate;
/**
* 缴费编号
*/
@Schema(description = "缴费编号")
private String paymentNumber;
}
...@@ -6,7 +6,8 @@ import org.apache.commons.lang3.ObjectUtils; ...@@ -6,7 +6,8 @@ import org.apache.commons.lang3.ObjectUtils;
* 新单跟进状态枚举 'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消' * 新单跟进状态枚举 'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消'
*/ */
public enum PolicyFollowStatusEnum { public enum PolicyFollowStatusEnum {
CHECKING("审核中", "CHECKING"), FOLLOW_UP("待跟进", "FOLLOW_UP"),
CHECKING("文件检查中", "CHECKING"),
UNDERWRITING("承保中", "UNDERWRITING"), UNDERWRITING("承保中", "UNDERWRITING"),
FINISHED("已完成", "FINISHED"), FINISHED("已完成", "FINISHED"),
DECLINED("已拒绝", "DECLINED"), DECLINED("已拒绝", "DECLINED"),
...@@ -48,4 +49,23 @@ public enum PolicyFollowStatusEnum { ...@@ -48,4 +49,23 @@ public enum PolicyFollowStatusEnum {
public String getItemValue() { public String getItemValue() {
return itemValue; 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;
}
} }
package com.yd.csf.service.enums;
import org.apache.commons.lang3.ObjectUtils;
public enum PolicyStatusEnum {
INFORCE("生效中", "INFORCE"),
LAPSED("保单失效", "LAPSED"),
MATURED("期满终止", "MATURED"),
;
//字典项标签(名称)
private String itemLabel;
//字典项值
private String itemValue;
//构造函数
PolicyStatusEnum(String itemLabel, String itemValue) {
this.itemLabel = itemLabel;
this.itemValue = itemValue;
}
/**
* 根据 itemLabel 获取枚举
*
* @param itemLabel
* @return
*/
public static PolicyStatusEnum getEnumByItemLabel(String itemLabel) {
if (ObjectUtils.isEmpty(itemLabel)) {
return null;
}
for (PolicyStatusEnum anEnum : PolicyStatusEnum.values()) {
if (anEnum.itemLabel.equals(itemLabel)) {
return anEnum;
}
}
return null;
}
public String getItemLabel() {
return itemLabel;
}
public String getItemValue() {
return itemValue;
}
/**
* 根据 value 获取枚举
*
* @param value
* @return
*/
public static PolicyStatusEnum getEnumByValue(String value) {
if (ObjectUtils.isEmpty(value)) {
return null;
}
for (PolicyStatusEnum anEnum : PolicyStatusEnum.values()) {
if (anEnum.getItemValue().equals(value)) {
return anEnum;
}
}
return null;
}
}
...@@ -38,6 +38,11 @@ public class Policy implements Serializable { ...@@ -38,6 +38,11 @@ public class Policy implements Serializable {
private String userBizId; private String userBizId;
/** /**
* 产品业务id
*/
private String planBizId;
/**
* 产品代码 * 产品代码
*/ */
private String productCode; private String productCode;
...@@ -48,7 +53,7 @@ public class Policy implements Serializable { ...@@ -48,7 +53,7 @@ public class Policy implements Serializable {
private String productName; private String productName;
/** /**
* 产品类别 * 产品险种
*/ */
private String productCate; private String productCate;
...@@ -63,6 +68,11 @@ public class Policy implements Serializable { ...@@ -63,6 +68,11 @@ public class Policy implements Serializable {
private String insurerBizId; private String insurerBizId;
/** /**
* 地区
*/
private String region;
/**
* 保單持有人 * 保單持有人
*/ */
private String policyHolder; private String policyHolder;
...@@ -73,11 +83,16 @@ public class Policy implements Serializable { ...@@ -73,11 +83,16 @@ public class Policy implements Serializable {
private String insured; private String insured;
/** /**
* 供款年期 * 供款年期(字典)
*/ */
private Integer paymentTerm; private Integer paymentTerm;
/** /**
* 付款频率(字典)
*/
private String paymentFrequency;
/**
* 期交保费 * 期交保费
*/ */
private BigDecimal paymentPremium; private BigDecimal paymentPremium;
...@@ -123,11 +138,41 @@ public class Policy implements Serializable { ...@@ -123,11 +138,41 @@ public class Policy implements Serializable {
private Integer isPrepaid; private Integer isPrepaid;
/** /**
* 预付额
*/
private String deductibles;
/**
* 预缴年期 * 预缴年期
*/ */
private Integer prepaidTerm; private Integer prepaidTerm;
/** /**
* 首期付款方式(字典)
*/
private String initialPaymentMethod;
/**
* 续期付款方式(字典)
*/
private String renewalPaymentMethod;
/**
* 红利分配方式(字典)
*/
private String dividendDistributionMethod;
/**
* 保单日期回溯: 0-否, 1-是(字典)
*/
private Integer isBacktrack;
/**
* 是否参加递增保障权益: 0-否, 1-是(字典)
*/
private Integer isJoin;
/**
* 对账公司 * 对账公司
*/ */
private String reconciliationCompany; private String reconciliationCompany;
...@@ -138,6 +183,11 @@ public class Policy implements Serializable { ...@@ -138,6 +183,11 @@ public class Policy implements Serializable {
private String reconciliationCompanyBizId; private String reconciliationCompanyBizId;
/** /**
* 转保声明选项(字典)
*/
private String policyTransfer;
/**
* 通用备注 * 通用备注
*/ */
private String remark; private String remark;
......
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.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
* 保单附加险信息表
* @TableName policy_additional
*/
@TableName(value ="policy_additional")
@Data
public class PolicyAdditional implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 保单附加险信息表唯一业务ID
*/
private String policyAdditionalBizId;
/**
* 新单跟进业务ID
*/
private String policyBizId;
/**
* 保单号
*/
private String policyNo;
/**
* 产品计划信息表唯一业务ID
*/
private String planBizId;
/**
* 保险附加产品唯一业务ID(中台保险附加产品业务id,冗余)
*/
private String additionalProductBizId;
/**
* 保险附加产品名称(中台保险附加产品名称,冗余)
*/
private String addProductName;
/**
* 货币(字典)
*/
private String currency;
/**
* 保费
*/
private BigDecimal premium;
/**
* 保额
*/
private BigDecimal sumInsured;
/**
* 保障地区(字典)
*/
private String guaranteeRegion;
/**
* 等级(字典)
*/
private String level;
/**
* 自付额(字典)
*/
private String deductibles;
/**
* 附加保障(json串)
*/
private String additionalSafeguards;
/**
* 通用备注
*/
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
private Integer isDeleted;
/**
* 创建人ID
*/
private String creatorId;
/**
* 更新人ID
*/
private String updaterId;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
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.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
* 受益人信息表
* @TableName policy_beneficiary
*/
@TableName(value ="policy_beneficiary")
@Data
public class PolicyBeneficiary implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 保单受益人信息表唯一业务ID
*/
private String policyBeneficiaryBizId;
/**
* 新单跟进业务ID
*/
private String policyBizId;
/**
* 保单号
*/
private String policyNo;
/**
* 客户类型(字典)(个人或者公司)
*/
private String customerType;
/**
* 与受保人关系(字典)
*/
private String insurantRel;
/**
* 受益比例
*/
private BigDecimal benefitRatio;
/**
* 名字
*/
private String name;
/**
* 名字-英文
*/
private String nameEn;
/**
* 性别(字典)
*/
private String gender;
/**
* 证件类型(字典)
*/
private String documentType;
/**
* 证件号码
*/
private String idNumber;
/**
* 护照号码
*/
private String passportNumber;
/**
* 出生日期
*/
private Date birthTime;
/**
* 公司名称
*/
private String companyName;
/**
* 公司名称(英文)
*/
private String companyNameEn;
/**
* 公司商业登记号码
*/
private String companyBusinessNo;
/**
* 公司注册日期
*/
private Date companyRegisterTime;
/**
* 公司注册地区(字典)
*/
private String companyRegisterRegion;
/**
* 公司电话区号
*/
private String companyMobileCode;
/**
* 公司电话
*/
private String companyMobile;
/**
* 公司邮箱
*/
private String companyEmail;
/**
* 公司登记地址
*/
private String companyEnterAddress;
/**
* 通讯地址
*/
private String mailingAddress;
/**
* 授权代表姓名中文-名字
*/
private String authNameCn;
/**
* 授权代表姓名英文-名字
*/
private String authNameEn;
/**
* 授权代表职称
*/
private String authProfessional;
/**
* 授权代表电话区号
*/
private String authMobileCode;
/**
* 授权代表电话
*/
private String authMobile;
/**
* 地址列表(json串)
*/
private String addressList;
/**
* 通用备注
*/
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
private Integer isDeleted;
/**
* 创建人ID
*/
private String creatorId;
/**
* 更新人ID
*/
private String updaterId;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
...@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.*; ...@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date; import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
...@@ -34,14 +33,35 @@ public class PolicyFollow implements Serializable { ...@@ -34,14 +33,35 @@ public class PolicyFollow implements Serializable {
private String policyNo; private String policyNo;
/** /**
* 预约信息主表唯一业务ID
*/
private String appointmentBizId;
/**
* 预约编号
*/
private String appointmentNo;
/**
* 用户业务id * 用户业务id
*/ */
private String userBizId; private String userBizId;
/**
* 客户业务id
*/
private String customerBizId; private String customerBizId;
/**
* 客户名称
*/
private String customerName; private String customerName;
/**
* 递交日期
*/
private Date submitDate;
/** /**
* 签单日期 * 签单日期
*/ */
...@@ -53,6 +73,11 @@ public class PolicyFollow implements Serializable { ...@@ -53,6 +73,11 @@ public class PolicyFollow implements Serializable {
private String signer; private String signer;
/** /**
* 缮发日期
*/
private Date issueDate;
/**
* 生效日期 * 生效日期
*/ */
private Date effectiveDate; private Date effectiveDate;
...@@ -83,11 +108,36 @@ public class PolicyFollow implements Serializable { ...@@ -83,11 +108,36 @@ public class PolicyFollow implements Serializable {
private Integer prepaidTerm; private Integer prepaidTerm;
/** /**
* 预付额
*/
private String prepaidAmount;
/**
* 折扣后预付额
*/
private String prepaidAmountAfterDiscount;
/**
* 保单截止日期
*/
private Date policyExpirationDate;
/**
* 缴费编号
*/
private String paymentNumber;
/**
* 产品业务id
*/
private String productBizId;
/**
* 产品名称 * 产品名称
*/ */
private String productName; private String productName;
/** /**
* 产品类别 * 产品类别
*/ */
private String productCate; private String productCate;
...@@ -117,6 +167,11 @@ public class PolicyFollow implements Serializable { ...@@ -117,6 +167,11 @@ public class PolicyFollow implements Serializable {
*/ */
private String status; private String status;
/**
* 下一步跟进状态列表
*/
private String nextStatusList;
/** /**
* 保單持有人 * 保單持有人
*/ */
...@@ -138,14 +193,44 @@ public class PolicyFollow implements Serializable { ...@@ -138,14 +193,44 @@ public class PolicyFollow implements Serializable {
private Object initialPremium; private Object initialPremium;
/** /**
* 通用备注 * 寄送方式 1-自提, 2-快递
*/
private String mailingMethod;
/**
* 快递单号
*/
private String deliveryNo;
/**
* 经纪公司签收日期
*/
private String brokerSignDate;
/**
* 保险公司寄出日期
*/
private String insurerMailingDate;
/**
* 客户签收日期
*/
private String customerSignDate;
/**
* 附件列表
*/
private String attachments;
/**
* 备注
*/ */
private String remark; private String remark;
/** /**
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableLogic @TableField()
private Integer isDeleted; private Integer isDeleted;
/** /**
......
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_file
*/
@TableName(value ="policy_follow_file")
@Data
public class PolicyFollowFile implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 新单跟进唯一业务ID
*/
private String policyBizId;
/**
* 中台文件元数据表唯一业务ID
*/
private String ossFileBizId;
/**
* 文件名
*/
private String fileName;
/**
* 文件访问路径
*/
private String fileUrl;
/**
* 通用备注
*/
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
private Integer isDeleted;
/**
* 创建人ID
*/
private String creatorId;
/**
* 创建人名称
*/
private String creatorName;
/**
* 更新人ID
*/
private String updaterId;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
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
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.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
* 保单受保人信息表
* @TableName policy_insurant
*/
@TableName(value ="policy_insurant")
@Data
public class PolicyInsurant implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 受保人信息表唯一业务ID
*/
private String policyInsurantBizId;
/**
* 新单跟进业务ID
*/
private String policyBizId;
/**
* 保单号
*/
private String policyNo;
/**
* 客户类型(字典)
*/
private String customerType;
/**
* 关联客户信息表唯一业务ID(冗余字段)
*/
private String customerBizId;
/**
* 关联客户编号(和客户信息表唯一业务ID是一对,唯一,冗余字段)
*/
private String customerNo;
/**
* 与投保人关系(字典)
*/
private String policyholderRel;
/**
* 名字
*/
private String name;
/**
* 名字-英文
*/
private String nameEn;
/**
* 性别(字典)
*/
private String gender;
/**
* 证件类型(字典)
*/
private String documentType;
/**
* 证件号码
*/
private String idNumber;
/**
* 出生日期
*/
private Date birthday;
/**
* 年龄
*/
private String age;
/**
* 居住地址
*/
private String residentialAddress;
/**
* 通讯地址
*/
private String mailingAddress;
/**
* 移动电话区号
*/
private String mobileCode;
/**
* 移动电话
*/
private String mobile;
/**
* 邮箱
*/
private String email;
/**
* 公司名称
*/
private String companyName;
/**
* 公司地址
*/
private String companyAddress;
/**
* 行业
*/
private String industry;
/**
* 职位
*/
private String position;
/**
* 风险偏好(字典)
*/
private String riskAppetite;
/**
* 是否VIP: 0-否, 1-是(字典)
*/
private Integer isVip;
/**
* vip备注
*/
private String vipRemark;
/**
* 称谓(字典)
*/
private String appellation;
/**
* 是否区分吸烟(字典)
*/
private String smokingAllowed;
/**
* 出生地(省市)
*/
private String birthplace;
/**
* 国籍
*/
private String nationality;
/**
* 护照号码
*/
private String passportNo;
/**
* 通行证号码
*/
private String passNo;
/**
* 身高
*/
private String height;
/**
* 体重
*/
private String weight;
/**
* BMI
*/
private String bmi;
/**
* 受雇于现职年期
*/
private BigDecimal currentTenure;
/**
* 总负债额
*/
private BigDecimal totalDebt;
/**
* 受供养人数目
*/
private Integer dependentsNum;
/**
* 婚姻状况(字典)
*/
private String maritalStatus;
/**
* 教育程度(字典)
*/
private String educationLevel;
/**
* 总工作年期
*/
private BigDecimal totalWorkingYears;
/**
* 现时每月收入
*/
private BigDecimal currentMonthlyIncome;
/**
* 公司电话区号
*/
private String companyMobileCode;
/**
* 公司电话
*/
private String companyMobile;
/**
* 固定电话区号
*/
private String landlineCode;
/**
* 固定电话
*/
private String landline;
/**
* 其他电话
*/
private String otherMobile;
/**
* 过往一年是否所属国家以外地区居住超过182日: 0-否, 1-是(字典)
*/
private Integer isExceed;
/**
* 是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典)
*/
private Integer isOtherCountry;
/**
* 是否接受推广信息: 0-否, 1-是(字典)
*/
private Integer isPromotion;
/**
* 旅行(字典)
*/
private String travel;
/**
* 运动(字典)
*/
private String exercise;
/**
* 游戏(字典)
*/
private String game;
/**
* 电影/戏剧(字典)
*/
private String movieDrama;
/**
* 美食(字典)
*/
private String delicacy;
/**
* 地址列表(json串)
*/
private String addressList;
/**
* 通用备注
*/
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
private Integer isDeleted;
/**
* 创建人ID
*/
private String creatorId;
/**
* 更新人ID
*/
private String updaterId;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 吸烟量(支/天)
*/
private String smokingVolume;
/**
* 货币(字典)
*/
private String currency;
/**
* 公司名称(英文)
*/
private String companyNameEn;
/**
* 公司商业登记号码
*/
private String companyBusinessNo;
/**
* 公司注册日期
*/
private Date companyRegisterTime;
/**
* 公司注册地区(字典)
*/
private String companyRegisterRegion;
/**
* 公司邮箱
*/
private String companyEmail;
/**
* 公司登记地址
*/
private String companyEnterAddress;
/**
* 授权代表姓名中文-名字
*/
private String authNameCn;
/**
* 授权代表姓名英文-名字
*/
private String authNameEn;
/**
* 授权代表职称
*/
private String authProfessional;
/**
* 授权代表电话区号
*/
private String authMobileCode;
/**
* 授权代表电话
*/
private String authMobile;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
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.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
* 保单投保人信息表
* @TableName policy_policyholder
*/
@TableName(value ="policy_policyholder")
@Data
public class PolicyPolicyholder implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 投保人信息表唯一业务ID
*/
private String policyPolicyholderBizId;
/**
* 新单跟进业务ID
*/
private String policyBizId;
/**
* 保单号
*/
private String policyNo;
/**
* 客户类型(字典)
*/
private String customerType;
/**
* 关联客户信息表唯一业务ID(冗余字段)
*/
private String customerBizId;
/**
* 关联客户编号(和客户信息表唯一业务ID是一对,唯一,冗余字段)
*/
private String customerNo;
/**
* 名字
*/
private String name;
/**
* 名字-英文
*/
private String nameEn;
/**
* 性别(字典)
*/
private String gender;
/**
* 证件类型(字典)
*/
private String documentType;
/**
* 证件号码
*/
private String idNumber;
/**
* 出生日期
*/
private Date birthday;
/**
* 年龄
*/
private String age;
/**
* 居住地址
*/
private String residentialAddress;
/**
* 通讯地址
*/
private String mailingAddress;
/**
* 移动电话区号
*/
private String mobileCode;
/**
* 移动电话
*/
private String mobile;
/**
* 邮箱
*/
private String email;
/**
* 公司名称
*/
private String companyName;
/**
* 公司地址
*/
private String companyAddress;
/**
* 行业
*/
private String industry;
/**
* 职位
*/
private String position;
/**
* 风险偏好(字典)
*/
private String riskAppetite;
/**
* 是否VIP: 0-否, 1-是(字典)
*/
private Integer isVip;
/**
* vip备注
*/
private String vipRemark;
/**
* 称谓(字典)
*/
private String appellation;
/**
* 是否区分吸烟(字典)
*/
private String smokingAllowed;
/**
* 出生地(省市)
*/
private String birthplace;
/**
* 国籍
*/
private String nationality;
/**
* 护照号码
*/
private String passportNo;
/**
* 通行证号码
*/
private String passNo;
/**
* 身高
*/
private String height;
/**
* 体重
*/
private String weight;
/**
* BMI
*/
private String bmi;
/**
* 平均每月支出
*/
private BigDecimal monthExpenditure;
/**
* 平均每月收入
*/
private BigDecimal monthIncome;
/**
* 受雇于现职年期
*/
private BigDecimal currentTenure;
/**
* 总流动资产
*/
private BigDecimal totalCurrentAssets;
/**
* 总负债额
*/
private BigDecimal totalDebt;
/**
* 受供养人数目
*/
private Integer dependentsNum;
/**
* 婚姻状况(字典)
*/
private String maritalStatus;
/**
* 教育程度(字典)
*/
private String educationLevel;
/**
* 总工作年期
*/
private BigDecimal totalWorkingYears;
/**
* 现时每月收入
*/
private BigDecimal currentMonthlyIncome;
/**
* 公司电话区号
*/
private String companyMobileCode;
/**
* 公司电话
*/
private String companyMobile;
/**
* 固定电话区号
*/
private String landlineCode;
/**
* 固定电话
*/
private String landline;
/**
* 其他电话
*/
private String otherMobile;
/**
* 过往一年是否所属国家以外地区居住超过182日: 0-否, 1-是(字典)
*/
private Integer isExceed;
/**
* 是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典)
*/
private Integer isOtherCountry;
/**
* 是否接受推广信息: 0-否, 1-是(字典)
*/
private Integer isPromotion;
/**
* 投保人邮政编码
*/
private String postalCode;
/**
* 旅行(字典)
*/
private String travel;
/**
* 运动(字典)
*/
private String exercise;
/**
* 游戏(字典)
*/
private String game;
/**
* 电影/戏剧(字典)
*/
private String movieDrama;
/**
* 美食(字典)
*/
private String delicacy;
/**
* 地址列表(json串)
*/
private String addressList;
/**
* 吸烟量(支/天)
*/
private String smokingVolume;
/**
* 货币(字典)
*/
private String currency;
/**
* 公司名称(英文)
*/
private String companyNameEn;
/**
* 公司商业登记号码
*/
private String companyBusinessNo;
/**
* 公司注册日期
*/
private Date companyRegisterTime;
/**
* 公司注册地区(字典)
*/
private String companyRegisterRegion;
/**
* 公司邮箱
*/
private String companyEmail;
/**
* 公司登记地址
*/
private String companyEnterAddress;
/**
* 授权代表姓名中文-名字
*/
private String authNameCn;
/**
* 授权代表姓名英文-名字
*/
private String authNameEn;
/**
* 授权代表职称
*/
private String authProfessional;
/**
* 授权代表电话区号
*/
private String authMobileCode;
/**
* 授权代表电话
*/
private String authMobile;
/**
* 通用备注
*/
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
private Integer isDeleted;
/**
* 创建人ID
*/
private String creatorId;
/**
* 更新人ID
*/
private String updaterId;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
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_second_holder
*/
@TableName(value ="policy_second_holder")
@Data
public class PolicySecondHolder implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 第二持有人信息表唯一业务ID
*/
private String policySecondHolderBizId;
/**
* 新单跟进业务ID
*/
private String policyBizId;
/**
* 保单号
*/
private String policyNo;
/**
* 与受保人关系(字典)
*/
private String insurantRel;
/**
* 名字
*/
private String name;
/**
* 名字-英文
*/
private String nameEn;
/**
* 性别(字典)
*/
private String gender;
/**
* 证件类型(字典)
*/
private String documentType;
/**
* 证件号码
*/
private String idNumber;
/**
* 护照号码
*/
private String passportNumber;
/**
* 出生日期
*/
private Date birthTime;
/**
* 年龄
*/
private String age;
/**
* 通用备注
*/
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
private Integer isDeleted;
/**
* 创建人ID
*/
private String creatorId;
/**
* 更新人ID
*/
private String updaterId;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.yd.csf.service.service;
import com.yd.csf.service.dto.PolicyAdditionalAddRequest;
import com.yd.csf.service.dto.PolicyAdditionalUpdateRequest;
import com.yd.csf.service.model.PolicyAdditional;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Map;
/**
* @author Zhang Jianan
* @description 针对表【policy_additional(保单附加险信息表)】的数据库操作Service
* @createDate 2025-11-03 11:05:09
*/
public interface PolicyAdditionalService extends IService<PolicyAdditional> {
Map<String, Object> addPolicyAdditional(PolicyAdditionalAddRequest policyAdditionalAddRequest);
PolicyAdditional getByBizId(String policyAdditionalBizId);
Boolean updatePolicyAdditional(PolicyAdditionalUpdateRequest policyUpdateRequest);
}
package com.yd.csf.service.service;
import com.yd.csf.service.model.PolicyBeneficiary;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author Zhang Jianan
* @description 针对表【policy_beneficiary(受益人信息表)】的数据库操作Service
* @createDate 2025-10-31 11:43:16
*/
public interface PolicyBeneficiaryService extends IService<PolicyBeneficiary> {
}
package com.yd.csf.service.service;
import com.yd.csf.service.model.PolicyFollowFile;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author Zhang Jianan
* @description 针对表【policy_follow_file(新单跟进附件信息表)】的数据库操作Service
* @createDate 2025-10-29 13:32:29
*/
public interface PolicyFollowFileService extends IService<PolicyFollowFile> {
}
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);
}
...@@ -3,10 +3,8 @@ package com.yd.csf.service.service; ...@@ -3,10 +3,8 @@ package com.yd.csf.service.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.dto.AddToPolicyRequest; import com.yd.csf.service.dto.*;
import com.yd.csf.service.dto.PolicyFollowAddRequest; import com.yd.csf.service.enums.PolicyFollowStatusEnum;
import com.yd.csf.service.dto.PolicyFollowQueryRequest;
import com.yd.csf.service.dto.PolicyFollowUpdateRequest;
import com.yd.csf.service.model.PolicyFollow; import com.yd.csf.service.model.PolicyFollow;
import com.yd.csf.service.vo.PolicyFollowVO; import com.yd.csf.service.vo.PolicyFollowVO;
...@@ -32,4 +30,12 @@ public interface PolicyFollowService extends IService<PolicyFollow> { ...@@ -32,4 +30,12 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
Map<String, Object> addPolicyFollow(PolicyFollowAddRequest policyFollowAddRequest); Map<String, Object> addPolicyFollow(PolicyFollowAddRequest policyFollowAddRequest);
Boolean addToPolicy(AddToPolicyRequest addToPolicyRequest); Boolean addToPolicy(AddToPolicyRequest addToPolicyRequest);
Boolean changePolicyFollowStatus(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest);
Boolean uploadAttachment(AttachmentUploadRequest attachmentUploadRequest);
String getNextStatus(PolicyFollowStatusEnum policyFollowStatusEnum);
PolicyFollowAggregateDto getPolicyFollowAggregate(String policyBizId);
} }
package com.yd.csf.service.service;
import com.yd.csf.service.dto.PolicyInsurantUpdateRequest;
import com.yd.csf.service.model.PolicyInsurant;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author Zhang Jianan
* @description 针对表【policy_insurant(保单受保人信息表)】的数据库操作Service
* @createDate 2025-10-31 13:29:18
*/
public interface PolicyInsurantService extends IService<PolicyInsurant> {
/**
* 更新受保人信息
*
* @param policyInsurantUpdateRequest
* @return
*/
boolean update(PolicyInsurantUpdateRequest policyInsurantUpdateRequest);
}
package com.yd.csf.service.service;
import com.yd.csf.service.dto.PolicyPolicyholderUpdateRequest;
import com.yd.csf.service.model.PolicyPolicyholder;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author Zhang Jianan
* @description 针对表【policy_policyholder(保单投保人信息表)】的数据库操作Service
* @createDate 2025-10-31 11:43:10
*/
public interface PolicyPolicyholderService extends IService<PolicyPolicyholder> {
/**
* 更新保单投保人信息
*
* @param policyPolicyholderUpdateRequest
* @return
*/
boolean update(PolicyPolicyholderUpdateRequest policyPolicyholderUpdateRequest);
}
package com.yd.csf.service.service;
import com.yd.csf.service.model.PolicySecondHolder;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author Zhang Jianan
* @description 针对表【policy_second_holder(第二持有人信息表)】的数据库操作Service
* @createDate 2025-10-31 13:29:23
*/
public interface PolicySecondHolderService extends IService<PolicySecondHolder> {
}
package com.yd.csf.service.service; package com.yd.csf.service.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.service.dto.PolicyDto; import com.yd.csf.service.dto.PolicyDto;
import com.yd.csf.service.dto.PolicyQueryRequest; import com.yd.csf.service.dto.PolicyQueryRequest;
import com.yd.csf.service.dto.PolicyUpdateRequest;
import com.yd.csf.service.model.Policy; import com.yd.csf.service.model.Policy;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.vo.PolicyVO; import com.yd.csf.service.vo.PolicyVO;
...@@ -22,5 +22,8 @@ public interface PolicyService extends IService<Policy> { ...@@ -22,5 +22,8 @@ public interface PolicyService extends IService<Policy> {
Page<PolicyVO> getPolicyVOPage(Page<Policy> policyPage); Page<PolicyVO> getPolicyVOPage(Page<Policy> policyPage);
Boolean updatePolicy(PolicyUpdateRequest policyUpdateRequest);
List<Policy> queryList(PolicyDto dto); List<Policy> queryList(PolicyDto dto);
} }
...@@ -70,7 +70,7 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe ...@@ -70,7 +70,7 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe
fna.setFnaBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_FNA.getCode())); fna.setFnaBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_FNA.getCode()));
fna.setCreatorId(userBizId); fna.setCreatorId(userBizId);
fna.setUpdaterId(userBizId); fna.setUpdaterId(userBizId);
fna.setStatus(FnaStatusEnum.DRAFT.getItemValue()); fna.setStatus(FnaStatusEnum.UNCOMPLETED.getItemValue());
Date date = new Date(); Date date = new Date();
fna.setCreateTime(date); fna.setCreateTime(date);
...@@ -289,7 +289,7 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe ...@@ -289,7 +289,7 @@ public class FnaServiceImpl extends ServiceImpl<FnaMapper, Fna> implements FnaSe
if (StringUtils.isNotBlank(fnaUpdateRequest.getCustomerBizId())) { if (StringUtils.isNotBlank(fnaUpdateRequest.getCustomerBizId())) {
Customer customer = customerService.getByCustomerBizId(fnaUpdateRequest.getCustomerBizId()); Customer customer = customerService.getByCustomerBizId(fnaUpdateRequest.getCustomerBizId());
fna.setCustomerName(customer.getName()); fna.setCustomerName(customer.getFirstNamePinyin());
} }
// 设置 状态 // 设置 状态
String customerBizId = fnaUpdateRequest.getCustomerBizId(); String customerBizId = fnaUpdateRequest.getCustomerBizId();
......
package com.yd.csf.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.dto.PolicyAdditionalAddRequest;
import com.yd.csf.service.dto.PolicyAdditionalUpdateRequest;
import com.yd.csf.service.model.PolicyAdditional;
import com.yd.csf.service.service.PolicyAdditionalService;
import com.yd.csf.service.dao.PolicyAdditionalMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Date;
import java.util.Map;
/**
* @author Zhang Jianan
* @description 针对表【policy_additional(保单附加险信息表)】的数据库操作Service实现
* @createDate 2025-11-03 11:05:09
*/
@Service
public class PolicyAdditionalServiceImpl extends ServiceImpl<PolicyAdditionalMapper, PolicyAdditional>
implements PolicyAdditionalService{
@Override
public Map<String, Object> addPolicyAdditional(PolicyAdditionalAddRequest policyAdditionalAddRequest) {
// 校验请求参数
if (policyAdditionalAddRequest == null) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), ResultCode.PARAMS_ERROR.getMessage());
}
// 转换为实体类
PolicyAdditional policyAdditional = new PolicyAdditional();
BeanUtils.copyProperties(policyAdditionalAddRequest, policyAdditional);
policyAdditional.setAdditionalProductBizId(RandomStringGenerator.generateBizId16("policy_additional"));
Date now = new Date();
policyAdditional.setCreateTime(now);
policyAdditional.setUpdateTime(now);
// 保存到数据库
this.saveOrUpdate(policyAdditional);
// 返回结果
return Collections.singletonMap("policyAdditionalBizId", policyAdditional.getPolicyAdditionalBizId());
}
@Override
public PolicyAdditional getByBizId(String policyAdditionalBizId) {
return this.getOne(new QueryWrapper<PolicyAdditional>().eq("policy_additional_biz_id", policyAdditionalBizId));
}
@Override
public Boolean updatePolicyAdditional(PolicyAdditionalUpdateRequest policyUpdateRequest) {
// 校验请求参数
if (policyUpdateRequest == null || policyUpdateRequest.getPolicyAdditionalBizId() == null) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), ResultCode.PARAMS_ERROR.getMessage());
}
// 转换为实体类
PolicyAdditional policyAdditional = new PolicyAdditional();
BeanUtils.copyProperties(policyUpdateRequest, policyAdditional);
policyAdditional.setUpdateTime(new Date());
// 保存到数据库
return this.updateById(policyAdditional);
}
}
package com.yd.csf.service.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yd.csf.service.model.PolicyBeneficiary;
import com.yd.csf.service.service.PolicyBeneficiaryService;
import com.yd.csf.service.dao.PolicyBeneficiaryMapper;
import org.springframework.stereotype.Service;
/**
* @author Zhang Jianan
* @description 针对表【policy_beneficiary(受益人信息表)】的数据库操作Service实现
* @createDate 2025-10-31 11:43:16
*/
@Service
public class PolicyBeneficiaryServiceImpl extends ServiceImpl<PolicyBeneficiaryMapper, PolicyBeneficiary>
implements PolicyBeneficiaryService{
}
package com.yd.csf.service.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yd.csf.service.model.PolicyFollowFile;
import com.yd.csf.service.service.PolicyFollowFileService;
import com.yd.csf.service.dao.PolicyFollowFileMapper;
import org.springframework.stereotype.Service;
/**
* @author Zhang Jianan
* @description 针对表【policy_follow_file(新单跟进附件信息表)】的数据库操作Service实现
* @createDate 2025-10-29 13:32:29
*/
@Service
public class PolicyFollowFileServiceImpl extends ServiceImpl<PolicyFollowFileMapper, PolicyFollowFile>
implements PolicyFollowFileService{
}
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());
}
}
package com.yd.csf.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.csf.service.dto.PolicyInsurantUpdateRequest;
import com.yd.csf.service.model.PolicyInsurant;
import com.yd.csf.service.service.PolicyInsurantService;
import com.yd.csf.service.dao.PolicyInsurantMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* @author Zhang Jianan
* @description 针对表【policy_insurant(保单受保人信息表)】的数据库操作Service实现
* @createDate 2025-10-31 13:29:18
*/
@Service
public class PolicyInsurantServiceImpl extends ServiceImpl<PolicyInsurantMapper, PolicyInsurant>
implements PolicyInsurantService{
@Override
public boolean update(PolicyInsurantUpdateRequest policyInsurantUpdateRequest) {
if (policyInsurantUpdateRequest == null || policyInsurantUpdateRequest.getPolicyInsurantBizId() == null) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), ResultCode.PARAMS_ERROR.getMessage());
}
PolicyInsurant policyInsurant = this.getOne(new QueryWrapper<PolicyInsurant>().eq("policy_insurant_biz_id", policyInsurantUpdateRequest.getPolicyInsurantBizId()));
if (policyInsurant == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), ResultCode.NULL_ERROR.getMessage());
}
BeanUtils.copyProperties(policyInsurantUpdateRequest, policyInsurant, "policyBizId", "policyInsurantBizId", "id");
policyInsurant.setUpdateTime(new Date());
return this.updateById(policyInsurant);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment