Commit 6419a025 by jianan

客户表,fna表单表字段修改

parent e012b252
package com.yd.csf.api.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.csf.service.common.ErrorCode;
......@@ -103,12 +104,12 @@ public class ApiCustomerController {
@Operation(summary = "根据 customerBizId 获取客户详情")
public Result<CustomerVO> getCustomerVOByCustomerBizId(@RequestParam("customerBizId") String customerBizId, HttpServletRequest request) {
if (customerBizId == null) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "customerBizId 不能为空");
}
// 查询数据库
Customer customer = customerService.getByCustomerBizId(customerBizId);
if (customer == null) {
return Result.fail(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage());
return Result.fail(ResultCode.NULL_ERROR.getCode(), ResultCode.NULL_ERROR.getMessage());
}
// 获取封装类
......
......@@ -58,8 +58,6 @@ public class ApiFnaFormController {
if (StringUtils.isBlank(saveType)) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "保存方式必传");
}
// 校验
fnaFormService.validFnaFormAdd(fnaFormAddRequest.getPersonalData(), saveType);
// 转换为数据库实体
FnaForm fnaForm = fnaFormService.getFnaForm(fnaFormAddRequest);
......@@ -137,8 +135,7 @@ public class ApiFnaFormController {
if (oldFna == null) {
return Result.fail(ResultCode.NULL_ERROR.getCode(), ResultCode.NULL_ERROR.getMessage());
}
// 校验
fnaFormService.validFnaFormAdd(fnaUpdateRequest.getPersonalData(), saveType);
// 转换为数据库实体
FnaForm fnaForm = fnaFormService.getFnaForm(fnaUpdateRequest);
BeanUtils.copyProperties(fnaForm, oldFna, "id", "fnaFormBizId", "userBizId", "agentBizId", "customerBizId", "creatorId", "updaterId");
......
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class BrokerData {
@Schema(description = "介绍人姓名", requiredMode = Schema.RequiredMode.REQUIRED)
private String brokerName;
@Schema(description = "介绍人性别", requiredMode = Schema.RequiredMode.REQUIRED)
private String brokerGender;
@Schema(description = "介绍人内部编号")
private String brokerNumber;
@Schema(description = "转介人所属团队", requiredMode = Schema.RequiredMode.REQUIRED)
private String brokerTeam;
@Schema(description = "转介人所属团队业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String brokerTeamBizId;
@Schema(description = "分配比例")
private String brokerRatio;
@Schema(description = "备注")
private String remark;
}
......@@ -7,6 +7,7 @@ import lombok.Data;
public class CompanyBusinessData {
@Schema(description = "公司過去兩年平均純利 (HKD)")
private String averageNetProfit;
@Schema(description = "公司現時大約的總資產 (HKD)")
private String estimatedTotalAssets;
......
......@@ -11,291 +11,332 @@ import java.util.List;
/**
* 创建customer请求
*
*/
@Data
public class CustomerAddRequest implements Serializable {
/**
* 姓名-中文
*/
@Schema(description = "姓名-中文")
private String nameCn;
/**
* 姓名-(拼音/英文,通过中文自动加载全部大写的拼音)
*/
@Schema(description = "姓名-(拼音/英文,通过中文自动加载全部大写的拼音)")
private String namePyEn;
/**
* 自定义代码
* 证件类型(字典,下拉选择)
*/
// private String customCode;
@Schema(description = "证件类型(字典,下拉选择)")
private String documentType;
/**
* 姓氏
* 证件号码
*/
@Schema(description = "姓氏")
private String lastName;
@Schema(description = "证件号码")
private String idNumber;
/**
* 名字
* 性别(字典,如果是身份证,自动获取性别和生日)
*/
@Schema(description = "名字")
private String firstName;
@Schema(description = "性别(字典,如果是身份证,自动获取性别和生日)")
private String gender;
/**
* 姓名
* 出生日期(生日,如果是身份证,自动获取性别和生日)
*/
@Schema(description = "姓名")
private String name;
@Schema(description = "出生日期(生日,如果是身份证,自动获取性别和生日)")
private Date birthday;
/**
* 姓氏拼音
* 年龄(通过生日自动获取年龄)
*/
@Schema(description = "姓氏拼音")
private String lastNamePinyin;
@Schema(description = "年龄(通过生日自动获取年龄)")
private String age;
/**
* 名字拼音
* 国籍(下拉选择)
*/
@Schema(description = "名字-英文", requiredMode = Schema.RequiredMode.REQUIRED)
private String firstNamePinyin;
@Schema(description = "国籍(下拉选择)")
private String nationality;
/**
* 拼音全称
* 出生地
*/
@Schema(description = "姓名拼音")
private String pinyin;
@Schema(description = "出生地")
private String birthplace;
/**
* 称谓
* 是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典)
*/
@Schema(description = "称谓 字典值: csf_customer_title", requiredMode = Schema.RequiredMode.REQUIRED)
private String title;
@Schema(description = "是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典)")
private String isOtherCountry;
/**
* 性别
* 吸烟情况(字典)
*/
@Schema(description = "性别 字典值: sys_gender")
private Object gender;
@Schema(description = "吸烟情况(字典)")
private String smokingStatus;
/**
* 生日
* 婚姻情况(字典)
*/
@Schema(description = "生日")
private Date birthday;
@Schema(description = "婚姻情况(字典)")
private String maritalStatus;
/**
* 出生日期
* 教育程度(字典)
*/
@Schema(description = "客户出生日期")
private Date birthdate;
@Schema(description = "教育程度(字典)")
private String educationLevel;
/**
* 异常信息
* 是否退休(字典)
*/
@Schema(description = "客户异常信息")
private String abnormal;
@Schema(description = "是否退休(字典)")
private String isRetirement;
/**
* 年龄
* 退休年龄(如已退休,再显示)
*/
@Schema(description = "年龄", requiredMode = Schema.RequiredMode.REQUIRED)
private String age;
@Schema(description = "退休年龄(如已退休,再显示)")
private String retirementAge;
/**
* 地区代码
* 身高(CM)
*/
@Schema(description = "地区代码")
private String areaCode;
@Schema(description = "身高(CM)")
private String height;
/**
* 电话号码
* 体重(KG)
*/
@Schema(description = "电话号码", requiredMode = Schema.RequiredMode.REQUIRED)
private String phone;
@Schema(description = "体重(KG)")
private String weight;
/**
* 电子邮箱
* BMI指数(根据身高和体重自动计算)
*/
@Schema(description = "电子邮箱", requiredMode = Schema.RequiredMode.REQUIRED)
private String email;
@Schema(description = "BMI指数(根据身高和体重自动计算)")
private String bmi;
/**
* 是否吸烟
* 风险偏好(字典,下拉选择)
*/
@Schema(description = "是否吸烟 字典值: sys_no_yes")
private String smoke;
@Schema(description = "风险偏好(字典,下拉选择)")
private String riskAppetite;
/**
* 吸烟数量
* 受供养人数目(通过FNA带入)
*/
@Schema(description = "吸烟数量")
private String smokeQuantity;
@Schema(description = "受供养人数目(通过FNA带入)")
private Integer dependentsNum;
/**
* 行业
* 税务国家列表
*/
@Schema(description = "税务国家列表")
private List<TaxCountry> taxList;
/**
* 移动电话区号
*/
@Schema(description = "移动电话区号")
private String mobileCode;
/**
* 移动电话
*/
@Schema(description = "移动电话")
private String mobile;
/**
* 住宅电话区号
*/
@Schema(description = "住宅电话区号")
private String residenceMobileCode;
/**
* 住宅电话
*/
@Schema(description = "住宅电话")
private String residenceMobile;
/**
* 固定电话区号
*/
@Schema(description = "行业", requiredMode = Schema.RequiredMode.REQUIRED)
private String companyType;
@Schema(description = "固定电话区号")
private String landlineCode;
/**
* 固定电话
*/
@Schema(description = "固定电话")
private String fixedPhone;
private String landline;
/**
* 来源
* 邮箱
*/
@Schema(description = "客户来源")
private String source;
@Schema(description = "邮箱")
private String email;
/**
* 证件类型
* 证件地址
*/
@Schema(description = "证件类型 字典值: csf_id_type")
private String idType;
@Schema(description = "证件地址")
private String certificateAddress;
/**
* 证件号码
* 通讯地址
*/
@Schema(description = "证件号码")
private String idCard;
@Schema(description = "通讯地址")
private String mailingAddress;
/**
* 身份证地址
/**
* 居住地址(住宅地址)
*/
@Schema(description = "身份证地址")
private String idCardAddress;
@Schema(description = "居住地址(住宅地址)")
private String residentialAddress;
/**
* 护照
* 通讯地址邮政编
*/
@Schema(description = "护照号")
private String passport;
@Schema(description = "通讯地址邮政编号")
private String mailingAddressCode;
/**
* 往来港澳通行证号码
* 就业情况(字典,下拉选择)
*/
@Schema(description = "往来港澳通行证号码")
private String eepCode;
@Schema(description = "就业情况(字典,下拉选择)")
private String employmentStatus;
/**
* 婚姻状况
* 公司/学校名称
*/
@Schema(description = "婚姻状况 字典值: csf_marriage", requiredMode = Schema.RequiredMode.REQUIRED)
private Object marriage;
@Schema(description = "公司/学校名称")
private String csName;
/**
* 出生地
* 行业
*/
@Schema(description = "出生地")
private String birthplace;
@Schema(description = "行业")
private String industry;
/**
* 教育程度
* 现时每月收入(HKD)
*/
@Schema(description = "教育程度 字典值: csf_education", requiredMode = Schema.RequiredMode.REQUIRED)
private Object education;
@Schema(description = "现时每月收入(HKD)")
private BigDecimal currentMonthlyIncome;
/**
* 国籍 (国家/地区)
* 总工作年期
*/
@Schema(description = "国籍 (国家/地区)", requiredMode = Schema.RequiredMode.REQUIRED)
private String country;
@Schema(description = "总工作年期")
private BigDecimal totalWorkingYears;
/**
* 国籍 (国家/地区) 名称
* 受雇于现职年期
*/
@Schema(description = "国籍 (国家/地区) 名称")
private String countryName;
@Schema(description = "受雇于现职年期")
private BigDecimal currentTenure;
// region 客户扩展信息
/**
* 职位
*/
@Schema(description = "职位")
private String position;
/**
* 客户类型
* 公司地址
*/
@Schema(description = "客户类型 字典值: csf_customer_type")
private Object customerType;
@Schema(description = "公司地址")
private String companyAddress;
/**
* 居住地区代码
* 公司电话区号
*/
@Schema(description = "居住地区代码")
private String residenceAreaCode;
@Schema(description = "公司电话区号")
private String companyMobileCode;
/**
* 住宅电话
* 公司电话
*/
@Schema(description = "住宅电话")
private String residenceTelephone;
@Schema(description = "公司电话")
private String companyMobile;
/**
* 是否长期出国
* 公司地址邮政编号
*/
@Schema(description = "是否长期出国 字典值: sys_no_yes")
private String longtimeAbroad;
@Schema(description = "公司地址邮政编号")
private String companyAddressCode;
/**
* 地址
* 平均每月收入(HKD)
*/
@Schema(description = "地址列表")
private List<AddressVO> addressList;
@Schema(description = "平均每月收入(HKD)")
private BigDecimal monthIncome;
/**
* 居住地址
* 平均每月支出(HKD)
*/
// private AddressVO residenceAddress;
//
// /**
// * 住宅地址
// */
// private AddressVO residentialAddress;
//
// /**
// * 邮寄地址
// */
// private AddressVO mailingAddress;
//
// /**
// * 公司地址
// */
// private AddressVO companyAddress;
@Schema(description = "平均每月支出(HKD)")
private BigDecimal monthExpenditure;
/**
* 公司名称
* 总流动资产(HKD)
*/
@Schema(description = "公司名称")
private String companyName;
@Schema(description = "总流动资产(HKD)")
private BigDecimal totalCurrentAssets;
/**
* 公司地区代码
* 总负债额(HKD)
*/
@Schema(description = "公司地区代码")
private String companyAreaCode;
@Schema(description = "总负债额(HKD)")
private BigDecimal totalDebt;
/**
* 公司地址邮政编码
* 旅行(字典)
*/
@Schema(description = "公司地址邮政编码")
private String companyAddressPostcode;
@Schema(description = "旅行(字典)")
private String travel;
/**
* 公司电话
* 运动(字典,下拉选择)
*/
@Schema(description = "公司电话")
private String companyTelephone;
@Schema(description = "运动(字典,下拉选择)")
private String exercise;
/**
* 职位
* 游戏(字典,下拉选择)
*/
@Schema(description = "职位")
private String position;
@Schema(description = "游戏(字典,下拉选择)")
private String game;
/**
* 电影/戏剧(字典,下拉选择)
*/
@Schema(description = "电影/戏剧(字典,下拉选择)")
private String movieDrama;
/**
* 工作年限
* 美食(输入)
*/
@Schema(description = "工作年限")
private String workYear;
@Schema(description = "美食(输入)")
private String delicacy;
/**
* 薪资
* 地址列表(json串)
*/
@Schema(description = "薪资")
private BigDecimal salary;
@Schema(description = "地址列表")
private List<AddressVO> addressList;
// endregion
/**
* 通用备注
*/
@Schema(description = "通用备注")
private String remark;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -22,13 +22,13 @@ public class CustomerQueryRequest extends PageDto implements Serializable {
private String name;
/**
* 标题
* 手机号
*/
@Schema(description = "手机号")
private String phone;
private String mobile;
/**
* 内容
* 邮箱
*/
@Schema(description = "邮箱")
private String email;
......
......@@ -11,11 +11,9 @@ import java.util.List;
/**
* 更新customer请求
*
*/
@Data
public class CustomerUpdateRequest implements Serializable {
/**
* 客户主表业务唯一id
*/
......@@ -23,260 +21,328 @@ public class CustomerUpdateRequest implements Serializable {
private String customerBizId;
/**
* 姓
* 姓名-中文
*/
@Schema(description = "姓")
private String lastName;
@Schema(description = "姓名-中文")
private String nameCn;
/**
* 名字
* 姓名-(拼音/英文,通过中文自动加载全部大写的拼音)
*/
@Schema(description = "名字")
private String firstName;
@Schema(description = "姓名-(拼音/英文,通过中文自动加载全部大写的拼音)")
private String namePyEn;
/**
* 姓名
* 证件类型(字典,下拉选择)
*/
@Schema(description = "姓名")
private String name;
@Schema(description = "证件类型(字典,下拉选择)")
private String documentType;
/**
* 姓氏拼音
* 证件号码
*/
@Schema(description = "姓氏拼音")
private String lastNamePinyin;
@Schema(description = "证件号码")
private String idNumber;
/**
* 名字拼音
* 性别(字典,如果是身份证,自动获取性别和生日)
*/
@Schema(description = "名字-英文", requiredMode = Schema.RequiredMode.REQUIRED)
private String firstNamePinyin;
@Schema(description = "性别(字典,如果是身份证,自动获取性别和生日)")
private String gender;
/**
* 拼音全称
* 出生日期(生日,如果是身份证,自动获取性别和生日)
*/
@Schema(description = "姓名拼音")
private String pinyin;
@Schema(description = "出生日期(生日,如果是身份证,自动获取性别和生日)")
private Date birthday;
/**
* 称谓
* 年龄(通过生日自动获取年龄)
*/
@Schema(description = "称谓 字典值: csf_customer_title", requiredMode = Schema.RequiredMode.REQUIRED)
private String title;
@Schema(description = "年龄(通过生日自动获取年龄)")
private String age;
/**
* 性别
* 国籍(下拉选择)
*/
@Schema(description = "性别 字典值: sys_gender")
private Object gender;
@Schema(description = "国籍(下拉选择)")
private String nationality;
/**
* 生日
* 出生地
*/
@Schema(description = "生日")
private Date birthday;
@Schema(description = "出生地")
private String birthplace;
/**
* 出生日期
* 是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典)
*/
@Schema(description = "客户出生日期")
private Date birthdate;
@Schema(description = "是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典)")
private String isOtherCountry;
/**
* 异常信息
* 税务国家列表
*/
@Schema(description = "客户异常信息")
private String abnormal;
@Schema(description = "税务国家列表")
private List<TaxCountry> taxList;
/**
* 年龄
* 吸烟情况(字典)
*/
@Schema(description = "年龄", requiredMode = Schema.RequiredMode.REQUIRED)
private String age;
@Schema(description = "吸烟情况(字典)")
private String smokingStatus;
/**
* 地区代码
* 婚姻情况(字典)
*/
@Schema(description = "地区代码")
private String areaCode;
@Schema(description = "婚姻情况(字典)")
private String maritalStatus;
/**
* 电话号码
* 教育程度(字典)
*/
@Schema(description = "电话号码", requiredMode = Schema.RequiredMode.REQUIRED)
private String phone;
@Schema(description = "教育程度(字典)")
private String educationLevel;
/**
* 电子邮箱
* 是否退休(字典)
*/
@Schema(description = "电子邮箱", requiredMode = Schema.RequiredMode.REQUIRED)
private String email;
@Schema(description = "是否退休(字典)")
private String isRetirement;
/**
* 是否吸烟
* 退休年龄(如已退休,再显示)
*/
@Schema(description = "是否吸烟 字典值: sys_no_yes")
private String smoke;
@Schema(description = "退休年龄(如已退休,再显示)")
private String retirementAge;
/**
* 吸烟数量
* 身高(CM)
*/
@Schema(description = "吸烟数量")
private String smokeQuantity;
@Schema(description = "身高(CM)")
private String height;
/**
* 行业
* 体重(KG)
*/
@Schema(description = "行业", requiredMode = Schema.RequiredMode.REQUIRED)
private String companyType;
@Schema(description = "体重(KG)")
private String weight;
/**
* 固定电话
* BMI指数(根据身高和体重自动计算)
*/
@Schema(description = "固定电话")
private String fixedPhone;
@Schema(description = "BMI指数(根据身高和体重自动计算)")
private String bmi;
/**
* 来源
* 风险偏好(字典,下拉选择)
*/
@Schema(description = "客户来源")
private String source;
@Schema(description = "风险偏好(字典,下拉选择)")
private String riskAppetite;
/**
* 证件类型
* 受供养人数目(通过FNA带入)
*/
@Schema(description = "证件类型 字典值: csf_id_type")
private String idType;
@Schema(description = "受供养人数目(通过FNA带入)")
private Integer dependentsNum;
/**
* 证件号码
* 移动电话区号
*/
@Schema(description = "证件号码")
private String idCard;
@Schema(description = "移动电话区号")
private String mobileCode;
/**
* 身份证地址
* 移动电话
*/
@Schema(description = "身份证地址")
private String idCardAddress;
@Schema(description = "移动电话")
private String mobile;
/**
* 护照
* 住宅电话区
*/
@Schema(description = "护照号")
private String passport;
@Schema(description = "住宅电话区号")
private String residenceMobileCode;
/**
* 往来港澳通行证号码
* 住宅电话
*/
@Schema(description = "往来港澳通行证号码")
private String eepCode;
@Schema(description = "住宅电话")
private String residenceMobile;
/**
* 婚姻状况
* 固定电话区号
*/
@Schema(description = "婚姻状况 字典值: csf_marriage", requiredMode = Schema.RequiredMode.REQUIRED)
private Object marriage;
@Schema(description = "固定电话区号")
private String landlineCode;
/**
* 出生地
* 固定电话
*/
@Schema(description = "出生地")
private String birthplace;
@Schema(description = "固定电话")
private String landline;
/**
* 教育程度
* 邮箱
*/
@Schema(description = "教育程度 字典值: csf_education", requiredMode = Schema.RequiredMode.REQUIRED)
private Object education;
@Schema(description = "邮箱")
private String email;
/**
* 国籍 (国家/地区)
* 证件地址
*/
@Schema(description = "国籍 (国家/地区)", requiredMode = Schema.RequiredMode.REQUIRED)
private String country;
@Schema(description = "证件地址")
private String certificateAddress;
/**
* 国籍 (国家/地区) 名称
* 通讯地址
*/
@Schema(description = "国籍 (国家/地区) 名称")
private String countryName;
@Schema(description = "通讯地址")
private String mailingAddress;
// region 客户扩展信息
/**
* 居住地址(住宅地址)
*/
@Schema(description = "居住地址(住宅地址)")
private String residentialAddress;
/**
* 客户类型
* 通讯地址邮政编号
*/
@Schema(description = "客户类型 字典值: csf_customer_type")
private Object customerType;
@Schema(description = "通讯地址邮政编号")
private String mailingAddressCode;
/**
* 居住地区代码
* 就业情况(字典,下拉选择)
*/
@Schema(description = "居住地区代码")
private String residenceAreaCode;
@Schema(description = "就业情况(字典,下拉选择)")
private String employmentStatus;
/**
* 住宅电话
* 公司/学校名称
*/
@Schema(description = "住宅电话")
private String residenceTelephone;
@Schema(description = "公司/学校名称")
private String csName;
/**
* 是否长期出国
* 行业
*/
@Schema(description = "是否长期出国 字典值: sys_no_yes")
private String longtimeAbroad;
@Schema(description = "行业")
private String industry;
/**
* 地址
* 现时每月收入(HKD)
*/
@Schema(description = "地址列表")
private List<AddressVO> addressList;
@Schema(description = "现时每月收入(HKD)")
private BigDecimal currentMonthlyIncome;
/**
* 公司名称
* 总工作年期
*/
@Schema(description = "公司名称")
private String companyName;
@Schema(description = "总工作年期")
private BigDecimal totalWorkingYears;
/**
* 公司地区代码
* 受雇于现职年期
*/
@Schema(description = "公司地区代码")
private String companyAreaCode;
@Schema(description = "受雇于现职年期")
private BigDecimal currentTenure;
/**
* 公司地址邮政编码
* 职位
*/
@Schema(description = "公司地址邮政编码")
private String companyAddressPostcode;
@Schema(description = "职位")
private String position;
/**
* 公司地址
*/
@Schema(description = "公司地址")
private String companyAddress;
/**
* 公司电话区号
*/
@Schema(description = "公司电话区号")
private String companyMobileCode;
/**
* 公司电话
*/
@Schema(description = "公司电话")
private String companyTelephone;
private String companyMobile;
/**
* 职位
* 公司地址邮政编号
*/
@Schema(description = "职位")
private String position;
@Schema(description = "公司地址邮政编号")
private String companyAddressCode;
/**
* 平均每月收入(HKD)
*/
@Schema(description = "平均每月收入(HKD)")
private BigDecimal monthIncome;
/**
* 工作年限
* 平均每月支出(HKD)
*/
@Schema(description = "工作年限")
private String workYear;
@Schema(description = "平均每月支出(HKD)")
private BigDecimal monthExpenditure;
/**
* 薪资
* 总流动资产(HKD)
*/
@Schema(description = "薪资")
private BigDecimal salary;
@Schema(description = "总流动资产(HKD)")
private BigDecimal totalCurrentAssets;
// endregion
/**
* 总负债额(HKD)
*/
@Schema(description = "总负债额(HKD)")
private BigDecimal totalDebt;
/**
* 旅行(字典)
*/
@Schema(description = "旅行(字典)")
private String travel;
/**
* 运动(字典,下拉选择)
*/
@Schema(description = "运动(字典,下拉选择)")
private String exercise;
/**
* 游戏(字典,下拉选择)
*/
@Schema(description = "游戏(字典,下拉选择)")
private String game;
/**
* 电影/戏剧(字典,下拉选择)
*/
@Schema(description = "电影/戏剧(字典,下拉选择)")
private String movieDrama;
/**
* 美食(输入)
*/
@Schema(description = "美食(输入)")
private String delicacy;
/**
* 地址列表(json串)
*/
@Schema(description = "地址列表")
private List<AddressVO> addressList;
/**
* 通用备注
*/
@Schema(description = "通用备注")
private String remark;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(description = "受供养人信息")
public class DependantData {
@Schema(description = "受供养人姓名", requiredMode = Schema.RequiredMode.REQUIRED)
private String dependantName;
@Schema(description = "与投保人的关系", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyholderRel;
@Schema(description = "受供养人年龄", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer dependantAge;
}
......@@ -4,16 +4,16 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(description = "个人已有保障")
@Schema(description = "已生效仍在缴费期的保单情况")
public class ExistingSecurity {
@Schema(description = "保险公司")
private String insurer;
@Schema(description = "保障类型")
private String insuranceType;
@Schema(description = "保额")
@Schema(description = "年缴保费/保额(重疾险)")
private String sumInsured;
@Schema(description = "币种")
private String currency;
@Schema(description = "保单签发日期")
@Schema(description = "投保日期")
private String policyIssueDate;
}
......@@ -8,7 +8,6 @@ import java.util.List;
/**
* 创建Fna表单请求
*
*/
@Data
public class FnaFormAddRequest implements Serializable {
......@@ -25,23 +24,23 @@ public class FnaFormAddRequest implements Serializable {
@Schema(description = "客户唯一业务ID")
private String customerBizId;
/**
* 个人资料
*/
@Schema(description = "个人资料")
private PersonalData personalData;
// @Schema(description = "个人资料")
// private PersonalData personalData;
/**
* 税务国家列表
* 介绍人列表
*/
@Schema(description = "税务国家列表")
private List<TaxCountry> taxList;
@Schema(description = "介绍人列表")
private List<BrokerData> brokerList;
/**
* 家庭状况
* 受供养人列表
*/
@Schema(description = "家庭状况(父亲-father/母亲-mother/配偶-spouse/子女-children)")
private List<FamilyMember> familyMembers;
@Schema(description = "受供养人列表")
private List<DependantData> dependantList;
// @Schema(description = "家庭状况(父亲-father/母亲-mother/配偶-spouse/子女-children)")
// private List<FamilyMember> familyMembers;
/**
* 保单持有人个人已有保障
......@@ -51,31 +50,37 @@ public class FnaFormAddRequest implements Serializable {
/**
* 受保人个人已有保障
*/
private List<ExistingSecurity> existingSecurityInsured;
// private List<ExistingSecurity> existingSecurityInsured;
/**
* 收支情况
*/
@Schema(description = "收支情况")
private IncomeExpense incomeExpense;
// @Schema(description = "收支情况")
// private IncomeExpense incomeExpense;
/**
* 流动资产
*/
@Schema(description = "流动资产")
private LiquidAssets liquidAssets;
// @Schema(description = "流动资产")
// private LiquidAssets liquidAssets;
/**
* 自住用途之房地產
* 不动产信息
*/
@Schema(description = "自住用途之房地產")
@Schema(description = "不动产信息")
private List<OwnerProperties> primaryResidence;
/**
* 保费负担能力评估
*/
@Schema(description = "保费负担能力评估")
private PremiumAffordability premiumAffordability;
/**
* 投資房地產
*/
@Schema(description = "投資房地產")
private List<InvestmentProperties> investment;
// @Schema(description = "投資房地產")
// private List<InvestmentProperties> investment;
/**
* 公司业务资料
......@@ -86,8 +91,8 @@ public class FnaFormAddRequest implements Serializable {
/**
* 其他问题
*/
@Schema(description = "Fna表单其他问题")
private FnaFormOther other;
// @Schema(description = "Fna表单其他问题")
// private FnaFormOther other;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -8,7 +8,6 @@ import java.util.List;
/**
* 更新Fna表单请求
*
*/
@Data
public class FnaFormUpdateRequest implements Serializable {
......@@ -31,22 +30,16 @@ public class FnaFormUpdateRequest implements Serializable {
private String customerBizId;
/**
* 个人资料
* 介绍人列表
*/
@Schema(description = "个人资料")
private PersonalData personalData;
/**
* 税务国家列表
*/
@Schema(description = "税务国家列表", requiredMode = Schema.RequiredMode.REQUIRED)
private List<TaxCountry> taxList;
@Schema(description = "介绍人列表")
private List<BrokerData> brokerList;
/**
* 家庭状况
* 受供养人列表
*/
@Schema(description = "家庭状况(父亲-father/母亲-mother/配偶-spouse/子女-children)")
private List<FamilyMember> familyMembers;
@Schema(description = "受供养人列表")
private List<DependantData> dependantList;
/**
* 保单持有人个人已有保障
......@@ -54,33 +47,16 @@ public class FnaFormUpdateRequest implements Serializable {
private List<ExistingSecurity> existingSecurityOwner;
/**
* 受保人个人已有保障
*/
private List<ExistingSecurity> existingSecurityInsured;
/**
* 收支情况
*/
@Schema(description = "收支情况")
private IncomeExpense incomeExpense;
/**
* 流动资产
*/
@Schema(description = "流动资产")
private LiquidAssets liquidAssets;
/**
* 自住用途之房地產
* 不动产信息
*/
@Schema(description = "自住用途之房地產")
@Schema(description = "不动产信息")
private List<OwnerProperties> primaryResidence;
/**
* 投資房地產
* 保费负担能力评估
*/
@Schema(description = "投資房地產")
private List<InvestmentProperties> investment;
@Schema(description = "保费负担能力评估")
private String premiumAffordability;
/**
* 公司业务资料
......@@ -88,11 +64,5 @@ public class FnaFormUpdateRequest implements Serializable {
@Schema(description = "公司业务资料")
private CompanyBusinessData companyBusinessData;
/**
* 其他问题
*/
@Schema(description = "Fna表单其他问题")
private FnaFormOther other;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -8,12 +8,12 @@ public class IncomeExpense {
/**
* 平均月收入
*/
@Schema(description = "在过去24个月里,你从所有所得的收入来源所得的平均每月收入为?(包括薪金、花红、佣金、其他薪酬红利、银行存款利息、债券利息及股息等")
@Schema(description = "在过去12个月里,你从所有所得的收入来源所得的平均每月收入为?(包括薪金、花红、佣金、其他薪酬红利、银行存款利息、债券利息及股息等")
private String monthlyIncome;
/**
* 平均月支出
*/
@Schema(description = "过去24个月每月里,你每月的平均开支为?")
@Schema(description = "过去12个月每月里,你每月的平均开支为?")
private String monthlyExpense;
}
......@@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(description = "自住用途之房地產")
@Schema(description = "不动产信息")
public class OwnerProperties {
@Schema(description = "地址")
private String address;
......
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(description = "保费负担能力")
public class PremiumAffordability {
/**
* 平均月收入
*/
@Schema(description = "在过去12个月里,你从所有所得的收入来源所得的平均每月收入为?(包括薪金、花红、佣金、其他薪酬红利、银行存款利息、债券利息及股息等")
private String monthlyIncome;
/**
* 平均月支出
*/
@Schema(description = "过去12个月每月里,你每月的平均开支为?")
private String monthlyExpense;
/**
* 累积流动资产
*/
@Schema(description = "您现时的累积流动资产约有多少?")
private String liquidAssets;
/**
* 流动资产种类
*/
@Schema(description = "流动资产种类,多选逗号隔开 字典值:csf_liquid_asset_type")
private String liquidAssetType;
/**
* 其他流动资产的说明
*/
@Schema(description = "其他流动资产的说明")
private String otherLiquidAsset;
}
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
......@@ -27,164 +28,269 @@ public class Customer implements Serializable {
private String customerBizId;
/**
* 用户业务ID
* 姓名-中文
*/
private String userBizId;
private String nameCn;
/**
* 自定义代码
* 姓名-(拼音/英文,通过中文自动加载全部大写的拼音)
*/
private String customCode;
private String namePyEn;
/**
* 姓氏
* 证件类型(字典,下拉选择)
*/
private String lastName;
private String documentType;
/**
* 名字
* 证件号码
*/
private String firstName;
private String idNumber;
/**
* 姓名
* 性别(字典,如果是身份证,自动获取性别和生日)
*/
private String name;
private String gender;
/**
* 姓氏拼音
* 出生日期(生日,如果是身份证,自动获取性别和生日)
*/
private String lastNamePinyin;
private Date birthday;
/**
* 名字-英文
* 年龄(通过生日自动获取年龄)
*/
private String firstNamePinyin;
private String age;
/**
* 拼音全称
* 国籍(下拉选择)
*/
private String pinyin;
private String nationality;
/**
* 称谓
* 出生地
*/
private String title;
private String birthplace;
/**
* 性别
* 是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典)
*/
private String isOtherCountry;
/**
* 税务国家列表
*/
private Object gender;
private Object taxList;
/**
* 出生日期
* 吸烟情况(字典)
*/
private Date birthdate;
private String smokingStatus;
/**
* 异常信息
* 婚姻情况(字典)
*/
private String abnormal;
private String maritalStatus;
/**
* 年龄
* 教育程度(字典)
*/
private String age;
private String educationLevel;
/**
* 地区代码
* 是否退休(字典)
*/
private String areaCode;
private String isRetirement;
/**
* 电话号码
* 退休年龄(如已退休,再显示)
*/
private String phone;
private String retirementAge;
/**
* 电子邮箱
* 身高(CM)
*/
private String email;
private String height;
/**
* 体重(KG)
*/
private String weight;
/**
* BMI指数(根据身高和体重自动计算)
*/
private String bmi;
/**
* 风险偏好(字典,下拉选择)
*/
private String riskAppetite;
/**
* 受供养人数目(通过FNA带入)
*/
private Integer dependentsNum;
/**
* 移动电话区号
*/
private String mobileCode;
/**
* 是否吸烟
* 移动电话
*/
private String smoke;
private String mobile;
/**
* 吸烟数量
* 住宅电话区号
*/
private String smokeQuantity;
private String residenceMobileCode;
/**
* 公司类型
* 住宅电话
*/
private String companyType;
private String residenceMobile;
/**
* 固定电话区号
*/
private String landlineCode;
/**
* 固定电话
*/
private String fixedPhone;
private String landline;
/**
* 来源
* 邮箱
*/
private String source;
private String email;
/**
* 证件类型
* 证件地址
*/
private String idType;
private String certificateAddress;
/**
* 证件号码
* 通讯地址
*/
private String idCard;
private String mailingAddress;
/**
* 身份证地址
/**
* 居住地址(住宅地址)
*/
private String idCardAddress;
private String residentialAddress;
/**
* 护照
* 通讯地址邮政编
*/
private String passport;
private String mailingAddressCode;
/**
* EEP代码
* 就业情况(字典,下拉选择)
*/
private String eepCode;
private String employmentStatus;
/**
* 婚姻状况
* 公司/学校名称
*/
private Object marriage;
private String csName;
/**
* 出生地
* 行业
*/
private String birthplace;
private String industry;
/**
* 现时每月收入(HKD)
*/
private BigDecimal currentMonthlyIncome;
/**
* 总工作年期
*/
private BigDecimal totalWorkingYears;
/**
* 受雇于现职年期
*/
private BigDecimal currentTenure;
/**
* 职位
*/
private String position;
/**
* 公司地址
*/
private String companyAddress;
/**
* 公司电话区号
*/
private String companyMobileCode;
/**
* 公司电话
*/
private String companyMobile;
/**
* 公司地址邮政编号
*/
private String companyAddressCode;
/**
* 平均每月收入(HKD)
*/
private BigDecimal monthIncome;
/**
* 平均每月支出(HKD)
*/
private BigDecimal monthExpenditure;
/**
* 总流动资产(HKD)
*/
private BigDecimal totalCurrentAssets;
/**
* 总负债额(HKD)
*/
private BigDecimal totalDebt;
/**
* 旅行(字典)
*/
private String travel;
/**
* 运动(字典,下拉选择)
*/
private String exercise;
/**
* 教育程度
* 游戏(字典,下拉选择)
*/
private Object education;
private String game;
/**
* 签单用户扩展唯一业务ID
* 电影/戏剧(字典,下拉选择)
*/
private String customerExpandBizId;
private String movieDrama;
/**
* 国家
* 美食(输入)
*/
private String country;
private String delicacy;
/**
* 国家名称
* 地址列表(json串)
*/
private String countryName;
private String addressList;
/**
* 通用备注
......
......@@ -6,6 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import com.yd.csf.service.dto.DependantData;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
......@@ -42,6 +46,16 @@ public class FnaForm implements Serializable {
private String customerBizId;
/**
* 经纪人列表
*/
private Object brokerList;
/**
* 受供养人列表
*/
private Object dependantList;
/**
* 个人资料
*/
private Object personalData;
......@@ -87,6 +101,11 @@ public class FnaForm implements Serializable {
private Object investment;
/**
* 保费负担能力评估
*/
private Object premiumAffordability;
/**
* 公司业务资料
*/
private Object companyBusinessData;
......
......@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yd.common.enums.CommonEnum;
import com.yd.common.exception.BusinessException;
import com.yd.common.utils.RandomStringGenerator;
......@@ -24,12 +23,10 @@ import com.yd.csf.service.service.FnaService;
import com.yd.csf.service.utils.ValidateUtil;
import com.yd.csf.service.vo.AddressVO;
import com.yd.csf.service.vo.CustomerVO;
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;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
......@@ -47,45 +44,28 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
private final static Gson GSON = new Gson();
@Resource
private CustomerExpandService customerExpandService;
@Resource
private CustomerService customerService;
@Resource
private FnaService fnaService;
@Override
public CustomerVO getCustomerVO(Customer customer) {
CustomerVO customerVO = CustomerVO.objToVo(customer);
// 1. 关联查询扩展信息
CustomerExpand customerExpand = customerExpandService.getByCustomerBizId(customer.getCustomerBizId());
if (customerExpand != null) {
BeanUtils.copyProperties(customerExpand, customerVO);
if (ObjectUtils.isNotEmpty(customerExpand.getAddressList())) {
List<AddressVO> addressList = GSON.fromJson((String) customerExpand.getAddressList(), new TypeToken<List<AddressVO>>() {
}.getType());
customerVO.setAddressList(addressList);
}
}
return customerVO;
return CustomerVO.objToVo(customer);
}
@Override
public Wrapper<Customer> getQueryWrapper(CustomerQueryRequest customerQueryRequest) {
QueryWrapper<Customer> queryWrapper = new QueryWrapper<>();
String name = customerQueryRequest.getName();
String phone = customerQueryRequest.getPhone();
String mobile = customerQueryRequest.getMobile();
String email = customerQueryRequest.getEmail();
queryWrapper.like(StringUtils.isNotBlank(name), "name", name)
.or().like(StringUtils.isNotBlank(name), "first_name_pinyin", name);
queryWrapper.like(StringUtils.isNotBlank(name), "name_cn", name)
.or().like(StringUtils.isNotBlank(name), "name_py_en", name);
queryWrapper.like(StringUtils.isNotBlank(phone), "phone", phone);
queryWrapper.like(StringUtils.isNotBlank(mobile), "mobile", mobile);
queryWrapper.like(StringUtils.isNotBlank(email), "email", email);
return queryWrapper;
......@@ -113,33 +93,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
// 对象列表 => 封装对象列表
List<CustomerVO> customerVOList = customerList.stream().map(CustomerVO::objToVo).collect(Collectors.toList());
// 1. 关联查询扩展信息
Set<String> customerBizIdSet = customerList.stream().map(Customer::getCustomerBizId).collect(Collectors.toSet());
QueryWrapper<CustomerExpand> queryWrapper = new QueryWrapper<>();
queryWrapper.in("customer_biz_id", customerBizIdSet);
List<CustomerExpand> customerExpandList = customerExpandService.list(queryWrapper);
Map<String, CustomerExpand> customerBizIdCustomerExpandListMap = customerExpandList.stream()
.collect(Collectors.toMap(CustomerExpand::getCustomerBizId, customerExpand -> customerExpand));
// 填充信息
for (CustomerVO customerVO : customerVOList) {
String customerBizId = customerVO.getCustomerBizId();
CustomerExpand customerExpand = null;
if (customerBizIdCustomerExpandListMap.containsKey(customerBizId)) {
customerExpand = customerBizIdCustomerExpandListMap.get(customerBizId);
}
if (customerExpand != null) {
BeanUtils.copyProperties(customerExpand, customerVO);
if (ObjectUtils.isNotEmpty(customerExpand.getAddressList())) {
List<AddressVO> addressList = GSON.fromJson((String) customerExpand.getAddressList(), new TypeToken<List<AddressVO>>() {
}.getType());
customerVO.setAddressList(addressList);
}
}
}
customerVOPage.setRecords(customerVOList);
return customerVOPage;
}
......@@ -158,17 +111,18 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
}
// 客户主表信息
Customer customer = new Customer();
BeanUtils.copyProperties(customerAddRequest, customer);
BeanUtils.copyProperties(customerAddRequest, customer, "addressList");
List<AddressVO> addressList = customerAddRequest.getAddressList();
if (CollUtil.isNotEmpty(addressList)) {
customer.setAddressList(GSON.toJson(addressList));
}
// 税务国家列表
if (CollUtil.isNotEmpty(customerAddRequest.getTaxList())) {
customer.setTaxList(GSON.toJson(customerAddRequest.getTaxList()));
}
// 校验客户主表信息
validCustomer(customer);
// 客户扩展表信息
CustomerExpand customerExpand = customerService.getCustomerExpand(customerAddRequest);
// 获取 userBizId
// SecurityUtil.getLoginUser();
// customer.setUserBizId("");
// 客户主表业务唯一id
customer.setCustomerBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_CUSTOMER.getCode()));
boolean result = customerService.save(customer);
......@@ -176,23 +130,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
throw new BusinessException(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
}
// 客户扩展表信息,非空时,写入数据库
if (!ValidateUtil.isAllFieldsNull(customerAddRequest)) {
// 主表业务唯一id
customerExpand.setCustomerBizId(customer.getCustomerBizId());
// 客户扩展表业务唯一id
customerExpand.setCustomerExpandBizId(RandomStringGenerator.generateBizId16("customer_expand"));
// 写入数据库
boolean resultExpand = customerExpandService.save(customerExpand);
if (!resultExpand) {
throw new BusinessException(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
}
// 更新客户主表
Customer updateCustomer = new Customer();
updateCustomer.setId(customer.getId());
updateCustomer.setCustomerExpandBizId(customerExpand.getCustomerBizId());
customerService.updateById(updateCustomer);
}
Map<String, Object> map = new HashMap<>();
map.put("customerBizId", customer.getCustomerBizId());
return map;
......@@ -200,40 +137,23 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
@Override
public void validCustomer(Customer customer) {
String firstNamePinyin = customer.getFirstNamePinyin();
if (StringUtils.isBlank(firstNamePinyin)) {
if (StringUtils.isBlank(customer.getNamePyEn())) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "名字-英文不能为空");
}
String phone = customer.getPhone();
if (StringUtils.isBlank(phone)) {
if (StringUtils.isBlank(customer.getMobile())) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "客户手机号不能为空");
}
String title = customer.getTitle();
if (StringUtils.isBlank(title)) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "称谓不能为空");
}
String age = customer.getAge();
if (StringUtils.isBlank(age)) {
if (StringUtils.isBlank(customer.getAge())) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "年龄不能为空");
}
Object marriage = customer.getMarriage();
if (marriage == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "婚姻状况不能为空");
}
String country = customer.getCountry();
if (StringUtils.isBlank(country)) {
if (StringUtils.isBlank(customer.getNationality())) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "国籍不能为空");
}
Object education = customer.getEducation();
if (education == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "教育程度不能为空");
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateCustomer(CustomerUpdateRequest customerUpdateRequest) {
// 判断是否存在
String customerBizId = customerUpdateRequest.getCustomerBizId();
Customer oldCustomer = customerService.getByCustomerBizId(customerBizId);
......@@ -242,35 +162,21 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
}
BeanUtils.copyProperties(customerUpdateRequest, oldCustomer, "customerBizId");
// 税务国家列表
if (CollUtil.isNotEmpty(customerUpdateRequest.getTaxList())) {
oldCustomer.setTaxList(GSON.toJson(customerUpdateRequest.getTaxList()));
}
// 地址列表
if (CollUtil.isNotEmpty(customerUpdateRequest.getAddressList())) {
oldCustomer.setAddressList(GSON.toJson(customerUpdateRequest.getAddressList()));
}
// 数据校验
customerService.validCustomer(oldCustomer);
// 更新主表
boolean result = customerService.updateById(oldCustomer);
if (StringUtils.isNotBlank(customerUpdateRequest.getFirstNamePinyin())) {
fnaService.updateCustomerNameByCustomerBizId(customerUpdateRequest.getFirstNamePinyin(), customerBizId);
if (StringUtils.isNotBlank(customerUpdateRequest.getNamePyEn())) {
fnaService.updateCustomerNameByCustomerBizId(customerUpdateRequest.getNamePyEn(), customerBizId);
}
// 获取扩展表信息
CustomerExpand customerExpand = customerExpandService.getByCustomerBizId(customerBizId);
String addressListJSON = null;
if (!CollectionUtils.isEmpty(customerUpdateRequest.getAddressList())) {
addressListJSON = GSON.toJson(customerUpdateRequest.getAddressList());
}
if (customerExpand != null) {
// 更新扩展表
BeanUtils.copyProperties(customerUpdateRequest, customerExpand, "customerBizId, customerExpandBizId");
customerExpand.setAddressList(addressListJSON);
customerExpandService.updateById(customerExpand);
} else {
// 扩展表不存在,创建扩展表
CustomerExpand newCustomerExpand = new CustomerExpand();
BeanUtils.copyProperties(customerUpdateRequest, newCustomerExpand, "customerBizId");
newCustomerExpand.setAddressList(addressListJSON);
newCustomerExpand.setCustomerExpandBizId(RandomStringGenerator.generateBizId16("customer_expand"));
newCustomerExpand.setCustomerBizId(customerBizId);
customerExpandService.save(newCustomerExpand);
}
return true;
}
......
......@@ -105,55 +105,33 @@ public class FnaFormServiceImpl extends ServiceImpl<FnaFormMapper, FnaForm> impl
// 对象转封装类
FnaFormVO fnaFormVO = FnaFormVO.objToVo(fnaForm);
Object personalData = fnaForm.getPersonalData();
if (personalData != null) {
fnaFormVO.setPersonalData(GSON.fromJson(personalData.toString(), PersonalData.class));
}
Object taxList = fnaForm.getTaxList();
if (taxList != null) {
fnaFormVO.setTaxList(GSON.fromJson(taxList.toString(), new TypeToken<List<TaxCountry>>() {
if (fnaForm.getBrokerList() != null) {
fnaFormVO.setBrokerList(GSON.fromJson(fnaForm.getBrokerList().toString(), new TypeToken<List<BrokerData>>() {
}.getType()));
}
Object familyMembers = fnaForm.getFamilyMembers();
if (familyMembers != null) {
fnaFormVO.setFamilyMembers(GSON.fromJson(familyMembers.toString(), new TypeToken<List<FamilyMember>>() {
if (fnaForm.getDependantList() != null) {
fnaFormVO.setDependantList(GSON.fromJson(fnaForm.getDependantList().toString(), new TypeToken<List<DependantData>>() {
}.getType()));
}
Object existingSecurityOwner = fnaForm.getExistingSecurityOwner();
if (existingSecurityOwner != null) {
fnaFormVO.setExistingSecurityOwner(GSON.fromJson(existingSecurityOwner.toString(), new TypeToken<List<ExistingSecurity>>() {
}.getType()));
}
Object existingSecurityInsured = fnaForm.getExistingSecurityInsured();
if (existingSecurityInsured != null) {
fnaFormVO.setExistingSecurityInsured(GSON.fromJson(existingSecurityInsured.toString(), new TypeToken<List<ExistingSecurity>>() {
}.getType()));
}
Object incomeExpense = fnaForm.getIncomeExpense();
if (incomeExpense != null) {
fnaFormVO.setIncomeExpense(GSON.fromJson(incomeExpense.toString(), IncomeExpense.class));
}
Object liquidAssets = fnaForm.getLiquidAssets();
if (liquidAssets != null) {
fnaFormVO.setLiquidAssets(GSON.fromJson(liquidAssets.toString(), LiquidAssets.class));
}
Object primaryResidence = fnaForm.getPrimaryResidence();
if (primaryResidence != null) {
fnaFormVO.setPrimaryResidence(GSON.fromJson(primaryResidence.toString(), new TypeToken<List<OwnerProperties>>() {
}.getType()));
}
Object investment = fnaForm.getInvestment();
if (investment != null) {
fnaFormVO.setInvestment(GSON.fromJson(investment.toString(), new TypeToken<List<InvestmentProperties>>() {
}.getType()));
}
Object monthlyIncome = fnaForm.getCompanyBusinessData();
if (monthlyIncome != null) {
fnaFormVO.setCompanyBusinessData(GSON.fromJson(monthlyIncome.toString(), CompanyBusinessData.class));
if (fnaForm.getPremiumAffordability() != null) {
fnaFormVO.setPremiumAffordability(GSON.fromJson(fnaForm.getPremiumAffordability().toString(), PremiumAffordability.class));
}
Object other = fnaForm.getOther();
if (other != null) {
fnaFormVO.setOther(GSON.fromJson(other.toString(), FnaFormOther.class));
if (fnaForm.getCompanyBusinessData() != null) {
fnaFormVO.setCompanyBusinessData(GSON.fromJson(fnaForm.getCompanyBusinessData().toString(), CompanyBusinessData.class));
}
return fnaFormVO;
......@@ -212,17 +190,12 @@ public class FnaFormServiceImpl extends ServiceImpl<FnaFormMapper, FnaForm> impl
FnaForm fnaForm = new FnaForm();
fnaForm.setCustomerBizId(fnaFormAddRequest.getCustomerBizId());
fnaForm.setPersonalData(GSON.toJson(fnaFormAddRequest.getPersonalData()));
fnaForm.setTaxList(GSON.toJson(fnaFormAddRequest.getTaxList()));
fnaForm.setFamilyMembers(GSON.toJson(fnaFormAddRequest.getFamilyMembers()));
fnaForm.setBrokerList(GSON.toJson(fnaFormAddRequest.getBrokerList()));
fnaForm.setDependantList(GSON.toJson(fnaFormAddRequest.getDependantList()));
fnaForm.setExistingSecurityOwner(GSON.toJson(fnaFormAddRequest.getExistingSecurityOwner()));
fnaForm.setExistingSecurityInsured(GSON.toJson(fnaFormAddRequest.getExistingSecurityInsured()));
fnaForm.setIncomeExpense(GSON.toJson(fnaFormAddRequest.getIncomeExpense()));
fnaForm.setLiquidAssets(GSON.toJson(fnaFormAddRequest.getLiquidAssets()));
fnaForm.setPrimaryResidence(GSON.toJson(fnaFormAddRequest.getPrimaryResidence()));
fnaForm.setInvestment(GSON.toJson(fnaFormAddRequest.getInvestment()));
fnaForm.setPremiumAffordability(GSON.toJson(fnaFormAddRequest.getPremiumAffordability()));
fnaForm.setCompanyBusinessData(GSON.toJson(fnaFormAddRequest.getCompanyBusinessData()));
fnaForm.setOther(GSON.toJson(fnaFormAddRequest.getOther()));
return fnaForm;
}
......@@ -232,17 +205,12 @@ public class FnaFormServiceImpl extends ServiceImpl<FnaFormMapper, FnaForm> impl
FnaForm fnaForm = new FnaForm();
BeanUtils.copyProperties(fnaFormUpdateRequest, fnaForm);
fnaForm.setPersonalData(GSON.toJson(fnaFormUpdateRequest.getPersonalData()));
fnaForm.setTaxList(GSON.toJson(fnaFormUpdateRequest.getTaxList()));
fnaForm.setFamilyMembers(GSON.toJson(fnaFormUpdateRequest.getFamilyMembers()));
fnaForm.setBrokerList(GSON.toJson(fnaFormUpdateRequest.getBrokerList()));
fnaForm.setDependantList(GSON.toJson(fnaFormUpdateRequest.getDependantList()));
fnaForm.setExistingSecurityOwner(GSON.toJson(fnaFormUpdateRequest.getExistingSecurityOwner()));
fnaForm.setExistingSecurityInsured(GSON.toJson(fnaFormUpdateRequest.getExistingSecurityInsured()));
fnaForm.setIncomeExpense(GSON.toJson(fnaFormUpdateRequest.getIncomeExpense()));
fnaForm.setLiquidAssets(GSON.toJson(fnaFormUpdateRequest.getLiquidAssets()));
fnaForm.setPrimaryResidence(GSON.toJson(fnaFormUpdateRequest.getPrimaryResidence()));
fnaForm.setInvestment(GSON.toJson(fnaFormUpdateRequest.getInvestment()));
fnaForm.setPremiumAffordability(GSON.toJson(fnaFormUpdateRequest.getPremiumAffordability()));
fnaForm.setCompanyBusinessData(GSON.toJson(fnaFormUpdateRequest.getCompanyBusinessData()));
fnaForm.setOther(GSON.toJson(fnaFormUpdateRequest.getOther()));
return fnaForm;
}
......
package com.yd.csf.service.vo;
import com.google.gson.reflect.TypeToken;
import com.yd.csf.service.model.Customer;
import com.yd.csf.service.utils.GSONUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
......@@ -12,15 +15,14 @@ import java.util.List;
/**
* customer视图
*
*/
@Data
public class CustomerVO implements Serializable {
/**
* id
* customer id
*/
@Schema(description = "id")
@Schema(description = "customer id")
private Long id;
/**
......@@ -30,268 +32,322 @@ public class CustomerVO implements Serializable {
private String customerBizId;
/**
* 自定义代码
* 姓名-中文
*/
@Schema(description = "客户自定义代码")
private String customCode;
@Schema(description = "姓名-中文")
private String nameCn;
/**
* 姓
* 姓名-(拼音/英文,通过中文自动加载全部大写的拼音)
*/
@Schema(description = "客户姓氏")
private String lastName;
@Schema(description = "姓名-(拼音/英文,通过中文自动加载全部大写的拼音)")
private String namePyEn;
/**
* 名字
* 证件类型(字典,下拉选择)
*/
@Schema(description = "客户名字")
private String firstName;
@Schema(description = "证件类型(字典,下拉选择)")
private String documentType;
/**
* 姓名
* 证件号码
*/
@Schema(description = "客户姓名")
private String name;
@Schema(description = "证件号码")
private String idNumber;
/**
* 姓氏拼音
* 性别(字典,如果是身份证,自动获取性别和生日)
*/
@Schema(description = "客户姓氏拼音")
private String lastNamePinyin;
@Schema(description = "性别(字典,如果是身份证,自动获取性别和生日)")
private String gender;
/**
* 名字拼音
* 出生日期(生日,如果是身份证,自动获取性别和生日)
*/
@Schema(description = "客户名字拼音")
private String firstNamePinyin;
@Schema(description = "出生日期(生日,如果是身份证,自动获取性别和生日)")
private Date birthday;
/**
* 拼音全称
* 年龄(通过生日自动获取年龄)
*/
@Schema(description = "客户拼音全称")
private String pinyin;
@Schema(description = "年龄(通过生日自动获取年龄)")
private String age;
/**
* 称谓
* 国籍(下拉选择)
*/
@Schema(description = "客户称谓")
private String title;
@Schema(description = "国籍(下拉选择)")
private String nationality;
/**
* 性别
* 出生地
*/
@Schema(description = "性别")
private Object gender;
@Schema(description = "出生地")
private String birthplace;
/**
* 出生日期
* 是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典)
*/
@Schema(description = "出生日期")
private Date birthdate;
@Schema(description = "是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典)")
private String isOtherCountry;
/**
* 异常信息
* 吸烟情况(字典)
*/
@Schema(description = "异常信息")
private String abnormal;
@Schema(description = "吸烟情况(字典)")
private String smokingStatus;
/**
* 年龄
* 婚姻情况(字典)
*/
@Schema(description = "年龄")
private String age;
@Schema(description = "婚姻情况(字典)")
private String maritalStatus;
/**
* 地区代码
* 教育程度(字典)
*/
@Schema(description = "地区代码")
private String areaCode;
@Schema(description = "教育程度(字典)")
private String educationLevel;
/**
* 电话号码
* 是否退休(字典)
*/
@Schema(description = "客户电话号码")
private String phone;
@Schema(description = "是否退休(字典)")
private String isRetirement;
/**
* 电子邮箱
* 退休年龄(如已退休,再显示)
*/
@Schema(description = "客户电子邮箱")
private String email;
@Schema(description = "退休年龄(如已退休,再显示)")
private String retirementAge;
/**
* 是否吸烟
* 身高(CM)
*/
@Schema(description = "是否吸烟 'NS'-不吸烟 'S'-吸烟 ")
private String smoke;
@Schema(description = "身高(CM)")
private String height;
/**
* 吸烟数量
* 体重(KG)
*/
@Schema(description = "吸烟数量")
private String smokeQuantity;
@Schema(description = "体重(KG)")
private String weight;
/**
* 公司类型
* BMI指数(根据身高和体重自动计算)
*/
@Schema(description = "公司类型")
private String companyType;
@Schema(description = "BMI指数(根据身高和体重自动计算)")
private String bmi;
/**
* 来源
* 风险偏好(字典,下拉选择)
*/
@Schema(description = "客户来源")
private String source;
@Schema(description = "风险偏好(字典,下拉选择)")
private String riskAppetite;
/**
* 证件类型
* 受供养人数目(通过FNA带入)
*/
@Schema(description = "证件类型")
private String idType;
@Schema(description = "受供养人数目(通过FNA带入)")
private Integer dependentsNum;
/**
* 证件号码
* 移动电话区号
*/
@Schema(description = "证件号码")
private String idCard;
@Schema(description = "移动电话区号")
private String mobileCode;
/**
* 身份证地址
/**
* 移动电话
*/
@Schema(description = "身份证地址")
private String idCardAddress;
@Schema(description = "移动电话")
private String mobile;
/**
* 护照
* 住宅电话区
*/
@Schema(description = "护照号")
private String passport;
@Schema(description = "住宅电话区号")
private String residenceMobileCode;
/**
* 往来港澳通行证号码
* 住宅电话
*/
@Schema(description = "往来港澳通行证号码")
private String eepCode;
@Schema(description = "住宅电话")
private String residenceMobile;
/**
* 婚姻状况
* 固定电话区号
*/
@Schema(description = "婚姻状况")
private Object marriage;
@Schema(description = "固定电话区号")
private String landlineCode;
/**
* 出生地
* 固定电话
*/
@Schema(description = "出生地")
private String birthplace;
@Schema(description = "固定电话")
private String landline;
/**
* 教育程度
* 邮箱
*/
@Schema(description = "教育程度")
private Object education;
@Schema(description = "邮箱")
private String email;
/**
* 签单用户扩展唯一业务ID
* 证件地址
*/
@Schema(description = "客户扩展信息ID")
private String customerExpandBizId;
@Schema(description = "证件地址")
private String certificateAddress;
/**
* 国家
* 通讯地址
*/
@Schema(description = "国家")
private String country;
@Schema(description = "通讯地址")
private String mailingAddress;
/**
* 国家名称
* 居住地址(住宅地址)
*/
@Schema(description = "国家名称")
private String countryName;
@Schema(description = "居住地址(住宅地址)")
private String residentialAddress;
/**
* 创建时间
* 通讯地址邮政编号
*/
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "通讯地址邮政编号")
private String mailingAddressCode;
/**
* 固定电话
* 就业情况(字典,下拉选择)
*/
@Schema(description = "固定电话")
private String fixedPhone;
@Schema(description = "就业情况(字典,下拉选择)")
private String employmentStatus;
/**
* 客户类型
* 公司/学校名称
*/
@Schema(description = "客户类型 字典值: csf_customer_type")
private String customerType;
@Schema(description = "公司/学校名称")
private String csName;
/**
* 居住地区代码
* 行业
*/
@Schema(description = "居住地区代码")
private String residenceAreaCode;
@Schema(description = "行业")
private String industry;
/**
* 住宅电话
* 现时每月收入(HKD)
*/
@Schema(description = "住宅电话")
private String residenceTelephone;
@Schema(description = "现时每月收入(HKD)")
private BigDecimal currentMonthlyIncome;
/**
* 是否长期出国
* 总工作年期
*/
@Schema(description = "是否长期出国 字典值: sys_no_yes")
private String longtimeAbroad;
@Schema(description = "总工作年期")
private BigDecimal totalWorkingYears;
/**
* 地址
* 受雇于现职年期
*/
@Schema(description = "地址列表")
private List<AddressVO> addressList;
@Schema(description = "受雇于现职年期")
private BigDecimal currentTenure;
/**
* 公司名称
* 职位
*/
@Schema(description = "公司名称")
private String companyName;
@Schema(description = "职位")
private String position;
/**
* 公司地区代码
* 公司地
*/
@Schema(description = "公司地区代码")
private String companyAreaCode;
@Schema(description = "公司地")
private String companyAddress;
/**
* 公司地址邮政编码
/**
* 公司电话区号
*/
@Schema(description = "公司地址邮政编码")
private String companyAddressPostcode;
@Schema(description = "公司电话区号")
private String companyMobileCode;
/**
* 公司电话
*/
@Schema(description = "公司电话")
private String companyTelephone;
private String companyMobile;
/**
* 职位
* 公司地址邮政编号
*/
@Schema(description = "职位")
private String position;
@Schema(description = "公司地址邮政编号")
private String companyAddressCode;
/**
* 平均每月收入(HKD)
*/
@Schema(description = "平均每月收入(HKD)")
private BigDecimal monthIncome;
/**
* 平均每月支出(HKD)
*/
@Schema(description = "平均每月支出(HKD)")
private BigDecimal monthExpenditure;
/**
* 总流动资产(HKD)
*/
@Schema(description = "总流动资产(HKD)")
private BigDecimal totalCurrentAssets;
/**
* 总负债额(HKD)
*/
@Schema(description = "总负债额(HKD)")
private BigDecimal totalDebt;
/**
* 旅行(字典)
*/
@Schema(description = "旅行(字典)")
private String travel;
/**
* 工作年限
* 运动(字典,下拉选择)
*/
@Schema(description = "工作年限")
private String workYear;
@Schema(description = "运动(字典,下拉选择)")
private String exercise;
/**
* 薪资
* 游戏(字典,下拉选择)
*/
@Schema(description = "薪资")
private BigDecimal salary;
@Schema(description = "游戏(字典,下拉选择)")
private String game;
/**
* 电影/戏剧(字典,下拉选择)
*/
@Schema(description = "电影/戏剧(字典,下拉选择)")
private String movieDrama;
/**
* 美食(输入)
*/
@Schema(description = "美食(输入)")
private String delicacy;
/**
* 地址列表(json串)
*/
@Schema(description = "地址列表")
private List<AddressVO> addressList;
/**
* 通用备注
*/
@Schema(description = "通用备注")
private String remark;
/**
* 封装类转对象
......@@ -321,6 +377,11 @@ public class CustomerVO implements Serializable {
}
CustomerVO customerVO = new CustomerVO();
BeanUtils.copyProperties(customer, customerVO);
if (ObjectUtils.isNotEmpty(customer.getAddressList())) {
List<AddressVO> addressList = GSONUtil.fromJson((String) customer.getAddressList(), new TypeToken<List<AddressVO>>() {
}.getType());
customerVO.setAddressList(addressList);
}
return customerVO;
}
......
package com.yd.csf.service.vo;
import cn.hutool.json.JSONUtil;
import com.yd.csf.service.dto.*;
import com.yd.csf.service.model.FnaForm;
import io.swagger.v3.oas.annotations.media.Schema;
......@@ -9,12 +7,10 @@ import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* Fna表单视图
*
*/
@Data
public class FnaFormVO implements Serializable {
......@@ -25,12 +21,11 @@ public class FnaFormVO implements Serializable {
private Long id;
/**
* fna唯一业务ID
* fnaForm 业务ID
*/
@Schema(description = "fna唯一业务ID")
@Schema(description = "fnaForm 业务ID")
private String fnaFormBizId;
/**
* 客户唯一业务ID
*/
......@@ -38,22 +33,16 @@ public class FnaFormVO implements Serializable {
private String customerBizId;
/**
* 个人资料
*/
@Schema(description = "个人资料")
private PersonalData personalData;
/**
* 税务国家列表
* 介绍人列表
*/
@Schema(description = "税务国家列表")
private List<TaxCountry> taxList;
@Schema(description = "介绍人列表")
private List<BrokerData> brokerList;
/**
* 家庭状况
* 受供养人列表
*/
@Schema(description = "家庭状况")
private List<FamilyMember> familyMembers;
@Schema(description = "受供养人列表")
private List<DependantData> dependantList;
/**
* 保单持有人个人已有保障
......@@ -62,34 +51,16 @@ public class FnaFormVO implements Serializable {
private List<ExistingSecurity> existingSecurityOwner;
/**
* 受保人个人已有保障
*/
@Schema(description = "受保人个人已有保障")
private List<ExistingSecurity> existingSecurityInsured;
/**
* 收支情况
*/
@Schema(description = "收支情况")
private IncomeExpense incomeExpense;
/**
* 流动资产
*/
@Schema(description = "流动资产")
private LiquidAssets liquidAssets;
/**
* 自住用途之房地產
* 不动产信息
*/
@Schema(description = "自住用途之房地產")
@Schema(description = "不动产信息")
private List<OwnerProperties> primaryResidence;
/**
* 投資房地產
* 保费负担能力评估
*/
@Schema(description = "投資房地產")
private List<InvestmentProperties> investment;
@Schema(description = "保费负担能力评估")
private PremiumAffordability premiumAffordability;
/**
* 公司业务资料
......@@ -98,12 +69,6 @@ public class FnaFormVO implements Serializable {
private CompanyBusinessData companyBusinessData;
/**
* 其他问题
*/
@Schema(description = "Fna表单其他问题")
private FnaFormOther other;
/**
* 封装类转对象
*
* @param fnaFormVO
......
......@@ -5,54 +5,81 @@
<mapper namespace="com.yd.csf.service.dao.CustomerMapper">
<resultMap id="BaseResultMap" type="com.yd.csf.service.model.Customer">
<id property="id" column="id" />
<result property="customerBizId" column="customer_biz_id" />
<result property="customCode" column="custom_code" />
<result property="lastName" column="last_name" />
<result property="firstName" column="first_name" />
<result property="name" column="name" />
<result property="lastNamePinyin" column="last_name_pinyin" />
<result property="firstNamePinyin" column="first_name_pinyin" />
<result property="pinyin" column="pinyin" />
<result property="title" column="title" />
<result property="gender" column="gender" />
<result property="birthdate" column="birthdate" />
<result property="abnormal" column="abnormal" />
<result property="age" column="age" />
<result property="areaCode" column="area_code" />
<result property="phone" column="phone" />
<result property="email" column="email" />
<result property="smoke" column="smoke" />
<result property="smokeQuantity" column="smoke_quantity" />
<result property="companyType" column="company_type" />
<result property="fixedPhone" column="fixed_phone" />
<result property="source" column="source" />
<result property="idType" column="id_type" />
<result property="idCard" column="id_card" />
<result property="idCardAddress" column="id_card_address" />
<result property="passport" column="passport" />
<result property="eepCode" column="eep_code" />
<result property="marriage" column="marriage" />
<result property="birthplace" column="birthplace" />
<result property="education" column="education" />
<result property="customerExpandBizId" column="customer_expand_biz_id" />
<result property="country" column="country" />
<result property="remark" column="remark" />
<result property="isDeleted" column="is_deleted" />
<result property="creatorId" column="creator_id" />
<result property="updaterId" column="updater_id" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
<id property="id" column="id" />
<result property="customerBizId" column="customer_biz_id" />
<result property="nameCn" column="name_cn" />
<result property="namePyEn" column="name_py_en" />
<result property="documentType" column="document_type" />
<result property="idNumber" column="id_number" />
<result property="gender" column="gender" />
<result property="birthday" column="birthday" />
<result property="age" column="age" />
<result property="nationality" column="nationality" />
<result property="birthplace" column="birthplace" />
<result property="isOtherCountry" column="is_other_country" />
<result property="taxList" column="tax_list" />
<result property="smokingStatus" column="smoking_status" />
<result property="maritalStatus" column="marital_status" />
<result property="educationLevel" column="education_level" />
<result property="isRetirement" column="is_retirement" />
<result property="retirementAge" column="retirement_age" />
<result property="height" column="height" />
<result property="weight" column="weight" />
<result property="bmi" column="bmi" />
<result property="riskAppetite" column="risk_appetite" />
<result property="dependentsNum" column="dependents_num" />
<result property="mobileCode" column="mobile_code" />
<result property="mobile" column="mobile" />
<result property="residenceMobileCode" column="residence_mobile_code" />
<result property="residenceMobile" column="residence_mobile" />
<result property="landlineCode" column="landline_code" />
<result property="landline" column="landline" />
<result property="email" column="email" />
<result property="certificateAddress" column="certificate_address" />
<result property="mailingAddress" column="mailing_address" />
<result property="residentialAddress" column="residential_address" />
<result property="mailingAddressCode" column="mailing_address_code" />
<result property="employmentStatus" column="employment_status" />
<result property="csName" column="cs_name" />
<result property="industry" column="industry" />
<result property="currentMonthlyIncome" column="current_monthly_income" />
<result property="totalWorkingYears" column="total_working_years" />
<result property="currentTenure" column="current_tenure" />
<result property="position" column="position" />
<result property="companyAddress" column="company_address" />
<result property="companyMobileCode" column="company_mobile_code" />
<result property="companyMobile" column="company_mobile" />
<result property="companyAddressCode" column="company_address_code" />
<result property="monthIncome" column="month_income" />
<result property="monthExpenditure" column="month_expenditure" />
<result property="totalCurrentAssets" column="total_current_assets" />
<result property="totalDebt" column="total_debt" />
<result property="travel" column="travel" />
<result property="exercise" column="exercise" />
<result property="game" column="game" />
<result property="movieDrama" column="movie_drama" />
<result property="delicacy" column="delicacy" />
<result property="addressList" column="address_list" />
<result property="remark" column="remark" />
<result property="isDeleted" column="is_deleted" />
<result property="creatorId" column="creator_id" />
<result property="updaterId" column="updater_id" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="Base_Column_List">
id,customer_biz_id,custom_code,last_name,first_name,name,
last_name_pinyin,first_name_pinyin,pinyin,title,gender,
birthdate,abnormal,age,area_code,
phone,email,smoke,smoke_quantity,company_type,fixed_phone,
source,id_type,id_card,id_card_address,passport,eep_code,
marriage,birthplace,education,customer_expand_biz_id,country,
remark,is_deleted,creator_id,updater_id,create_time,
update_time
id,customer_biz_id,name_cn,name_py_en,document_type,id_number,
gender,birthday,age,nationality,birthplace,
is_other_country,tax_list,smoking_status,marital_status,education_level,is_retirement,
retirement_age,height,weight,bmi,risk_appetite,
dependents_num,mobile_code,mobile,residence_mobile_code,residence_mobile,
landline_code,landline,email,certificate_address,mailing_address,
residential_address,mailing_address_code,employment_status,cs_name,industry,
current_monthly_income,total_working_years,current_tenure,position,company_address,
company_mobile_code,company_mobile,company_address_code,month_income,month_expenditure,
total_current_assets,total_debt,travel,exercise,game,
movie_drama,delicacy,address_list,remark,is_deleted,
creator_id,updater_id,create_time,update_time
</sql>
</mapper>
......@@ -10,6 +10,8 @@
<result property="userBizId" column="user_biz_id" />
<result property="agentBizId" column="agent_biz_id" />
<result property="customerBizId" column="customer_biz_id" />
<result property="brokerList" column="broker_list" />
<result property="dependantList" column="dependant_list" />
<result property="personalData" column="personal_data" />
<result property="taxList" column="tax_list" />
<result property="familyMembers" column="family_members" />
......@@ -19,6 +21,7 @@
<result property="liquidAssets" column="liquid_assets" />
<result property="primaryResidence" column="primary_residence" />
<result property="investment" column="investment" />
<result property="premiumAffordability" column="premium_affordability" />
<result property="companyBusinessData" column="company_business_data" />
<result property="other" column="other" />
<result property="fnaFormStatus" column="fna_form_status" />
......@@ -31,9 +34,9 @@
</resultMap>
<sql id="Base_Column_List">
id,fna_form_biz_id,user_biz_id,agent_biz_id,customer_biz_id,personal_data,tax_list,
id,fna_form_biz_id,user_biz_id,agent_biz_id,customer_biz_id,broker_list,dependant_list,personal_data,tax_list,
family_members,existing_security_owner,existing_security_insured,income_expense,liquid_assets,
primary_residence,investment,company_business_data,other,fna_form_status,
primary_residence,investment,premium_affordability,company_business_data,other,fna_form_status,
remark,is_deleted,creator_id,updater_id,create_time,
update_time
</sql>
......
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