Commit 075bd8ef by jianan

新单跟进19

parent 5b578948
...@@ -47,22 +47,21 @@ public class ApiPolicyAdditionalController { ...@@ -47,22 +47,21 @@ public class ApiPolicyAdditionalController {
} }
/** /**
* 删除保单附加险 * 根据 id 删除保单附加险
* *
* @param policyAdditionalBizId * @param id 保单附加险信息表主键id
* @param request * @param request
* @return * @return
*/ */
@DeleteMapping("/delete") @DeleteMapping("/delete")
@Operation(summary = "删除保单附加险") @Operation(summary = "根据 id 删除保单附加险")
public Result<Boolean> deletePolicyAdditional(@RequestParam("policyAdditionalBizId") String policyAdditionalBizId, HttpServletRequest request) { public Result<Boolean> deletePolicyAdditional(@RequestParam("id") Long id, HttpServletRequest request) {
if (policyAdditionalBizId == null || StringUtils.isBlank(policyAdditionalBizId)) { if (id == null || id <= 0) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "policyAdditionalBizId不能为空"); return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "id不能为空");
} }
// User user = userService.getLoginUser(request); // User user = userService.getLoginUser(request);
// long id = deleteRequest.getId();
// 判断是否存在 // 判断是否存在
PolicyAdditional policyAdditional = policyAdditionalService.getByBizId(policyAdditionalBizId); PolicyAdditional policyAdditional = policyAdditionalService.getById(id);
if (policyAdditional == null) { if (policyAdditional == null) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), ResultCode.NULL_ERROR.getMessage()); return Result.fail(ResultCode.NULL_ERROR.getCode(), ResultCode.NULL_ERROR.getMessage());
} }
...@@ -72,7 +71,7 @@ public class ApiPolicyAdditionalController { ...@@ -72,7 +71,7 @@ public class ApiPolicyAdditionalController {
// } // }
// 操作数据库 // 操作数据库
return Result.success(policyAdditionalService.removeById(policyAdditional.getId())); return Result.success(policyAdditionalService.removeById(id));
} }
/** /**
......
...@@ -65,9 +65,6 @@ public class PolicyFollowAggregateDto implements Serializable { ...@@ -65,9 +65,6 @@ public class PolicyFollowAggregateDto implements Serializable {
@Schema(description = "保单第二持有人") @Schema(description = "保单第二持有人")
private ApiSecondHolderInfoDto apiSecondHolderInfoDto; private ApiSecondHolderInfoDto apiSecondHolderInfoDto;
// todo 健康问卷
// private Object policyholderInfo;
// 错误信息(如果有查询失败的情况) // 错误信息(如果有查询失败的情况)
private String errorMessage; private String errorMessage;
......
package com.yd.csf.service.dto; package com.yd.csf.service.dto;
import com.yd.csf.feign.dto.appointment.ApiProductPlanAdditionalInfoDto;
import com.yd.csf.service.model.Policy;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.util.List;
import java.util.Date;
@Data @Data
public class PolicyUpdateRequest implements Serializable { public class PolicyUpdateRequest implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 新单跟进唯一业务ID * 新单跟进业务ID
*/ */
@Schema(description = "新单跟进唯一业务ID", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "新单跟进业务ID")
private String policyBizId; private String policyBizId;
/** /**
* 保单号 * 产品计划(保单信息)
*/ */
@Schema(description = "保单号") @Schema(description = "产品计划(保单信息)")
private String policyNo; private Policy apiProductPlanMainInfoDto;
/** /**
* 产品业务id * 保单附加险列表
*/ */
@Schema(description = "产品业务id") @Schema(description = "保单附加险列表")
private String planBizId; private List<ApiProductPlanAdditionalInfoDto> apiProductPlanAdditionalInfoDtoList;
/**
* 产品代码
*/
@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;
} }
...@@ -6,9 +6,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -6,9 +6,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.csf.feign.dto.appointment.ApiProductPlanAdditionalInfoDto;
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.dto.PolicyUpdateRequest;
import com.yd.csf.service.model.Policy; import com.yd.csf.service.model.Policy;
import com.yd.csf.service.model.PolicyAdditional;
import com.yd.csf.service.service.PolicyAdditionalService;
import com.yd.csf.service.service.PolicyPolicyholderService; import com.yd.csf.service.service.PolicyPolicyholderService;
import com.yd.csf.service.service.PolicyService; import com.yd.csf.service.service.PolicyService;
import com.yd.csf.service.dao.PolicyMapper; import com.yd.csf.service.dao.PolicyMapper;
...@@ -16,6 +19,7 @@ import com.yd.csf.service.vo.PolicyVO; ...@@ -16,6 +19,7 @@ import com.yd.csf.service.vo.PolicyVO;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
...@@ -30,6 +34,9 @@ import java.util.stream.Collectors; ...@@ -30,6 +34,9 @@ import java.util.stream.Collectors;
public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy> public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy>
implements PolicyService{ implements PolicyService{
@Resource
private PolicyAdditionalService policyAdditionalService;
@Override @Override
public QueryWrapper<Policy> getQueryWrapper(PolicyQueryRequest policyQueryRequest) { public QueryWrapper<Policy> getQueryWrapper(PolicyQueryRequest policyQueryRequest) {
QueryWrapper<Policy> queryWrapper = new QueryWrapper<>(); QueryWrapper<Policy> queryWrapper = new QueryWrapper<>();
...@@ -78,6 +85,7 @@ public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy> ...@@ -78,6 +85,7 @@ public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy>
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean updatePolicy(PolicyUpdateRequest policyUpdateRequest) { public Boolean updatePolicy(PolicyUpdateRequest policyUpdateRequest) {
String policyBizId = policyUpdateRequest.getPolicyBizId(); String policyBizId = policyUpdateRequest.getPolicyBizId();
if (StringUtils.isBlank(policyBizId)) { if (StringUtils.isBlank(policyBizId)) {
...@@ -87,9 +95,35 @@ public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy> ...@@ -87,9 +95,35 @@ public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy>
if (policy == null) { if (policy == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "保单不存在"); throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "保单不存在");
} }
BeanUtils.copyProperties(policyUpdateRequest, policy, "policyBizId", "id"); Date now = new Date();
policy.setUpdateTime(new Date()); // 保单信息
return this.updateById(policy); Policy apiProductPlanMainInfoDto = policyUpdateRequest.getApiProductPlanMainInfoDto();
if (apiProductPlanMainInfoDto != null) {
BeanUtils.copyProperties(apiProductPlanMainInfoDto, policy, "policyBizId", "id");
policy.setUpdateTime(now);
// 更新保单
this.updateById(policy);
}
// 先删除旧的附加险
policyAdditionalService.remove(new QueryWrapper<PolicyAdditional>().eq("policy_biz_id", policyBizId));
// 保单附加险列表
List<ApiProductPlanAdditionalInfoDto> apiProductPlanAdditionalInfoDtoList = policyUpdateRequest.getApiProductPlanAdditionalInfoDtoList();
if (CollUtil.isNotEmpty(apiProductPlanAdditionalInfoDtoList)) {
// 转换为实体类
List<PolicyAdditional> policyAdditionalList = apiProductPlanAdditionalInfoDtoList.stream().map(additionalDto -> {
PolicyAdditional policyAdditional = new PolicyAdditional();
BeanUtils.copyProperties(additionalDto, policyAdditional);
policyAdditional.setPolicyBizId(policyBizId);
policyAdditional.setUpdateTime(now);
policyAdditional.setCreateTime(now);
return policyAdditional;
}).collect(Collectors.toList());
// 批量插入
policyAdditionalService.saveBatch(policyAdditionalList);
}
policy.setUpdateTime(now);
return true;
} }
} }
......
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