Commit ef356fcb by jianan

新单跟进6

parent 9313606e
......@@ -72,6 +72,8 @@ public class ApiPolicyFollowController {
private ReconciliationCompanyService reconciliationCompanyService;
@Resource
private PolicyFollowRecordService policyFollowRecordService;
@Resource
private PolicyFollowFileService policyFollowFileService;
@PostMapping("/upload/excel")
......@@ -369,8 +371,8 @@ public class ApiPolicyFollowController {
@PostMapping("/update")
@Operation(summary = "更新新单跟进信息")
public Result<Boolean> updatePolicyFollow(@RequestBody PolicyFollowUpdateRequest policyFollowUpdateRequest) {
if (policyFollowUpdateRequest == null || StringUtils.isBlank(policyFollowUpdateRequest.getPolicyBizId())) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
if (policyFollowUpdateRequest == null || policyFollowUpdateRequest.getPolicyFollowUpdateDto() == null) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "policyFollowUpdateDto不能为空");
}
return Result.success(policyFollowService.updatePolicyFollow(policyFollowUpdateRequest));
}
......@@ -387,13 +389,28 @@ public class ApiPolicyFollowController {
if (StringUtils.isBlank(attachmentUploadRequest.getPolicyBizId())) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
}
if (CollectionUtils.isEmpty(attachmentUploadRequest.getAttachmentList())) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "附件地址列表不能为空");
}
return Result.success(policyFollowService.uploadAttachment(attachmentUploadRequest));
}
/**
* 新单跟进附件列表查询
*
* @param policyBizId
* @return
*/
@PostMapping("/attachment/list")
@Operation(summary = "新单跟进附件列表查询")
public Result<List<PolicyFollowFile>> attachmentList(@RequestParam("policyBizId") String policyBizId) {
if (StringUtils.isBlank(policyBizId)) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
}
QueryWrapper<PolicyFollowFile> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("policy_biz_id", policyBizId);
queryWrapper.eq("is_deleted", 0);
return Result.success(policyFollowFileService.list(queryWrapper));
}
/**
* 根据 policyBizId 获取新单跟进(封装类)
*
* @param policyBizId
......
......@@ -3,6 +3,7 @@ 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;
......@@ -14,11 +15,26 @@ public class AttachmentUploadRequest implements Serializable {
@Schema(description = "新单跟进bizId", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyBizId;
/**
* 附件地址列表
*/
@Schema(description = "附件地址列表", requiredMode = Schema.RequiredMode.REQUIRED)
private List<String> attachmentList;
/**
* 中台文件元数据表唯一业务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 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;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yd.csf.service.dto.PolicyBrokerDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
public class PolicyFollowUpdateRequest {
/**
* 新单编号
*/
@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;
/**
* 预缴年期
* 新单修改Dto
*/
@Schema(description = "预缴年期")
private Integer prepaidTerm;
/**
* 产品名称
*/
@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 = "新单修改Dto", requiredMode = Schema.RequiredMode.REQUIRED)
private PolicyFollowUpdateDto policyFollowUpdateDto;
/**
* 转介人列表
......@@ -164,10 +30,4 @@ public class PolicyFollowUpdateRequest {
*/
@Schema(description = "保单邮寄")
private PolicyMailing policyMailing;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}
......@@ -127,6 +127,11 @@ public class PolicyFollow implements Serializable {
*/
private String paymentNumber;
/**
* 产品业务id
*/
private String productBizId;
/**
* 产品名称
*/
......
......@@ -9,21 +9,17 @@ import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dto.*;
import com.yd.csf.service.enums.PolicyFollowStatusEnum;
import com.yd.csf.service.model.Policy;
import com.yd.csf.service.model.PolicyBroker;
import com.yd.csf.service.model.PolicyFollow;
import com.yd.csf.service.model.PolicyFollowRecord;
import com.yd.csf.service.service.PolicyBrokerService;
import com.yd.csf.service.service.PolicyFollowRecordService;
import com.yd.csf.service.service.PolicyFollowService;
import com.yd.csf.service.model.*;
import com.yd.csf.service.service.*;
import com.yd.csf.service.dao.PolicyFollowMapper;
import com.yd.csf.service.service.PolicyService;
import com.yd.csf.service.vo.PolicyFollowVO;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -49,6 +45,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
private PolicyFollowService policyFollowService;
@Resource
private PolicyFollowRecordService policyFollowRecordService;
@Resource
private PolicyFollowFileService policyFollowFileService;
@Override
......@@ -117,12 +115,18 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
@Transactional(rollbackFor = Exception.class)
public Boolean updatePolicyFollow(PolicyFollowUpdateRequest policyFollowUpdateRequest) {
String policyBizId = policyFollowUpdateRequest.getPolicyBizId();
PolicyFollowUpdateDto policyFollowUpdateDto = policyFollowUpdateRequest.getPolicyFollowUpdateDto();
// 校验参数
if (policyFollowUpdateDto == null || StringUtils.isBlank(policyFollowUpdateDto.getPolicyBizId())) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
}
String policyBizId = policyFollowUpdateDto.getPolicyBizId();
PolicyFollow policyFollow = getByPolicyBizId(policyBizId);
if (policyFollow == null) {
throw new BusinessException(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage());
}
BeanUtils.copyProperties(policyFollowUpdateRequest, policyFollow, "id", "policyBizId");
BeanUtils.copyProperties(policyFollowUpdateDto, policyFollow, "id", "policyBizId");
// 设置核保信息
setValidPolicyInfo(policyFollow, policyFollowUpdateRequest.getVerifyPolicyInfo());
// 设置保单邮寄
......@@ -262,7 +266,9 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean changePolicyFollowStatus(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest) {
if (changePolicyFollowStatusRequest == null || StringUtils.isBlank(changePolicyFollowStatusRequest.getPolicyBizId())) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
}
String policyBizId = changePolicyFollowStatusRequest.getPolicyBizId();
PolicyFollow policyFollow = getByPolicyBizId(policyBizId);
if (policyFollow == null) {
......@@ -325,17 +331,29 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
@Override
public Boolean uploadAttachment(AttachmentUploadRequest attachmentUploadRequest) {
String policyBizId = attachmentUploadRequest.getPolicyBizId();
PolicyFollow policyFollow = getByPolicyBizId(policyBizId);
if (policyFollow == null) {
throw new BusinessException(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage());
if (policyBizId == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
}
String fileName = attachmentUploadRequest.getFileName();
if (fileName == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "fileName不能为空");
}
String fileUrl = attachmentUploadRequest.getFileUrl();
if (fileUrl == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "fileUrl不能为空");
}
String ossFileBizId = attachmentUploadRequest.getOssFileBizId();
if (ossFileBizId == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "ossFileBizId不能为空");
}
policyFollow.setAttachments(String.join(",", attachmentUploadRequest.getAttachmentList()));
PolicyFollow updateObj = new PolicyFollow();
updateObj.setId(policyFollow.getId());
updateObj.setAttachments(policyFollow.getAttachments());
PolicyFollowFile policyFollowFile = new PolicyFollowFile();
policyFollowFile.setPolicyBizId(attachmentUploadRequest.getPolicyBizId());
policyFollowFile.setOssFileBizId(attachmentUploadRequest.getOssFileBizId());
policyFollowFile.setFileName(attachmentUploadRequest.getFileName());
policyFollowFile.setFileUrl(attachmentUploadRequest.getFileUrl());
return updateById(updateObj);
return policyFollowFileService.save(policyFollowFile);
}
private static void validPolicyFollowStatus(PolicyFollowStatusEnum currentStatusEnum, PolicyFollowStatusEnum policyFollowStatusEnum) {
......
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