Commit 61e98f43 by Simon Cheng

Merge branch 'master' of 139.224.139.2:AGSH/yd-backend into dev_20210322_seal

parents de3040df 0e0e7633
......@@ -29,6 +29,11 @@
<dependencies>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
......@@ -69,43 +74,44 @@
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.6.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
<!--
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.6.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
<!--
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
-->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
......@@ -221,56 +227,20 @@
<scope>system</scope>
<systemPath>${basedir}/lib/com-libs-pdf-0.0.1.jar</systemPath>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
</dependencies>
<build>
<finalName>ydapi</finalName>
<resources>
<resource>
<!--<targetPath>/WEB-INF/classes</targetPath>-->
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory>
<includeScope>system</includeScope>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
......
......@@ -30,10 +30,16 @@ import com.yd.api.practitioner.vo.subordinate.QueryTeamMemberDetailResponseVO;
import com.yd.api.practitioner.vo.subordinate.SubordinateSystemMemberQueryRequestVO;
import com.yd.api.practitioner.vo.subordinate.SubordinateSystemMemberQueryResponseVO;
import com.yd.api.result.JsonResult;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryRequestBody;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryResponseVO;
import com.yd.rmi.n22.policy.service.N22PolicyService;
import com.yd.rmi.n22.staff.service.N22StaffService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.awt.*;
......@@ -48,6 +54,10 @@ public class PractitionerController {
private PractitionerBasicInfoService practitionerBasicInfoService;
@Autowired
private ScheduleTrackService scheduleTrackService;
@Autowired
private N22PolicyService n22PolicyService;
@Autowired
private N22StaffService n22StaffService;
/**
* 经纪人登录
* @param requestVO 请求数据
......@@ -607,4 +617,18 @@ public class PractitionerController {
result.setData(responseVO);
return result;
}
/**
* test
* @return
*/
@RequestMapping("/test")
public Object test(@RequestBody PractitionerRankRequestVO requestVO){
JsonResult result = new JsonResult();
PractitionerRankResponseVO responseVO = practitionerService.practitionerRank(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
}
......@@ -164,7 +164,8 @@ public class PractitionerPDFTest {
String templatePDF = "D:\\pcs12\\templatePractitionerContract.pdf";
templatePDF = PDFConfiguration.getProperty("pdf.template");
//模板文件生成零时文件
String tmpPathPDF = PDFConfiguration.getProperty("pdf.temp.path");
String tmpPathPDF = "D:\\pcs12";
tmpPathPDF = PDFConfiguration.getProperty("pdf.temp.path");
String practitionerNO = "SH000012";
//PDF模板输出结果文件
......@@ -185,8 +186,8 @@ public class PractitionerPDFTest {
String signResultPDF = "D:\\pcs12\\signedYD.pdf";
signResultPDF = tmpPathPDF + practitionerNO + "-signedYD.pdf";
String password="UC645YlB";
//password = readFileTxt(PDFConfiguration.getProperty("pdf.keyPasswordFile"));
String password = "UC645YlB";
password = PDFConfiguration.getProperty("pdf.keyPassword");
String keyStorePath="D:\\pcs12\\4929078_m.zuihuibi.cn.pfx";
keyStorePath = PDFConfiguration.getProperty("pdf.keyStorePath");;
......
package com.yd.api.practitioner.vo;
public class Commission {
public String getInsurer() {
return insurer;
}
public void setInsurer(String insurer) {
this.insurer = insurer;
}
private String insurer;
public String getPolicyNo() {
return policyNo;
}
public void setPolicyNo(String policyNo) {
this.policyNo = policyNo;
}
private String policyNo;
public String getEffectiveDate() {
return effectiveDate;
}
public void setEffectiveDate(String effectiveDate) {
this.effectiveDate = effectiveDate;
}
private String effectiveDate;
public String getProductCode() {
return productCode;
}
public void setProductCode(String productCode) {
this.productCode = productCode;
}
private String productCode;
public String getSubSystem() {
return subSystem;
}
public void setSubSystem(String subSystem) {
this.subSystem = subSystem;
}
private String subSystem;
public String getInsured() {
return insured;
}
public void setInsured(String insured) {
this.insured = insured;
}
private String insured;
public String getYearMonth() {
return yearMonth;
}
public void setYearMonth(String yearMonth) {
this.yearMonth = yearMonth;
}
private String yearMonth;
public String getPremium() {
return premium;
}
public void setPremium(String premium) {
this.premium = premium;
}
private String premium;
public String getFyc() {
return fyc;
}
public void setFyc(String fyc) {
this.fyc = fyc;
}
private String fyc;
public String getGradeRate() {
return gradeRate;
}
public void setGradeRate(String gradeRate) {
this.gradeRate = gradeRate;
}
private String gradeRate;
public String getCommission() {
return commission;
}
public void setCommission(String commission) {
this.commission = commission;
}
private String commission;
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
private String note;
}
package com.yd.api.practitioner.vo;
import java.util.List;
public class CommissionItems {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private String name;
public List<Commission> getItems() {
return items;
}
public void setItems(List<Commission> items) {
this.items = items;
}
private List<Commission> items;
}
......@@ -4,5 +4,14 @@ import com.yd.dal.entity.order.CustomerPolicyInfo;
public class PolicyInfo extends CustomerPolicyInfo {
private String relation_id;//N22保单工单guid
public String getRelation_id() {
return relation_id;
}
public void setRelation_id(String relation_id) {
this.relation_id = relation_id;
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.yd.api.practitioner.vo.policy;
public class PolicyListQueryRequestVO {
private Long practitionerId;
private Integer time;
private Integer platform;//平台,1--yd,2--N22
public Long getPractitionerId() {
return practitionerId;
......@@ -19,4 +20,12 @@ public class PolicyListQueryRequestVO {
public void setTime(Integer time) {
this.time = time;
}
public Integer getPlatform() {
return platform;
}
public void setPlatform(Integer platform) {
this.platform = platform;
}
}
......@@ -5,7 +5,8 @@ public class PolicyInfoQueryRequestVO {
private String orderNo;//订单号
private Long policyId;//保单ID
private String policyNo;//保单号
private Integer platform;//平台,1--yd,2--EGolden
private Integer platform;//平台,1--yd,2--N22
private String relation_id;//N22保单工单guid
/**
* 获取属性 orderId 订单ID
......@@ -62,4 +63,12 @@ public class PolicyInfoQueryRequestVO {
public void setPlatform(Integer platform) {
this.platform = platform;
}
public String getRelation_id() {
return relation_id;
}
public void setRelation_id(String relation_id) {
this.relation_id = relation_id;
}
}
......@@ -14,7 +14,8 @@ public class PolicyInfoQueryResponseVO {
private String orderDate;//下单日期
private String startDate;//保险起期
private String endDate;//保险止期
private Double price;//价格
private Double price;//价格,年化保费
private Double totalPrice;//总保费
private String status;//保单状态
private ProductInfo productInfo;//产品信息
private EleInvoiceInfo eleInvoiceInfo;//电子发票信息
......@@ -163,4 +164,12 @@ public class PolicyInfoQueryResponseVO {
public CommonResult getCommonResult() { return commonResult; }
public void setCommonResult(CommonResult commonResult) { this.commonResult = commonResult; }
public Double getTotalPrice() {
return totalPrice;
}
public void setTotalPrice(Double totalPrice) {
this.totalPrice = totalPrice;
}
}
......@@ -19,7 +19,7 @@ public class CustomerPolicyInfo implements Comparable<CustomerPolicyInfo>{
private Double referralAmount;
private Double orderPrice;
private boolean noPlanProduct;
private Integer platform;//1、银盾在线,2、EGolden
private Integer platform;//1、银盾在线,2、N22//EGolden
private Long planId;
private Long productId;
private Long fortuneId;
......
......@@ -78,4 +78,7 @@ public interface AclPractitionerMapper {
List<TeamMemberDetail> queryTeamMemberDetailList(List<Long> practitionerIdList);
List<String> findLeaveOfficeByPractitionerId(Long practitionerId);
List<AclPractitioner> queryAllLifePractitioner();
}
\ No newline at end of file
......@@ -190,4 +190,10 @@ public interface AclPractitionerDALService {
List<TeamMemberDetail> queryTeamMemberDetailList(List<Long> practitionerIdList);
List<String> findLeaveOfficeByPractitionerId(Long practitionerId);
/**
* 查询所有寿险经纪人
* @return
*/
List<AclPractitioner> queryAllLifePractitioner();
}
......@@ -206,4 +206,9 @@ public class AclPractitionerDALServiceImpl implements AclPractitionerDALService
mobileNos.forEach(m -> mobileNoList.add(jpaCryptoConverter.decode(m)));
return mobileNoList;
}
@Override
public List<AclPractitioner> queryAllLifePractitioner() {
return aclPractitionerMapper.queryAllLifePractitioner();
}
}
package com.yd.rmi.n22;
import com.yd.rmi.n22.organization.pojo.GetOrganizationRequestVO;
import com.yd.rmi.n22.organization.pojo.GetOrganizationResponseVO;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryRequestVO;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryRequestVO;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryResponseVO;
import com.yd.util.JsonUtil;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) {
Test test = new Test();
// test.organization();
test.messageTest();
}
private void organization() {
}
private void messageTest() {
String responseJson = null;
StringBuffer stringBuffer = new StringBuffer();
try {
File file = new File("/Users/water/Desktop/request.txt");// c:\Users\water\Desktop\pingan.txt
if (file.isFile() && file.exists()) {
InputStreamReader reader = new InputStreamReader(new FileInputStream(file), "UTF-8");
BufferedReader bufferedReader = new BufferedReader(reader);
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append(line);
}
responseJson = stringBuffer.toString();
reader.close();
}
} catch (Exception e) {
e.printStackTrace();
}
PolicyDetailQueryRequestVO response = (PolicyDetailQueryRequestVO) JsonUtil.jsonToObj(responseJson, PolicyDetailQueryRequestVO.class);
System.out.println(JsonUtil.format(responseJson));
// System.out.println(response.getResponseBody().getPolicyList().get(0).getPolNameChn());
System.out.println(response.getRequestHead().getSourceCode());
// System.out.println("【totalAgreePremium】:"+response.getData().getResultCode());
}
}
package com.yd.rmi.n22.common.pojo;
import lombok.Data;
@Data
public class RequestHead {
private String seqNo;//请求唯一编码
private String sourceCode;//来源ID
private String requestTime;//请求时间
}
package com.yd.rmi.n22.common.pojo;
import lombok.Data;
@Data
public class ResponseHead {
private String seqNo;//请求唯一编码
private String code;//保险经纪接口错误返回代码
private String message;//保险经纪接口错误返回信息
private String esbCode;//esb接口错误返回代码,无esb系统则无需解析
private String esbMessage;//esb接口错误返回信息,无esb系统则无需解析
private String appCode;//app接口错误返回代码,无app对接则无需解析
private String appMessage;//app接口错误返回信息,无app对接则无需解析
private String status;
}
package com.yd.rmi.n22.common.pojo;
import lombok.Data;
@Data
public class SecureEntry {
private String channel;// 客户代码
private String bussinessName;//接口名称
private String accessKey;//加密key
private String accessData;//加密报文
}
package com.yd.rmi.n22.common.utils;
import com.google.common.base.Strings;
import com.yd.rmi.cache.SystemConstants;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.httpclient.params.HttpMethodParams;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
public class N22Utils {
/**
* 发送请求
* @param url 接口地址
* @param requestJson 请求报文
* @return 响应报文
*/
public static String postTransaction(String url,String requestJson){
String responseJson = null;
if(!Strings.isNullOrEmpty(url) && !Strings.isNullOrEmpty(requestJson)){
HttpClient httpClient = new HttpClient();
PostMethod postMethod = new PostMethod(url);
StringBuilder buffer = new StringBuilder();
InputStream inputStream;
BufferedReader reader;
String line;
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(SystemConstants.COMMON_CONNECTION_TIMEOUT);
httpClient.getHttpConnectionManager().getParams().setSoTimeout(SystemConstants.COMMON_SO_TIMEOUT);
try{
postMethod.setDoAuthentication(true);
postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"GBK");
postMethod.setRequestHeader("Content_Type","application/json;charset=utf-8");
postMethod.setRequestHeader("Accept","application/json;charset=utf-8");
RequestEntity requestEntity = new StringRequestEntity(requestJson,"application/json","UTF-8");
postMethod.setRequestEntity(requestEntity);
int statusCode = httpClient.executeMethod(postMethod);
if(statusCode != HttpStatus.SC_OK){
throw new IllegalStateException("transaction method error description :"+postMethod.getStatusLine());
}
inputStream = postMethod.getResponseBodyAsStream();
reader = new BufferedReader(new InputStreamReader(inputStream));
while((line = reader.readLine())!= null){
buffer.append(line);
}
responseJson = buffer.toString();
}catch(Exception e){
e.printStackTrace();
}finally{
postMethod.releaseConnection();
}
}
return responseJson;
}
public static Long getN22IdType(String idType) {
//1-身份证,2-护照,3-港澳身份证,4-台胞证,9-其他
switch(idType){
case "A00001": return 1L;
case "A00002": return 2L;
case "A00006": return 4L;
case "A00003": return 3L;
case "A00012": return 9L;
}
return 9L;
}
public static Long getN22RelationType(String idType) {
return null;
}
public static String getN22PolicyStatus(String policyStatus) {
//(1, "投保")
//(2, "已承保/已回执")
//(3, "未支付/支付失败")
//(7, "支付成功")
//(98, "撤单")
switch(policyStatus){
case "1": return "投保";
case "2": return "已承保/已回执";
case "3": return "未支付/支付失败";
case "7": return "支付成功";
case "98": return "撤单";
}
return "";
}
}
package com.yd.rmi.n22.organization.pojo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class GetOrganizationRequestBody {
@JsonProperty("epid")
private String epId;//saas项目必须,带下划线的epid
@JsonProperty("rolegroup_id")
private String rolegroupId;//机构编码
@JsonProperty("createddateStart")
private String createdDateStart;//创建时间起:yyyy-MM-dd
@JsonProperty("createddateEnd")
private String createdDateEnd;//创建时间止:yyyy-MM-dd
@JsonProperty("effectivedateStart")
private String effectiveDateStart;//生效时间起:yyyy-MM-dd
@JsonProperty("effectivedateEnd")
private String effectiveDateEnd;//生效时间止:yyyy-MM-dd
}
package com.yd.rmi.n22.organization.pojo;
import com.yd.rmi.n22.common.pojo.RequestHead;
import lombok.Data;
@Data
public class GetOrganizationRequestVO {
private RequestHead requestHead;
private GetOrganizationRequestBody requestBody;
}
package com.yd.rmi.n22.organization.pojo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class GetOrganizationResponseBody {
@JsonProperty("Organization")
private Organization organization;
}
package com.yd.rmi.n22.organization.pojo;
import com.yd.rmi.n22.common.pojo.ResponseHead;
import lombok.Data;
@Data
public class GetOrganizationResponseVO {
private ResponseHead responseHead;
private GetOrganizationResponseBody responseBody;
}
package com.yd.rmi.n22.organization.pojo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
@Data
public class Organization {
private List<Role> roles;
@JsonProperty("rolegrouptypes")
private List<RoleGroupType> roleGroupTypes;
@JsonProperty("rolegroups")
private List<RoleGroup> roleGroups;
}
package com.yd.rmi.n22.organization.pojo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class Role {
@JsonProperty("role_id")
private String roleId;
@JsonProperty("rolename")
private String roleName;
private String status;
}
package com.yd.rmi.n22.organization.pojo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class RoleGroup {
@JsonProperty("rolegroup_id")
private String roleGroupId;//组代码
@JsonProperty("rolegroupdescription")
private String roleGroupDescription;//组描述
private String status;//组状态
@JsonProperty("parent_rolegroupid")
private String parentRoleGroupId;//上级组代码
@JsonProperty("org_id")
private String orgId;//机构代码
@JsonProperty("rolegrouptype")
private String roleGroupType;//组类型代码
@JsonProperty("rolegrouptypedesc")
private String roleGroupTypeDesc;//组类型描述
@JsonProperty("createddate")
private String createDate;//创建时间
@JsonProperty("modifieddate")
private String modifiedDate;//修改时间
@JsonProperty("createdby")
private String createdBy;//创建人代码
@JsonProperty("createdname")
private String createdName;//创建人姓名
@JsonProperty("modifiedby")
private String modifiedBy;//修改人代码
@JsonProperty("modifiedname")
private String modifiedName;//修改人代码
@JsonProperty("effectivedate")
private String effectiveDate;//生效时间
@JsonProperty("province_id")
private String provinceId;//省代码
@JsonProperty("province_desc")
private String provinceDesc;//省
@JsonProperty("city_id")
private String cityId;//市代码
@JsonProperty("city_desc")
private String cityDesc;//市
@JsonProperty("area_id")
private String areaId;//区代码
@JsonProperty("area_desc")
private String areaDesc;//区
}
package com.yd.rmi.n22.organization.pojo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class RoleGroupType {
@JsonProperty("rolegrouptype")
private String roleGroupType;
@JsonProperty("rolegrouptypedesc")
private String roleGroupTypeDesc;
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class AgentN22 {
private String tenantCode;//租户代码此栏位无需填写
private String organizationCode;//机构代码此栏位无需填写
private String accountName;//账户名称.此栏位必须填写, 同时自动根据此栏位填写tenantCode, organizationCode和accountId
private String accountId;//账户序列号, 内部使用.此栏位无需填写
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class BuryingPointN22 {
private String Pointname;//埋点名称
private String PointStartDate;//埋点开始时间
private String PointEndDate;//埋点结束时间
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class CarInfo {
@JsonProperty("CARINSUREDRELATION")
private String carInsuredRelation;//被保险人与车辆关系
@JsonProperty("CAROWNER")
private String carOwner;//车主
@JsonProperty("AGREEDRIVERFLAG")
private String agreeDriverFlag;//是否约定驾驶员标志
@JsonProperty("NEWDEVICEFLAG")
private String newDeviceFlag;//是否投保新增设备标志
@JsonProperty("VEHICLECATEGORYCODE")
private String vehicleCategoryCode;//车主性质代码
@JsonProperty("VEHICLEOWNERNATURE")
private String vehicleOwnerNature;//车主性质
@JsonProperty("CARKINDCODE")
private String carKindCode;//车辆种类代码
@JsonProperty("USENATURECODE")
private String useNatureCode;//使用性质代码
@JsonProperty("LICENSEKINDCODE")
private String licenseKindCode;//号牌种类
@JsonProperty("VEHICLE_CODE")
private String vehicleCode;//车型代码
@JsonProperty("VEHICLE_NAME")
private String vehicleName;//车型名称
@JsonProperty("VEHICLE_DESCRIPTION")
private String vehicleDescription;//车型描述
@JsonProperty("VEHICLE_BRAND")
private String vehicleBrand;//品牌名称
@JsonProperty("VEHICLE_FAMILY")
private String vehicleFamily;//车系名称
@JsonProperty("MAKEDATE")
private String makeDate;//出厂日期
@JsonProperty("IMPORT_FLAG")
private String importFlag;//车型种类
@JsonProperty("REGISTMODELCODE")
private String registerModelCode;//行驶证车型
@JsonProperty("LICENSENO")
private String licenseNo;//车牌号码
@JsonProperty("FRAMENO")
private String frameNo;//车架号
@JsonProperty("ENGINENO")
private String engineNo;//发动机号
@JsonProperty("LICENSEFLAG")
private String licenseFlag;//是否上牌照
@JsonProperty("DEMETICCARFLG")
private String domesticCarFlg;//是否外地车
@JsonProperty("CHGOWNERFLAG")
private String chgOwnerFlag;//二手车标志
@JsonProperty("LOANVEHICLEFLAG")
private String loanVehicleFlag;//是否车贷投保多年标志
@JsonProperty("SEATAMOUNT")
private String seatAmount;//座位数
@JsonProperty("COLORCODE")
private String colorCode;//车身颜色代码
@JsonProperty("LICENSECOLORCODE")
private String licenseColorCode;//车牌底色代码
@JsonProperty("HKLICENSENO")
private String hkLicenseNo;//港澳车牌号码
@JsonProperty("TONCOUNT")
private String tonCount;//核定载质量(千克)
@JsonProperty("EXHAUSTSCALE")
private String exhaustScale;//排量
@JsonProperty("CARWEIGHT")
private String carWeight;//整备质量
@JsonProperty("PURCHASEPRICE")
private String purchasePrice;//新车购置价
@JsonProperty("ACTUALVALUE")
private String actualValue;//实际价值
@JsonProperty("ENROLLDATE")
private String enrollDate;//初登日期
@JsonProperty("USEYEARS")
private String useYears;//使用年限
@JsonProperty("RUNAREACODE")
private String runAreaCode;//行驶区域code
@JsonProperty("RUNAREANAME")
private String runAreaName;//行驶区域名称
@JsonProperty("RUNMILES")
private String runMiles;//行驶里程
@JsonProperty("ADDONCOUNT")
private String addOnCount;//交通违法
@JsonProperty("TRANSFERDATE")
private String transferDate;//转移登记日
@JsonProperty("CURRENCY")
private String currency;//币别代码
@JsonProperty("MADEFACTORY")
private String madeFactory;//验车人代码
@JsonProperty("NEWVEHICLEFLAG")
private String newVehicleFlag;//验车状态
@JsonProperty("VEHICLEPRICESERIALNO")
private String vehiclePriceSerialNo;//验车时间
@JsonProperty("CARCHECKREASON")
private String carCheckReason;//验车原因
@JsonProperty("PAYMETHOD")
private String payMethod;//交通违章记录
@JsonProperty("PMFUELTYPE")
private String pmFuelType;//交管能源种类
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class CarShipTax {
@JsonProperty("relation_id")
private String relationId;//保单唯一标识
@JsonProperty("insurance_id")
private String insuranceId;//投保单流水号
@JsonProperty("ALLMASS")
private String allMass;//总质量
@JsonProperty("BASETAXATION")
private String baseTaxation;//减免税计算方式
@JsonProperty("CALCULATEMODE")
private String calculateMode;//计算方式
@JsonProperty("CARKINDJG")
private String carKindJG;//行驶证车型
@JsonProperty("COMPLETEKERBMASS")
private String completekerbMass;//整备质量
@JsonProperty("FLAG")
private String flag;//标志字段
@JsonProperty("FREERATE")
private String freeRate;//减免比例
@JsonProperty("HISPOLICYENDDATE")
private String hisPolicyEndDate;//前次保单止期
@JsonProperty("LATEFEE")
private String lateFee;//滞纳金
@JsonProperty("PAIDFREECERTIFICATE")
private String paidFreeCertificate;//完税(减免税)凭证号
@JsonProperty("PAYENDDATE")
private String payEndDate;//税款所属止期
@JsonProperty("PAYLASTYEAR")
private String payLastYear;//前次缴费年度
@JsonProperty("PAYSTARTDATE")
private String payStartDate;//税款所属起期
@JsonProperty("PAYTAXFLAG")
private String payTaxFlag;//是否已完税
@JsonProperty("PAYTAXWAY")
private String payTaxWay;//缴纳税款方式
@JsonProperty("PREFERENTIALDAYS")
private String preferEntailDays;//减免天数
@JsonProperty("PREFERENTIALFORMUAL")
private String preferEntailFormula;//减免保费计算公式
@JsonProperty("PREFERENTIALPREMIUM")
private String preferEntailPremium;//减免保费
@JsonProperty("PREVIOUSPAY")
private String previousPay;//往年补缴
@JsonProperty("REGISTERAREA")
private String registerArea;//车辆注册地
@JsonProperty("RELIFREASON")
private String reLifReason;//减免税原因
@JsonProperty("SUMPAYTAX")
private String sumPayTax;//车船税合计金额
@JsonProperty("TAXACTUAL")
private String taxActual;//当年应缴
@JsonProperty("TAXCOMCODE")
private String taxComCode;//开具税务机关代码
@JsonProperty("TAXCOMNAME")
private String taxComName;//开具税务机关名称
@JsonProperty("TAXDUE")
private String taxDue;//年单位税额
@JsonProperty("TAXITEMCODE")
private String taxItemCode;//税目代码
@JsonProperty("TAXITEMDETAILCODE")
private String taxItemDetailCode;//税目子类代码
@JsonProperty("TAXITEMDETAILNAME")
private String taxItemDetailName;//税目子类名称
@JsonProperty("TAXITEMNAME")
private String taxItemName;//税目名称
@JsonProperty("TAXPAYERCERTITYPE")
private String taxPayerCertiType;//纳税人证件类型
@JsonProperty("TAXPAYERCODE")
private String taxPayerCode;//纳税人证件号码
@JsonProperty("TAXPAYERIDENTIFIER")
private String taxPayerIdentifier;//纳税人识别号
@JsonProperty("TAXPAYERNAME")
private String taxPayerName;//纳税人名称
@JsonProperty("TAXPAYERTYPE")
private String taxPayerType;//纳税人类型
@JsonProperty("TAXRELIEF")
private String taxRelief;//减免税额
@JsonProperty("TAXRELIFFLAG")
private String taxReLifFlag;//车船税标志
@JsonProperty("TAXUNIT")
private String taxUnit;//计税单位值(吨/辆)
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class CommissionJson {
@JsonProperty("hierarchy")
private String hierarchy;//层级
@JsonProperty("calcType")
private String calcType;//计算方式
@JsonProperty("commissionPercent")
private String commissionPercent;//佣金比率
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class CommissionN22 {
@JsonProperty("commissionId")
private String commissionId;//
@JsonProperty("type")
private String type;//
@JsonProperty("amount")
private String amount;//
@JsonProperty("fromTenantCode")
private String fromTenantCode;//
@JsonProperty("fromOrganCode")
private String fromOrganCode;//
@JsonProperty("toTenantCode")
private String toTenantCode;//
@JsonProperty("toOrganCode")
private String toOrganCode;//
@JsonProperty("toAccountName")
private String toAccountName;//
@JsonProperty("toAccountId")
private String toAccountId;//
@JsonProperty("installment")
private String installment;//
@JsonProperty("settleDate")
private String settleDate;//
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
@Data
public class CommissionsN22 {
@JsonProperty("hierarchy")
private String hierarchy;//层级
@JsonProperty("calcType")
private String calcType;//计算方式
@JsonProperty("commissionPercent")
private String commissionPercent;//佣金比率
@JsonProperty("fromVendor")
private String fromVendor;//
@JsonProperty("toDirectAgent")
private String toDirectAgent;//
@JsonProperty("commissions")
private List<CommissionN22> commissions;//
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class CoverageFee {
private String app;
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class CoverageN22 {
private String coverageId;//险种序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String coverageCode;//险种代码
private String coverageName;//险种名称
private CoverageFee coverageFee;//险种费用. 参考 保单费用模型
private ExtensionDataCoverage extensionData;//扩展栏位, 存放一切未显式定义的内容. 参考险种扩展栏位说明
private String insuredId;//标的序列号, 关联用. 内部使用如果是第三方输入数据, 该字段无需填写.
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class DeclarationN22 {
private String version;//告知问题的版本
private String code;//告知问题的代码
private String parameters;//告知问题的输入参数, 可按照告知参数实际情况选择类型.如果是JSON STRING, 格式需自行定义.
private String remark;//告知问题的备注
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
import java.util.Date;
@Data
public class DocumentN22 {
private String documentType;//文档类型
private String coverageCode;//险种(保项)的代码
private String uri;//文档URI
private Boolean front;//是否为正面,如果是,则true; 否则false
private Date uploadTime;//上传时间
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class DriverInfo {
@JsonProperty("SERIALNO")
private String serialNo;//顺序号
@JsonProperty("DRIVINGLICENSENO")
private String drivingLicenseNo;//驾驶证号码
@JsonProperty("CHANGELESSFLAG")
private String changeLessFlag;//是否固定驾驶员标志
@JsonProperty("DRIVERNAME")
private String driverName;//驾驶员姓名
@JsonProperty("IDENTIFYNUMBER")
private String identifyNumber;//身份证号码
@JsonProperty("SEX")
private String sex;//性别
@JsonProperty("AGE")
private String age;//年龄
@JsonProperty("MARRIAGE")
private String marriage;//婚姻状况
@JsonProperty("ACCEPTLICENSEDATE")
private String acceptLicenseDate;//初次领证日期
@JsonProperty("DRIVINGYEARS")
private String drivingYears;//驾龄
@JsonProperty("DRIVINGCARTYPE")
private String drivingCarType;//准驾车型
@JsonProperty("APPLIYEARTYPE")
private String applyYearType;//投保年度
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class ExtensionDataCoverage {
private String installment;//交费期间,参考缴费方式
private String installmentName;//缴费期间名称
private String coveragePeriod;//保障期间
private String coveragePeriodName;//保障期间名称
private String payPeriod;//年金/生存金/满期金领取期间
private String payPeriodName;//
private String payInsure;//保证领取期间
private String sumInsured;//保额
private String benefitLevel;//档次
private String unit;//份数
private String coverageType;//险种类型,主附险区分标志 0主险 1附加险
@JsonProperty("displayPremIndi")
private String displayPremInDi;//是否显示保费
@JsonProperty("autoRenewalIndi")
private String autoRenewalInDi;//是否自动续保
private String firstYearPrem;//首年保费
private String paymentFreq;//缴费频率
private String paymentFreqName;//缴费频率名称
private String externalCode;//保司险种代码
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
@Data
public class ExtensionDataInsured {
private String insuredPartySerialId;//如果是第三方输入数据, 该字段无需填写.
private String relationWithPH;//与投保人的关系, 参考人际关系
private String idValidTill;//证件有效期
@JsonProperty("idLongTermIndi")
private String idLongTermInDi;//是否为长期
private String maritalStatus;//婚姻状况
private String jobCategory;//职业类别
private String height;//身高
private String weight;//体重
private String annualIncome;//年收入
@JsonProperty("smokingIndi")
private String smokingInDi;//是否抽烟Y/N
@JsonProperty("socialInsuranceInDi")
private String socialInsuranceInDi;//是否社保Y/N
private String declarations ;//被保人文档清单, 元素模型参考文档模型
private String documents ;//被保人告知清单, 元素模型参考告知模型
private String age ;//年龄
private String nationality;//国籍
private String jobCateCode;//职业代码
@JsonProperty("legalIndi")
private String legalInDi;//是否法定受益人(Y,N)仅限受益人类型为2
private String job1 ;//一级职业
@JsonProperty("Job2")
private String job2 ;//二级职业
@JsonProperty("Job3")
private String job3 ;//三级职业
@JsonProperty("Job4")
private String job4 ;//四级职业
private String workUnit;//工作单位
@JsonProperty("carinfo")
private CarInfo carInfo;
@JsonProperty("driver")
private List<DriverInfo> driverInfos;
@JsonProperty("CARSHIPTAX")
private CarShipTax carShipTax;
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class ExtensionDataParticipant {
private String insuredPartySerialId;//如果是第三方输入数据, 该字段无需填写.
private String relationWithPH;//与投保人的关系, 参考人际关系
private String idValidTill;//证件有效期
@JsonProperty("idLongTermIndi")
private String idLongTermInDi;//是否为长期
private String maritalStatus;//婚姻状况
private String jobCategory;//职业类别
private String height;//身高
private String weight;//体重
private String annualIncome;//年收入
@JsonProperty("smokingIndi")
private String smokingInDi;//是否抽烟Y/N
@JsonProperty("socialInsuranceInDi")
private String socialInsuranceInDi;//是否社保Y/N
private String age ;//年龄
private String nationality;//国籍
private String jobCateCode;//职业代码
@JsonProperty("legalIndi")
private String legalInDi;//是否法定受益人(Y,N)仅限受益人类型为2
private String job1 ;//一级职业
@JsonProperty("Job2")
private String job2 ;//二级职业
@JsonProperty("Job3")
private String job3 ;//三级职业
@JsonProperty("Job4")
private String job4 ;//四级职业
private String workUnit;//工作单位
private String beneficiaryType;//受益类型, 参考收益类型 1.生存,2身故
private String relationWithInsured;//与被保人的关系, 参考人际关系
private String benefitOrder;//受益顺序
private String benefitRatio;//受益比例,同一受益顺序下,受益比例之和必须为100
private String declarations;//受益人告知清单, 元素模型参考告知模型
private String documents;//受益人文档清单, 元素模型参考文档模型
private String partySerialId;//
@JsonProperty("coverageSeriaId")
private String coverageSerialId;//
@JsonProperty("readDeclation")
private String readDeclaration;//
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
@Data
public class ExtensionN22 {
private List<DeclarationN22> declarations;//保单级告知, 参考保单级告知模型
private List<DocumentN22> documents;//保单级文档, 参考保单级文档模型
private List<ShortMessageN22> shortMessages;//短信,参考短信模型
private List<UwResultN22> uwResults;//核保结果,参考核保结果模型
private PaymentInfoN22 paymentInfo;//支付信息,参考支付信息模型
private String advice;//建议
private String showAdvice;//是否显示建议(true : false)
private Integer verificationType;//1,2,3 身份验证类型
private Boolean verificationResult;//true,false 验证结果
private CommissionJson commissionJson;//佣金层级,参考佣金层级模型
private Object agentHierarchy;//代理人层级
@JsonProperty("csms")
private String csMs;//表示从csms页面进入的数据,值是租户CODE
private String thirdPartyReturnUrl;//第三方接口调用投保流程页面完成后,返回第三方页面时的路径
private Long expirationTime;//支付超时时间戳
private NextPaymentInfo nextPaymentInfo;//续期支付信息(北京人寿B2C添加,B2A不需要),参考续期支付信息模型
private String currentStep;//当前投保步骤键值
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class InstallmentPremiumN22 {
private String periods;//期数
private String share_ratio;//分期比率
private String premium;//分期金额
private String chargedate;//分期付款时间
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
import java.util.List;
@Data
public class InsuredDetailN22 {
private String feeId;//费用序列号, 内部使用.目前该字段无需填写.
private String sgp;//毛保费
private String agp;//调整后毛保费
private String snp;//净保费
private String anp;//调整后净保费
private String app;//实付保费
private Object feeAmounts;//费用明细清单
private String insuredId;//标的序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String insuredType;//标的类型. 参考标的类型
private String insuredName;//标的名称
private String keyNo;//标的关键号码. 例如身份证号码, 车牌号码等
private InsuredFee insuredFee;//标的费用. 参考 保单费用模型
private ExtensionDataInsured extensionData;//扩展栏位, 存放一切未显式定义的内容. 参考标的扩展栏位说明
private List<ParticipantN22> participants;//被保人受益人
private List<CoverageN22> coverages;//险种. 参考 险种模型
private String policyId;//保单序列号, 关联用. 内部使用如果是第三方输入数据, 该字段无需填写.
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class InsuredFee {
private String app;
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class NextPaymentInfo {
private String nextHolderName;//续期帐号户名
private String nextBankCardType;//续期银行卡类型
private String nextBankName;//续期银行
private String nextBankCard;//续期银行卡号
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class NoticesN22 {
private String noticeNo;//函件编号
private String noticeName;//函件名称
private String noticeType;//函件类型
private String noticeUrl;//函件地址
private String letterStatus;//函件是否回复
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class ParticipantN22 {
private String insuredParticipantId;//被保人受益人主键 如果是第三方输入数据, 该字段无需填写.
private String firstName;//姓名
private String middleName;//中间名
private String lastName;//姓
private String fullName;//姓名
private String idNo;//证件号码
private String email;//电子邮箱地址
private String addressLine1;//地址栏1
private String addressLine2;//地址栏2
private String addressLine3;//地址栏3
private String gender;//性别.F: 女; M: 男
private String dateOfBirth;//出生日期 1988/01/01 00:00:00
private ExtensionDataParticipant extensionData;//扩展栏位, 存放一切未显式定义的内容. 参考被保人扩展栏位说明, 受益人扩展栏位说明
private String accountId;//账号序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String accountName;//账号名称.填写本栏位自动填写accountId.如果本栏位不为空, 系统在没有找到该用户的情况下, 会使用当前操作用户的租户和机构, 主动创建账户.
private String idType;//证件类型
private String mobile;//手机号码
private String customerType;//2被保人/ 3受益人
private String countryCode;//国家代码
private String provinceCode;//省份代码
private String cityCode;//城市代码
private String regionCode;//区域代码
private String postCode;//邮政编码
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class PaymentInfoN22 {
private String bankCardType;//支付方式,参考支付方式
private String mobile;//银行预留的手机号码
private String bankName;//银行
private String bankCard;//银行卡号
private String paymentMsg;//支付失败原因
private String paymentTransNo;//交易流水号,非页面输入,在调用支付接口后,自动设置此流水号
private String paymentDate;//支付日期
private String paymentStatus;//支付状态,参考支付状态
private String bankCode;//银行代码 ,参考银行代码
private String accountType;//帐户类型,参考帐户类型
private String credit;//是否为信用卡(false : true)(可以不填,通过bankCardType辨别。)
private String bankAccountCity;//帐户所在城市
private String bankAccountProvince;//帐户所在省份
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class PolicyDetailQueryRequestBody {
private String Epid; //epid :saas为当前库的代码如e00008 非saas忽略
private String Loginname; //员工ID
private String policyNo; //保单号
private String relation_id; //保单工单guid
private String staff_id; //员工内部ID
private Integer clearDataFlag; //是否明文数据:1是,0否,数据脱敏时有效
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.yd.rmi.n22.common.pojo.RequestHead;
import lombok.Data;
@Data
public class PolicyDetailQueryRequestVO {
private RequestHead requestHead;
private PolicyDetailQueryRequestBody requestBody;
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
public class PolicyDetailQueryResponseBody {
private String policyId;//保单序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String productId;//产品序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String vendorCode;//产品提供商代码, 必须提供
private String vendorName;//产品供应商名称(保司名称)
private String productCode;//产品代码, 必须提供
private String productName;//产品名称
private String productVersion;//产品版本, 必须提供.
private String effectiveDate;//保单生效日2017/10/18 00:00:00
private String expiryDate;//保单失效日2017/10/18 00:00:00
private String quotationNo;//订单号, 内部使用.
private String policyNo;//保单号.
private String issueDate;//出单日
private String quoteDate;//首次报价日
private String thirdQuoteNo;//第三方(例如:保司)报价单号
private String thirdOrderNo;//第三方(例如:保司)订单号
private String ePolicyDownloadUrl;//电子保单下载地址
private Double premium;//保费.
private Boolean renewal;//是否是续保 Y/N
private String lastPolicyNo;//上一张保单的保单号, 只有在续保件的时候才会有值, 并且必须有值.
private String policyStatus;//保单状态.
private String policyFee;//保单层级费用. 参考 保单费用 说明
private CommissionsN22 commissions;//保单级佣金. 参考 保单佣金 说明
private ExtensionN22 extensionData;//扩展栏位, 存放一切未显式定义的内容. 参考保单扩展栏位 说明
private List<InsuredDetailN22> insureds;//标的. 例如寿险的被保人, 车险的车辆等
private PolicyHolderN22 policyHolder;//投保人. 参考 投保人 说明
private AgentN22 agent;//代理人. 参考 代理人 说明
private String thirdPartyAgentId;//第三方代理人号,对于第三方的只做保存,用于报表显示.
private String thirdPartyAgentName;//第三方代理人姓名,对于第三方的只做保存,用于报表显示.
private String order_player;//打单员
private String beto_rolegroup;//机构code
private String beto_rolegroupdesc;//机构名称
private List<BuryingPointN22> buryingPointList;//互联网产品埋点列表,用于记录在投保过程中各个阶段的时间点
private String BuryingVideo;//埋点视频编号
private List<InstallmentPremiumN22> installment_premium;//保单分期列表
private String sourceCode;//保单来源,如XXAPP下单,在保单同步时填写后,会在这里体现
private String butler;//管家
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.yd.rmi.n22.common.pojo.ResponseHead;
import lombok.Data;
@Data
public class PolicyDetailQueryResponseVO {
private ResponseHead responseHead;
private PolicyDetailQueryResponseBody responseBody;
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class PolicyHolderN22 {
private String firstName;//名
private String middleName;//中间名
private String lastName;//姓
private String fullName;//姓名
private String idNo;//证件号码
private String email;//电子邮箱地址
private String addressLine1;//地址栏1
private String addressLine2;//地址栏2
private String addressLine3;//地址栏3
private String gender;//性别.F:女;M:男
private String dateOfBirth;//1988/1/1 0:00
private String accountId;//账号序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String accountName;//账号名称.填写本栏位自动填写accountId.如果本栏位不为空, 系统在没有找到该用户的情况下, 会使用当前操作用户的租户和机构, 主动创建账户
private String idType;//证件类型
private String mobile;//手机号码
private String countryCode;//国家代码
private String provinceCode;//省份代码
private String cityCode;//城市代码
private String regionCode;//区域代码
private String postCode;//邮政编码
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class ShortMessageN22 {
private String phone;//手机号码
private String content;//短信内容
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import lombok.Data;
@Data
public class UwResultN22 {
private String resultCode;//核保结果代码
private Object reasons;//核保不通过时的原因
}
package com.yd.rmi.n22.policy.pojo.policylist;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class InsuredInfoN22 {
private String insuredName;//被保人姓名
@JsonProperty("cust_guid")
private String customerGuid;//被保人唯一ID
}
package com.yd.rmi.n22.policy.pojo.policylist;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
@Data
public class PolicyInfoN22 {
@JsonProperty("relation_id")
private String relationId;//保单唯一ID
@JsonProperty("policyno")
private String policyNo;//保单号
@JsonProperty("app_num")
private String appNum;//订单号
@JsonProperty("company_guid")
private String companyGuid;//保司唯一ID
@JsonProperty("companyname")
private String companyName;//保司名称
@JsonProperty("policystatus")
private String policyStatus;//保单状态
@JsonProperty("Pol_app_date")
private String polAppDate;//起保时间
@JsonProperty("channel_guid")
private String channelGuid;//渠道唯一ID
@JsonProperty("channelname")
private String channelName;//渠道名称
@JsonProperty("insurancename")
private String insuranceName;//投保人姓名
@JsonProperty("insuredname")
private String insuredName;//被保人姓名
@JsonProperty("staff_id")
private String staffId;//员工内部唯一编号
@JsonProperty("agent_id")
private String agentId;//员工工号
@JsonProperty("staffname")
private String staffName;//员工姓名
@JsonProperty("pol_name_chn")
private String polNameChn;//保单计划名称
@JsonProperty("CONTENT")
private String content;//保单对应计划中主险的展业信息
private String premium;//保费
@JsonProperty("insureArray")
private List<InsuredInfoN22> insuredArray;//被保人列表
@JsonProperty("Enddate")
private String endDate;//保单止期
@JsonProperty("product_name")
private String productName;//计划的主险险种名称
private String insuranceType;//险种分类
@JsonProperty("MyTrustPolicy")
private String myTrustPolicy;//我托管的保单
private String lastTimeToPay;//最近一次的应缴时间
private String butler;//管家
}
package com.yd.rmi.n22.policy.pojo.policylist;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
/**
* IsInsuredArray、MyPolicyType必填,staffInfo必填,有渠道编号则IsInsuredArray、MyPolicyType必填,staffInfo不必填
*/
@Data
public class PolicyListQueryRequestBody {
private String epid;//epid :saas为当前库的代码如_e00008 非saas忽略
private String policyno;//保单号
private String policystatus;//保单状态
private String staffInfo;//可填员工内部唯一编号staffId
private String loginname;//登录工号
private String staff_name;//员工姓名
private String staffInfo2;//MyPolicyType=1时,选填
private String insurance_guid;//投保人唯一ID
private String insured_guid;//被保人唯一ID
private String insurancename;//投保人姓名
private String insuredname;//被保人姓名
private String starttime;//保险起期
private String endtime;//保险止期
@JSONField(name="MyPolicyType")
private String MyPolicyType;//我管的1、我的2
private String RolegroupId;//部门ID
private String IsInsuredArray;//是否需要被保人列表,1需要,0不需要
private String product_name;//保单险种名称
private String order_player;//打单员
private String MyTrustPolicy;//我托管的保单,填1查询,其他不查
private String chanelCode;//渠道编码
private String buyer_id;//订单编号
private String relationType;//保单关联人类型,保单投保人或被保人同: 1投保人,2投保人,3投保人或被保人
private String insuranceID;//投保人证件号码
private String insurdId;//被保人证件号码
private String beneficiary_GUID;//受益人唯一ID
private String beneficiaryName;//受益人姓名
private String beneficiaryId;//受益人证件号码
private String source_code;//保单来源,保单同步时会传进来
private String appl_num;//投保单号
private String butler;//管家
private String IsInsureArray;//
}
package com.yd.rmi.n22.policy.pojo.policylist;
import com.yd.rmi.n22.common.pojo.RequestHead;
import lombok.Data;
@Data
public class PolicyListQueryRequestVO {
private RequestHead requestHead;
private PolicyListQueryRequestBody requestBody;
}
package com.yd.rmi.n22.policy.pojo.policylist;
import lombok.Data;
import java.util.List;
@Data
public class PolicyListQueryResponseBody {
private List<PolicyInfoN22> policyList;
}
package com.yd.rmi.n22.policy.pojo.policylist;
import com.yd.rmi.n22.common.pojo.ResponseHead;
import lombok.Data;
@Data
public class PolicyListQueryResponseVO {
private ResponseHead responseHead;
private PolicyListQueryResponseBody responseBody;
}
package com.yd.rmi.n22.policy.service;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryRequestBody;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryResponseVO;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryRequestBody;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryResponseVO;
public interface N22PolicyService {
PolicyListQueryResponseVO policyList(PolicyListQueryRequestBody requestBody);
PolicyDetailQueryResponseVO policyInfo(PolicyDetailQueryRequestBody requestBody);
}
package com.yd.rmi.n22.policy.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.yd.rmi.cache.SystemConfigService;
import com.yd.rmi.n22.common.utils.N22Utils;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryRequestBody;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryResponseVO;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryRequestBody;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryResponseVO;
import com.yd.rmi.n22.policy.service.N22PolicyService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.UUID;
@Service
public class N22PolicyServiceImpl implements N22PolicyService {
@Autowired
private SystemConfigService systemConfigService;
@Override
public PolicyListQueryResponseVO policyList(PolicyListQueryRequestBody requestBody) {
JSONObject obj = new JSONObject(); //传参
PolicyListQueryResponseVO rObj; //返回结果
JSONObject requestHead = new JSONObject();
requestHead.put("seqNo", UUID.randomUUID().toString());
obj.put("requestHead", requestHead);
obj.put("requestBody", requestBody);
String url = systemConfigService.getSingleConfigValue("N22_URL_Policy_List ");
String result = N22Utils.postTransaction(url, obj.toString());
rObj = JSONObject.parseObject(result, PolicyListQueryResponseVO.class);
return rObj;
}
@Override
public PolicyDetailQueryResponseVO policyInfo(PolicyDetailQueryRequestBody requestBody) {
JSONObject obj = new JSONObject(); //传参
PolicyDetailQueryResponseVO rObj; //返回结果
JSONObject requestHead = new JSONObject();
requestHead.put("seqNo", UUID.randomUUID().toString());
obj.put("requestHead", requestHead);
obj.put("requestBody", requestBody);
String url = systemConfigService.getSingleConfigValue("N22_URL_Policy_Info ");
String result = N22Utils.postTransaction(url, obj.toString());
rObj = JSONObject.parseObject(result, PolicyDetailQueryResponseVO.class);
return rObj;
}
}
package com.yd.rmi.n22.salary.pojo;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
@Data
public class SalaryDetails {
private String SalaryName;
private String Appl_No;
private String CustomerName;
private String SalaryType;
private String PayPeriod;
private String Pol_Name_Chn;
private Double commission;
private Double tax_commission;
private int Tax;
private Double AfterTaxCommissionTax;
private String GrantDate;
private String Paid_Status;
private int Year;
private String Month;
private String RoleGroupDescription;
private String LoginName;
private String StaffName;
@JSONField(name="Class")
private String grade;
private String AddFyc;
private int CheckStatus;
private String CheckDate;
private Double sumcommission;
private Double tax_free_comis;
private Double value_add_tax;
}
package com.yd.rmi.n22.salary.pojo;
import lombok.Data;
@Data
public class SalaryDetailsSearchRequestBody {
private String Epid ; //saas为当前库的代码如_e00008 非saas忽略
private String LoginName; //员工工号(登录工号)
private String StartDate; //业绩开始时间,格式为:2019-02-01
private String EndDate; //业绩结束时间,格式为:2019-03-31
private String Paid_Status; //发放状态:0未生效,1未发放,2发放中,3.1已发放(paid不为空),3.2发放中(paid为空),4审核中
private String SearchType; //1.我的,2.我管的
private String CheckStatus; //对账状态:1对账,2未对账。
private String TokenID; //签名ID(待开发)
private String StaffID; //Staffed和loginname任一必填
}
package com.yd.rmi.n22.salary.pojo;
import lombok.Data;
import java.util.List;
@Data
public class SalaryDetailsSearchResponseBody {
private List<SalaryDetails> SalaryDetailsLIST;
}
package com.yd.rmi.n22.salary.pojo;
import com.yd.rmi.n22.common.pojo.ResponseHead;
public class SalaryDetailsSearchResponseVO {
private ResponseHead responseHead;
private SalaryDetailsSearchResponseBody responseBody;
public ResponseHead getResponseHead() {
return responseHead;
}
public void setResponseHead(ResponseHead responseHead) {
this.responseHead = responseHead;
}
public SalaryDetailsSearchResponseBody getResponseBody() {
return responseBody;
}
public void setResponseBody(SalaryDetailsSearchResponseBody responseBody) {
this.responseBody = responseBody;
}
}
package com.yd.rmi.n22.salary.service;
import com.yd.rmi.n22.salary.pojo.SalaryDetails;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchRequestBody;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchResponseVO;
import java.util.List;
import java.util.Map;
public interface N22SalaryService {
SalaryDetailsSearchResponseVO salaryDetailsSearch(SalaryDetailsSearchRequestBody salaryDetailsSearchRequestBody);
Map<String, List<SalaryDetails>> groupByYearmonth(List<SalaryDetails> salaryDetailsList);
}
package com.yd.rmi.n22.salary.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.yd.rmi.cache.SystemConfigService;
import com.yd.rmi.n22.common.utils.N22Utils;
import com.yd.rmi.n22.salary.pojo.SalaryDetails;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchRequestBody;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchResponseVO;
import com.yd.rmi.n22.salary.service.N22SalaryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
@Service
public class N22SalaryServiceImpl implements N22SalaryService {
private final static Logger logger = LoggerFactory.getLogger(N22SalaryServiceImpl.class);
@Autowired
private SystemConfigService systemConfigService;
@Override
public SalaryDetailsSearchResponseVO salaryDetailsSearch(SalaryDetailsSearchRequestBody salaryDetailsSearchRequestBody) {
JSONObject obj = new JSONObject(); //接口传参
JSONObject requestHead = new JSONObject();
requestHead.put("seqNo", UUID.randomUUID().toString());
obj.put("requestHead", requestHead);
obj.put("requestBody", salaryDetailsSearchRequestBody);
logger.info("N22佣金明细查询请求报文:"+obj.toString());
String url = systemConfigService.getSingleConfigValue("N22_URL_Salary_Details_Search");
String result = N22Utils.postTransaction(url, obj.toString());
logger.info("N22佣金明细查询响应报文:"+result);
SalaryDetailsSearchResponseVO response = JSONObject.parseObject(result, SalaryDetailsSearchResponseVO.class);
return response;
}
@Override
public Map<String, List<SalaryDetails>> groupByYearmonth(List<SalaryDetails> salaryDetailsList) {
Map<String, List<SalaryDetails>> result = new HashMap<String, List<SalaryDetails>>();
int year = 0;
String month = "";
String key = "";
for (SalaryDetails SalaryDetails : salaryDetailsList) {
year = SalaryDetails.getYear();
month = SalaryDetails.getMonth();
key = year + month;
List<SalaryDetails> childList = result.get(key);
if (childList == null) {
childList = new ArrayList<SalaryDetails>();
result.put(key, childList);
}
childList.add(SalaryDetails);
}
result.forEach((cc, list) -> {
System.out.println("CheckDate is:" + cc);
list.forEach((SalaryDetails) -> {
System.out.println("SalaryDetails is:" + SalaryDetails);
});
});
return result;
}
}
package com.yd.rmi.n22.staff.pojo;
import lombok.Data;
@Data
public class GetStaffNewRequestBody {
private String epid; //默认空
private String staffname; ///销售姓名
private String loginname; //销售在本系统中的工号
private String mobile; //销售电话 与loginname任一必传
private String IdentifiedID; //身份证号码
private String mgnt_org_code; //所属机构
private String role; //人员角色
private String director_level; //总监等级
private String OrgAgentRole; //机构负责人角色
private String Rolegroup_id; //员工所在的组ID
private String Channel_id; //根据渠道id可找到渠道所关联的渠道机构下的的人员信息
private String Employeddate_start; //入职时间(起)
private String Employeddate_end; //入职时间(止)
private String createddate_start; //创建时间(起)
private String createddate_end; //创建时间(止)
private String modifieddate_start; //修改时间(起)
private String modifieddate_end; //修改时间(止)
}
package com.yd.rmi.n22.staff.pojo;
import lombok.Data;
import java.util.List;
@Data
public class GetStaffNewResponseBody {
private List<Staff> staff;
}
package com.yd.rmi.n22.staff.pojo;
import com.yd.rmi.n22.common.pojo.ResponseHead;
public class GetStaffNewResponseVO {
private ResponseHead responseHead;
private GetStaffNewResponseBody responseBody;
public ResponseHead getResponseHead() {
return responseHead;
}
public void setResponseHead(ResponseHead responseHead) {
this.responseHead = responseHead;
}
public GetStaffNewResponseBody getResponseBody() {
return responseBody;
}
public void setResponseBody(GetStaffNewResponseBody responseBody) {
this.responseBody = responseBody;
}
}
package com.yd.rmi.n22.staff.service;
import com.yd.rmi.n22.staff.pojo.GetStaffNewRequestBody;
import com.yd.rmi.n22.staff.pojo.GetStaffNewResponseVO;
public interface N22StaffService {
GetStaffNewResponseVO getStaffNew(GetStaffNewRequestBody getStaffNewRequestBody);
String queryN22LoginNameByMobileNo(String mobileNo);
}
package com.yd.rmi.n22.staff.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.yd.rmi.cache.SystemConfigService;
import com.yd.rmi.n22.common.utils.N22Utils;
import com.yd.rmi.n22.policy.service.impl.N22PolicyServiceImpl;
import com.yd.rmi.n22.staff.pojo.GetStaffNewRequestBody;
import com.yd.rmi.n22.staff.pojo.GetStaffNewResponseVO;
import com.yd.rmi.n22.staff.pojo.Staff;
import com.yd.rmi.n22.staff.service.N22StaffService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.UUID;
@Service
public class N22StaffServiceImpl implements N22StaffService {
@Autowired
private SystemConfigService systemConfigService;
@Override
public GetStaffNewResponseVO getStaffNew(GetStaffNewRequestBody getStaffNewRequestBody) {
JSONObject obj = new JSONObject(); //传参
JSONObject requestHead = new JSONObject();
requestHead.put("seqNo", UUID.randomUUID().toString());
obj.put("requestHead", requestHead);
obj.put("requestBody", getStaffNewRequestBody);
String url = systemConfigService.getSingleConfigValue("N22_URL_Get_Staff_New");
String result = N22Utils.postTransaction(url, obj.toString());
GetStaffNewResponseVO response = JSONObject.parseObject(result, GetStaffNewResponseVO.class);
return response;
}
@Override
public String queryN22LoginNameByMobileNo(String mobileNo) {
// 根据手机号查询经纪人在N22系统的Agent_id
GetStaffNewRequestBody getStaffNewRequestBody = new GetStaffNewRequestBody();
getStaffNewRequestBody.setMobile(mobileNo);
GetStaffNewResponseVO resp = this.getStaffNew(getStaffNewRequestBody);
String agent_id = null;
if(resp != null){
if ("查询成功".equals(resp.getResponseHead().getMessage())){
List<Staff> staffList = resp.getResponseBody().getStaff();
if (staffList.size() > 0) {
Staff staff = staffList.get(0);
agent_id = staff.getAgent_id();
}
}
}
return agent_id;
}
}
......@@ -20,6 +20,7 @@ import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
......@@ -1525,4 +1526,107 @@ public class CommonUtil {
return line;
}
/**
* 获取本月开始日期
* @return
*/
public static String getBeginDayOfMonth() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, 0);
int actualMinimum = calendar.getActualMinimum(Calendar.DAY_OF_MONTH);
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONDAY), actualMinimum, 00, 00, 00);
System.out.println("本月开始时间------"+dateParseString(calendar.getTime(), "yyyy-MM-dd"));
return dateParseString(calendar.getTime(), "yyyy-MM-dd");
}
/**
* 获取本月结束日期
* @return
*/
public static String getEndDayOfMonth() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println("本月结束时间------"+dateParseString(calendar.getTime(), "yyyy-MM-dd"));
return dateParseString(calendar.getTime(), "yyyy-MM-dd");
}
/**
* 获取当前日期所在季度的开始日期和结束日期
* 季度一年四季, 第一季度:1月-3月, 第二季度:4月-6月, 第三季度:7月-9月, 第四季度:10月-12月
* @param isFirst true表示查询本季度开始日期 false表示查询本季度结束日期
* @return
*/
public static String getStartOrEndDayOfQuarter(Boolean isFirst) {
LocalDate today = LocalDate.now();
LocalDate resDate = LocalDate.now();
if (today == null) {
today = resDate;
}
Month month = today.getMonth();
Month firstMonthOfQuarter = month.firstMonthOfQuarter();
Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
if (isFirst) {
resDate = LocalDate.of(today.getYear(), firstMonthOfQuarter, 1);
} else {
resDate = LocalDate.of(today.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(today.isLeapYear()));
}
System.out.println("本季度时间------"+resDate.toString());
return resDate.toString();
}
//获取本年的开始时间
public static String getBeginDayOfYear() {
Calendar c = Calendar.getInstance();
c.set(Calendar.MONTH, 0);
c.set(Calendar.DATE, 1);
System.out.println("本年开始时间------"+dateParseString(c.getTime(), "yyyy-MM-dd"));
return dateParseString(c.getTime(), "yyyy-MM-dd");
}
//获取本年的结束时间
public static String getEndDayOfYear() {
Calendar c = Calendar.getInstance();
c.set(Calendar.MONTH, 11);
c.set(Calendar.DATE, 31);
System.out.println("本年结束时间------"+dateParseString(c.getTime(), "yyyy-MM-dd"));
return dateParseString(c.getTime(), "yyyy-MM-dd");
}
/**
* 获得指定日期的前一天
*
* @param specifiedDay
* @return
* @throws Exception
*/
public static String getSpecifiedDayBefore(String specifiedDay) {
// SimpleDateFormat simpleDateFormat = new
// SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date date = null;
try {
date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day - 1);
String dayBefore = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
return dayBefore;
}
}
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