Commit 59ef8e3e by jianan

Merge branch 'refs/heads/test' into prod

parents 82947373 2c87d73c
...@@ -15,6 +15,7 @@ import com.yd.csf.service.dto.CustomerQueryRequest; ...@@ -15,6 +15,7 @@ import com.yd.csf.service.dto.CustomerQueryRequest;
import com.yd.csf.service.dto.CustomerUpdateRequest; import com.yd.csf.service.dto.CustomerUpdateRequest;
import com.yd.csf.service.model.Customer; import com.yd.csf.service.model.Customer;
import com.yd.csf.service.service.CustomerService; import com.yd.csf.service.service.CustomerService;
import com.yd.csf.service.service.ITaxationService;
import com.yd.csf.service.vo.CustomerVO; import com.yd.csf.service.vo.CustomerVO;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
......
...@@ -703,4 +703,188 @@ public class ApiPolicyFollowController { ...@@ -703,4 +703,188 @@ public class ApiPolicyFollowController {
log.info("新单跟进-同步生成预计出账记录成功:保单号={}", policyNo); log.info("新单跟进-同步生成预计出账记录成功:保单号={}", policyNo);
} }
} }
/**
* 查询产品计划信息
*
* @param policyBizId 新单跟进业务ID
* @return 产品计划信息
*/
@GetMapping("/product_plan")
@Operation(summary = "查询产品计划信息")
public Result<PolicyDto> getProductPlan(@RequestParam("policyBizId") String policyBizId) {
if (StringUtils.isBlank(policyBizId)) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), "policyBizId不能为空");
}
return Result.success(policyFollowService.getProductPlan(policyBizId));
}
/**
* 查询投保人信息
*
* @param policyBizId 新单跟进业务ID
* @return 投保人信息
*/
@GetMapping("/policyholder")
@Operation(summary = "查询投保人信息")
public Result<PolicyPolicyholder> getPolicyPolicyholder(@RequestParam("policyBizId") String policyBizId) {
if (StringUtils.isBlank(policyBizId)) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), "policyBizId不能为空");
}
PolicyPolicyholder policyholder = policyFollowService.getPolicyPolicyholder(policyBizId);
if (policyholder == null) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), "投保人信息不存在");
}
return Result.success(policyholder);
}
/**
* 查询受保人信息
*
* @param policyBizId 新单跟进业务ID
* @return 受保人信息
*/
@GetMapping("/insurant")
@Operation(summary = "查询受保人信息")
public Result<PolicyInsurant> getPolicyInsurant(@RequestParam("policyBizId") String policyBizId) {
if (StringUtils.isBlank(policyBizId)) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), "policyBizId不能为空");
}
PolicyInsurant insurant = policyFollowService.getPolicyInsurant(policyBizId);
if (insurant == null) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), "受保人信息不存在");
}
return Result.success(insurant);
}
/**
* 查询受益人列表
*
* @param policyBizId 新单跟进业务ID
* @return 受益人列表
*/
@GetMapping("/beneficiary")
@Operation(summary = "查询受益人列表")
public Result<List<PolicyBeneficiary>> getPolicyBeneficiaryList(@RequestParam("policyBizId") String policyBizId) {
if (StringUtils.isBlank(policyBizId)) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), "policyBizId不能为空");
}
List<PolicyBeneficiary> beneficiaryList = policyFollowService.getPolicyBeneficiaryList(policyBizId);
return Result.success(beneficiaryList);
}
/**
* 查询第二持有人信息
*
* @param policyBizId 新单跟进业务ID
* @return 第二持有人信息
*/
@GetMapping("/second_holder")
@Operation(summary = "查询第二持有人信息")
public Result<PolicySecondHolder> getPolicySecondHolder(@RequestParam("policyBizId") String policyBizId) {
if (StringUtils.isBlank(policyBizId)) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), "policyBizId不能为空");
}
PolicySecondHolder secondHolder = policyFollowService.getPolicySecondHolder(policyBizId);
if (secondHolder == null) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), "第二持有人信息不存在");
}
return Result.success(secondHolder);
}
/**
* 查询预约附件列表
*
* @param policyBizId 新单跟进业务ID
* @return 预约附件列表
*/
@GetMapping("/appointment_files")
@Operation(summary = "查询预约附件列表")
public Result<List<PolicyAppointmentFile>> getPolicyAppointmentFileList(@RequestParam("policyBizId") String policyBizId) {
if (StringUtils.isBlank(policyBizId)) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), "policyBizId不能为空");
}
List<PolicyAppointmentFile> fileList = policyFollowService.getPolicyAppointmentFileList(policyBizId);
return Result.success(fileList);
}
/**
* 更新产品计划信息
*
* @param policyUpdateRequest 产品计划更新请求
* @return 是否成功
*/
// @PostMapping("/product_plan/update")
// @Operation(summary = "更新产品计划信息")
// @Transactional(rollbackFor = Exception.class)
// public Result<Boolean> updateProductPlan(@RequestBody PolicyUpdateRequest policyUpdateRequest) {
// if (policyUpdateRequest == null || StringUtils.isBlank(policyUpdateRequest.getPolicyBizId())) {
// return Result.fail(ResultCode.NULL_ERROR.getCode(), "policyBizId不能为空");
// }
// return Result.success(policyFollowService.updateProductPlan(policyUpdateRequest));
// }
/**
* 更新投保人信息
*
* @param policyPolicyholderUpdateRequest 投保人更新请求
* @return 是否成功
*/
@PostMapping("/policyholder/update")
@Operation(summary = "更新投保人信息")
@Transactional(rollbackFor = Exception.class)
public Result<Boolean> updatePolicyPolicyholder(@RequestBody PolicyPolicyholderUpdateRequest policyPolicyholderUpdateRequest) {
if (policyPolicyholderUpdateRequest == null || StringUtils.isBlank(policyPolicyholderUpdateRequest.getPolicyPolicyholderBizId())) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), "policyPolicyholderBizId不能为空");
}
return Result.success(policyFollowService.updatePolicyPolicyholder(policyPolicyholderUpdateRequest));
}
/**
* 更新受保人信息
*
* @param policyInsurantUpdateRequest 受保人更新请求
* @return 是否成功
*/
@PostMapping("/insurant/update")
@Operation(summary = "更新受保人信息")
@Transactional(rollbackFor = Exception.class)
public Result<Boolean> updatePolicyInsurant(@RequestBody PolicyInsurantUpdateRequest policyInsurantUpdateRequest) {
if (policyInsurantUpdateRequest == null || StringUtils.isBlank(policyInsurantUpdateRequest.getPolicyInsurantBizId())) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), "policyInsurantBizId不能为空");
}
return Result.success(policyFollowService.updatePolicyInsurant(policyInsurantUpdateRequest));
}
/**
* 更新受益人列表
*
* @param policyBeneficiaryListUpdateRequest 受益人列表更新请求
* @return 是否成功
*/
@PostMapping("/beneficiary/update")
@Operation(summary = "更新受益人列表")
@Transactional(rollbackFor = Exception.class)
public Result<Boolean> updatePolicyBeneficiaryList(@RequestBody PolicyBeneficiaryListUpdateRequest policyBeneficiaryListUpdateRequest) {
if (policyBeneficiaryListUpdateRequest == null || StringUtils.isBlank(policyBeneficiaryListUpdateRequest.getPolicyBizId())) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), "policyBizId不能为空");
}
return Result.success(policyFollowService.updatePolicyBeneficiaryList(policyBeneficiaryListUpdateRequest));
}
/**
* 更新第二持有人信息
*
* @param policySecondHolderUpdateRequest 第二持有人更新请求
* @return 是否成功
*/
@PostMapping("/second_holder/update")
@Operation(summary = "更新第二持有人信息")
@Transactional(rollbackFor = Exception.class)
public Result<Boolean> updatePolicySecondHolder(@RequestBody PolicySecondHolderUpdateRequest policySecondHolderUpdateRequest) {
if (policySecondHolderUpdateRequest == null || StringUtils.isBlank(policySecondHolderUpdateRequest.getPolicySecondHolderBizId())) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), "policySecondHolderBizId不能为空");
}
return Result.success(policyFollowService.updatePolicySecondHolder(policySecondHolderUpdateRequest));
}
} }
\ No newline at end of file
...@@ -6,9 +6,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -6,9 +6,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
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;
import com.yd.base.feign.client.relobjectcertificate.ApiRelObjectCertificateFeignClient;
import com.yd.base.feign.dto.ApiCertificateDto;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListAddRequest;
import com.yd.common.constant.CodeGeneratorConstants; import com.yd.common.constant.CodeGeneratorConstants;
import com.yd.common.enums.CommonEnum; import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
...@@ -46,7 +43,6 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -46,7 +43,6 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.constraints.NotBlank;
import java.time.ZoneId; import java.time.ZoneId;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
...@@ -143,6 +139,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService { ...@@ -143,6 +139,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
private FnaFormService fnaFormService; private FnaFormService fnaFormService;
@Resource @Resource
private PolicyBrokerService policyBrokerService; private PolicyBrokerService policyBrokerService;
@Resource
private PolicyAppointmentFileService policyAppointmentFileService;
/** /**
* 预约分页查询 * 预约分页查询
...@@ -366,7 +364,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService { ...@@ -366,7 +364,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
updateFnaBizIdAndNo(appointment.getFnaBizId(), appointment.getAppointmentBizId(), appointment.getAppointmentNo()); updateFnaBizIdAndNo(appointment.getFnaBizId(), appointment.getAppointmentBizId(), appointment.getAppointmentNo());
//新增健康问卷和预约对象关系绑定 //新增健康问卷和预约对象关系绑定
objectSaveJkQuestion(appointment.getAppointmentBizId(),request.getApiAnswerSaveRequest()); objectSaveJkQuestion(appointment.getAppointmentBizId(),request.getApiAnswerSaveRequest());
//新增对象材料关系信息
addRelObjectMaterialList(appointment.getAppointmentBizId(),request.getMaterialDtoList());
return Result.success(); return Result.success();
} }
...@@ -760,13 +759,10 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService { ...@@ -760,13 +759,10 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
// 同步保存保单产品计划附加险 // 同步保存保单产品计划附加险
savePolicyAdditional(apiProductPlanAdditionalInfoDtoList, policyBizId); savePolicyAdditional(apiProductPlanAdditionalInfoDtoList, policyBizId);
// 同步转介人 // 同步转介人
savePolicyBroker(appointment.getFnaBizId(), policyBizId); savePolicyBroker(appointment.getFnaBizId(), policyBizId);
// 同步保存保单(产品计划)
// // 同步保存保单(产品计划) savePolicy(productPlan, apiPolicyholderInfoDto, apiInsurantInfoDto, apiProductPlanMainInfoDto, policyBizId, policyTransfer);
// savePolicy(productPlan, apiPolicyholderInfoDto, apiInsurantInfoDto, apiProductPlanMainInfoDto, policyBizId, policyTransfer);
// 同步保存保单投保人 // 同步保存保单投保人
savePolicyPolicyholder(apiPolicyholderInfoDto, policyBizId); savePolicyPolicyholder(apiPolicyholderInfoDto, policyBizId);
// 同步保存保单受保人 // 同步保存保单受保人
...@@ -786,10 +782,15 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService { ...@@ -786,10 +782,15 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
private void savePolicyAppointmentAttachment(List<ApiAppointmentFileDto> apiAppointmentFileDtoList, String policyBizId) { private void savePolicyAppointmentAttachment(List<ApiAppointmentFileDto> apiAppointmentFileDtoList, String policyBizId) {
if (ObjectUtils.isNotEmpty(apiAppointmentFileDtoList)) { if (ObjectUtils.isNotEmpty(apiAppointmentFileDtoList)) {
List<PolicyAppointmentFile> policyAppointmentFileList = new ArrayList<>();
apiAppointmentFileDtoList.forEach(apiAppointmentFileDto -> { apiAppointmentFileDtoList.forEach(apiAppointmentFileDto -> {
// apiAppointmentFileDto.setPolicyBizId(policyBizId); PolicyAppointmentFile policyAppointmentFile = new PolicyAppointmentFile();
BeanUtils.copyProperties(apiAppointmentFileDto, policyAppointmentFile);
policyAppointmentFile.setId(null);
policyAppointmentFile.setPolicyBizId(policyBizId);
policyAppointmentFileList.add(policyAppointmentFile);
}); });
// policyAppointmentFileService.saveOrUpdateBatch(apiAppointmentFileDtoList); policyAppointmentFileService.saveOrUpdateBatch(policyAppointmentFileList);
} }
} }
......
...@@ -44,6 +44,11 @@ public class ApiAppointmentAddStorageRequest { ...@@ -44,6 +44,11 @@ public class ApiAppointmentAddStorageRequest {
private ApiSecondHolderInfoDto apiSecondHolderInfoDto; private ApiSecondHolderInfoDto apiSecondHolderInfoDto;
/** /**
* 附件信息
*/
private List<ApiAppointmentMaterialDto> materialDtoList;
/**
* 问卷-答题提交对象 * 问卷-答题提交对象
*/ */
private ApiAnswerSaveRequest apiAnswerSaveRequest; private ApiAnswerSaveRequest apiAnswerSaveRequest;
......
package com.yd.csf.service.dao;
import com.yd.csf.service.model.PolicyAppointmentFile;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author Zhang Jianan
* @description 针对表【policy_appointment_file(新单跟进预约附件信息表)】的数据库操作Mapper
* @createDate 2026-02-28 16:40:45
* @Entity generator.domain.PolicyAppointmentFile
*/
public interface PolicyAppointmentFileMapper extends BaseMapper<PolicyAppointmentFile> {
}
package com.yd.csf.service.dto; package com.yd.csf.service.dto;
import com.yd.csf.service.model.PolicyAdditional; import com.yd.csf.service.model.*;
import com.yd.csf.service.vo.PolicyVO; import com.yd.csf.service.vo.PolicyVO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.apache.commons.lang3.ObjectUtils;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
...@@ -23,4 +24,19 @@ public class PolicyDto implements Serializable { ...@@ -23,4 +24,19 @@ public class PolicyDto implements Serializable {
*/ */
@Schema(description = "保单附加险列表") @Schema(description = "保单附加险列表")
private List<PolicyAdditional> apiProductPlanAdditionalInfoDtoList; private List<PolicyAdditional> apiProductPlanAdditionalInfoDtoList;
public static PolicyDto convertToDto(Policy policy, List<PolicyAdditional> policyAdditionals) {
PolicyDto dto = new PolicyDto();
if (ObjectUtils.isEmpty(policy)) {
return dto;
}
// 产品计划主信息
dto.setApiProductPlanMainInfoDto(PolicyVO.objToVo(policy));
// 附加险列表
dto.setApiProductPlanAdditionalInfoDtoList(policyAdditionals);
return dto;
}
} }
...@@ -150,7 +150,10 @@ public class PolicyFollowDto implements Serializable { ...@@ -150,7 +150,10 @@ public class PolicyFollowDto implements Serializable {
private String insuranceCompanyBizId; private String insuranceCompanyBizId;
@Schema(description = "对账公司") @Schema(description = "对账公司")
private String reconciliationCompany; private String reconciliationCompanyName;
@Schema(description = "对账公司编码")
private String reconciliationCode;
@Schema(description = "对账公司业务id") @Schema(description = "对账公司业务id")
private String reconciliationCompanyBizId; private String reconciliationCompanyBizId;
......
...@@ -83,6 +83,11 @@ public class Policy implements Serializable { ...@@ -83,6 +83,11 @@ public class Policy implements Serializable {
private String policyHolder; private String policyHolder;
/** /**
* 保單持有人年齡
*/
private Integer policyHolderAge;
/**
* 受保人 * 受保人
*/ */
private String insured; private String insured;
......
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_appointment_file
*/
@TableName(value ="policy_appointment_file")
@Data
public class PolicyAppointmentFile implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 新单跟进业务ID
*/
private String policyBizId;
/**
* 保单号
*/
private String policyNo;
/**
* 预约信息主表唯一业务ID
*/
private String appointmentBizId;
/**
* 中台文件元数据表唯一业务ID
*/
private String ossFileBizId;
/**
* 预约附件信息表唯一业务ID
*/
private String appointmentFileBizId;
/**
* 预约-材料信息表唯一业务ID
*/
private String appointmentMaterialBizId;
/**
* 文件名
*/
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
...@@ -241,6 +241,11 @@ public class PolicyFollow implements Serializable { ...@@ -241,6 +241,11 @@ public class PolicyFollow implements Serializable {
private String reconciliationCompany; private String reconciliationCompany;
/** /**
* 对账公司编码
*/
private String reconciliationCompanyCode;
/**
* 对账公司业务id * 对账公司业务id
*/ */
private String reconciliationCompanyBizId; private String reconciliationCompanyBizId;
......
package com.yd.csf.service.service;
import com.yd.csf.service.model.PolicyAppointmentFile;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author Zhang Jianan
* @description 针对表【policy_appointment_file(新单跟进预约附件信息表)】的数据库操作Service
* @createDate 2026-02-28 16:40:45
*/
public interface PolicyAppointmentFileService extends IService<PolicyAppointmentFile> {
}
...@@ -5,8 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -5,8 +5,7 @@ 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.*; 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.Policy; import com.yd.csf.service.model.*;
import com.yd.csf.service.model.PolicyFollow;
import com.yd.csf.service.vo.PolicyFollowDetailVO; import com.yd.csf.service.vo.PolicyFollowDetailVO;
import com.yd.csf.service.vo.PolicyFollowVO; import com.yd.csf.service.vo.PolicyFollowVO;
import com.yd.csf.service.vo.PolicyNumberResponseVO; import com.yd.csf.service.vo.PolicyNumberResponseVO;
...@@ -90,4 +89,92 @@ public interface PolicyFollowService extends IService<PolicyFollow> { ...@@ -90,4 +89,92 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
List<PolicyFollow> queryList(List<String> policyNoList); List<PolicyFollow> queryList(List<String> policyNoList);
List<PolicyFollow> queryListByAppointmentBizId(String appointmentBizId); List<PolicyFollow> queryListByAppointmentBizId(String appointmentBizId);
/**
* 查询产品计划信息
*
* @param policyBizId 新单跟进业务ID
* @return 产品计划信息
*/
PolicyDto getProductPlan(String policyBizId);
/**
* 查询投保人信息
*
* @param policyBizId 新单跟进业务ID
* @return 投保人信息
*/
PolicyPolicyholder getPolicyPolicyholder(String policyBizId);
/**
* 查询受保人信息
*
* @param policyBizId 新单跟进业务ID
* @return 受保人信息
*/
PolicyInsurant getPolicyInsurant(String policyBizId);
/**
* 查询受益人列表
*
* @param policyBizId 新单跟进业务ID
* @return 受益人列表
*/
List<PolicyBeneficiary> getPolicyBeneficiaryList(String policyBizId);
/**
* 查询第二持有人信息
*
* @param policyBizId 新单跟进业务ID
* @return 第二持有人信息
*/
PolicySecondHolder getPolicySecondHolder(String policyBizId);
/**
* 查询预约附件列表
*
* @param policyBizId 新单跟进业务ID
* @return 预约附件列表
*/
List<PolicyAppointmentFile> getPolicyAppointmentFileList(String policyBizId);
/**
* 更新产品计划信息
*
* @param policyUpdateRequest 产品计划更新请求
* @return 是否成功
*/
Boolean updateProductPlan(PolicyUpdateRequest policyUpdateRequest);
/**
* 更新投保人信息
*
* @param policyPolicyholderUpdateRequest 投保人更新请求
* @return 是否成功
*/
Boolean updatePolicyPolicyholder(PolicyPolicyholderUpdateRequest policyPolicyholderUpdateRequest);
/**
* 更新受保人信息
*
* @param policyInsurantUpdateRequest 受保人更新请求
* @return 是否成功
*/
Boolean updatePolicyInsurant(PolicyInsurantUpdateRequest policyInsurantUpdateRequest);
/**
* 更新受益人列表
*
* @param policyBeneficiaryListUpdateRequest 受益人列表更新请求
* @return 是否成功
*/
Boolean updatePolicyBeneficiaryList(PolicyBeneficiaryListUpdateRequest policyBeneficiaryListUpdateRequest);
/**
* 更新第二持有人信息
*
* @param policySecondHolderUpdateRequest 第二持有人更新请求
* @return 是否成功
*/
Boolean updatePolicySecondHolder(PolicySecondHolderUpdateRequest policySecondHolderUpdateRequest);
} }
...@@ -22,7 +22,6 @@ import com.yd.csf.service.enums.FnaStatusEnum; ...@@ -22,7 +22,6 @@ import com.yd.csf.service.enums.FnaStatusEnum;
import com.yd.csf.service.model.Customer; import com.yd.csf.service.model.Customer;
import com.yd.csf.service.model.Fna; import com.yd.csf.service.model.Fna;
import com.yd.csf.service.model.FnaForm; import com.yd.csf.service.model.FnaForm;
import com.yd.csf.service.model.Fortune;
import com.yd.csf.service.service.CustomerService; import com.yd.csf.service.service.CustomerService;
import com.yd.csf.service.service.FnaFormService; import com.yd.csf.service.service.FnaFormService;
import com.yd.csf.service.service.FnaService; import com.yd.csf.service.service.FnaService;
......
package com.yd.csf.service.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yd.csf.service.model.PolicyAppointmentFile;
import com.yd.csf.service.dao.PolicyAppointmentFileMapper;
import com.yd.csf.service.service.PolicyAppointmentFileService;
import org.springframework.stereotype.Service;
/**
* @author Zhang Jianan
* @description 针对表【policy_appointment_file(新单跟进预约附件信息表)】的数据库操作Service实现
* @createDate 2026-02-28 16:40:45
*/
@Service
public class PolicyAppointmentFileServiceImpl extends ServiceImpl<PolicyAppointmentFileMapper, PolicyAppointmentFile>
implements PolicyAppointmentFileService {
}
...@@ -78,6 +78,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -78,6 +78,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
@Resource @Resource
private PolicyAdditionalService policyAdditionalService; private PolicyAdditionalService policyAdditionalService;
@Resource @Resource
private PolicyAppointmentFileService policyAppointmentFileService;
@Resource
private IExpectedFortuneService expectedFortuneService; private IExpectedFortuneService expectedFortuneService;
@Autowired @Autowired
private CommissionExpectedService commissionExpectedService; private CommissionExpectedService commissionExpectedService;
...@@ -87,6 +89,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -87,6 +89,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
private FnaService fnaService; private FnaService fnaService;
@Resource @Resource
private ApiInsuranceReconciliationCompanyFeignClient apiInsuranceReconciliationCompanyFeignClient; private ApiInsuranceReconciliationCompanyFeignClient apiInsuranceReconciliationCompanyFeignClient;
@Resource
private CustomerService customerService;
@Override @Override
...@@ -197,6 +201,12 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -197,6 +201,12 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
// 复制属性,排除系统字段 // 复制属性,排除系统字段
BeanUtils.copyProperties(policyFollowDto, policyFollow, "id", "policyBizId", "brokerList"); BeanUtils.copyProperties(policyFollowDto, policyFollow, "id", "policyBizId", "brokerList");
if (StringUtils.isNotBlank(policyFollowDto.getReconciliationCode())) {
policyFollow.setReconciliationCompanyCode(policyFollowDto.getReconciliationCode());
}
if (StringUtils.isNotBlank(policyFollowDto.getReconciliationCompanyName())) {
policyFollow.setReconciliationCompany(policyFollowDto.getReconciliationCompanyName());
}
// 检查保单号是否从空变为有值 // 检查保单号是否从空变为有值
String oldPolicyNo = policyFollow.getPolicyNo(); String oldPolicyNo = policyFollow.getPolicyNo();
...@@ -491,25 +501,35 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -491,25 +501,35 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
policy.setPaymentTerm(policyFollow.getIssueNumber()); policy.setPaymentTerm(policyFollow.getIssueNumber());
policy.setUnderwritingDate(changePolicyFollowStatusRequest.getUnderwritingDate()); policy.setUnderwritingDate(changePolicyFollowStatusRequest.getUnderwritingDate());
policy.setEffectiveDate(changePolicyFollowStatusRequest.getEffectiveDate()); policy.setEffectiveDate(changePolicyFollowStatusRequest.getEffectiveDate());
policy.setPolicyHolderAge(calculatePolicyHolderAge(policyFollow.getCustomerBizId()));
if (ObjectUtils.isEmpty(policy.getInsuranceCompany()) || ObjectUtils.isEmpty(policy.getReconciliationCompanyBizId())) { if (ObjectUtils.isEmpty(policy.getInsuranceCompany()) || ObjectUtils.isEmpty(policy.getInsuranceCompany())) {
// 获取保单产品信息,填充对账公司相关字段 // 获取保单产品信息,填充对账公司相关字段
PolicyProductInfo productInfo = getPolicyProductInfo(policyFollow.getProductLaunchBizId()); PolicyProductInfo productInfo = getPolicyProductInfo(policyFollow.getProductLaunchBizId());
if (productInfo != null) { if (productInfo != null) {
policy.setInsuranceCompany(productInfo.getInsuranceCompany()); policy.setInsuranceCompany(productInfo.getInsuranceCompany());
policy.setInsuranceCompanyBizId(productInfo.getInsuranceCompanyBizId()); policy.setInsuranceCompanyBizId(productInfo.getInsuranceCompanyBizId());
policy.setReconciliationCompany(productInfo.getReconciliationCompany()); if (ObjectUtils.isEmpty(policy.getReconciliationCompany())) {
policy.setReconciliationCompanyBizId(productInfo.getReconciliationCompanyBizId()); policy.setReconciliationCompany(productInfo.getReconciliationCompany());
}
if (ObjectUtils.isEmpty(policy.getReconciliationCompanyBizId())) {
policy.setReconciliationCompanyBizId(productInfo.getReconciliationCompanyBizId());
}
}
}
if (ObjectUtils.isEmpty(policy.getReconciliationCompanyCode())) {
if (ObjectUtils.isEmpty(policy.getReconciliationCompanyBizId())) {
throw new BusinessException("对账公司业务ID不能为空");
}
// 调用对账公司 feignclient,查询对账公司编码 // 调用对账公司 feignclient,查询对账公司编码
String reconciliationCompanyCode = queryReconciliationCompanyByFeign(policy.getReconciliationCompanyBizId()); String reconciliationCompanyCode = queryReconciliationCompanyByFeign(policy.getReconciliationCompanyBizId());
// 如果仍然没有获取到编码,抛异常 // 如果仍然没有获取到编码,抛异常
if (StringUtils.isBlank(reconciliationCompanyCode)) { if (StringUtils.isBlank(reconciliationCompanyCode)) {
throw new BusinessException("未能从对账公司服务获取编码,请补充,当前对账公司:" + productInfo.getReconciliationCompany()); throw new BusinessException("未能从对账公司服务获取编码,请补充,当前对账公司:" + policy.getReconciliationCompany());
}
policy.setReconciliationCompanyCode(reconciliationCompanyCode);
} }
policy.setReconciliationCompanyCode(reconciliationCompanyCode);
} }
// 保存保单 // 保存保单
try { try {
...@@ -539,6 +559,18 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -539,6 +559,18 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return true; return true;
} }
private Integer calculatePolicyHolderAge(String customerBizId) {
Customer customer = customerService.getByCustomerBizId(customerBizId);
if (customer == null) {
throw new BusinessException("客户不存在");
}
if (customer.getBirthday() == null) {
throw new BusinessException("客户生日不能为空");
}
// 根据生日计算年龄
return DateUtil.ageOfNow(customer.getBirthday());
}
/** /**
* 调用对账公司 feignclient,查询对账公司编码 * 调用对账公司 feignclient,查询对账公司编码
*/ */
...@@ -959,5 +991,85 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -959,5 +991,85 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return null; return null;
} }
} }
@Override
public PolicyDto getProductPlan(String policyBizId) {
Policy policy = policyService.getOne(new QueryWrapper<Policy>().eq("policy_biz_id", policyBizId));
List<PolicyAdditional> policyAdditionalList = policyAdditionalService.lambdaQuery()
.eq(PolicyAdditional::getPolicyBizId, policyBizId)
.list();
// 转换为DTO
return PolicyDto.convertToDto(policy, policyAdditionalList);
}
@Override
public PolicyPolicyholder getPolicyPolicyholder(String policyBizId) {
return policyPolicyholderService.getOne(new QueryWrapper<PolicyPolicyholder>().eq("policy_biz_id", policyBizId).eq("is_deleted", 0));
}
@Override
public PolicyInsurant getPolicyInsurant(String policyBizId) {
return policyInsurantService.getOne(new QueryWrapper<PolicyInsurant>().eq("policy_biz_id", policyBizId).eq("is_deleted", 0));
}
@Override
public List<PolicyBeneficiary> getPolicyBeneficiaryList(String policyBizId) {
return policyBeneficiaryService.list(new QueryWrapper<PolicyBeneficiary>().eq("policy_biz_id", policyBizId).eq("is_deleted", 0));
}
@Override
public PolicySecondHolder getPolicySecondHolder(String policyBizId) {
return policySecondHolderService.getOne(new QueryWrapper<PolicySecondHolder>().eq("policy_biz_id", policyBizId).eq("is_deleted", 0));
}
@Override
public List<PolicyAppointmentFile> getPolicyAppointmentFileList(String policyBizId) {
return policyAppointmentFileService.list(new QueryWrapper<PolicyAppointmentFile>().eq("policy_biz_id", policyBizId).eq("is_deleted", 0));
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateProductPlan(PolicyUpdateRequest policyUpdateRequest) {
if (policyUpdateRequest == null || StringUtils.isBlank(policyUpdateRequest.getPolicyBizId())) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
}
return policyService.updatePolicy(policyUpdateRequest);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updatePolicyPolicyholder(PolicyPolicyholderUpdateRequest policyPolicyholderUpdateRequest) {
if (policyPolicyholderUpdateRequest == null || StringUtils.isBlank(policyPolicyholderUpdateRequest.getPolicyPolicyholderBizId())) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "policyPolicyholderBizId不能为空");
}
return policyPolicyholderService.update(policyPolicyholderUpdateRequest);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updatePolicyInsurant(PolicyInsurantUpdateRequest policyInsurantUpdateRequest) {
if (policyInsurantUpdateRequest == null || StringUtils.isBlank(policyInsurantUpdateRequest.getPolicyInsurantBizId())) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "policyInsurantBizId不能为空");
}
return policyInsurantService.update(policyInsurantUpdateRequest);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updatePolicyBeneficiaryList(PolicyBeneficiaryListUpdateRequest policyBeneficiaryListUpdateRequest) {
if (policyBeneficiaryListUpdateRequest == null || StringUtils.isBlank(policyBeneficiaryListUpdateRequest.getPolicyBizId())) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
}
return policyBeneficiaryService.updatePolicyBeneficiaryList(policyBeneficiaryListUpdateRequest);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updatePolicySecondHolder(PolicySecondHolderUpdateRequest policySecondHolderUpdateRequest) {
if (policySecondHolderUpdateRequest == null || StringUtils.isBlank(policySecondHolderUpdateRequest.getPolicySecondHolderBizId())) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "policySecondHolderBizId不能为空");
}
return policySecondHolderService.updatePolicySecondHolder(policySecondHolderUpdateRequest);
}
} }
...@@ -53,7 +53,6 @@ public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy> ...@@ -53,7 +53,6 @@ public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy>
@Resource @Resource
private PolicyAdditionalService policyAdditionalService; private PolicyAdditionalService policyAdditionalService;
@Resource @Resource
private ApiRelProjectProductLaunchFeignClient apiRelProjectProductLaunchFeignClient; private ApiRelProjectProductLaunchFeignClient apiRelProjectProductLaunchFeignClient;
...@@ -148,7 +147,6 @@ public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy> ...@@ -148,7 +147,6 @@ public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy>
policyAdditionalService.saveBatch(policyAdditionalList); policyAdditionalService.saveBatch(policyAdditionalList);
} }
policy.setUpdateTime(now);
return true; return true;
} }
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yd.csf.service.dao.PolicyAppointmentFileMapper">
<resultMap id="BaseResultMap" type="com.yd.csf.service.model.PolicyAppointmentFile">
<id property="id" column="id" />
<result property="policyBizId" column="policy_biz_id" />
<result property="policyNo" column="policy_no" />
<result property="appointmentBizId" column="appointment_biz_id" />
<result property="ossFileBizId" column="oss_file_biz_id" />
<result property="appointmentFileBizId" column="appointment_file_biz_id" />
<result property="appointmentMaterialBizId" column="appointment_material_biz_id" />
<result property="fileName" column="file_name" />
<result property="fileUrl" column="file_url" />
<result property="remark" column="remark" />
<result property="isDeleted" column="is_deleted" />
<result property="creatorId" column="creator_id" />
<result property="creatorName" column="creator_name" />
<result property="updaterId" column="updater_id" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="Base_Column_List">
id,policy_biz_id,policy_no,appointment_biz_id,oss_file_biz_id,appointment_file_biz_id,
appointment_material_biz_id,file_name,file_url,remark,is_deleted,
creator_id,creator_name,updater_id,create_time,update_time
</sql>
</mapper>
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
<result property="insuranceCompanyBizId" column="insurance_company_biz_id" /> <result property="insuranceCompanyBizId" column="insurance_company_biz_id" />
<result property="region" column="region" /> <result property="region" column="region" />
<result property="policyHolder" column="policy_holder" /> <result property="policyHolder" column="policy_holder" />
<result property="policyHolderAge" column="policy_holder_age" />
<result property="insured" column="insured" /> <result property="insured" column="insured" />
<result property="sumInsured" column="sum_insured" /> <result property="sumInsured" column="sum_insured" />
<result property="paymentTerm" column="payment_term" /> <result property="paymentTerm" column="payment_term" />
...@@ -55,7 +56,7 @@ ...@@ -55,7 +56,7 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id,policy_biz_id,policy_no,user_biz_id,product_launch_biz_id,product_code, id,policy_biz_id,policy_no,user_biz_id,product_launch_biz_id,product_code,
product_name,product_cate,insurance_company,insurance_company_biz_id,region, product_name,product_cate,insurance_company,insurance_company_biz_id,region,
policy_holder,insured,sum_insured,payment_term,payment_frequency,payment_premium, policy_holder,policy_holder_age,insured,sum_insured,payment_term,payment_frequency,payment_premium,
status,currency,initial_premium,sign_date,issue_date, status,currency,initial_premium,sign_date,issue_date,
effective_date,cooling_off_end_date,cooling_off_days,renewal_date,is_prepaid,deductibles,prepaid_term, effective_date,cooling_off_end_date,cooling_off_days,renewal_date,is_prepaid,deductibles,prepaid_term,
initial_payment_method,renewal_payment_method,dividend_distribution_method,is_backtrack,is_join, initial_payment_method,renewal_payment_method,dividend_distribution_method,is_backtrack,is_join,
......
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