Commit 2fe500cc by zhangxingmin

Merge remote-tracking branch 'origin/test' into test

parents 6b7ac539 c7e53c8e
...@@ -490,50 +490,17 @@ public class ApiPolicyFollowController { ...@@ -490,50 +490,17 @@ public class ApiPolicyFollowController {
*/ */
@GetMapping("/get/vo") @GetMapping("/get/vo")
@Operation(summary = "根据 policyBizId 获取新单跟进详情") @Operation(summary = "根据 policyBizId 获取新单跟进详情")
public Result<PolicyFollowVO> getPolicyFollowByPolicyBizId(@RequestParam("policyBizId") String policyBizId, HttpServletRequest request) { public Result<PolicyFollowDetailVO> getPolicyFollowByPolicyBizId(@RequestParam("policyBizId") String policyBizId, HttpServletRequest request) {
if (StringUtils.isBlank(policyBizId)) { if (StringUtils.isBlank(policyBizId)) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "policyBizId不能为空"); return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
} }
// 查询数据库 // 查询数据库并组装详情数据(包含附加险和介绍人)
PolicyFollow policyFollow = policyFollowService.getByPolicyBizId(policyBizId); PolicyFollowDetailVO detailVO = policyFollowService.getPolicyFollowDetailVO(policyBizId);
if (policyFollow == null) { if (detailVO == null) {
return Result.fail(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage()); return Result.fail(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage());
} }
// 异步查询产品上架信息表
if (StringUtils.isNotBlank(policyFollow.getPolicyNo()) && StringUtils.isBlank(policyFollow.getProductLaunchBizId())) {
// 异步查询产品上架信息表
// ApiExpectedCommissionRatioPageRequest apiExpectedCommissionRatioPageRequest = new ApiExpectedCommissionRatioPageRequest();
// apiExpectedCommissionRatioPageRequest.setPageNo(1);
// apiExpectedCommissionRatioPageRequest.setPageSize(100);
// apiExpectedCommissionRatioPageRequest.setWarrantyPeriod(String.valueOf(policyFollow.getPaymentTerm()));
// Result<Page<ApiExpectedCommissionRatioPageResponse>> result = apiExpectedCommissionRatioFeignClient.page(apiExpectedCommissionRatioPageRequest);
// if (result != null && result.getData() != null) {
// List<ApiExpectedCommissionRatioPageResponse> records = (List<ApiExpectedCommissionRatioPageResponse>) result.getData();
// if (CollectionUtils.isNotEmpty(records)) {
// policyFollow.setProductLaunchBizId(records.get(0).getProductLaunchBizId());
// }
// }
PolicyFollow updatePolicyFollow = new PolicyFollow();
updatePolicyFollow.setId(policyFollow.getId());
updatePolicyFollow.setProductLaunchBizId("product_launch_kudwRqXsz1");
policyFollowService.updateById(updatePolicyFollow);
}
// 获取封装类 // 获取封装类
return Result.success(policyFollowService.getPolicyFollowVO(policyFollow)); return Result.success(detailVO);
}
@GetMapping("/detail/{policyBizId}")
@Operation(summary = "根据 policyBizId 获取新单跟进聚合详情")
public Result<PolicyFollowAggregateDto> getPolicyFollowAggregate(@PathVariable String policyBizId) {
try {
PolicyFollowAggregateDto result = policyFollowService.getPolicyFollowAggregate(policyBizId);
return Result.success(result);
} catch (Exception e) {
log.error("获取新单跟进聚合详情失败, policyBizId: {}", policyBizId, e);
return Result.fail("查询失败: " + e.getMessage());
}
} }
/** /**
...@@ -679,4 +646,28 @@ public class ApiPolicyFollowController { ...@@ -679,4 +646,28 @@ public class ApiPolicyFollowController {
} }
} }
@PostMapping("/save_initial_payment")
@Operation(summary = "保存首期缴费信息")
public Result<Boolean> saveInitialPayment(@RequestBody InitialPaymentSaveRequest initialPaymentSaveRequest) {
log.info("保存首期缴费信息, policyBizId: {}", initialPaymentSaveRequest.getPolicyBizId());
Boolean result = policyFollowService.saveInitialPayment(initialPaymentSaveRequest);
return Result.success(result);
}
@PostMapping("/save_mailing_info")
@Operation(summary = "保存邮寄信息")
public Result<Boolean> saveMailingInfo(@RequestBody MailingInfoSaveRequest mailingInfoSaveRequest) {
log.info("保存邮寄信息, policyBizId: {}", mailingInfoSaveRequest.getPolicyBizId());
Boolean result = policyFollowService.saveMailingInfo(mailingInfoSaveRequest);
return Result.success(result);
}
@PostMapping("/batch_save_brokers")
@Operation(summary = "批量保存介绍人信息")
public Result<Boolean> batchSaveBrokers(@RequestBody BrokerBatchSaveRequest brokerBatchSaveRequest) {
log.info("批量保存介绍人信息, policyBizId: {}", brokerBatchSaveRequest.getPolicyBizId());
Boolean result = policyFollowService.batchSaveBrokers(brokerBatchSaveRequest);
return Result.success(result);
}
} }
\ No newline at end of file
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 介绍人批量保存请求
*/
@Data
public class BrokerBatchSaveRequest implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "新单跟进唯一业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyBizId;
@Schema(description = "介绍人列表")
private List<BrokerInfo> brokerList;
@Data
public static class BrokerInfo implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "介绍人姓名")
private String brokerName;
@Schema(description = "介绍人业务id")
private String brokerBizId;
@Schema(description = "性别")
private String gender;
@Schema(description = "内部编号")
private String internalCode;
@Schema(description = "所属团队")
private String team;
@Schema(description = "团队业务id")
private String teamBizId;
@Schema(description = "分配比例")
private String brokerRatio;
@Schema(description = "备注")
private String remark;
}
}
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;
/**
* 首期缴费保存请求
*/
@Data
public class InitialPaymentSaveRequest implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "新单跟进唯一业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyBizId;
@Schema(description = "首期保费(不含徽费,预缴保费)")
private BigDecimal initialPremium;
@Schema(description = "保单征费")
private String policyLevy;
@Schema(description = "首期付款方式(字典)")
private String initialPaymentMethod;
@Schema(description = "首期已缴保费")
private BigDecimal initialPremiumPaid;
@Schema(description = "首期待缴保费")
private BigDecimal initialPremiumDue;
@Schema(description = "首期缴费总额")
private BigDecimal initialPremiumTotal;
@Schema(description = "缴费状态")
private String initialPaymentStatus;
@Schema(description = "最晚缴费日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date latestPaymentDate;
@Schema(description = "首期保费优惠金额")
private BigDecimal initialPremiumDiscount;
}
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.util.Date;
/**
* 邮寄信息保存请求
*/
@Data
public class MailingInfoSaveRequest implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "新单跟进唯一业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyBizId;
@Schema(description = "寄送方式(字典值:1-自提 2-快递)")
private String mailingMethod;
@Schema(description = "快递单号")
private String deliveryNo;
@Schema(description = "经纪公司签收日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date brokerSignDate;
@Schema(description = "客户签收日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date customerSignDate;
}
...@@ -20,6 +20,18 @@ public class PolicyBrokerDto implements Serializable { ...@@ -20,6 +20,18 @@ public class PolicyBrokerDto implements Serializable {
private String brokerBizId; private String brokerBizId;
/** /**
* 性别
*/
@Schema(description = "性别")
private String gender;
/**
* 内部编号
*/
@Schema(description = "内部编号")
private String internalCode;
/**
* 所属团队 * 所属团队
*/ */
@Schema(description = "所属团队") @Schema(description = "所属团队")
......
...@@ -179,6 +179,22 @@ public class PolicyFollowDto implements Serializable { ...@@ -179,6 +179,22 @@ public class PolicyFollowDto implements Serializable {
@Schema(description = "首期保费(不含徽费,预缴保费)") @Schema(description = "首期保费(不含徽费,预缴保费)")
private BigDecimal initialPremium; private BigDecimal initialPremium;
@Schema(description = "首期已缴保费")
private BigDecimal initialPremiumPaid;
@Schema(description = "首期待缴保费")
private BigDecimal initialPremiumDue;
@Schema(description = "首期缴费总额")
private BigDecimal initialPremiumTotal;
@Schema(description = "最晚缴费日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date latestPaymentDate;
@Schema(description = "首期保费优惠金额")
private BigDecimal initialPremiumDiscount;
@Schema(description = "寄送方式(字典): 1-自提 2-快递") @Schema(description = "寄送方式(字典): 1-自提 2-快递")
private String mailingMethod; private String mailingMethod;
...@@ -194,16 +210,6 @@ public class PolicyFollowDto implements Serializable { ...@@ -194,16 +210,6 @@ public class PolicyFollowDto implements Serializable {
@Schema(description = "保单征费") @Schema(description = "保单征费")
private String policyLevy; private String policyLevy;
@Schema(description = "首期保费已付")
private String initialPremiumPaid;
@Schema(description = "首期保费应付")
private String initialPremiumDue;
@Schema(description = "最近付款日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date latestPaymentDate;
@Schema(description = "经纪公司签收日期", format = "yyyy-MM-dd") @Schema(description = "经纪公司签收日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date brokerSignDate; private Date brokerSignDate;
......
...@@ -6,17 +6,17 @@ import org.apache.commons.lang3.ObjectUtils; ...@@ -6,17 +6,17 @@ import org.apache.commons.lang3.ObjectUtils;
* 新单跟进状态枚举 * 新单跟进状态枚举
*/ */
public enum PolicyFollowStatusEnum { public enum PolicyFollowStatusEnum {
PENDING_SIGN("待签单", "PENDING_SIGN"), PENDING_SIGN("待签单", "PENDING_SIGNATURE"),
SIGNED("已签单", "SIGNED"), SIGNED("已签单", "SIGNED_ORDER"),
WAITING_PAYMENT("等待汇款", "WAITING_PAYMENT"), WAITING_PAYMENT("等待汇款", "WAITING_REMITTANCE"),
PREMIUM_RECONCILING("首期保费对账中", "PREMIUM_RECONCILING"), PREMIUM_RECONCILING("首期保费对账中", "IN_RECONCILIATION"),
PREMIUM_RECONCILED_UNDERWRITING("保费对账成功,核保中", "PREMIUM_RECONCILED_UNDERWRITING"), PREMIUM_RECONCILED_UNDERWRITING("保费对账成功,核保中", "UNDERWRITING_PROGRESS"),
EFFECTIVE("生效", "EFFECTIVE"), EFFECTIVE("生效", "TAKE_EFFECT"),
CANCELLED("取消投保", "CANCELLED"), CANCELLED("取消投保", "CANCEL_COVERAGE"),
DECLINED("拒保", "DECLINED"), DECLINED("拒保", "REJECTION_INSURANCE"),
DELAYED_UNDERWRITING("延缓承保", "DELAYED_UNDERWRITING"), DELAYED_UNDERWRITING("延缓承保", "DELAY_UNDERWRITING"),
LAPSED("失效", "LAPSED"), LAPSED("失效", "FAILURE"),
CLOSED("关闭", "CLOSED"), CLOSED("关闭", "CLOSE"),
; ;
//字典项标签(名称) //字典项标签(名称)
......
...@@ -42,6 +42,16 @@ public class PolicyBroker implements Serializable { ...@@ -42,6 +42,16 @@ public class PolicyBroker implements Serializable {
private String brokerBizId; private String brokerBizId;
/** /**
* 性别
*/
private String gender;
/**
* 内部编号
*/
private String internalCode;
/**
* 所属团队 * 所属团队
*/ */
private String team; private String team;
......
...@@ -4,16 +4,19 @@ import com.baomidou.mybatisplus.annotation.IdType; ...@@ -4,16 +4,19 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import lombok.Data; import lombok.Data;
/** /**
* 新单跟进表 * 新单跟进表
*
* @TableName policy_follow * @TableName policy_follow
*/ */
@TableName(value ="policy_follow") @TableName(value = "policy_follow")
@Data @Data
public class PolicyFollow implements Serializable { public class PolicyFollow implements Serializable {
/** /**
...@@ -278,6 +281,31 @@ public class PolicyFollow implements Serializable { ...@@ -278,6 +281,31 @@ public class PolicyFollow implements Serializable {
private BigDecimal initialPremium; private BigDecimal initialPremium;
/** /**
* 首期已缴保费
*/
private BigDecimal initialPremiumPaid;
/**
* 首期待缴保费
*/
private BigDecimal initialPremiumDue;
/**
* 首期缴费总额
*/
private BigDecimal initialPremiumTotal;
/**
* 首期缴费状态
*/
private String initialPaymentStatus;
/**
* 首期保费优惠金额
*/
private BigDecimal initialPremiumDiscount;
/**
* 寄送方式 字典值:1-自提 2-快递 * 寄送方式 字典值:1-自提 2-快递
*/ */
private String mailingMethod; private String mailingMethod;
...@@ -303,17 +331,7 @@ public class PolicyFollow implements Serializable { ...@@ -303,17 +331,7 @@ public class PolicyFollow implements Serializable {
private String policyLevy; private String policyLevy;
/** /**
* * 最晚缴费日期
*/
private String initialPremiumPaid;
/**
*
*/
private String initialPremiumDue;
/**
*
*/ */
private Date latestPaymentDate; private Date latestPaymentDate;
......
...@@ -41,6 +41,11 @@ public interface PolicyFollowService extends IService<PolicyFollow> { ...@@ -41,6 +41,11 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
*/ */
Map<String, Object> addPolicyFollowDto(PolicyFollowDto policyFollowDto); Map<String, Object> addPolicyFollowDto(PolicyFollowDto policyFollowDto);
/**
* 获取新单跟进详情(包含附加险和介绍人)
*/
PolicyFollowDetailVO getPolicyFollowDetailVO(String policyBizId);
Boolean addToPolicy(List<String> policyNoList); Boolean addToPolicy(List<String> policyNoList);
Boolean changePolicyFollowStatus(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest, PolicyFollow policyFollow); Boolean changePolicyFollowStatus(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest, PolicyFollow policyFollow);
...@@ -49,13 +54,24 @@ public interface PolicyFollowService extends IService<PolicyFollow> { ...@@ -49,13 +54,24 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
String getNextStatus(PolicyFollowStatusEnum policyFollowStatusEnum); String getNextStatus(PolicyFollowStatusEnum policyFollowStatusEnum);
PolicyFollowAggregateDto getPolicyFollowAggregate(String policyBizId);
Page<PolicyFollowDetailVO> getPolicyFollowDetailVOList(Page<PolicyFollow> policyFollowPage);
String getCurrencyValue(String currency); String getCurrencyValue(String currency);
PolicyReportData queryPolicyReportData(String policyBizId); PolicyReportData queryPolicyReportData(String policyBizId);
PolicyFollow queryOneByPolicyNo(String policyNo); PolicyFollow queryOneByPolicyNo(String policyNo);
/**
* 保存首期缴费信息
*/
Boolean saveInitialPayment(InitialPaymentSaveRequest initialPaymentSaveRequest);
/**
* 保存邮寄信息
*/
Boolean saveMailingInfo(MailingInfoSaveRequest mailingInfoSaveRequest);
/**
* 批量保存介绍人信息
*/
Boolean batchSaveBrokers(BrokerBatchSaveRequest brokerBatchSaveRequest);
} }
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
<result property="policyNo" column="policy_no" /> <result property="policyNo" column="policy_no" />
<result property="brokerName" column="broker_name" /> <result property="brokerName" column="broker_name" />
<result property="brokerBizId" column="broker_biz_id" /> <result property="brokerBizId" column="broker_biz_id" />
<result property="gender" column="gender" />
<result property="internalCode" column="internal_code" />
<result property="team" column="team" /> <result property="team" column="team" />
<result property="teamBizId" column="team_biz_id" /> <result property="teamBizId" column="team_biz_id" />
<result property="brokerRatio" column="broker_ratio" /> <result property="brokerRatio" column="broker_ratio" />
...@@ -22,8 +24,8 @@ ...@@ -22,8 +24,8 @@
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id,policy_biz_id,policy_no,broker_name,broker_biz_id,team,broker_ratio, id,policy_biz_id,policy_no,broker_name,broker_biz_id,gender,internal_code,
team_biz_id,remark,is_deleted,creator_id,updater_id, team,broker_ratio,team_biz_id,remark,is_deleted,creator_id,updater_id,
create_time,update_time create_time,update_time
</sql> </sql>
</mapper> </mapper>
...@@ -57,6 +57,9 @@ ...@@ -57,6 +57,9 @@
<result property="policyCurrency" column="policy_currency" /> <result property="policyCurrency" column="policy_currency" />
<result property="initialPaymentMethod" column="initial_payment_method" /> <result property="initialPaymentMethod" column="initial_payment_method" />
<result property="initialPremium" column="initial_premium" /> <result property="initialPremium" column="initial_premium" />
<result property="initialPremiumTotal" column="initial_premium_total" />
<result property="initialPaymentStatus" column="initial_payment_status" />
<result property="initialPremiumDiscount" column="initial_premium_discount" />
<result property="mailingMethod" column="mailing_method" /> <result property="mailingMethod" column="mailing_method" />
<result property="renewalPaymentMethod" column="renewal_payment_method" /> <result property="renewalPaymentMethod" column="renewal_payment_method" />
<result property="dividendPaymentMethod" column="dividend_payment_method" /> <result property="dividendPaymentMethod" column="dividend_payment_method" />
...@@ -88,7 +91,8 @@ ...@@ -88,7 +91,8 @@
product_name,product_cate,insurance_company,insurance_company_biz_id,reconciliation_company, product_name,product_cate,insurance_company,insurance_company_biz_id,reconciliation_company,
reconciliation_company_biz_id,status,next_status_list,policy_holder,insured, reconciliation_company_biz_id,status,next_status_list,policy_holder,insured,
insured_age,grace_period,is_join,policy_currency,initial_payment_method, insured_age,grace_period,is_join,policy_currency,initial_payment_method,
initial_premium,mailing_method,renewal_payment_method,dividend_payment_method,delivery_no, initial_premium,initial_premium_total,initial_payment_status,initial_premium_discount,
mailing_method,renewal_payment_method,dividend_payment_method,delivery_no,
policy_levy,initial_premium_paid,initial_premium_due,latest_payment_date,broker_sign_date, policy_levy,initial_premium_paid,initial_premium_due,latest_payment_date,broker_sign_date,
insurer_mailing_date,customer_sign_date,attachments,remark,is_deleted, insurer_mailing_date,customer_sign_date,attachments,remark,is_deleted,
creator_id,updater_id,create_time,update_time 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