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");;
......
......@@ -34,6 +34,7 @@ import com.yd.dal.entity.product.Product;
import com.yd.dal.entity.product.ProductE;
import com.yd.dal.entity.product.ProductPlan;
import com.yd.dal.mapper.practitioner.AgAclLifePractitionerSalaryMapper;
import com.yd.dal.mapper.customer.AclPractitionerMapper;
import com.yd.dal.service.customer.AclFileUploadDALService;
import com.yd.dal.service.customer.AclPractitionerDALService;
import com.yd.dal.service.meta.MdDropOptionsDALService;
......@@ -45,13 +46,29 @@ import com.yd.rmi.ali.oss.vo.OssOperateTypeEnum;
import com.yd.rmi.ali.oss.vo.OssRequestVO;
import com.yd.rmi.ali.oss.vo.OssResponseVO;
import com.yd.rmi.cache.SystemConfigService;
import com.yd.rmi.n22.common.utils.N22Utils;
import com.yd.rmi.n22.policy.pojo.policydetail.*;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyInfoN22;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryRequestBody;
import com.yd.rmi.n22.policy.service.N22PolicyService;
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 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 com.yd.util.CommonUtil;
import com.yd.util.config.ZHBErrorConfig;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.*;
import java.math.BigDecimal;
import java.util.*;
@Service("practitionerBasicInfoService")
......@@ -77,60 +94,271 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
private PractitionerService practitionerService;
@Autowired
private AgAclLifePractitionerSalaryMapper practitionerSalaryMapper;
@Autowired
private N22PolicyService n22PolicyService;
@Autowired
private N22StaffService n22StaffService;
@Autowired
private N22SalaryService n22SalaryService;
@Autowired
private AclPractitionerMapper practitionerMapper;
@Override
public PolicyListQueryResponseVO policyListQuery(PolicyListQueryRequestVO requestVO) {
PolicyListQueryResponseVO responseVO = new PolicyListQueryResponseVO();
Long practitionerId = requestVO.getPractitionerId();
if(practitionerId !=null){
Integer platform = requestVO.getPlatform();
if (practitionerId != null) {
String mobileNo = aclPractitionerDALService.findMobileNoByPractitionerId(practitionerId);
if(!Strings.isNullOrEmpty(mobileNo) && mobileNo.length() == 11){
if (!Strings.isNullOrEmpty(mobileNo) && mobileNo.length() == 11) {
List<PolicyInfo> policyInfoList = new ArrayList<>();
Integer time = requestVO.getTime();
//1、线上
getPolicyListForYD(policyInfoList,practitionerId,time);
//2、线下
getPolicyListForEGolden(policyInfoList,mobileNo,time);
if (Integer.valueOf("1").equals(platform)) {
//1、线上
getPolicyListForYD(policyInfoList, practitionerId, time);
} else {
//2、线下
// getPolicyListForEGolden(policyInfoList, mobileNo, time);
try {
getPolicyListFromN22(policyInfoList, mobileNo, time);
} catch (Exception e) {
e.printStackTrace();
responseVO.setCommonResult(new CommonResult(false, e.getMessage()));
return responseVO;
}
}
responseVO.setPolicyInfoList(policyInfoList);
Collections.sort(policyInfoList);
responseVO.setCommonResult(new CommonResult(true,ZHBErrorConfig.getErrorInfo("800000")));
}else{
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
} else {
responseVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("820001")));
}
}else{
} else {
String[] params = {"practitionerId"};
responseVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("610001", params)));
}
return responseVO;
}
private void getPolicyListFromN22(List<PolicyInfo> policyInfoList, String mobileNo, Integer time) throws Exception {
// 1.根据手机号查询经纪人在N22系统的Agent_id
GetStaffNewRequestBody getStaffNewRequestBody = new GetStaffNewRequestBody();
getStaffNewRequestBody.setMobile(mobileNo);
GetStaffNewResponseVO resp = n22StaffService.getStaffNew(getStaffNewRequestBody);
if (!"查询成功".equals(resp.getResponseHead().getMessage())){
throw new Exception("查询N22的Agent_id错误");
}
List<Staff> staffList = resp.getResponseBody().getStaff();
if (staffList.size() == 0) {
throw new Exception("查询N22的经纪人错误");
}
Staff staff = staffList.get(0);
String agent_id = staff.getAgent_id();
// 2.根据Agent_id查询N22中的保单列表
PolicyListQueryRequestBody policyListQueryRequestBody = new PolicyListQueryRequestBody();
policyListQueryRequestBody.setStaffInfo(agent_id);
policyListQueryRequestBody.setMyPolicyType("2");
policyListQueryRequestBody.setIsInsuredArray("1");
// 根据查询时间范围获取查询开始时间和结束时间
String startTime = null;
String endTime = null;
if (Integer.valueOf("1") == time) {
startTime = CommonUtil.getBeginDayOfMonth();
endTime = CommonUtil.getEndDayOfMonth();
} else if (Integer.valueOf("3") == time) {
startTime = CommonUtil.getStartOrEndDayOfQuarter(true);
endTime = CommonUtil.getStartOrEndDayOfQuarter(false);
} else if (Integer.valueOf("2") == time) {
startTime = CommonUtil.getBeginDayOfYear();
endTime = CommonUtil.getEndDayOfYear();
} else if (Integer.valueOf("4") == time) {
// 历史
endTime = CommonUtil.getSpecifiedDayBefore(CommonUtil.getBeginDayOfYear());
}
policyListQueryRequestBody.setStarttime(startTime);
policyListQueryRequestBody.setEndtime(endTime);
com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryResponseVO policyListQueryResponseVO = n22PolicyService.policyList(policyListQueryRequestBody);
if (!"查询成功".equals(policyListQueryResponseVO.getResponseHead().getMessage())){
throw new Exception("查询N22经纪人保单列表错误");
}
List<PolicyInfoN22> policyList = policyListQueryResponseVO.getResponseBody().getPolicyList();
this.translatePolicyInfoN22(policyList, policyInfoList);
}
private void translatePolicyInfoN22(List<PolicyInfoN22> policyList, List<PolicyInfo> policyInfoList) {
for (PolicyInfoN22 item: policyList) {
PolicyInfo policyInfo = new PolicyInfo();
policyInfo.setPlatform(2);
policyInfo.setOrderNo(item.getAppNum());
policyInfo.setHolderName(item.getInsuranceName());
policyInfo.setPlanName(item.getPolNameChn());
policyInfo.setProductName(item.getProductName());
policyInfo.setRelation_id(item.getRelationId());
policyInfo.setPolicyNo(item.getPolicyNo());
policyInfo.setOrderPrice(Double.valueOf(item.getPremium()));
policyInfo.setOrderDate(item.getPolAppDate());
policyInfoList.add(policyInfo);
}
}
@Override
public PolicyInfoQueryResponseVO policyInfoQuery(PolicyInfoQueryRequestVO requestVO) {
PolicyInfoQueryResponseVO responseVO = new PolicyInfoQueryResponseVO();
String orderNo = requestVO.getOrderNo();
String policyNo = requestVO.getPolicyNo();
if(!Strings.isNullOrEmpty(orderNo) || !Strings.isNullOrEmpty(policyNo)){
String relation_id = requestVO.getRelation_id();
if (!Strings.isNullOrEmpty(orderNo) || !Strings.isNullOrEmpty(policyNo)) {
Integer platform = requestVO.getPlatform();
platform = (platform == null) ? 1 : platform;
if(platform == 2){//EGolden
//1、EGolden--获取orderNo
orderNo = (Strings.isNullOrEmpty(orderNo)) ? getOrderNoE(policyNo) : orderNo;
//2、根据orderNo获取保单和被保人的相关数据
List<PolicyDetailInfoE> policyDetailInfoES = poOrderDALService.findPolicyDetailsInfoByOrderNoE(orderNo);
if(!policyDetailInfoES.isEmpty()){
getResponseMessage(responseVO,policyDetailInfoES);
responseVO.setCommonResult(new CommonResult(true,ZHBErrorConfig.getErrorInfo("800000")));
if (platform == 2) {//N22
// //1、EGolden--获取orderNo
// orderNo = (Strings.isNullOrEmpty(orderNo)) ? getOrderNoE(policyNo) : orderNo;
// //2、根据orderNo获取保单和被保人的相关数据
// List<PolicyDetailInfoE> policyDetailInfoES = poOrderDALService.findPolicyDetailsInfoByOrderNoE(orderNo);
// if (!policyDetailInfoES.isEmpty()) {
// getResponseMessage(responseVO, policyDetailInfoES);
// responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
// }
// 调用N22保单详情接口
PolicyDetailQueryRequestBody policyInfoRequestBody = new PolicyDetailQueryRequestBody();
policyInfoRequestBody.setPolicyNo(policyNo);
policyInfoRequestBody.setRelation_id(relation_id);
PolicyDetailQueryResponseVO policyDetailQueryResponseVO = n22PolicyService.policyInfo(policyInfoRequestBody);
if (!"查询成功".equals(policyDetailQueryResponseVO.getResponseHead().getMessage())){
responseVO.setCommonResult(new CommonResult(true, "查询N22经纪人保单详情错误"));
return responseVO;
}
}else if(platform == 1){//YD
responseVO.setCommonResult(new CommonResult(true,ZHBErrorConfig.getErrorInfo("800000")));
PolicyDetailQueryResponseBody policyDetail = policyDetailQueryResponseVO.getResponseBody();
setResponseMessage(responseVO, policyDetail);
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
} else if (platform == 1) {//YD
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
}
}else{
} else {
String[] params = {"orderNo,policyNo"};
responseVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("610002", params)));
}
return responseVO;
}
private void setResponseMessage(PolicyInfoQueryResponseVO responseVO, PolicyDetailQueryResponseBody policyDetail) {
responseVO.setOrderNo(policyDetail.getQuotationNo());
responseVO.setPolicyNo(policyDetail.getPolicyNo());
responseVO.setOrderDate(policyDetail.getIssueDate());
responseVO.setStartDate(policyDetail.getEffectiveDate());
responseVO.setEndDate(policyDetail.getExpiryDate());
responseVO.setTotalPrice(policyDetail.getPremium());
responseVO.setStatus(N22Utils.getN22PolicyStatus(policyDetail.getPolicyStatus()));
// 投保人信息
HolderInfo holderInfo = new HolderInfo();
PolicyHolderN22 holder = policyDetail.getPolicyHolder();
holderInfo.setName(holder.getFirstName());
holderInfo.setMobileNo(holder.getMobile().trim());
holderInfo.setGender("1".equals(holder.getGender()) ? 1 : 2);
holderInfo.setBirthDay(holder.getDateOfBirth());
holderInfo.setAge(CommonUtil.getAge(CommonUtil.stringParseDate(holder.getDateOfBirth(),"yyyy-MM-dd")));
IDInfo idInfo = new IDInfo();
idInfo.setIdType(N22Utils.getN22IdType(holder.getIdType()));
idInfo.setIdNo(holder.getIdNo());
holderInfo.setIdInfo(idInfo);
responseVO.setHolderInfo(holderInfo);
// 被保人信息
List<InsuredDetailN22> insureds = policyDetail.getInsureds();
List<InsuredInfo> insuredInfos = new ArrayList<>();
InsuredInfo insuredInfo;
for (ParticipantN22 insured : insureds.get(0).getParticipants()) {
// 2-被保人,3-受益人
if ("2".equals(insured.getCustomerType())) {
insuredInfo = new InsuredInfo();
insuredInfo.setRelationType(N22Utils.getN22RelationType(insured.getIdType()));
insuredInfo.setName(insured.getFirstName());
insuredInfo.setMobileNo(insured.getMobile());
insuredInfo.setGender("1".equals(insured.getGender()) ? 1 : 2);
insuredInfo.setBirthDay(insured.getDateOfBirth());
insuredInfo.setAge(CommonUtil.getAge(CommonUtil.stringParseDate(insured.getDateOfBirth(), "yyyy-MM-dd")));
idInfo = new IDInfo();
idInfo.setIdType(N22Utils.getN22IdType(insured.getIdType()));
idInfo.setIdNo(insured.getIdNo());
insuredInfo.setIdInfo(idInfo);
insuredInfos.add(insuredInfo);
}
}
responseVO.setInsuredInfos(insuredInfos);
// responseVO.setPrice(CommonUtil.doubleFormat(orderPrice,2));
ReferralInfo referralInfo = new ReferralInfo();
// referralInfo.setReferralAmount(CommonUtil.doubleFormat(commission,2));
responseVO.setReferralInfo(referralInfo);
// 保障项目和总保费
this.getPolicyFactorInfoAndPrice(insureds, responseVO);
}
private void getPolicyFactorInfoAndPrice(List<InsuredDetailN22> insureds, PolicyInfoQueryResponseVO responseVO) {
List<PolicyFactorInfo> policyFactorInfoList= new ArrayList<>();
BigDecimal price = BigDecimal.ZERO;
ExtensionDataCoverage extensionData;
if (CollectionUtils.isNotEmpty(insureds)) {
List<CoverageN22> coverages = insureds.get(0).getCoverages();
for (CoverageN22 coverage : coverages) {
if (CollectionUtils.isNotEmpty(coverages)) {
extensionData = coverage.getExtensionData();
CoverageFee coverageFee = coverage.getCoverageFee();
// 赋值
PolicyFactorInfo policyFactorInfo = new PolicyFactorInfo();
policyFactorInfo.setPolicyType("寿险");
policyFactorInfo.setProductName(coverage.getCoverageName());
if (extensionData != null) {
policyFactorInfo.setInsuredAmount(extensionData.getSumInsured());
policyFactorInfo.setPayFrequency(extensionData.getInstallmentName());
String period = extensionData.getInstallment().substring(1);
policyFactorInfo.setPeriod(Integer.valueOf(period));
}
if (coverageFee != null) {
policyFactorInfo.setPremium(Double.valueOf(coverageFee.getApp()));
price = price.add(new BigDecimal(coverageFee.getApp()));
}
policyFactorInfoList.add(policyFactorInfo);
}
}
}
responseVO.setPolicyFactorInfos(policyFactorInfoList);
responseVO.setPrice(price.doubleValue());
}
@Override
public PayScaleQueryResponseVO payScaleListQuery(PayScaleQueryRequestVO requestVO) {
PayScaleQueryResponseVO responseVO = new PayScaleQueryResponseVO();
......@@ -185,6 +413,31 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
return responseVO;
}
/**
* 通过for循环逻辑,编程上会麻烦点,但是效率上高很多
*/
private Map<String, List<SalaryDetails>> groupByCheckDate(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);
}
return result;
}
private void translateObj(List<AgAclLifePractitionerSalary> list, List<PayScaleInfo> resultList) {
PayScaleInfo payScaleInfo;
for (AgAclLifePractitionerSalary salary : list) {
......
......@@ -5,6 +5,7 @@ import com.yd.api.customer.service.CustomerService;
import com.yd.api.customer.vo.register.RegisterRequestVO;
import com.yd.api.customer.vo.register.RegisterResponseVO;
import com.yd.api.practitioner.vo.login.CanSeeSalaryListResponseVO;
import com.yd.api.practitioner.vo.payscale.PayScaleInfo;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsActionsUpdateResponseVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsQueryResponseVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginBasicInfo;
......@@ -52,6 +53,19 @@ import com.yd.dal.service.meta.MdDropOptionsDALService;
import com.yd.rmi.ali.mail.service.MailService;
import com.yd.rmi.ali.oss.service.OssService;
import com.yd.rmi.cache.SystemConfigService;
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.PolicyInfoN22;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryRequestBody;
import com.yd.rmi.n22.policy.service.N22PolicyService;
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 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 com.yd.rmi.tencent.wechat.service.WechatService;
import com.yd.rmi.tencent.wechat.vo.WeChatInfoByENV;
import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketRequest;
......@@ -160,6 +174,12 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
private MktLeadsExpertAssignDALService mktLeadsExpertAssignDALService;
@Autowired
private MailService mailService;
@Autowired
private N22StaffService n22StaffService;
@Autowired
private N22SalaryService n22SalaryService;
@Autowired
private N22PolicyService n22PolicyService;
@Override
public PractitionerLoginResponseVO practitionerLogin(PractitionerLoginRequestVO requestVO) {
......@@ -183,42 +203,42 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
isSpecial = mobileSpecials.contains(mobileNo);
}
// if(28L == practitionerType || isSpecial){//只有寿险的经纪人和注册为经纪人的员工才能登录
PractitionerBasicInfo practitionerBasicInfo = aclPractitionerDALService.findByMobileNoE(mobileNo);
Long practitionerId = practitionerInfo.getPractitionerId();
Long customerId = practitionerInfo.getCustomerId();
AclCustomer customer = aclCustomerDALService.findById(customerId);
PractitionerLoginBasicInfo basicInfo = new PractitionerLoginBasicInfo();
BeanUtils.copyProperties(practitionerInfo,basicInfo);
//获取头像
Integer targetType = 1, targetUseFor = 1;
CustomerFileUpload fileUpload = aclFileUploadDALService.findFilePathInfo(targetType,targetUseFor,practitionerId);
String imagePath = (fileUpload != null) ? fileUpload.getFilePath() : null;
basicInfo.setHeadImagePath(imagePath);
//获取体系信息
Long subordinateId = practitionerInfo.getSubordinateId();
if(subordinateId != null){
PractitionerSubordinateInfo subordinateInfo = aclPractitionerSubordinateSystemDALService.findSubordinateInfo(subordinateId);
if(subordinateInfo != null){
basicInfo.setSubordinateName(subordinateInfo.getSubordinateName());
basicInfo.setSubordinateLeader(subordinateInfo.getSubordinateLeader());
}
}
if(practitionerBasicInfo != null){
responseVO.setPractitionerIdEG(practitionerBasicInfo.getPractitionerId());
PractitionerBasicInfo practitionerBasicInfo = aclPractitionerDALService.findByMobileNoE(mobileNo);
Long practitionerId = practitionerInfo.getPractitionerId();
Long customerId = practitionerInfo.getCustomerId();
AclCustomer customer = aclCustomerDALService.findById(customerId);
PractitionerLoginBasicInfo basicInfo = new PractitionerLoginBasicInfo();
BeanUtils.copyProperties(practitionerInfo,basicInfo);
//获取头像
Integer targetType = 1, targetUseFor = 1;
CustomerFileUpload fileUpload = aclFileUploadDALService.findFilePathInfo(targetType,targetUseFor,practitionerId);
String imagePath = (fileUpload != null) ? fileUpload.getFilePath() : null;
basicInfo.setHeadImagePath(imagePath);
//获取体系信息
Long subordinateId = practitionerInfo.getSubordinateId();
if(subordinateId != null){
PractitionerSubordinateInfo subordinateInfo = aclPractitionerSubordinateSystemDALService.findSubordinateInfo(subordinateId);
if(subordinateInfo != null){
basicInfo.setSubordinateName(subordinateInfo.getSubordinateName());
basicInfo.setSubordinateLeader(subordinateInfo.getSubordinateLeader());
}
//获取用户的登录次数
List<AclCustomerLog> customerLogList = aclCustomerLogDALService.findLogInfoByCustomerId(customerId);
int logTimes = (customerLogList.isEmpty()) ? 0 : customerLogList.size();
//保存用户的登录记录
aclCustomerLogDALService.saveCustomerLog(customerId,2);
getOpenIdUrl(responseVO,customer);
responseVO.setCustomerId(customerId);
responseVO.setPractitionerId(practitionerId);
responseVO.setPractitionerTypeId(practitionerType);
responseVO.setPractitionerBasicInfo(basicInfo);
responseVO.setLoginTimes(logTimes);
responseVO.setCanSeeSalaryList(practitionerInfo.getCanSeeSalaryList());
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
}
if(practitionerBasicInfo != null){
responseVO.setPractitionerIdEG(practitionerBasicInfo.getPractitionerId());
}
//获取用户的登录次数
List<AclCustomerLog> customerLogList = aclCustomerLogDALService.findLogInfoByCustomerId(customerId);
int logTimes = (customerLogList.isEmpty()) ? 0 : customerLogList.size();
//保存用户的登录记录
aclCustomerLogDALService.saveCustomerLog(customerId,2);
getOpenIdUrl(responseVO,customer);
responseVO.setCustomerId(customerId);
responseVO.setPractitionerId(practitionerId);
responseVO.setPractitionerTypeId(practitionerType);
responseVO.setPractitionerBasicInfo(basicInfo);
responseVO.setLoginTimes(logTimes);
responseVO.setCanSeeSalaryList(practitionerInfo.getCanSeeSalaryList());
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
// }
}else{
responseVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("830001")));
......@@ -259,41 +279,41 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
type = (type == null) ? 1 : type;//默认:保费
time = (time == null) ? 1 : time;//默认:本月
platform = (platform == null) ? 1 : platform;
if(!Strings.isNullOrEmpty(mobileNo)){
if (!Strings.isNullOrEmpty(mobileNo)) {
//查询该手机号码的经纪人id,是否存在
Map<Integer,PractitionerBasicInfo> practitionerBasicInfoMap = getPractitionerBasicInfo(mobileNo);
if(!practitionerBasicInfoMap.isEmpty()){
Map<Integer, PractitionerBasicInfo> practitionerBasicInfoMap = getPractitionerBasicInfo(mobileNo);
if (!practitionerBasicInfoMap.isEmpty()) {
PractitionerBasicInfo practitionerBasicInfo = practitionerBasicInfoMap.get(platform);
Long practitionerTypeId = null;
if(platform == 1){
if (platform == 1) {
practitionerTypeId = practitionerBasicInfo.getPractitionerTypeId();
}else{
} else {
PractitionerBasicInfo practitionerBasicInfoYD = practitionerBasicInfoMap.get(1);
if(practitionerBasicInfoYD != null){
if (practitionerBasicInfoYD != null) {
practitionerTypeId = practitionerBasicInfoYD.getPractitionerTypeId();
}
}
if(practitionerBasicInfo != null && practitionerTypeId != null){
if (practitionerBasicInfo != null && practitionerTypeId != null) {
String practitionerId = practitionerBasicInfo.getPractitionerId();
if(!Strings.isNullOrEmpty(practitionerId)){
List<PractitionerRankInfo> rankInfoList = getPractitionerRankInfo(time,platform,practitionerTypeId);
if (!Strings.isNullOrEmpty(practitionerId)) {
List<PractitionerRankInfo> rankInfoList = getPractitionerRankInfo(time, platform, practitionerTypeId);
//按照指定类型排序
getPractitionerRankResult(responseVO,rankInfoList,type,practitionerBasicInfoMap,time,platform,practitionerTypeId);
getPractitionerRankResult(responseVO, rankInfoList, type, practitionerBasicInfoMap, time, platform, practitionerTypeId);
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
}
}
}else{
} else {
responseVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("830001"))); //该经纪人不存在
}
}else{
String [] param = {"mobileNo"};
} else {
String[] param = {"mobileNo"};
responseVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("610001", param)));
}
return responseVO;
}
private List<PractitionerRankInfo> getPractitionerRankInfo(Integer time, Integer platform,Long practitionerTypeId) {
List<PractitionerRankInfo> rankInfoList;
List<PractitionerRankInfo> rankInfoList = new ArrayList<>();
if(platform == 1){
rankInfoList = aclPractitionerDALService.getPractitionerRankInfoForOnline(time,practitionerTypeId);
//特殊人员处理
......@@ -305,10 +325,157 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
}
}else{
rankInfoList = aclPractitionerDALService.getPractitionerRankInfoForOffline(time);
// 调用N22接口查寿险
// try {
// rankInfoList = this.getPractitionerRankInfoFromN22(time);
// } catch (Exception e) {
// e.printStackTrace();
// }
}
return rankInfoList;
}
private List<PractitionerRankInfo> getPractitionerRankInfoFromN22(Integer time) throws Exception {
// 根据查询时间范围获取查询开始时间和结束时间
String startTime;
String endTime;
if (Integer.valueOf("1") == time) {
startTime = CommonUtil.getBeginDayOfMonth();
endTime = CommonUtil.getEndDayOfMonth();
} else if (Integer.valueOf("3") == time) {
startTime = CommonUtil.getStartOrEndDayOfQuarter(true);
endTime = CommonUtil.getStartOrEndDayOfQuarter(false);
} else {
startTime = CommonUtil.getBeginDayOfYear();
endTime = CommonUtil.getEndDayOfYear();
}
// 循环查询每个经纪人的数据
List<AclPractitioner> list = aclPractitionerDALService.queryAllLifePractitioner();
List<PractitionerRankInfo> rankInfoList = new ArrayList<>();
for (AclPractitioner practitioner : list) {
PractitionerRankInfo rankInfo = this.queryPersonalRankInfoFromN22(practitioner.getMobileNo(), startTime, endTime);
if (rankInfo != null) {
rankInfoList.add(rankInfo);
}
}
return rankInfoList;
}
private PractitionerRankInfo queryPersonalRankInfoFromN22(String mobileNo, String startTime, String endTime) throws Exception {
// 1.根据手机号查询经纪人在N22系统的Agent_id
GetStaffNewRequestBody getStaffNewRequestBody = new GetStaffNewRequestBody();
getStaffNewRequestBody.setMobile(mobileNo);
GetStaffNewResponseVO resp = n22StaffService.getStaffNew(getStaffNewRequestBody);
if ("未查询到该坐席".equals(resp.getResponseHead().getMessage())){
return null;
}
if (!"查询成功".equals(resp.getResponseHead().getMessage())){
throw new Exception("查询N22的Agent_id错误");
}
List<Staff> staffList = resp.getResponseBody().getStaff();
if (staffList.size() == 0) {
throw new Exception("查询N22的经纪人错误");
}
Staff staff = staffList.get(0);
String agent_id = staff.getAgent_id();
// 2.根据Agent_id当前经纪人的佣金明细
SalaryDetailsSearchRequestBody salaryDetailsSearchRequestBody = new SalaryDetailsSearchRequestBody();
salaryDetailsSearchRequestBody.setLoginName(agent_id);
salaryDetailsSearchRequestBody.setSearchType("1");
salaryDetailsSearchRequestBody.setCheckStatus("1");
salaryDetailsSearchRequestBody.setStartDate(startTime);
salaryDetailsSearchRequestBody.setEndDate(endTime);
SalaryDetailsSearchResponseVO salaryDetailsSearchResponseVO = n22SalaryService.salaryDetailsSearch(salaryDetailsSearchRequestBody);
if (!"查询成功".equals(salaryDetailsSearchResponseVO.getResponseHead().getMessage())){
throw new Exception( "查询N22佣金明细列表错误");
}
List<SalaryDetails> salaryDetailsList = salaryDetailsSearchResponseVO.getResponseBody().getSalaryDetailsLIST();
// 3.按年月分组
Map<String, List<SalaryDetails>> group = n22SalaryService.groupByYearmonth(salaryDetailsList);
// 4.统计FYC,FYP,count
PractitionerRankInfo rankInfo = null;
for (String key : group.keySet()) {
System.out.println("Key = " + key);
List<SalaryDetails> list = group.get(key);
// 计算每组FYC,FYP,count
rankInfo = this.getFypAndFycAndCount(list);
}
return rankInfo;
}
private Double getFyp(String policyNo) throws Exception{
// 请求参数
PolicyDetailQueryRequestBody policyInfoRequestBody = new PolicyDetailQueryRequestBody();
policyInfoRequestBody.setPolicyNo(policyNo);
PolicyDetailQueryResponseVO policyDetailQueryResponseVO = n22PolicyService.policyInfo(policyInfoRequestBody);
if (!"查询成功".equals(policyDetailQueryResponseVO.getResponseHead().getMessage())){
throw new Exception("查询N22经纪人保单详情错误");
}
Double premium = policyDetailQueryResponseVO.getResponseBody().getPremium();
return premium;
}
private PractitionerRankInfo getFypAndFycAndCount(List<SalaryDetails> list) throws Exception {
Integer count = 0;
Double fyc = 0D;
Double fyp = 0D;
// 判断list中是否存在保单佣金
boolean isFYCExist = false;
for (SalaryDetails s : list) {
// 1.计算FYC
if ("FYC".equals(s.getSalaryName())) {
fyc = BigDecimal.valueOf(s.getCommission())
.add(BigDecimal.valueOf(fyc))
.doubleValue();
count = count + 1;
isFYCExist = true;
}
}
if (!isFYCExist) {
return null;
}
// FYP
Double premium = 0D;
for (SalaryDetails s : list) {
// 2.调用N22保单接口获取每个保单的保费
if ("FYC".equals(s.getSalaryName())) {
premium = this.getFyp(s.getAppl_No());
fyp = BigDecimal.valueOf(premium)
.add(BigDecimal.valueOf(fyp))
.doubleValue();
}
}
PractitionerRankInfo rankInfo = new PractitionerRankInfo();
rankInfo.setCount(count);
rankInfo.setFyp(fyp);
rankInfo.setFyc(fyc);
rankInfo.setName(list.get(0).getStaffName());
rankInfo.setSpcDivName(list.get(0).getRoleGroupDescription());
return rankInfo;
}
private Map<Integer,PractitionerBasicInfo> getPractitionerBasicInfo(String mobileNo) {
Map<Integer,PractitionerBasicInfo> practitionerBasicInfoMap = new HashMap<>();
PractitionerBasicInfo practitionerBasicInfo1 = aclPractitionerDALService.getPractitionerBasicInfoForOnline(mobileNo);
......
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.pojo;
import com.yd.rmi.n22.organization.pojo.Role;
import java.util.List;
public class Staff {
private String staffname;
private String Staff_id;
private String Agent_id;
private String defaultrolegroup;
private String defaultrolegroupdesc;
private String CERTI_CODE;
private String CERTI_TYPE;
private String CERTI_LIFE;
private String Workstatus;
private String password;
private String E_mail;
private String fax;
private String gender;
private String mobile;
private String qq;
private String Tel_1;
private String Tel_2;
private String birthday;
private int age;
private String province_id;
private String province;
private String city_id;
private String city;
private String area_id;
private String area;
private String address;
private String zipcode;
private String weixinid;
private String createddate;
private String modifieddate;
private String createdby;
private String modifiedby;
private String ACCOUNT_TYPE;
private String JOIN_TIME;
private String LEAVE_TIME;
private String NATIONALITY;
private String NATION;
private String POLITICAL_STATUS;
private String HOUSEHOLD_REGISTER;
private String HOUSEHOLD_TYPE;
private String ID_DETAIL_ADDRESS;
private String JOB;
private String QUALIF_NO;
private String QUALIF_LEVEL;
private String JOB_LEVEL;
private String PROFESSION;
private String PHOTO;
private String TEAM_CODE;
private String CHANNEL_CODE;
private String SURNAME;
private String USER_CODE;
private String NAME;
private String EDU_DEGREE;
private String WORKING_YEARS;
private String DUTY_DATE;
private String VIRTUAL_FLAG;
private String IC_FLAG;
private String OPEN_DATE;
private String CLOSE_DATE;
private String MGNT_ORG_CODE;
private String AGENTCODE;
private String ENGLISH_NAME;
private String MARITAL_STATUS;
private String citycode;
private String LIVING_WAY;
private String HIGHEST_EDUCATION;
private String GRADUATE_INSTITUTIONS;
private String GRADUATION_TIME;
private String ENGLISH_LEVEL;
private String FIRST_JOB_TIME;
private String WITHDRAW_PARTY_TIME;
private String RANK;
private String JOB_MARKET;
private String JOB_MARKET_DETAIL_ADDRESS;
private String CENTER_COST;
private String SALARY;
private String HIGHER_UP_EMPNO;
private String HIGHER_UP_NAME;
private String PROBATION_PERIOD;
private String CONTRACT_EXPIRATION_DATE;
private String LEAVE_OFFICE_PROPERTY;
private String LEAVE_OFFICE_REASON;
private String CONTRACT_TYPE;
private String PROBATION_DEADLINE_DATE;
private String EMERGENCY_CONTACTS_NAME;
private String EMERGENCY_CONTACTS_TELEPHONE;
private int PROFESSION_LEVEL;
private int issupervisor;
private String PREPPARTYMEMBER_PROMOTION_TIME;
private String PARTY_TIME;
private String PAY_CATEGORY;
private String title;
private String PROGRAMMING_CODE;
private String BEFORE_WORK_UNIT;
private String WORK_YEAR;
private String loginname;
private String contract_startdate;
private String contract_enddate;
private String insurance_type;
private String own_ivcode;
private String mate_name;
private String honor;
private String motto;
private String principle;
private String vision;
private String mate_phone;
private String recent_work;
private String oldwork_startdate;
private String oldwork_enddate;
private String practice_number;
private String practice_starttime;
private String practice_endtime;
private String social_security;
private String Health;
private String bankno;
private String bank_code;
private String bankname;
private String banknote;
private String TARGET;
private String train_startdate;
private String exam_enddate;
private String exam_result;
private String RecommenderCode;
private String RecommenderName;
private String Recommender2Code;
private String Recommender2Name;
private String StringField1;
private String StringField2;
private String StringField3;
private String StringField4;
private String StringField5;
private String StringField6;
private String StringField7;
private String StringField8;
private String StringField9;
private String StringField10;
private List<Role> role;
private List<String> companyAccount;
private String director;
private String OrgAgent;
public void setStaffname(String staffname){
this.staffname = staffname;
}
public String getStaffname(){
return this.staffname;
}
public void setStaff_id(String Staff_id){
this.Staff_id = Staff_id;
}
public String getStaff_id(){
return this.Staff_id;
}
public void setAgent_id(String Agent_id){
this.Agent_id = Agent_id;
}
public String getAgent_id(){
return this.Agent_id;
}
public void setDefaultrolegroup(String defaultrolegroup){
this.defaultrolegroup = defaultrolegroup;
}
public String getDefaultrolegroup(){
return this.defaultrolegroup;
}
public void setDefaultrolegroupdesc(String defaultrolegroupdesc){
this.defaultrolegroupdesc = defaultrolegroupdesc;
}
public String getDefaultrolegroupdesc(){
return this.defaultrolegroupdesc;
}
public void setCERTI_CODE(String CERTI_CODE){
this.CERTI_CODE = CERTI_CODE;
}
public String getCERTI_CODE(){
return this.CERTI_CODE;
}
public void setCERTI_TYPE(String CERTI_TYPE){
this.CERTI_TYPE = CERTI_TYPE;
}
public String getCERTI_TYPE(){
return this.CERTI_TYPE;
}
public void setCERTI_LIFE(String CERTI_LIFE){
this.CERTI_LIFE = CERTI_LIFE;
}
public String getCERTI_LIFE(){
return this.CERTI_LIFE;
}
public void setWorkstatus(String Workstatus){
this.Workstatus = Workstatus;
}
public String getWorkstatus(){
return this.Workstatus;
}
public void setPassword(String password){
this.password = password;
}
public String getPassword(){
return this.password;
}
public void setE_mail(String E_mail){
this.E_mail = E_mail;
}
public String getE_mail(){
return this.E_mail;
}
public void setFax(String fax){
this.fax = fax;
}
public String getFax(){
return this.fax;
}
public void setGender(String gender){
this.gender = gender;
}
public String getGender(){
return this.gender;
}
public void setMobile(String mobile){
this.mobile = mobile;
}
public String getMobile(){
return this.mobile;
}
public void setQq(String qq){
this.qq = qq;
}
public String getQq(){
return this.qq;
}
public void setTel_1(String Tel_1){
this.Tel_1 = Tel_1;
}
public String getTel_1(){
return this.Tel_1;
}
public void setTel_2(String Tel_2){
this.Tel_2 = Tel_2;
}
public String getTel_2(){
return this.Tel_2;
}
public void setBirthday(String birthday){
this.birthday = birthday;
}
public String getBirthday(){
return this.birthday;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return this.age;
}
public void setProvince_id(String province_id){
this.province_id = province_id;
}
public String getProvince_id(){
return this.province_id;
}
public void setProvince(String province){
this.province = province;
}
public String getProvince(){
return this.province;
}
public void setCity_id(String city_id){
this.city_id = city_id;
}
public String getCity_id(){
return this.city_id;
}
public void setCity(String city){
this.city = city;
}
public String getCity(){
return this.city;
}
public void setArea_id(String area_id){
this.area_id = area_id;
}
public String getArea_id(){
return this.area_id;
}
public void setArea(String area){
this.area = area;
}
public String getArea(){
return this.area;
}
public void setAddress(String address){
this.address = address;
}
public String getAddress(){
return this.address;
}
public void setZipcode(String zipcode){
this.zipcode = zipcode;
}
public String getZipcode(){
return this.zipcode;
}
public void setWeixinid(String weixinid){
this.weixinid = weixinid;
}
public String getWeixinid(){
return this.weixinid;
}
public void setCreateddate(String createddate){
this.createddate = createddate;
}
public String getCreateddate(){
return this.createddate;
}
public void setModifieddate(String modifieddate){
this.modifieddate = modifieddate;
}
public String getModifieddate(){
return this.modifieddate;
}
public void setCreatedby(String createdby){
this.createdby = createdby;
}
public String getCreatedby(){
return this.createdby;
}
public void setModifiedby(String modifiedby){
this.modifiedby = modifiedby;
}
public String getModifiedby(){
return this.modifiedby;
}
public void setACCOUNT_TYPE(String ACCOUNT_TYPE){
this.ACCOUNT_TYPE = ACCOUNT_TYPE;
}
public String getACCOUNT_TYPE(){
return this.ACCOUNT_TYPE;
}
public void setJOIN_TIME(String JOIN_TIME){
this.JOIN_TIME = JOIN_TIME;
}
public String getJOIN_TIME(){
return this.JOIN_TIME;
}
public void setLEAVE_TIME(String LEAVE_TIME){
this.LEAVE_TIME = LEAVE_TIME;
}
public String getLEAVE_TIME(){
return this.LEAVE_TIME;
}
public void setNATIONALITY(String NATIONALITY){
this.NATIONALITY = NATIONALITY;
}
public String getNATIONALITY(){
return this.NATIONALITY;
}
public void setNATION(String NATION){
this.NATION = NATION;
}
public String getNATION(){
return this.NATION;
}
public void setPOLITICAL_STATUS(String POLITICAL_STATUS){
this.POLITICAL_STATUS = POLITICAL_STATUS;
}
public String getPOLITICAL_STATUS(){
return this.POLITICAL_STATUS;
}
public void setHOUSEHOLD_REGISTER(String HOUSEHOLD_REGISTER){
this.HOUSEHOLD_REGISTER = HOUSEHOLD_REGISTER;
}
public String getHOUSEHOLD_REGISTER(){
return this.HOUSEHOLD_REGISTER;
}
public void setHOUSEHOLD_TYPE(String HOUSEHOLD_TYPE){
this.HOUSEHOLD_TYPE = HOUSEHOLD_TYPE;
}
public String getHOUSEHOLD_TYPE(){
return this.HOUSEHOLD_TYPE;
}
public void setID_DETAIL_ADDRESS(String ID_DETAIL_ADDRESS){
this.ID_DETAIL_ADDRESS = ID_DETAIL_ADDRESS;
}
public String getID_DETAIL_ADDRESS(){
return this.ID_DETAIL_ADDRESS;
}
public void setJOB(String JOB){
this.JOB = JOB;
}
public String getJOB(){
return this.JOB;
}
public void setQUALIF_NO(String QUALIF_NO){
this.QUALIF_NO = QUALIF_NO;
}
public String getQUALIF_NO(){
return this.QUALIF_NO;
}
public void setQUALIF_LEVEL(String QUALIF_LEVEL){
this.QUALIF_LEVEL = QUALIF_LEVEL;
}
public String getQUALIF_LEVEL(){
return this.QUALIF_LEVEL;
}
public void setJOB_LEVEL(String JOB_LEVEL){
this.JOB_LEVEL = JOB_LEVEL;
}
public String getJOB_LEVEL(){
return this.JOB_LEVEL;
}
public void setPROFESSION(String PROFESSION){
this.PROFESSION = PROFESSION;
}
public String getPROFESSION(){
return this.PROFESSION;
}
public void setPHOTO(String PHOTO){
this.PHOTO = PHOTO;
}
public String getPHOTO(){
return this.PHOTO;
}
public void setTEAM_CODE(String TEAM_CODE){
this.TEAM_CODE = TEAM_CODE;
}
public String getTEAM_CODE(){
return this.TEAM_CODE;
}
public void setCHANNEL_CODE(String CHANNEL_CODE){
this.CHANNEL_CODE = CHANNEL_CODE;
}
public String getCHANNEL_CODE(){
return this.CHANNEL_CODE;
}
public void setSURNAME(String SURNAME){
this.SURNAME = SURNAME;
}
public String getSURNAME(){
return this.SURNAME;
}
public void setUSER_CODE(String USER_CODE){
this.USER_CODE = USER_CODE;
}
public String getUSER_CODE(){
return this.USER_CODE;
}
public void setNAME(String NAME){
this.NAME = NAME;
}
public String getNAME(){
return this.NAME;
}
public void setEDU_DEGREE(String EDU_DEGREE){
this.EDU_DEGREE = EDU_DEGREE;
}
public String getEDU_DEGREE(){
return this.EDU_DEGREE;
}
public void setWORKING_YEARS(String WORKING_YEARS){
this.WORKING_YEARS = WORKING_YEARS;
}
public String getWORKING_YEARS(){
return this.WORKING_YEARS;
}
public void setDUTY_DATE(String DUTY_DATE){
this.DUTY_DATE = DUTY_DATE;
}
public String getDUTY_DATE(){
return this.DUTY_DATE;
}
public void setVIRTUAL_FLAG(String VIRTUAL_FLAG){
this.VIRTUAL_FLAG = VIRTUAL_FLAG;
}
public String getVIRTUAL_FLAG(){
return this.VIRTUAL_FLAG;
}
public void setIC_FLAG(String IC_FLAG){
this.IC_FLAG = IC_FLAG;
}
public String getIC_FLAG(){
return this.IC_FLAG;
}
public void setOPEN_DATE(String OPEN_DATE){
this.OPEN_DATE = OPEN_DATE;
}
public String getOPEN_DATE(){
return this.OPEN_DATE;
}
public void setCLOSE_DATE(String CLOSE_DATE){
this.CLOSE_DATE = CLOSE_DATE;
}
public String getCLOSE_DATE(){
return this.CLOSE_DATE;
}
public void setMGNT_ORG_CODE(String MGNT_ORG_CODE){
this.MGNT_ORG_CODE = MGNT_ORG_CODE;
}
public String getMGNT_ORG_CODE(){
return this.MGNT_ORG_CODE;
}
public void setAGENTCODE(String AGENTCODE){
this.AGENTCODE = AGENTCODE;
}
public String getAGENTCODE(){
return this.AGENTCODE;
}
public void setENGLISH_NAME(String ENGLISH_NAME){
this.ENGLISH_NAME = ENGLISH_NAME;
}
public String getENGLISH_NAME(){
return this.ENGLISH_NAME;
}
public void setMARITAL_STATUS(String MARITAL_STATUS){
this.MARITAL_STATUS = MARITAL_STATUS;
}
public String getMARITAL_STATUS(){
return this.MARITAL_STATUS;
}
public void setCitycode(String citycode){
this.citycode = citycode;
}
public String getCitycode(){
return this.citycode;
}
public void setLIVING_WAY(String LIVING_WAY){
this.LIVING_WAY = LIVING_WAY;
}
public String getLIVING_WAY(){
return this.LIVING_WAY;
}
public void setHIGHEST_EDUCATION(String HIGHEST_EDUCATION){
this.HIGHEST_EDUCATION = HIGHEST_EDUCATION;
}
public String getHIGHEST_EDUCATION(){
return this.HIGHEST_EDUCATION;
}
public void setGRADUATE_INSTITUTIONS(String GRADUATE_INSTITUTIONS){
this.GRADUATE_INSTITUTIONS = GRADUATE_INSTITUTIONS;
}
public String getGRADUATE_INSTITUTIONS(){
return this.GRADUATE_INSTITUTIONS;
}
public void setGRADUATION_TIME(String GRADUATION_TIME){
this.GRADUATION_TIME = GRADUATION_TIME;
}
public String getGRADUATION_TIME(){
return this.GRADUATION_TIME;
}
public void setENGLISH_LEVEL(String ENGLISH_LEVEL){
this.ENGLISH_LEVEL = ENGLISH_LEVEL;
}
public String getENGLISH_LEVEL(){
return this.ENGLISH_LEVEL;
}
public void setFIRST_JOB_TIME(String FIRST_JOB_TIME){
this.FIRST_JOB_TIME = FIRST_JOB_TIME;
}
public String getFIRST_JOB_TIME(){
return this.FIRST_JOB_TIME;
}
public void setWITHDRAW_PARTY_TIME(String WITHDRAW_PARTY_TIME){
this.WITHDRAW_PARTY_TIME = WITHDRAW_PARTY_TIME;
}
public String getWITHDRAW_PARTY_TIME(){
return this.WITHDRAW_PARTY_TIME;
}
public void setRANK(String RANK){
this.RANK = RANK;
}
public String getRANK(){
return this.RANK;
}
public void setJOB_MARKET(String JOB_MARKET){
this.JOB_MARKET = JOB_MARKET;
}
public String getJOB_MARKET(){
return this.JOB_MARKET;
}
public void setJOB_MARKET_DETAIL_ADDRESS(String JOB_MARKET_DETAIL_ADDRESS){
this.JOB_MARKET_DETAIL_ADDRESS = JOB_MARKET_DETAIL_ADDRESS;
}
public String getJOB_MARKET_DETAIL_ADDRESS(){
return this.JOB_MARKET_DETAIL_ADDRESS;
}
public void setCENTER_COST(String CENTER_COST){
this.CENTER_COST = CENTER_COST;
}
public String getCENTER_COST(){
return this.CENTER_COST;
}
public void setSALARY(String SALARY){
this.SALARY = SALARY;
}
public String getSALARY(){
return this.SALARY;
}
public void setHIGHER_UP_EMPNO(String HIGHER_UP_EMPNO){
this.HIGHER_UP_EMPNO = HIGHER_UP_EMPNO;
}
public String getHIGHER_UP_EMPNO(){
return this.HIGHER_UP_EMPNO;
}
public void setHIGHER_UP_NAME(String HIGHER_UP_NAME){
this.HIGHER_UP_NAME = HIGHER_UP_NAME;
}
public String getHIGHER_UP_NAME(){
return this.HIGHER_UP_NAME;
}
public void setPROBATION_PERIOD(String PROBATION_PERIOD){
this.PROBATION_PERIOD = PROBATION_PERIOD;
}
public String getPROBATION_PERIOD(){
return this.PROBATION_PERIOD;
}
public void setCONTRACT_EXPIRATION_DATE(String CONTRACT_EXPIRATION_DATE){
this.CONTRACT_EXPIRATION_DATE = CONTRACT_EXPIRATION_DATE;
}
public String getCONTRACT_EXPIRATION_DATE(){
return this.CONTRACT_EXPIRATION_DATE;
}
public void setLEAVE_OFFICE_PROPERTY(String LEAVE_OFFICE_PROPERTY){
this.LEAVE_OFFICE_PROPERTY = LEAVE_OFFICE_PROPERTY;
}
public String getLEAVE_OFFICE_PROPERTY(){
return this.LEAVE_OFFICE_PROPERTY;
}
public void setLEAVE_OFFICE_REASON(String LEAVE_OFFICE_REASON){
this.LEAVE_OFFICE_REASON = LEAVE_OFFICE_REASON;
}
public String getLEAVE_OFFICE_REASON(){
return this.LEAVE_OFFICE_REASON;
}
public void setCONTRACT_TYPE(String CONTRACT_TYPE){
this.CONTRACT_TYPE = CONTRACT_TYPE;
}
public String getCONTRACT_TYPE(){
return this.CONTRACT_TYPE;
}
public void setPROBATION_DEADLINE_DATE(String PROBATION_DEADLINE_DATE){
this.PROBATION_DEADLINE_DATE = PROBATION_DEADLINE_DATE;
}
public String getPROBATION_DEADLINE_DATE(){
return this.PROBATION_DEADLINE_DATE;
}
public void setEMERGENCY_CONTACTS_NAME(String EMERGENCY_CONTACTS_NAME){
this.EMERGENCY_CONTACTS_NAME = EMERGENCY_CONTACTS_NAME;
}
public String getEMERGENCY_CONTACTS_NAME(){
return this.EMERGENCY_CONTACTS_NAME;
}
public void setEMERGENCY_CONTACTS_TELEPHONE(String EMERGENCY_CONTACTS_TELEPHONE){
this.EMERGENCY_CONTACTS_TELEPHONE = EMERGENCY_CONTACTS_TELEPHONE;
}
public String getEMERGENCY_CONTACTS_TELEPHONE(){
return this.EMERGENCY_CONTACTS_TELEPHONE;
}
public void setPROFESSION_LEVEL(int PROFESSION_LEVEL){
this.PROFESSION_LEVEL = PROFESSION_LEVEL;
}
public int getPROFESSION_LEVEL(){
return this.PROFESSION_LEVEL;
}
public void setIssupervisor(int issupervisor){
this.issupervisor = issupervisor;
}
public int getIssupervisor(){
return this.issupervisor;
}
public void setPREPPARTYMEMBER_PROMOTION_TIME(String PREPPARTYMEMBER_PROMOTION_TIME){
this.PREPPARTYMEMBER_PROMOTION_TIME = PREPPARTYMEMBER_PROMOTION_TIME;
}
public String getPREPPARTYMEMBER_PROMOTION_TIME(){
return this.PREPPARTYMEMBER_PROMOTION_TIME;
}
public void setPARTY_TIME(String PARTY_TIME){
this.PARTY_TIME = PARTY_TIME;
}
public String getPARTY_TIME(){
return this.PARTY_TIME;
}
public void setPAY_CATEGORY(String PAY_CATEGORY){
this.PAY_CATEGORY = PAY_CATEGORY;
}
public String getPAY_CATEGORY(){
return this.PAY_CATEGORY;
}
public void setTitle(String title){
this.title = title;
}
public String getTitle(){
return this.title;
}
public void setPROGRAMMING_CODE(String PROGRAMMING_CODE){
this.PROGRAMMING_CODE = PROGRAMMING_CODE;
}
public String getPROGRAMMING_CODE(){
return this.PROGRAMMING_CODE;
}
public void setBEFORE_WORK_UNIT(String BEFORE_WORK_UNIT){
this.BEFORE_WORK_UNIT = BEFORE_WORK_UNIT;
}
public String getBEFORE_WORK_UNIT(){
return this.BEFORE_WORK_UNIT;
}
public void setWORK_YEAR(String WORK_YEAR){
this.WORK_YEAR = WORK_YEAR;
}
public String getWORK_YEAR(){
return this.WORK_YEAR;
}
public void setLoginname(String loginname){
this.loginname = loginname;
}
public String getLoginname(){
return this.loginname;
}
public void setContract_startdate(String contract_startdate){
this.contract_startdate = contract_startdate;
}
public String getContract_startdate(){
return this.contract_startdate;
}
public void setContract_enddate(String contract_enddate){
this.contract_enddate = contract_enddate;
}
public String getContract_enddate(){
return this.contract_enddate;
}
public void setInsurance_type(String insurance_type){
this.insurance_type = insurance_type;
}
public String getInsurance_type(){
return this.insurance_type;
}
public void setOwn_ivcode(String own_ivcode){
this.own_ivcode = own_ivcode;
}
public String getOwn_ivcode(){
return this.own_ivcode;
}
public void setMate_name(String mate_name){
this.mate_name = mate_name;
}
public String getMate_name(){
return this.mate_name;
}
public void setHonor(String honor){
this.honor = honor;
}
public String getHonor(){
return this.honor;
}
public void setMotto(String motto){
this.motto = motto;
}
public String getMotto(){
return this.motto;
}
public void setPrinciple(String principle){
this.principle = principle;
}
public String getPrinciple(){
return this.principle;
}
public void setVision(String vision){
this.vision = vision;
}
public String getVision(){
return this.vision;
}
public void setMate_phone(String mate_phone){
this.mate_phone = mate_phone;
}
public String getMate_phone(){
return this.mate_phone;
}
public void setRecent_work(String recent_work){
this.recent_work = recent_work;
}
public String getRecent_work(){
return this.recent_work;
}
public void setOldwork_startdate(String oldwork_startdate){
this.oldwork_startdate = oldwork_startdate;
}
public String getOldwork_startdate(){
return this.oldwork_startdate;
}
public void setOldwork_enddate(String oldwork_enddate){
this.oldwork_enddate = oldwork_enddate;
}
public String getOldwork_enddate(){
return this.oldwork_enddate;
}
public void setPractice_number(String practice_number){
this.practice_number = practice_number;
}
public String getPractice_number(){
return this.practice_number;
}
public void setPractice_starttime(String practice_starttime){
this.practice_starttime = practice_starttime;
}
public String getPractice_starttime(){
return this.practice_starttime;
}
public void setPractice_endtime(String practice_endtime){
this.practice_endtime = practice_endtime;
}
public String getPractice_endtime(){
return this.practice_endtime;
}
public void setSocial_security(String social_security){
this.social_security = social_security;
}
public String getSocial_security(){
return this.social_security;
}
public void setHealth(String Health){
this.Health = Health;
}
public String getHealth(){
return this.Health;
}
public void setBankno(String bankno){
this.bankno = bankno;
}
public String getBankno(){
return this.bankno;
}
public void setBank_code(String bank_code){
this.bank_code = bank_code;
}
public String getBank_code(){
return this.bank_code;
}
public void setBankname(String bankname){
this.bankname = bankname;
}
public String getBankname(){
return this.bankname;
}
public void setBanknote(String banknote){
this.banknote = banknote;
}
public String getBanknote(){
return this.banknote;
}
public void setTARGET(String TARGET){
this.TARGET = TARGET;
}
public String getTARGET(){
return this.TARGET;
}
public void setTrain_startdate(String train_startdate){
this.train_startdate = train_startdate;
}
public String getTrain_startdate(){
return this.train_startdate;
}
public void setExam_enddate(String exam_enddate){
this.exam_enddate = exam_enddate;
}
public String getExam_enddate(){
return this.exam_enddate;
}
public void setExam_result(String exam_result){
this.exam_result = exam_result;
}
public String getExam_result(){
return this.exam_result;
}
public void setRecommenderCode(String RecommenderCode){
this.RecommenderCode = RecommenderCode;
}
public String getRecommenderCode(){
return this.RecommenderCode;
}
public void setRecommenderName(String RecommenderName){
this.RecommenderName = RecommenderName;
}
public String getRecommenderName(){
return this.RecommenderName;
}
public void setRecommender2Code(String Recommender2Code){
this.Recommender2Code = Recommender2Code;
}
public String getRecommender2Code(){
return this.Recommender2Code;
}
public void setRecommender2Name(String Recommender2Name){
this.Recommender2Name = Recommender2Name;
}
public String getRecommender2Name(){
return this.Recommender2Name;
}
public void setStringField1(String StringField1){
this.StringField1 = StringField1;
}
public String getStringField1(){
return this.StringField1;
}
public void setStringField2(String StringField2){
this.StringField2 = StringField2;
}
public String getStringField2(){
return this.StringField2;
}
public void setStringField3(String StringField3){
this.StringField3 = StringField3;
}
public String getStringField3(){
return this.StringField3;
}
public void setStringField4(String StringField4){
this.StringField4 = StringField4;
}
public String getStringField4(){
return this.StringField4;
}
public void setStringField5(String StringField5){
this.StringField5 = StringField5;
}
public String getStringField5(){
return this.StringField5;
}
public void setStringField6(String StringField6){
this.StringField6 = StringField6;
}
public String getStringField6(){
return this.StringField6;
}
public void setStringField7(String StringField7){
this.StringField7 = StringField7;
}
public String getStringField7(){
return this.StringField7;
}
public void setStringField8(String StringField8){
this.StringField8 = StringField8;
}
public String getStringField8(){
return this.StringField8;
}
public void setStringField9(String StringField9){
this.StringField9 = StringField9;
}
public String getStringField9(){
return this.StringField9;
}
public void setStringField10(String StringField10){
this.StringField10 = StringField10;
}
public String getStringField10(){
return this.StringField10;
}
public void setRole(List<Role> role){
this.role = role;
}
public List<Role> getRole(){
return this.role;
}
public void setCompanyAccount(List<String> companyAccount){
this.companyAccount = companyAccount;
}
public List<String> getCompanyAccount(){
return this.companyAccount;
}
public void setDirector(String director){
this.director = director;
}
public String getDirector(){
return this.director;
}
public void setOrgAgent(String OrgAgent){
this.OrgAgent = OrgAgent;
}
public String getOrgAgent(){
return this.OrgAgent;
}
}
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;
}
}
......@@ -52,18 +52,18 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, insurer_id, insurer_branch_id, dept_id, subordinate_system_id, practitioner_code,
id, insurer_id, insurer_branch_id, dept_id, subordinate_system_id, practitioner_code,
`name`, mobile_no, id_type_id, id_type, id_no, practitioner_birthdate, practitioner_reg_no,
practitioner_reg_company, effective_start_date, effective_end_date, remark, customer_id,
employee_no, contract_no, is_active, created_at, created_by, updated_at, updated_by,
province_id, province_name, city_id, city_name, cert_list, bio_intro, wechat_id,
qq_id, is_profile_show, is_name_show, is_mobile_show, education_level, graduated_university,
mentor_id, introducer_id, gender, contract_oss_path, hiring_basic_info_id, can_login_dyd,
employee_no, contract_no, is_active, created_at, created_by, updated_at, updated_by,
province_id, province_name, city_id, city_name, cert_list, bio_intro, wechat_id,
qq_id, is_profile_show, is_name_show, is_mobile_show, education_level, graduated_university,
mentor_id, introducer_id, gender, contract_oss_path, hiring_basic_info_id, can_login_dyd,
can_see_salary_list
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
<!--@mbg.generated-->
select
select
<include refid="Base_Column_List" />
from ag_acl_practitioner
where id = #{id,jdbcType=BIGINT}
......@@ -75,20 +75,20 @@
</delete>
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.yd.dal.entity.customer.AclPractitioner" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into ag_acl_practitioner (insurer_id, insurer_branch_id, dept_id,
insert into ag_acl_practitioner (insurer_id, insurer_branch_id, dept_id,
subordinate_system_id, practitioner_code, `name`,
mobile_no, id_type_id, id_type,
id_no, practitioner_birthdate, practitioner_reg_no,
practitioner_reg_company, effective_start_date,
effective_end_date, remark, customer_id,
employee_no, contract_no, is_active,
created_at, created_by, updated_at,
updated_by, province_id, province_name,
city_id, city_name, cert_list,
bio_intro, wechat_id, qq_id,
is_profile_show, is_name_show, is_mobile_show,
education_level, graduated_university, mentor_id,
introducer_id, gender, contract_oss_path,
employee_no, contract_no, is_active,
created_at, created_by, updated_at,
updated_by, province_id, province_name,
city_id, city_name, cert_list,
bio_intro, wechat_id, qq_id,
is_profile_show, is_name_show, is_mobile_show,
education_level, graduated_university, mentor_id,
introducer_id, gender, contract_oss_path,
hiring_basic_info_id, can_login_dyd, can_see_salary_list
)
values (#{insurerId,jdbcType=BIGINT}, #{insurerBranchId,jdbcType=BIGINT}, #{deptId,jdbcType=BIGINT},
......@@ -96,15 +96,15 @@
#{mobileNo,jdbcType=VARCHAR,typeHandler=com.yd.util.deshandler.DESTypeHandler}, #{idTypeId,jdbcType=BIGINT}, #{idType,jdbcType=VARCHAR},
#{idNo,jdbcType=VARCHAR,typeHandler=com.yd.util.deshandler.DESTypeHandler}, #{practitionerBirthdate,jdbcType=DATE}, #{practitionerRegNo,jdbcType=VARCHAR},
#{practitionerRegCompany,jdbcType=VARCHAR}, #{effectiveStartDate,jdbcType=DATE},
#{effectiveEndDate,jdbcType=DATE}, #{remark,jdbcType=LONGVARCHAR}, #{customerId,jdbcType=BIGINT},
#{employeeNo,jdbcType=VARCHAR}, #{contractNo,jdbcType=VARCHAR}, #{isActive,jdbcType=INTEGER},
#{createdAt,jdbcType=TIMESTAMP}, #{createdBy,jdbcType=BIGINT}, #{updatedAt,jdbcType=TIMESTAMP},
#{updatedBy,jdbcType=BIGINT}, #{provinceId,jdbcType=BIGINT}, #{provinceName,jdbcType=VARCHAR},
#{cityId,jdbcType=BIGINT}, #{cityName,jdbcType=VARCHAR}, #{certList,jdbcType=VARCHAR},
#{bioIntro,jdbcType=LONGVARCHAR}, #{wechatId,jdbcType=VARCHAR}, #{qqId,jdbcType=VARCHAR},
#{isProfileShow,jdbcType=INTEGER}, #{isNameShow,jdbcType=INTEGER}, #{isMobileShow,jdbcType=INTEGER},
#{educationLevel,jdbcType=VARCHAR}, #{graduatedUniversity,jdbcType=VARCHAR}, #{mentorId,jdbcType=BIGINT},
#{introducerId,jdbcType=BIGINT}, #{gender,jdbcType=INTEGER}, #{contractOssPath,jdbcType=VARCHAR},
#{effectiveEndDate,jdbcType=DATE}, #{remark,jdbcType=LONGVARCHAR}, #{customerId,jdbcType=BIGINT},
#{employeeNo,jdbcType=VARCHAR}, #{contractNo,jdbcType=VARCHAR}, #{isActive,jdbcType=INTEGER},
#{createdAt,jdbcType=TIMESTAMP}, #{createdBy,jdbcType=BIGINT}, #{updatedAt,jdbcType=TIMESTAMP},
#{updatedBy,jdbcType=BIGINT}, #{provinceId,jdbcType=BIGINT}, #{provinceName,jdbcType=VARCHAR},
#{cityId,jdbcType=BIGINT}, #{cityName,jdbcType=VARCHAR}, #{certList,jdbcType=VARCHAR},
#{bioIntro,jdbcType=LONGVARCHAR}, #{wechatId,jdbcType=VARCHAR}, #{qqId,jdbcType=VARCHAR},
#{isProfileShow,jdbcType=INTEGER}, #{isNameShow,jdbcType=INTEGER}, #{isMobileShow,jdbcType=INTEGER},
#{educationLevel,jdbcType=VARCHAR}, #{graduatedUniversity,jdbcType=VARCHAR}, #{mentorId,jdbcType=BIGINT},
#{introducerId,jdbcType=BIGINT}, #{gender,jdbcType=INTEGER}, #{contractOssPath,jdbcType=VARCHAR},
#{hiringBasicInfoId,jdbcType=BIGINT}, #{canLoginDyd,jdbcType=BIGINT}, #{canSeeSalaryList,jdbcType=BIGINT}
)
</insert>
......@@ -1119,32 +1119,32 @@
<insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into ag_acl_practitioner
(insurer_id, insurer_branch_id, dept_id, subordinate_system_id, practitioner_code,
`name`, mobile_no, id_type_id, id_type, id_no, practitioner_birthdate, practitioner_reg_no,
practitioner_reg_company, effective_start_date, effective_end_date, remark, customer_id,
employee_no, contract_no, is_active, created_at, created_by, updated_at, updated_by,
province_id, province_name, city_id, city_name, cert_list, bio_intro, wechat_id,
qq_id, is_profile_show, is_name_show, is_mobile_show, education_level, graduated_university,
mentor_id, introducer_id, gender, contract_oss_path, hiring_basic_info_id, can_login_dyd,
(insurer_id, insurer_branch_id, dept_id, subordinate_system_id, practitioner_code,
`name`, mobile_no, id_type_id, id_type, id_no, practitioner_birthdate, practitioner_reg_no,
practitioner_reg_company, effective_start_date, effective_end_date, remark, customer_id,
employee_no, contract_no, is_active, created_at, created_by, updated_at, updated_by,
province_id, province_name, city_id, city_name, cert_list, bio_intro, wechat_id,
qq_id, is_profile_show, is_name_show, is_mobile_show, education_level, graduated_university,
mentor_id, introducer_id, gender, contract_oss_path, hiring_basic_info_id, can_login_dyd,
can_see_salary_list)
values
<foreach collection="list" item="item" separator=",">
(#{item.insurerId,jdbcType=BIGINT}, #{item.insurerBranchId,jdbcType=BIGINT}, #{item.deptId,jdbcType=BIGINT},
#{item.subordinateSystemId,jdbcType=BIGINT}, #{item.practitionerCode,jdbcType=VARCHAR},
#{item.name,jdbcType=VARCHAR}, #{item.mobileNo,jdbcType=VARCHAR}, #{item.idTypeId,jdbcType=BIGINT},
#{item.idType,jdbcType=VARCHAR}, #{item.idNo,jdbcType=VARCHAR}, #{item.practitionerBirthdate,jdbcType=DATE},
#{item.practitionerRegNo,jdbcType=VARCHAR}, #{item.practitionerRegCompany,jdbcType=VARCHAR},
#{item.effectiveStartDate,jdbcType=DATE}, #{item.effectiveEndDate,jdbcType=DATE},
#{item.remark,jdbcType=LONGVARCHAR}, #{item.customerId,jdbcType=BIGINT}, #{item.employeeNo,jdbcType=VARCHAR},
#{item.contractNo,jdbcType=VARCHAR}, #{item.isActive,jdbcType=INTEGER}, #{item.createdAt,jdbcType=TIMESTAMP},
#{item.createdBy,jdbcType=BIGINT}, #{item.updatedAt,jdbcType=TIMESTAMP}, #{item.updatedBy,jdbcType=BIGINT},
#{item.provinceId,jdbcType=BIGINT}, #{item.provinceName,jdbcType=VARCHAR}, #{item.cityId,jdbcType=BIGINT},
#{item.cityName,jdbcType=VARCHAR}, #{item.certList,jdbcType=VARCHAR}, #{item.bioIntro,jdbcType=LONGVARCHAR},
#{item.wechatId,jdbcType=VARCHAR}, #{item.qqId,jdbcType=VARCHAR}, #{item.isProfileShow,jdbcType=INTEGER},
#{item.isNameShow,jdbcType=INTEGER}, #{item.isMobileShow,jdbcType=INTEGER}, #{item.educationLevel,jdbcType=VARCHAR},
#{item.graduatedUniversity,jdbcType=VARCHAR}, #{item.mentorId,jdbcType=BIGINT},
#{item.introducerId,jdbcType=BIGINT}, #{item.gender,jdbcType=INTEGER}, #{item.contractOssPath,jdbcType=VARCHAR},
#{item.hiringBasicInfoId,jdbcType=BIGINT}, #{item.canLoginDyd,jdbcType=BIGINT},
(#{item.insurerId,jdbcType=BIGINT}, #{item.insurerBranchId,jdbcType=BIGINT}, #{item.deptId,jdbcType=BIGINT},
#{item.subordinateSystemId,jdbcType=BIGINT}, #{item.practitionerCode,jdbcType=VARCHAR},
#{item.name,jdbcType=VARCHAR}, #{item.mobileNo,jdbcType=VARCHAR}, #{item.idTypeId,jdbcType=BIGINT},
#{item.idType,jdbcType=VARCHAR}, #{item.idNo,jdbcType=VARCHAR}, #{item.practitionerBirthdate,jdbcType=DATE},
#{item.practitionerRegNo,jdbcType=VARCHAR}, #{item.practitionerRegCompany,jdbcType=VARCHAR},
#{item.effectiveStartDate,jdbcType=DATE}, #{item.effectiveEndDate,jdbcType=DATE},
#{item.remark,jdbcType=LONGVARCHAR}, #{item.customerId,jdbcType=BIGINT}, #{item.employeeNo,jdbcType=VARCHAR},
#{item.contractNo,jdbcType=VARCHAR}, #{item.isActive,jdbcType=INTEGER}, #{item.createdAt,jdbcType=TIMESTAMP},
#{item.createdBy,jdbcType=BIGINT}, #{item.updatedAt,jdbcType=TIMESTAMP}, #{item.updatedBy,jdbcType=BIGINT},
#{item.provinceId,jdbcType=BIGINT}, #{item.provinceName,jdbcType=VARCHAR}, #{item.cityId,jdbcType=BIGINT},
#{item.cityName,jdbcType=VARCHAR}, #{item.certList,jdbcType=VARCHAR}, #{item.bioIntro,jdbcType=LONGVARCHAR},
#{item.wechatId,jdbcType=VARCHAR}, #{item.qqId,jdbcType=VARCHAR}, #{item.isProfileShow,jdbcType=INTEGER},
#{item.isNameShow,jdbcType=INTEGER}, #{item.isMobileShow,jdbcType=INTEGER}, #{item.educationLevel,jdbcType=VARCHAR},
#{item.graduatedUniversity,jdbcType=VARCHAR}, #{item.mentorId,jdbcType=BIGINT},
#{item.introducerId,jdbcType=BIGINT}, #{item.gender,jdbcType=INTEGER}, #{item.contractOssPath,jdbcType=VARCHAR},
#{item.hiringBasicInfoId,jdbcType=BIGINT}, #{item.canLoginDyd,jdbcType=BIGINT},
#{item.canSeeSalaryList,jdbcType=BIGINT})
</foreach>
</insert>
......@@ -1708,4 +1708,13 @@
<select id="findLeaveOfficeByPractitionerId" resultType="string">
select mobile_no from ag_acl_practitioner where is_active = 0 and subordinate_system_id = #{practitionerId,jdbcType=BIGINT}
</select>
<select id="queryAllLifePractitioner" resultMap="BaseResultMap">
SELECT p.*
from ag_acl_practitioner p
left join ag_acl_practitioner_setting s on s.practitioner_id = p.id
where s.practitioner_type_id = 28
and p.is_active=1
</select>
</mapper>
\ No newline at end of file
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
薪资样例
</title>
<style type="text/css">
* {margin:0; padding:0; text-indent:0;text-decoration: none; }
html,body{width:735pt;margin: 0 auto;}
ul,ol{list-style: none;}
.layout{width: 100%;margin: 0 auto;}
h1 { font-weight: bold; font-size:16pt; }
.s1 ,.s2 { text-decoration: none; font-size: 10pt;font-weight: normal;}
p { font-weight: normal; text-decoration: none; font-size: 8pt; margin:0pt; }
.s3 ,.s4,.s6{ font-size: 8pt; }
.s5 {font-size: 9pt; }
h3 { font-weight: bold; font-size: 8pt; }
h2 { font-size: 10pt; }
.s7 { font-size: 8pt; }
.header{position: relative;padding: 10pt 0;}
.header img{position: relative;height: 22pt;width: auto;top: 10pt;}
.header_right{margin-top: -10pt;float: right;}
.header_right span{display: block;}
.part_1{border: 2pt #333 solid;padding:0 5pt;font-size: 6pt;}
.part_1 p{width: 32%;display: inline-block;line-height: 1.8;}
.part_2{margin-top: 10pt;font-size: 6pt;}
.part_2 .table_1 thead{background: #CCC;}
table td{height: 20pt;line-height: 20pt;padding: 0 5pt;}
.table1_total td{border-top-style: solid; border-top-width: 1pt;}
</style>
</head>
<body>
<div class="layout">
<div class="header">
<img alt="image" src="images/Image_002.png"/>
<h1 style="padding-left: 466pt;text-indent: -340pt;line-height: 108%;text-align: left;">
上海银盾保险经纪从业人员佣金明细
<div class="header_right">
<span class="s1" style="vertical-align: -5pt;">发佣年月:${commissionYearMonth}</span>
<span class="s2">制单日期:${commissionDate}</span>
</div>
</h1>
</div>
<table cellspacing="0" class="table_1" width="100%" style="font-size: 6pt;border: 2pt solid black;">
<tr>
<td>分支机构:${branch}</td>
<td>体系:${subSystem}</td>
<td>身分别:经纪人</td>
</tr>
<tr>
<td>姓名员编:${practitionerNameCode} </td>
<td>职称:${grade}</td>
<td></td>
</tr>
<tr>
<td rowspan="3">银行账号:${bankAccount}</td>
</tr>
</table>
<div class="part_2">
<table cellspacing="0" class="table_1" width="100%">
<thead>
<tr>
<td style="border-bottom: 2pt #333 solid;width: 20%;">个人营销</td>
<td style="border-bottom: 2pt #333 solid;width: 10%;"> </td>
<td style="border-bottom: 2pt #333 solid;width: 20%;">销售管理</td>
<td style="border-bottom: 2pt #333 solid;width: 15%;"> </td>
<td style="border-bottom: 2pt #333 solid;width: 20%;">其它</td>
<td style="border-bottom: 2pt #333 solid;width: 15%;"> </td>
</tr>
</thead>
<tbody>
<tr>
<td style="width: 20%;">首年度销售佣金</td>
<td style="width: 10%;text-align: right;">${fyp}</td>
<td style="width: 20%;">首年度辅导奖金</td>
<td style="width: 15%;text-align: right;">${fap}</td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
</tr>
<tr>
<td style="width: 20%;"></td>
<td style="width: 10%;text-align: right;"></td>
<td style="width: 20%;">特别管理奖金</td>
<td style="width: 15%;text-align: right;">${other}</td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
</tr>
<tr>
<td style="width: 20%;"></td>
<td style="width: 10%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
</tr>
<tr>
<td style="width: 20%;"></td>
<td style="width: 10%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
</tr>
<tr>
<td style="width: 20%;border-top: 1pt #333 solid;"></td>
<td style="width: 10%;text-align: right;border-top: 1pt #333 solid;">${fyp}</td>
<td style="width: 20%;border-top: 1pt #333 solid;"></td>
<td style="width: 15%;text-align: right;border-top: 1pt #333 solid;">${fap}</td>
<td style="width: 20%;border-top: 1pt #333 solid;"></td>
<td style="width: 15%;text-align: right;border-top: 1pt #333 solid;">${other}</td>
</tr>
<tr >
<td style="width: 20%;"></td>
<td style="width: 10%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
<td style="width: 20%;"> 佣金合计</td>
<td style="width: 15%;text-align: right;"> ${totalCommission}</td>
</tr>
</tbody>
</table>
</div>
<div class="part_2">
<table cellspacing="0" class="table_1" width="100%">
<thead>
<tr>
<td style="border-bottom: 2pt #333 solid;width: 20%;">其他应税项目</td>
<td style="border-bottom: 2pt #333 solid;width: 10%;"> </td>
<td style="border-bottom: 2pt #333 solid;width: 20%;">其他非应税项目</td>
<td style="border-bottom: 2pt #333 solid;width: 15%;"> </td>
<td style="border-bottom: 2pt #333 solid;width: 20%;">本期实领</td>
<td style="border-bottom: 2pt #333 solid;width: 15%;"> </td>
</tr>
</thead>
<tbody>
<tr>
<td style="width: 20%;">应税其他加扣款</td>
<td style="width: 10%;text-align: right;">${otherAddPlus}</td>
<td style="width: 20%;">代扣个人所得税/增值税/附加税</td>
<td style="width: 15%;text-align: right;">${tax}</td>
<td style="width: 20%;"> 佣金合计</td>
<td style="width: 15%;text-align: right;">${totalCommission}</td>
</tr>
<tr>
<td style="width: 20%;"></td>
<td style="width: 10%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
<td style="width: 20%;">其他应税项目合计</td>
<td style="width: 15%;text-align: right;">${otherSummary}</td>
</tr>
<tr>
<td style="width: 20%;"></td>
<td style="width: 10%;text-align: right;"></td>
<td style="width: 20%;">补缴一月个人所得税</td>
<td style="width: 15%;text-align: right;">${supplementTax}</td>
<td style="width: 20%;">其他非应税项目合计</td>
<td style="width: 15%;text-align: right;"> ${otherTaxSummary}</td>
</tr>
<tr>
<td style="width: 20%;"></td>
<td style="width: 10%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
</tr>
<tr>
<td style="width: 20%;border-top: 1pt #333 solid;"></td>
<td style="width: 10%;text-align: right;border-top: 1pt #333 solid;"> ${branch}</td>
<td style="width: 20%;border-top: 1pt #333 solid;"></td>
<td style="width: 15%;text-align: right;border-top: 1pt #333 solid;"> ${branch}</td>
<td style="width: 20%;border-top: 1pt #333 solid;font-weight: bold;">本期实领</td>
<td style="width: 15%;text-align: right;border-top: 1pt #333 solid;font-weight: bold;">${currentActualSalary}</td>
</tr>
</tbody>
</table>
</div>
<div class="part_2">
<table cellspacing="0" class="table_1" width="100%">
<thead>
<tr>
<td style="border-bottom: 2pt #333 solid;width: 20%;"></td>
<td style="border-bottom: 2pt #333 solid;width: 10%;"> </td>
<td style="border-bottom: 2pt #333 solid;width: 20%;"></td>
<td style="border-bottom: 2pt #333 solid;width: 15%;"></td>
<td style="border-bottom: 2pt #333 solid;width: 20%;">个人所得税预扣</td>
<td style="border-bottom: 2pt #333 solid;width: 15%;"> </td>
</tr>
</thead>
<tbody>
<tr>
<td style="width: 20%;"></td>
<td style="width: 10%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
<td style="width: 20%;"> 本期应税所得</td>
<td style="width: 15%;text-align: right;">${currentTaxBeforeSalary}</td>
</tr>
<tr>
<td style="width: 20%;"></td>
<td style="width: 10%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
<td style="width: 20%;">年度累计应税所得</td>
<td style="width: 15%;text-align: right;">${currentYearTaxBeforeSalary}</td>
</tr>
<tr>
<td style="width: 20%;"></td>
<td style="width: 10%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
<td style="width: 20%;">预扣率</td>
<td style="width: 15%;text-align: right;">${preTaxOffRate}</td>
</tr>
<tr>
<td style="width: 20%;"></td>
<td style="width: 10%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
<td style="width: 20%;">累计应扣所得税</td>
<td style="width: 15%;text-align: right;"> ${currentYearTaxBeforeSalary}</td>
</tr>
<tr>
<td style="width: 20%;"></td>
<td style="width: 10%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
<td style="width: 20%;">累计已扣所得税</td>
<td style="width: 15%;text-align: right;">${currentYearTaxSummary}</td>
</tr>
<tr>
<td style="width: 20%;"></td>
<td style="width: 10%;text-align: right;"></td>
<td style="width: 20%;"></td>
<td style="width: 15%;text-align: right;"></td>
<td style="width: 20%;">本期应扣所得税</td>
<td style="width: 15%;text-align: right;"> ${currentTax}</td>
</tr>
</tbody>
</table>
</div>
<div class="part_2">
<table cellspacing="0" class="table_1" width="100%">
<thead>
<tr>
<td style="border-bottom: 2pt #333 solid;width: 20%;">绩效信息</td>
<td style="border-bottom: 2pt #333 solid;width: 20%;"> </td>
<td style="border-bottom: 2pt #333 solid;width: 20%;"></td>
<td style="border-bottom: 2pt #333 solid;width: 20%;"></td>
<td style="border-bottom: 2pt #333 solid;width: 20%;"></td>
</tr>
</thead>
<tbody>
<tr>
<td style="width: 20%;">个人业绩</td>
<td style="width: 20%;text-align: center;">当月FYC<hr style="color: #333;"/></td>
<td style="width: 20%;text-align: center;">年度FYC累计<hr style="color: #333;"/></td>
<td style="width: 20%;text-align: center;">当月RYC<hr style="color: #333;"/></td>
<td style="width: 20%;text-align: center;">年度RYC累计<hr style="color: #333;"/></td>
</tr>
<tr>
<td style="width: 20%;"></td>
<td style="width: 20%;text-align: right;"> ${currentMonthFYC}</td>
<td style="width: 20%;text-align: right;"> ${currentYearFYC}</td>
<td style="width: 20%;text-align: right;"></td>
<td style="width: 20%;text-align: right;"></td>
</tr>
<tr>
<td style="width: 20%;">天使体系业绩</td>
<td style="width: 20%;text-align: right;"> ${currentMonthFYC}</td>
<td style="width: 20%;text-align: right;"> ${currentYearFYC}</td>
<td style="width: 20%;text-align: right;"></td>
<td style="width: 20%;text-align: right;"></td>
</tr>
</tbody>
</table>
</div>
<div class="part_2">
<div style="border: 1pt #333 solid;width: 70%;height: 175pt;float: left; margin-right: 20pt;"></div>
<img style="float: right;" src="images/Image_012.jpg" alt="" />
</div>
<#list comList as com>
<br/>
<p style="text-indent: 0pt;text-align: left;">
${com.name}
</p>
<table style="border-collapse:collapse;width:100%;font-size: 5pt;" cellspacing="0">
<tr style="height:30pt">
<td style="width:45pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
保险公司
</td>
<td style="width:80pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
保单号码
</td>
<td style="width:40pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
生效日期
</td>
<td style="width:50pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
商品代码
</td>
<td style="width:30pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
体系
</td>
<td style="width:50pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
被保人姓名
</td>
<td style="width:30pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
年 度
</td>
<td style="text-align: right;width:45pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
保费
</td>
<td style="text-align: right;width:45pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
FYC/RYC
</td>
<td style="text-align: right;width:35pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
职阶 率%
</td>
<td style="text-align: right;width:45pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
佣金
</td>
<td style="width:45pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
备注
</td>
</tr>
<#list com.items as item>
<tr style="height:30pt">
<td style="width:45pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
${item.insurer}
</td>
<td style="width:80pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
${item.policyNo}
</td>
<td style="width:40pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
${item.effectiveDate}
</td>
<td style="width:50pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
${item.productCode}
</td>
<td style="width:30pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
${item.subSystem}
</td>
<td style="width:50pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
${item.insured}
</td>
<td style="width:15pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
${item.yearMonth}
</td>
<td style="text-align: right;width:65pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
${item.premium}
</td>
<td style="text-align: right;width:60pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
${item.fyc}
</td>
<td style="text-align: right;width:20pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
${item.gradeRate}
</td>
<td style="text-align: right;width:55pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
${item.commission}
</td>
<td style="width:45pt;border-top-style:solid;border-top-width:1pt;border-left-style:solid;border-left-width:1pt;border-bottom-style:solid;border-bottom-width:1pt;border-right-style:solid;border-right-width:1pt">
${item.note}
</td>
</tr>
</#list>
</table>
</#list>
</div>
</body>
</html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment