Commit d6bd43b9 by jianan

新单跟进v2

parent 4181eecb
......@@ -561,7 +561,7 @@ public class ApiPolicyFollowController {
*/
@PostMapping("/list/page/vo")
@Operation(summary = "分页获取新单跟进列表")
public Result<Page<PolicyFollowDetailVO>> listPolicyFollowByPage(@RequestBody PolicyFollowQueryRequest policyFollowQueryRequest,
public Result<Page<PolicyFollowVO>> listPolicyFollowByPage(@RequestBody PolicyFollowQueryRequest policyFollowQueryRequest,
HttpServletRequest request) {
long current = policyFollowQueryRequest.getPageNo();
long size = policyFollowQueryRequest.getPageSize();
......@@ -569,7 +569,7 @@ public class ApiPolicyFollowController {
// 查询数据库
Page<PolicyFollow> policyFollowPage = policyFollowService.page(new Page<>(current, size),
policyFollowService.getQueryWrapper(policyFollowQueryRequest));
return Result.success(policyFollowService.getPolicyFollowDetailVOList(policyFollowPage));
return Result.success(policyFollowService.getPolicyFollowVOPage(policyFollowPage));
}
/**
......
......@@ -622,9 +622,9 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
//客户名称
follow.setCustomerName(customer.getNamePyEn());
}
//待跟进
follow.setStatus(PolicyFollowStatusEnum.FOLLOW_UP.getItemValue());
follow.setNextStatusList(policyFollowService.getNextStatus(PolicyFollowStatusEnum.FOLLOW_UP));
//待签单
follow.setStatus(PolicyFollowStatusEnum.PENDING_SIGN.getItemValue());
follow.setNextStatusList(policyFollowService.getNextStatus(PolicyFollowStatusEnum.PENDING_SIGN));
//TODO 保险公司业务id
// follow.setInsurerBizId();
//TODO 期交保费
......
......@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
/**
......@@ -24,9 +24,9 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
private String policyNo;
/**
* 新单状态
* 新单跟进状态
*/
@Schema(description = "新单状态 'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消', 字典值: csf_policy_follow_status")
@Schema(description = "新单状态, 字典值: csf_policy_follow_status")
private String status;
/**
......@@ -40,33 +40,33 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
*/
@Schema(description = "签单日期开始 格式: yyyy-MM-dd", example = "2023-01-01", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate signDateStart;
private Date signDateStart;
/**
* 签单日结束
*/
@Schema(description = "签单日期结束 格式: yyyy-MM-dd", example = "2023-01-01", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate signDateEnd;
private Date signDateEnd;
/**
* 最晚缴费日期
*/
@Schema(description = "最晚缴费日期 格式: yyyy-MM-dd", example = "2023-01-01", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate latestPaymentDate;
private Date latestPaymentDate;
/**
* 投保人业务id列表
*/
@Schema(description = "投保人业务id列表")
private List<String> policyholderBizIdList;
// @Schema(description = "投保人业务id列表")
// private List<String> policyholderBizIdList;
/**
* 受保人业务id列表
*/
@Schema(description = "受保人业务id列表")
private List<String> policyInsurantBizIdList;
// @Schema(description = "受保人业务id列表")
// private List<String> policyInsurantBizIdList;
/**
* 保险公司业务id列表
......@@ -84,7 +84,7 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
* 缴费年期
*/
@Schema(description = "缴费年期")
private String paymentTerm;
private String issueNumber;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -3,16 +3,22 @@ package com.yd.csf.service.enums;
import org.apache.commons.lang3.ObjectUtils;
/**
* 新单跟进状态枚举 'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消'
* 新单跟进状态枚举
*/
public enum PolicyFollowStatusEnum {
FOLLOW_UP("待跟进", "FOLLOW_UP"),
CHECKING("文件检查中", "CHECKING"),
UNDERWRITING("承保中", "UNDERWRITING"),
FINISHED("已完成", "FINISHED"),
DECLINED("已拒绝", "DECLINED"),
CANCELLED("已取消", "CANCELLED"),
PENDING_SIGN("待签单", "PENDING_SIGN"),
SIGNED("已签单", "SIGNED"),
WAITING_PAYMENT("等待汇款", "WAITING_PAYMENT"),
PREMIUM_RECONCILING("首期保费对账中", "PREMIUM_RECONCILING"),
PREMIUM_RECONCILED_UNDERWRITING("保费对账成功,核保中", "PREMIUM_RECONCILED_UNDERWRITING"),
EFFECTIVE("生效", "EFFECTIVE"),
CANCELLED("取消投保", "CANCELLED"),
DECLINED("拒保", "DECLINED"),
DELAYED_UNDERWRITING("延缓承保", "DELAYED_UNDERWRITING"),
LAPSED("失效", "LAPSED"),
CLOSED("关闭", "CLOSED"),
;
//字典项标签(名称)
private String itemLabel;
//字典项值
......@@ -68,4 +74,18 @@ public enum PolicyFollowStatusEnum {
return null;
}
/**
* 状态映射为中文
*
* @param status
* @return
*/
public static String mapStatusToLabel(String status) {
PolicyFollowStatusEnum policyFollowStatusEnum = getEnumByValue(status);
if (policyFollowStatusEnum == null) {
return "";
}
return policyFollowStatusEnum.getItemLabel();
}
}
package com.yd.csf.service.vo;
import com.google.common.reflect.TypeToken;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yd.csf.service.dto.PolicyFollowUpdateDto;
import com.yd.csf.service.dto.PolicyMailing;
import com.yd.csf.service.dto.VerifyPolicyInfo;
import com.yd.csf.service.enums.PolicyFollowStatusEnum;
import com.yd.csf.service.model.PolicyBroker;
import com.yd.csf.service.model.PolicyFollow;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
......@@ -13,8 +10,6 @@ import org.springframework.beans.BeanUtils;
import java.io.Serializable;
import java.util.*;
import com.yd.csf.service.utils.GSONUtil;
import com.yd.csf.service.dto.PolicySigner;
/**
* 新单跟进视图
......@@ -24,6 +19,9 @@ public class PolicyFollowVO implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "policy follow id")
private Long id;
/**
* 新单跟进唯一业务ID
*/
......@@ -31,40 +29,84 @@ public class PolicyFollowVO implements Serializable {
private String policyBizId;
/**
* 下一步跟进状态列表
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 新单跟进状态
*/
@Schema(description = "新单跟进状态")
private String status;
/**
* 预约信息主表唯一业务ID
*/
@Schema(description = "预约信息主表唯一业务ID")
private String appointmentBizId;
/**
* 预约编号
*/
@Schema(description = "预约编号")
private String appointmentNo;
/**
* 客户业务id
*/
@Schema(description = "客户业务id")
private String customerBizId;
/**
* 签单日
*/
@Schema(description = "签单日", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date signDate;
/**
* 最晚缴费日
*/
@Schema(description = "下一步跟进状态列表, 下拉框")
private Object nextStatusList;
@Schema(description = "最晚缴费日", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date latestPaymentDate;
/**
* 新单跟进Dto
* 保單持有人
*/
@Schema(description = "新单跟进Dto")
private PolicyFollowUpdateDto policyFollowUpdateDto;
@Schema(description = "投保人")
private String policyHolder;
/**
* 转介
* 受保
*/
@Schema(description = "转介人")
private List<PolicyBroker> brokerList;
@Schema(description = "受保人")
private String insured;
/**
* 核保信息
* 产品计划唯一业务ID
*/
@Schema(description = "核保信息")
private VerifyPolicyInfo verifyPolicyInfo;
@Schema(description = "产品计划唯一业务ID")
private String productLaunchBizId;
/**
* 保单邮寄
* 产品计划
*/
@Schema(description = "保单邮寄")
private PolicyMailing policyMailing;
@Schema(description = "产品计划")
private String productName;
/**
* 保单信息
* 保险公司
*/
// private Policy policy;
@Schema(description = "保险公司")
private String insuranceCompany;
/**
* 保险公司业务id
*/
@Schema(description = "保险公司业务id")
private String insuranceCompanyBizId;
/**
* 对象转封装类
......@@ -77,35 +119,9 @@ public class PolicyFollowVO implements Serializable {
return null;
}
PolicyFollowVO policyFollowVO = new PolicyFollowVO();
policyFollowVO.setPolicyBizId(policyFollow.getPolicyBizId());
// 转换PolicyFollowUpdateDto
PolicyFollowUpdateDto policyFollowUpdateDto = new PolicyFollowUpdateDto();
BeanUtils.copyProperties(policyFollow, policyFollowUpdateDto);
policyFollowVO.setPolicyFollowUpdateDto(policyFollowUpdateDto);
// 处理 nextStatusList 字段
Object nextStatusList = policyFollow.getNextStatusList();
if (nextStatusList != null && !nextStatusList.toString().isEmpty()) {
String[] statusArr = nextStatusList.toString().split(",");
List<Map<String, String>> statusMapList = new ArrayList<>();
for (String status : statusArr) {
Map<String, String> map = new HashMap<>();
map.put("itemLabel", PolicyFollowStatusEnum.getEnumByValue(status).getItemLabel());
map.put("itemValue", status);
statusMapList.add(map);
}
policyFollowVO.setNextStatusList(statusMapList);
}
VerifyPolicyInfo verifyPolicyInfo = new VerifyPolicyInfo();
BeanUtils.copyProperties(policyFollow, verifyPolicyInfo);
policyFollowVO.setVerifyPolicyInfo(verifyPolicyInfo);
PolicyMailing policyMailing = new PolicyMailing();
BeanUtils.copyProperties(policyFollow, policyMailing);
policyFollowVO.setPolicyMailing(policyMailing);
BeanUtils.copyProperties(policyFollow, policyFollowVO);
// 状态映射为中文
policyFollowVO.setStatus(PolicyFollowStatusEnum.mapStatusToLabel(policyFollow.getStatus()));
return policyFollowVO;
}
......
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