Commit 311c5399 by jianan

新单跟进67

parent bcade7a2
package com.yd.csf.api.controller;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.context.AnalysisContext;
......@@ -253,12 +255,16 @@ public class ApiPolicyFollowController {
policyFollow.setStatus(policyFollowStatusEnum.getItemValue());
}
policyFollow.setReconciliationCompanyBizId(reconciliationCompanyMap.get(policyExcelDTO.getReconciliationCompany()));
if (policyFollow.getEffectiveDate()!= null && policyFollow.getCoolingOffDays() != null) {
policyFollow.setCoolingOffEndDate(DateUtil.offset(policyFollow.getEffectiveDate(), DateField.DAY_OF_MONTH, policyFollow.getCoolingOffDays()));
}
// 转换为Policy对象
Policy policy = new Policy();
BeanUtils.copyProperties(policyExcelDTO, policy);
policy.setPolicyBizId(policyBizId);
policy.setReconciliationCompanyBizId(policyFollow.getReconciliationCompanyBizId());
policy.setCoolingOffEndDate(policyFollow.getCoolingOffEndDate());
// 转换为PolicyBroker对象
List<PolicyBroker> policyBrokerList = new ArrayList<>();
......
......@@ -22,6 +22,9 @@ public class PolicyExcelDTO {
@ExcelProperty("生效日期")
private Date effectiveDate;
@ExcelProperty("冷静期天数")
private Integer coolingOffDays;
@ExcelProperty("续保日期")
private Date renewalDate;
......
......@@ -207,7 +207,7 @@ public class CustomerAddRequest implements Serializable {
* 客户类型
*/
@Schema(description = "客户类型 字典值: csf_customer_type")
private String customerType;
private Object customerType;
/**
* 居住地区代码
......
......@@ -208,7 +208,7 @@ public class CustomerUpdateRequest implements Serializable {
* 客户类型
*/
@Schema(description = "客户类型 字典值: csf_customer_type")
private String customerType;
private Object customerType;
/**
* 居住地区代码
......
......@@ -18,10 +18,22 @@ public class PolicyFollowAddRequest implements Serializable {
private String policyNo;
/**
* 冷静期天数
*/
@Schema(description = "冷静期天数")
private Integer coolingOffDays;
/**
* 保单生效日期
*/
@Schema(description = "保单生效日期 格式:yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date effectiveDate;
/**
* 签单日期
*/
@Schema(description = "签单日期")
@JsonFormat(pattern = "yyyy-MM-dd")
@Schema(description = "签单日期 格式:yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date signDate;
/**
......
......@@ -45,10 +45,23 @@ public class PolicyFollowUpdateDto implements Serializable {
private Date signDate;
/**
* 签单
* 签单员列表
*/
@Schema(description = "签单人")
private String signer;
@Schema(description = "签单员列表")
private List<PolicySigner> signerList;
/**
* 冷静期天数
*/
@Schema(description = "冷静期天数")
private Integer coolingOffDays;
/**
* 冷静期结束日期
*/
@Schema(description = "冷静期结束日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date coolingOffEndDate;
/**
* 生效日期
......@@ -161,6 +174,25 @@ public class PolicyFollowUpdateDto implements Serializable {
private String policyLevy;
/**
* 首期已交保费
*/
@Schema(description = "首期已交保费")
private String initialPremiumPaid;
/**
* 首期待交保费
*/
@Schema(description = "首期待交保费")
private String initialPremiumDue;
/**
* 最晚缴费日期
*/
@Schema(description = "最晚缴费日期 格式: yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date latestPaymentDate;
/**
* 备注
*/
@Schema(description = "备注")
......
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class PolicySigner {
/**
* 签单员姓名
*/
@Schema(description = "签单员姓名")
private String signer;
/**
* 签单员手机号
*/
@Schema(description = "签单员手机号")
private String phone;
/**
* 签单员执业编码
*/
@Schema(description = "签单员执业编码")
private String registrationNumber;
/**
* 签单员邮箱
*/
@Schema(description = "签单员邮箱")
private String email;
/**
* 签单员证件类型
*/
@Schema(description = "签单员证件类型")
private String idType;
/**
* 签单员证件号
*/
@Schema(description = "签单员证件号")
private String idNo;
}
......@@ -132,6 +132,16 @@ public class Policy implements Serializable {
*/
private Date effectiveDate;
/**
* 冷却期结束日期
*/
private Date coolingOffEndDate;
/**
* 冷却期天数
*/
private Integer coolingOffDays;
/**
* 续保日期
*/
......
......@@ -6,6 +6,7 @@ import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
......@@ -68,9 +69,9 @@ public class PolicyFollow implements Serializable {
private Date signDate;
/**
* 签单
* 签单员列表
*/
private String signer;
private String signerList;
/**
* 缮发日期
......@@ -82,6 +83,16 @@ public class PolicyFollow implements Serializable {
*/
private Date effectiveDate;
/**
* 冷却期结束日期
*/
private Date coolingOffEndDate;
/**
* 冷却期天数
*/
private Integer coolingOffDays;
/**
* 续保日期
*/
......@@ -198,6 +209,21 @@ public class PolicyFollow implements Serializable {
private String policyLevy;
/**
* 首期已交保费
*/
private String initialPremiumPaid;
/**
* 首期待交保费
*/
private String initialPremiumDue;
/**
* 最晚缴费日期
*/
private Date latestPaymentDate;
/**
* 寄送方式 1-自提, 2-快递
*/
private String mailingMethod;
......
package com.yd.csf.service.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -18,6 +20,7 @@ import com.yd.csf.service.model.*;
import com.yd.csf.service.service.*;
import com.yd.csf.service.dao.PolicyFollowMapper;
import com.yd.csf.service.utils.AsyncQueryUtil;
import com.yd.csf.service.utils.GSONUtil;
import com.yd.csf.service.vo.PolicyFollowDetailVO;
import com.yd.csf.service.vo.PolicyFollowVO;
import lombok.extern.slf4j.Slf4j;
......@@ -148,6 +151,13 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
PolicyFollowUpdateDto policyFollowUpdateDto = policyFollowUpdateRequest.getPolicyFollowUpdateDto();
if (policyFollowUpdateDto != null) {
BeanUtils.copyProperties(policyFollowUpdateDto, policyFollow, "id", "policyBizId");
if (CollectionUtils.isNotEmpty(policyFollowUpdateDto.getSignerList())) {
policyFollow.setSignerList(GSONUtil.toJson(policyFollowUpdateDto.getSignerList()));
}
// 计算冷却期结束日期
if (policyFollowUpdateDto.getCoolingOffDays() != null && policyFollowUpdateDto.getEffectiveDate() != null) {
policyFollow.setCoolingOffEndDate(DateUtil.offset(policyFollowUpdateDto.getEffectiveDate(), DateField.DAY_OF_MONTH, policyFollowUpdateDto.getCoolingOffDays()));
}
}
// 设置核保信息
setValidPolicyInfo(policyFollow, policyFollowUpdateRequest.getVerifyPolicyInfo());
......@@ -233,6 +243,9 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
// 生成新单编号
String policyBizId = RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_POLICY.getCode());
policyFollow.setPolicyBizId(policyBizId);
if (policyFollowAddRequest.getCoolingOffDays() != null) {
policyFollow.setCoolingOffEndDate(DateUtil.offset(policyFollowAddRequest.getEffectiveDate(), DateField.DAY_OF_MONTH, policyFollowAddRequest.getCoolingOffDays()));
}
// 创建 Policy对象
Policy policy = new Policy();
BeanUtils.copyProperties(policyFollowAddRequest, policy);
......
package com.yd.csf.service.vo;
import com.google.common.reflect.TypeToken;
import com.yd.csf.service.dto.PolicyFollowUpdateDto;
import com.yd.csf.service.dto.PolicyMailing;
import com.yd.csf.service.dto.VerifyPolicyInfo;
......@@ -12,6 +13,8 @@ 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;
/**
* 新单跟进视图
......@@ -79,6 +82,11 @@ public class PolicyFollowVO implements Serializable {
// 转换PolicyFollowUpdateDto
PolicyFollowUpdateDto policyFollowUpdateDto = new PolicyFollowUpdateDto();
BeanUtils.copyProperties(policyFollow, policyFollowUpdateDto);
// 转换 signerList 字段
if (policyFollow.getSignerList() != null && !policyFollow.getSignerList().isEmpty()) {
policyFollowUpdateDto.setSignerList(GSONUtil.fromJson(policyFollow.getSignerList(), new TypeToken<List<PolicySigner>>() {
}.getType()));
}
policyFollowVO.setPolicyFollowUpdateDto(policyFollowUpdateDto);
// 处理 nextStatusList 字段
......
......@@ -15,9 +15,11 @@
<result property="submitDate" column="submit_date" />
<result property="customerName" column="customer_name" />
<result property="signDate" column="sign_date" />
<result property="signer" column="signer" />
<result property="signerList" column="signer_list" />
<result property="issueDate" column="issue_date" />
<result property="effectiveDate" column="effective_date" />
<result property="coolingOffEndDate" column="cooling_off_end_date" />
<result property="coolingOffDays" column="cooling_off_days" />
<result property="renewalDate" column="renewal_date" />
<result property="paymentTerm" column="payment_term" />
<result property="paymentPremium" column="payment_premium" />
......@@ -40,6 +42,9 @@
<result property="insured" column="insured" />
<result property="currency" column="currency" />
<result property="initialPremium" column="initial_premium" />
<result property="initialPremiumPaid" column="initial_premium_paid" />
<result property="initialPremiumDue" column="initial_premium_due" />
<result property="latestPaymentDate" column="latest_payment_date" />
<result property="policyLevy" column="policy_levy" />
<result property="mailingMethod" column="mailing_method" />
<result property="deliveryNo" column="delivery_no" />
......@@ -57,12 +62,12 @@
<sql id="Base_Column_List">
id,policy_biz_id,policy_no,appointment_biz_id,appointment_no,user_biz_id,
customer_biz_id,submit_date,customer_name,sign_date,signer,
issue_date,effective_date,renewal_date,payment_term,payment_premium,
customer_biz_id,submit_date,customer_name,sign_date,signer_list,
issue_date,effective_date,cooling_off_end_date,cooling_off_days,renewal_date,payment_term,payment_premium,
is_prepaid,prepaid_term,prepaid_amount,prepaid_amount_after_discount,policy_expiration_date,
payment_number,product_biz_id,product_name,product_cate,insurer,
insurer_biz_id,reconciliation_company,reconciliation_company_biz_id,status,next_status_list,
policy_holder,insured,currency,initial_premium,policy_levy,mailing_method,
policy_holder,insured,currency,initial_premium,initial_premium_paid,initial_premium_due,latest_payment_date,policy_levy,mailing_method,
delivery_no,broker_sign_date,insurer_mailing_date,customer_sign_date,attachments,
remark,is_deleted,creator_id,updater_id,create_time,
update_time
......
......@@ -28,6 +28,8 @@
<result property="signDate" column="sign_date" />
<result property="issueDate" column="issue_date" />
<result property="effectiveDate" column="effective_date" />
<result property="coolingOffEndDate" column="cooling_off_end_date" />
<result property="coolingOffDays" column="cooling_off_days" />
<result property="renewalDate" column="renewal_date" />
<result property="isPrepaid" column="is_prepaid" />
<result property="deductibles" column="deductibles" />
......@@ -54,7 +56,7 @@
product_name,product_cate,insurer,insurer_biz_id,region,
policy_holder,insured,sum_insured,payment_term,payment_frequency,payment_premium,
status,currency,initial_premium,sign_date,issue_date,
effective_date,renewal_date,is_prepaid,deductibles,prepaid_term,
effective_date,cooling_off_end_date,cooling_off_days,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,policy_transfer,policy_levy,remark,is_deleted,creator_id,
updater_id,create_time,update_time
......
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