Commit ae679169 by jianan

龙虎榜调N22接口

parent 6276df5c
package com.yd.api.practitioner;
import com.alibaba.fastjson.JSONObject;
import com.yd.api.practitioner.service.PractitionerBasicInfoService;
import com.yd.api.practitioner.service.PractitionerService;
import com.yd.api.practitioner.service.ScheduleTrackService;
......@@ -31,6 +30,8 @@ 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;
......@@ -627,11 +628,11 @@ public class PractitionerController {
* @return
*/
@RequestMapping("/test")
public Object test(@RequestBody PolicyListQueryRequestVO requestVO) throws Exception{
public Object test(@RequestBody PractitionerRankRequestVO requestVO){
JsonResult result = new JsonResult();
PolicyListQueryResponseVO responseVO = practitionerBasicInfoService.policyListQuery(requestVO);
result.setData(responseVO);
PractitionerRankResponseVO responseVO = practitionerService.practitionerRank(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
......
......@@ -242,7 +242,7 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
List<SalaryDetails> salaryDetailsList = salaryDetailsSearchResponseVO.getResponseBody().getSalaryDetailsLIST();
// list分组
Map<String, List<SalaryDetails>> group = this.groupByCheckDate(salaryDetailsList);
Map<String, List<SalaryDetails>> group = n22SalaryService.groupByYearmonth(salaryDetailsList);
// 组装返回参数
List<PayScaleInfo> resultList = new ArrayList<>();
......@@ -332,37 +332,6 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
return sum;
}
/**
* 通过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);
}
result.forEach((cc, list) -> {
System.out.println("CheckDate is:" + cc);
list.forEach((SalaryDetails) -> {
System.out.println("SalaryDetails is:" + SalaryDetails);
});
});
return result;
}
@Override
public PayScalePdfResponseVO payScalePdf(PayScalePdfRequestVO requestVO) {
PayScalePdfResponseVO responseVO = new PayScalePdfResponseVO();
......
......@@ -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.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class BuryingPointN22 {
@JsonProperty("Pointname")
private String pointName;//埋点名称
@JsonProperty("PointStartDate")
private String pointStartDate;//埋点开始时间
@JsonProperty("PointEndDate")
private String pointEndDate;//埋点结束时间
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 InstallmentPremiumN22 {
private String periods;//期数
@JsonProperty("share_ratio")
private String shareRatio;//分期比率
private String share_ratio;//分期比率
private String premium;//分期金额
@JsonProperty("chargedate")
private String chargeDate;//分期付款时间
private String chargedate;//分期付款时间
}
......@@ -6,12 +6,12 @@ import java.util.List;
@Data
public class InsuredDetailN22 {
private Long feeId;//费用序列号, 内部使用.目前该字段无需填写.
private Long sgp;//毛保费
private Long agp;//调整后毛保费
private Long snp;//净保费
private Long anp;//调整后净保费
private Long app;//实付保费
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;//标的类型. 参考标的类型
......
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class PolicyDetailQueryRequestBody {
@JsonProperty("Epid")
private String epId;//epid :saas为当前库的代码如e00008 非saas忽略
@JsonProperty("Loginname")
private String loginName;//员工ID
@JsonProperty("policyNo")
private String policyNo;//保单号
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否,数据脱敏时有效
}
......@@ -9,19 +9,19 @@ import java.util.List;
@Data
public class PolicyDetailQueryResponseBody {
private Long policyId;//保单序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private Long productId;//产品序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String policyId;//保单序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String productId;//产品序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String vendorCode;//产品提供商代码, 必须提供
private String vendorName;//产品供应商名称(保司名称)
private String productCode;//产品代码, 必须提供
private String productName;//产品名称
private String productVersion;//产品版本, 必须提供.
private Date effectiveDate;//保单生效日2017/10/18 00:00:00
private Date expiryDate;//保单失效日2017/10/18 00:00:00
private Date quotationNo;//订单号, 内部使用.
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 Date issueDate;//出单日
private Date quoteDate;//首次报价日
private String issueDate;//出单日
private String quoteDate;//首次报价日
private String thirdQuoteNo;//第三方(例如:保司)报价单号
private String thirdOrderNo;//第三方(例如:保司)订单号
private String ePolicyDownloadUrl;//电子保单下载地址
......@@ -37,17 +37,13 @@ public class PolicyDetailQueryResponseBody {
private AgentN22 agent;//代理人. 参考 代理人 说明
private String thirdPartyAgentId;//第三方代理人号,对于第三方的只做保存,用于报表显示.
private String thirdPartyAgentName;//第三方代理人姓名,对于第三方的只做保存,用于报表显示.
@JsonProperty("order_player")
private String orderPlayer;//打单员
@JsonProperty("beto_rolegroup")
private String betoRoleGroup;//机构code
@JsonProperty("beto_rolegroupdesc")
private String betoRoleGroupDesc;//机构名称
private String order_player;//打单员
private String beto_rolegroup;//机构code
private String beto_rolegroupdesc;//机构名称
private List<BuryingPointN22> buryingPointList;//互联网产品埋点列表,用于记录在投保过程中各个阶段的时间点
@JsonProperty("BuryingVideo")
private String buryingVideo;//埋点视频编号
@JsonProperty("installment_premium")
private List<InstallmentPremiumN22> installmentPremium;//保单分期列表
private String BuryingVideo;//埋点视频编号
private List<InstallmentPremiumN22> installment_premium;//保单分期列表
private String sourceCode;//保单来源,如XXAPP下单,在保单同步时填写后,会在这里体现
private String butler;//管家
}
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;
......@@ -7,4 +9,5 @@ public interface N22PolicyService {
PolicyListQueryResponseVO policyList(PolicyListQueryRequestBody requestBody);
PolicyDetailQueryResponseVO policyInfo(PolicyDetailQueryRequestBody requestBody);
}
......@@ -2,6 +2,8 @@ package com.yd.rmi.n22.policy.service.impl;
import com.alibaba.fastjson.JSONObject;
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;
......@@ -35,4 +37,25 @@ public class N22PolicyServiceImpl implements N22PolicyService {
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);
logger.info("N22查询保单详情请求报文:"+obj.toString());
String url = "https://life.ydinsurance.cn/EliteGeneralHttpTask/GeneralService/PolicyInfo";
String result = N22Utils.postTransaction(url, obj.toString());
logger.info("N22查询保单详情响应报文:"+result);
rObj = JSONObject.parseObject(result, PolicyDetailQueryResponseVO.class);
return rObj;
}
}
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);
}
......@@ -2,6 +2,7 @@ package com.yd.rmi.n22.salary.service.impl;
import com.alibaba.fastjson.JSONObject;
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;
......@@ -9,7 +10,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.util.UUID;
import java.util.*;
@Service
public class N22SalaryServiceImpl implements N22SalaryService {
......@@ -36,4 +38,32 @@ public class N22SalaryServiceImpl implements N22SalaryService {
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;
}
}
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