Commit 6e67a84d by jianan

新单跟进44

parent f9872b2c
...@@ -21,6 +21,7 @@ import com.yd.csf.service.dto.*; ...@@ -21,6 +21,7 @@ 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.*; import com.yd.csf.service.model.*;
import com.yd.csf.service.service.*; import com.yd.csf.service.service.*;
import com.yd.csf.service.vo.PolicyFollowDetailVO;
import com.yd.csf.service.vo.PolicyFollowRecordVO; import com.yd.csf.service.vo.PolicyFollowRecordVO;
import com.yd.csf.service.vo.PolicyFollowVO; import com.yd.csf.service.vo.PolicyFollowVO;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
...@@ -488,7 +489,7 @@ public class ApiPolicyFollowController { ...@@ -488,7 +489,7 @@ public class ApiPolicyFollowController {
*/ */
@PostMapping("/list/page/vo") @PostMapping("/list/page/vo")
@Operation(summary = "分页获取新单跟进列表") @Operation(summary = "分页获取新单跟进列表")
public Result<Page<PolicyFollow>> listPolicyFollowByPage(@RequestBody PolicyFollowQueryRequest policyFollowQueryRequest, public Result<Page<PolicyFollowDetailVO>> listPolicyFollowByPage(@RequestBody PolicyFollowQueryRequest policyFollowQueryRequest,
HttpServletRequest request) { HttpServletRequest request) {
long current = policyFollowQueryRequest.getPageNo(); long current = policyFollowQueryRequest.getPageNo();
long size = policyFollowQueryRequest.getPageSize(); long size = policyFollowQueryRequest.getPageSize();
...@@ -496,22 +497,7 @@ public class ApiPolicyFollowController { ...@@ -496,22 +497,7 @@ public class ApiPolicyFollowController {
// 查询数据库 // 查询数据库
Page<PolicyFollow> policyFollowPage = policyFollowService.page(new Page<>(current, size), Page<PolicyFollow> policyFollowPage = policyFollowService.page(new Page<>(current, size),
policyFollowService.getQueryWrapper(policyFollowQueryRequest)); policyFollowService.getQueryWrapper(policyFollowQueryRequest));
// 处理 nextStatusList 字段 return Result.success(policyFollowService.getPolicyFollowDetailVOList(policyFollowPage));
policyFollowPage.getRecords().forEach(policyFollow -> {
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);
}
policyFollow.setNextStatusList(statusMapList);
}
});
return Result.success(policyFollowPage);
} }
/** /**
......
...@@ -10,9 +10,6 @@ import com.yd.common.enums.CommonEnum; ...@@ -10,9 +10,6 @@ import com.yd.common.enums.CommonEnum;
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.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.feign.dto.appointment.ApiProductPlanAdditionalInfoDto;
import com.yd.csf.feign.dto.appointment.ApiProductPlanInfoDto;
import com.yd.csf.feign.dto.appointment.ApiProductPlanMainInfoDto;
import com.yd.csf.service.common.ErrorCode; import com.yd.csf.service.common.ErrorCode;
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;
...@@ -20,9 +17,9 @@ import com.yd.csf.service.model.*; ...@@ -20,9 +17,9 @@ import com.yd.csf.service.model.*;
import com.yd.csf.service.service.*; import com.yd.csf.service.service.*;
import com.yd.csf.service.dao.PolicyFollowMapper; import com.yd.csf.service.dao.PolicyFollowMapper;
import com.yd.csf.service.utils.AsyncQueryUtil; import com.yd.csf.service.utils.AsyncQueryUtil;
import com.yd.csf.service.vo.PolicyFollowDetailVO;
import com.yd.csf.service.vo.PolicyFollowVO; import com.yd.csf.service.vo.PolicyFollowVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -454,6 +451,50 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -454,6 +451,50 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
} }
@Override @Override
public Page<PolicyFollowDetailVO> getPolicyFollowDetailVOList(Page<PolicyFollow> policyFollowPage) {
List<PolicyFollow> policyFollowList = policyFollowPage.getRecords();
Page<PolicyFollowDetailVO> policyFollowDetailVOPage = new Page<>(policyFollowPage.getCurrent(), policyFollowPage.getSize(), policyFollowPage.getTotal());
if (CollUtil.isEmpty(policyFollowList)) {
return policyFollowDetailVOPage;
}
// 处理 nextStatusList 字段
policyFollowList.forEach(policyFollow -> {
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);
}
policyFollow.setNextStatusList(statusMapList);
}
});
// 对象列表 => 封装对象列表
List<PolicyFollowDetailVO> policyFollowDetailVOList = policyFollowList.stream().map(PolicyFollowDetailVO::objToVo).collect(Collectors.toList());
// 关联查询转介人
List<String> policyBizIdList = policyFollowList.stream().map(PolicyFollow::getPolicyBizId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(policyBizIdList)) {
// 转介人业务id列表 => 转介人列表
List<PolicyBroker> policyBrokerList = policyBrokerService.list(new QueryWrapper<PolicyBroker>().in("policy_biz_id", policyBizIdList));
// 转介人列表 => 转介人业务id列表
Map<String, List<PolicyBroker>> brokerMap = policyBrokerList.stream().collect(Collectors.groupingBy(PolicyBroker::getPolicyBizId));
// 转介人列表 => 封装转介人列表
policyFollowDetailVOList.forEach(policyFollowVO -> {
List<PolicyBroker> brokerList = brokerMap.get(policyFollowVO.getPolicyBizId());
policyFollowVO.setBrokerList(brokerList);
});
}
policyFollowDetailVOPage.setRecords(policyFollowDetailVOList);
return policyFollowDetailVOPage;
}
@Override
public Boolean uploadAttachment(AttachmentUploadRequest attachmentUploadRequest) { public Boolean uploadAttachment(AttachmentUploadRequest attachmentUploadRequest) {
String policyBizId = attachmentUploadRequest.getPolicyBizId(); String policyBizId = attachmentUploadRequest.getPolicyBizId();
if (policyBizId == null) { if (policyBizId == null) {
......
package com.yd.csf.service.vo;
import com.baomidou.mybatisplus.annotation.TableField;
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;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 新单跟进 DetailVO
*/
@Data
public class PolicyFollowDetailVO implements Serializable {
/**
* id
*/
private Long id;
/**
* 新单跟进唯一业务ID
*/
private String policyBizId;
/**
* 保单号
*/
private String policyNo;
/**
* 预约信息主表唯一业务ID
*/
private String appointmentBizId;
/**
* 预约编号
*/
private String appointmentNo;
/**
* 用户业务id
*/
private String userBizId;
/**
* 客户业务id
*/
private String customerBizId;
/**
* 客户名称
*/
private String customerName;
/**
* 递交日期
*/
private Date submitDate;
/**
* 签单日期
*/
private Date signDate;
/**
* 签单人
*/
private String signer;
/**
* 缮发日期
*/
private Date issueDate;
/**
* 生效日期
*/
private Date effectiveDate;
/**
* 续保日期
*/
private Date renewalDate;
/**
* 供款年期
*/
private Object paymentTerm;
/**
* 期交保费
*/
private BigDecimal paymentPremium;
/**
* 是否预缴: 0-否, 1-是
*/
private Integer isPrepaid;
/**
* 预缴年期
*/
private Integer prepaidTerm;
/**
* 预付额
*/
private String prepaidAmount;
/**
* 折扣后预付额
*/
private String prepaidAmountAfterDiscount;
/**
* 保单截止日期
*/
private Date policyExpirationDate;
/**
* 缴费编号
*/
private String paymentNumber;
/**
* 产品业务id
*/
private String productBizId;
/**
* 产品名称
*/
private String productName;
/**
* 产品类别
*/
private String productCate;
/**
* 保险公司
*/
private String insurer;
/**
* 保险公司业务id
*/
private String insurerBizId;
/**
* 对账公司
*/
private String reconciliationCompany;
/**
* 对账公司业务id
*/
private String reconciliationCompanyBizId;
/**
* 新单跟进状态
*/
private String status;
/**
* 下一步跟进状态列表
*/
private Object nextStatusList;
/**
* 保單持有人
*/
private String policyHolder;
/**
* 受保人
*/
private String insured;
/**
* 币种
*/
private String currency;
/**
* 首期保费(不含徽费,预缴保费)
*/
private Object initialPremium;
/**
* 寄送方式 1-自提, 2-快递
*/
private String mailingMethod;
/**
* 快递单号
*/
private String deliveryNo;
/**
* 经纪公司签收日期
*/
private String brokerSignDate;
/**
* 保险公司寄出日期
*/
private String insurerMailingDate;
/**
* 客户签收日期
*/
private String customerSignDate;
/**
* 附件列表
*/
private String attachments;
/**
* 转介人
*/
@Schema(description = "转介人")
private List<PolicyBroker> brokerList;
/**
* 备注
*/
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
@TableField()
private Integer isDeleted;
/**
* 创建人ID
*/
private String creatorId;
/**
* 更新人ID
*/
private String updaterId;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* 对象转封装类
*
* @param policyFollow
* @return
*/
public static PolicyFollowDetailVO objToVo(PolicyFollow policyFollow) {
if (policyFollow == null) {
return null;
}
PolicyFollowDetailVO PolicyFollowDetailVO = new PolicyFollowDetailVO();
PolicyFollowDetailVO.setPolicyBizId(policyFollow.getPolicyBizId());
// 转换PolicyFollow
BeanUtils.copyProperties(policyFollow, PolicyFollowDetailVO);
return PolicyFollowDetailVO;
}
}
\ No newline at end of file
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