Commit 0c0237f2 by jianan

新单跟进17

parent e6b5ac3a
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);
}
}
......@@ -4,15 +4,12 @@ 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.CommissionExpectedQueryRequest;
import com.yd.csf.service.dto.PolicyPolicyholderUpdateRequest;
import com.yd.csf.service.dto.PolicyQueryRequest;
import com.yd.csf.service.dao.PolicyMapper;
import com.yd.csf.service.dto.*;
import com.yd.csf.service.dto.PolicyUpdateRequest;
import com.yd.csf.service.model.CommissionExpected;
import com.yd.csf.service.model.Policy;
import com.yd.csf.service.service.CommissionExpectedService;
import com.yd.csf.service.service.PolicyService;
import com.yd.csf.service.service.*;
import com.yd.csf.service.vo.CommissionExpectedVO;
import com.yd.csf.service.vo.PolicyVO;
import io.swagger.v3.oas.annotations.Operation;
......@@ -37,7 +34,10 @@ public class ApiPolicyController {
private PolicyService policyService;
@Resource
private CommissionExpectedService commissionExpectedService;
@Resource
private PolicyPolicyholderService policyPolicyholderService;
@Resource
private PolicyInsurantService policyInsurantService;
/**
* 创建保单
......@@ -101,16 +101,31 @@ public class ApiPolicyController {
/**
* 更新投保人信息
*
* @param policyUpdateRequest
* @param policyPolicyholderUpdateRequest
* @return
*/
@PostMapping("/update_policyholder")
@Operation(summary = "更新保单投保人信息")
public Result<Boolean> updatePolicyholder(@RequestBody PolicyPolicyholderUpdateRequest policyUpdateRequest) {
if (policyUpdateRequest == null || policyUpdateRequest.getPolicyPolicyholderBizId() == null) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "policyPolicyholderBizId不能为空");
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(policyService.updatePolicyholder(policyUpdateRequest));
return Result.success(policyInsurantService.update(policyInsurantUpdateRequest));
}
/**
......
......@@ -416,10 +416,13 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
ApiProductPlanMainInfoDto apiProductPlanMainInfoDto = null;
List<ApiProductPlanAdditionalInfoDto> apiProductPlanAdditionalInfoDtoList = new ArrayList<>();
ApiInsurantInfoDto apiInsurantInfoDto = null;
String policyTransfer = null;
if (!Objects.isNull(response)
&& !Objects.isNull(response.getApiProductPlanInfoDto())
&& !Objects.isNull(response.getApiProductPlanInfoDto().getApiProductPlanMainInfoDto())) {
apiProductPlanMainInfoDto = response.getApiProductPlanInfoDto().getApiProductPlanMainInfoDto();
//转保声明选项(字典)
policyTransfer = response.getApiAppointmentInfoDto().getPolicyTransfer();
// 产品计划附加险列表
apiProductPlanAdditionalInfoDtoList = response.getApiProductPlanInfoDto().getApiProductPlanAdditionalInfoDtoList();
}
......@@ -485,7 +488,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
policyFollowService.saveOrUpdate(follow);
// 同步保存保单(产品计划)
savePolicy(follow, apiProductPlanMainInfoDto, policyBizId);
savePolicy(follow, apiProductPlanMainInfoDto, policyBizId, policyTransfer);
// 同步保存保单产品计划附加险
savePolicyAdditional(apiProductPlanAdditionalInfoDtoList, policyBizId);
// 同步保存保单投保人
......@@ -563,7 +566,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
return policyPolicyholderService.saveOrUpdate(policyPolicyholder);
}
private boolean savePolicy(PolicyFollow policyFollow, ApiProductPlanMainInfoDto apiProductPlanMainInfoDto, String policyBizId) {
private boolean savePolicy(PolicyFollow policyFollow, ApiProductPlanMainInfoDto apiProductPlanMainInfoDto, String policyBizId, String policyTransfer) {
// 同步保存保单(产品计划)
Policy policy = new Policy();
BeanUtils.copyProperties(policyFollow, policy);
......@@ -573,6 +576,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
policy.setPolicyBizId(policyBizId);
policy.setPlanBizId(apiProductPlanMainInfoDto.getPlanBizId());
policy.setStatus(PolicyStatusEnum.INFORCE.getItemValue());
//转保声明选项(字典)
policy.setPolicyTransfer(policyTransfer);
policy.setCreateTime(new Date());
policy.setUpdateTime(new Date());
......
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;
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;
}
......@@ -438,6 +438,12 @@ public class PolicyPolicyholderUpdateRequest implements Serializable {
@Schema(description = "授权代表电话")
private String authMobile;
/**
* 转保声明选项(字典)
*/
@Schema(description = "转保声明选项(字典)")
private String policyTransfer;
/**
* 备注
*/
......
......@@ -183,6 +183,11 @@ public class Policy implements Serializable {
private String reconciliationCompanyBizId;
/**
* 转保声明选项(字典)
*/
private String policyTransfer;
/**
* 通用备注
*/
private String remark;
......
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
......@@ -10,4 +14,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
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.dto.PolicyInsurantUpdateRequest;
import com.yd.csf.service.model.PolicyInsurant;
import com.baomidou.mybatisplus.extension.service.IService;
......@@ -9,5 +10,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @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;
......@@ -9,5 +10,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @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.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.service.dto.PolicyPolicyholderUpdateRequest;
import com.yd.csf.service.dto.PolicyQueryRequest;
import com.yd.csf.service.dto.PolicyUpdateRequest;
import com.yd.csf.service.model.Policy;
......@@ -23,5 +21,4 @@ public interface PolicyService extends IService<Policy> {
Boolean updatePolicy(PolicyUpdateRequest policyUpdateRequest);
Boolean updatePolicyholder(PolicyPolicyholderUpdateRequest policyUpdateRequest);
}
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实现
......@@ -15,6 +26,47 @@ import org.springframework.stereotype.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.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实现
......@@ -15,6 +22,19 @@ import org.springframework.stereotype.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);
}
}
......
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.PolicyPolicyholderUpdateRequest;
import com.yd.csf.service.model.PolicyPolicyholder;
import com.yd.csf.service.service.PolicyPolicyholderService;
import com.yd.csf.service.dao.PolicyPolicyholderMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* @author Zhang Jianan
* @description 针对表【policy_policyholder(保单投保人信息表)】的数据库操作Service实现
......@@ -15,6 +22,19 @@ import org.springframework.stereotype.Service;
public class PolicyPolicyholderServiceImpl extends ServiceImpl<PolicyPolicyholderMapper, PolicyPolicyholder>
implements PolicyPolicyholderService{
@Override
public boolean update(PolicyPolicyholderUpdateRequest policyPolicyholderUpdateRequest) {
if (policyPolicyholderUpdateRequest == null || policyPolicyholderUpdateRequest.getPolicyPolicyholderBizId() == null) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), ResultCode.PARAMS_ERROR.getMessage());
}
PolicyPolicyholder policyPolicyholder = this.getOne(new QueryWrapper<PolicyPolicyholder>().eq("policy_policyholder_biz_id", policyPolicyholderUpdateRequest.getPolicyPolicyholderBizId()));
if (policyPolicyholder == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), ResultCode.NULL_ERROR.getMessage());
}
BeanUtils.copyProperties(policyPolicyholderUpdateRequest, policyPolicyholder, "policyBizId", "policyPolicyholderBizId", "id");
policyPolicyholder.setUpdateTime(new Date());
return this.updateById(policyPolicyholder);
}
}
......
......@@ -6,11 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.PolicyPolicyholderUpdateRequest;
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.PolicyPolicyholder;
import com.yd.csf.service.service.PolicyPolicyholderService;
import com.yd.csf.service.service.PolicyService;
import com.yd.csf.service.dao.PolicyMapper;
......@@ -97,21 +95,6 @@ public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy>
return this.updateById(policy);
}
@Override
public Boolean updatePolicyholder(PolicyPolicyholderUpdateRequest policyUpdateRequest) {
String policyPolicyholderBizId = policyUpdateRequest.getPolicyPolicyholderBizId();
if (StringUtils.isBlank(policyPolicyholderBizId)) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "policyPolicyholderBizId不能为空");
}
PolicyPolicyholder policyPolicyholder = policyPolicyholderService.getOne(new QueryWrapper<PolicyPolicyholder>().eq("policy_policyholder_biz_id", policyPolicyholderBizId));
if (policyPolicyholder == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "保单投保人不存在");
}
BeanUtils.copyProperties(policyUpdateRequest, policyPolicyholder, "policyPolicyholderBizId", "id");
policyPolicyholder.setUpdateTime(new Date());
policyPolicyholder.setUpdateTime(new Date());
return policyPolicyholderService.updateById(policyPolicyholder);
}
}
......
......@@ -38,6 +38,7 @@
<result property="isJoin" column="is_join" />
<result property="reconciliationCompany" column="reconciliation_company" />
<result property="reconciliationCompanyBizId" column="reconciliation_company_biz_id" />
<result property="policyTransfer" column="policy_transfer" />
<result property="remark" column="remark" />
<result property="isDeleted" column="is_deleted" />
<result property="creatorId" column="creator_id" />
......@@ -53,7 +54,7 @@
status,currency,initial_premium,sign_date,issue_date,
effective_date,renewal_date,is_prepaid,deductibles,prepaid_term,
initial_payment_method,renewal_payment_method,dividend_distribution_method,is_backtrack,is_join,
reconciliation_company,reconciliation_company_biz_id,remark,is_deleted,creator_id,
reconciliation_company,reconciliation_company_biz_id,policy_transfer,remark,is_deleted,creator_id,
updater_id,create_time,update_time
</sql>
</mapper>
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