Commit ae679169 by jianan

龙虎榜调N22接口

parent 6276df5c
package com.yd.api.practitioner; package com.yd.api.practitioner;
import com.alibaba.fastjson.JSONObject;
import com.yd.api.practitioner.service.PractitionerBasicInfoService; import com.yd.api.practitioner.service.PractitionerBasicInfoService;
import com.yd.api.practitioner.service.PractitionerService; import com.yd.api.practitioner.service.PractitionerService;
import com.yd.api.practitioner.service.ScheduleTrackService; import com.yd.api.practitioner.service.ScheduleTrackService;
...@@ -31,6 +30,8 @@ import com.yd.api.practitioner.vo.subordinate.QueryTeamMemberDetailResponseVO; ...@@ -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.SubordinateSystemMemberQueryRequestVO;
import com.yd.api.practitioner.vo.subordinate.SubordinateSystemMemberQueryResponseVO; import com.yd.api.practitioner.vo.subordinate.SubordinateSystemMemberQueryResponseVO;
import com.yd.api.result.JsonResult; 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.policy.service.N22PolicyService;
import com.yd.rmi.n22.staff.service.N22StaffService; import com.yd.rmi.n22.staff.service.N22StaffService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -627,11 +628,11 @@ public class PractitionerController { ...@@ -627,11 +628,11 @@ public class PractitionerController {
* @return * @return
*/ */
@RequestMapping("/test") @RequestMapping("/test")
public Object test(@RequestBody PolicyListQueryRequestVO requestVO) throws Exception{ public Object test(@RequestBody PractitionerRankRequestVO requestVO){
JsonResult result = new JsonResult(); JsonResult result = new JsonResult();
PolicyListQueryResponseVO responseVO = practitionerBasicInfoService.policyListQuery(requestVO); PractitionerRankResponseVO responseVO = practitionerService.practitionerRank(requestVO);
result.setData(responseVO);
result.addResult(responseVO); result.addResult(responseVO);
result.setData(responseVO);
return result; return result;
} }
......
...@@ -242,7 +242,7 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe ...@@ -242,7 +242,7 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
List<SalaryDetails> salaryDetailsList = salaryDetailsSearchResponseVO.getResponseBody().getSalaryDetailsLIST(); List<SalaryDetails> salaryDetailsList = salaryDetailsSearchResponseVO.getResponseBody().getSalaryDetailsLIST();
// list分组 // list分组
Map<String, List<SalaryDetails>> group = this.groupByCheckDate(salaryDetailsList); Map<String, List<SalaryDetails>> group = n22SalaryService.groupByYearmonth(salaryDetailsList);
// 组装返回参数 // 组装返回参数
List<PayScaleInfo> resultList = new ArrayList<>(); List<PayScaleInfo> resultList = new ArrayList<>();
...@@ -332,37 +332,6 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe ...@@ -332,37 +332,6 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
return sum; 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 @Override
public PayScalePdfResponseVO payScalePdf(PayScalePdfRequestVO requestVO) { public PayScalePdfResponseVO payScalePdf(PayScalePdfRequestVO requestVO) {
PayScalePdfResponseVO responseVO = new PayScalePdfResponseVO(); PayScalePdfResponseVO responseVO = new PayScalePdfResponseVO();
......
...@@ -5,6 +5,7 @@ import com.yd.api.customer.service.CustomerService; ...@@ -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.RegisterRequestVO;
import com.yd.api.customer.vo.register.RegisterResponseVO; import com.yd.api.customer.vo.register.RegisterResponseVO;
import com.yd.api.practitioner.vo.login.CanSeeSalaryListResponseVO; 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.PotentialGoalsActionsUpdateResponseVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsQueryResponseVO; import com.yd.api.practitioner.vo.recruit.PotentialGoalsQueryResponseVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginBasicInfo; import com.yd.api.practitioner.vo.login.PractitionerLoginBasicInfo;
...@@ -52,6 +53,15 @@ import com.yd.dal.service.meta.MdDropOptionsDALService; ...@@ -52,6 +53,15 @@ import com.yd.dal.service.meta.MdDropOptionsDALService;
import com.yd.rmi.ali.mail.service.MailService; import com.yd.rmi.ali.mail.service.MailService;
import com.yd.rmi.ali.oss.service.OssService; import com.yd.rmi.ali.oss.service.OssService;
import com.yd.rmi.cache.SystemConfigService; 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.GetStaffNewRequestBody;
import com.yd.rmi.n22.staff.pojo.GetStaffNewResponseVO; import com.yd.rmi.n22.staff.pojo.GetStaffNewResponseVO;
import com.yd.rmi.n22.staff.pojo.Staff; import com.yd.rmi.n22.staff.pojo.Staff;
...@@ -166,6 +176,10 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -166,6 +176,10 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
private MailService mailService; private MailService mailService;
@Autowired @Autowired
private N22StaffService n22StaffService; private N22StaffService n22StaffService;
@Autowired
private N22SalaryService n22SalaryService;
@Autowired
private N22PolicyService n22PolicyService;
@Override @Override
public PractitionerLoginResponseVO practitionerLogin(PractitionerLoginRequestVO requestVO) { public PractitionerLoginResponseVO practitionerLogin(PractitionerLoginRequestVO requestVO) {
...@@ -279,41 +293,41 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -279,41 +293,41 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
type = (type == null) ? 1 : type;//默认:保费 type = (type == null) ? 1 : type;//默认:保费
time = (time == null) ? 1 : time;//默认:本月 time = (time == null) ? 1 : time;//默认:本月
platform = (platform == null) ? 1 : platform; platform = (platform == null) ? 1 : platform;
if(!Strings.isNullOrEmpty(mobileNo)){ if (!Strings.isNullOrEmpty(mobileNo)) {
//查询该手机号码的经纪人id,是否存在 //查询该手机号码的经纪人id,是否存在
Map<Integer,PractitionerBasicInfo> practitionerBasicInfoMap = getPractitionerBasicInfo(mobileNo); Map<Integer, PractitionerBasicInfo> practitionerBasicInfoMap = getPractitionerBasicInfo(mobileNo);
if(!practitionerBasicInfoMap.isEmpty()){ if (!practitionerBasicInfoMap.isEmpty()) {
PractitionerBasicInfo practitionerBasicInfo = practitionerBasicInfoMap.get(platform); PractitionerBasicInfo practitionerBasicInfo = practitionerBasicInfoMap.get(platform);
Long practitionerTypeId = null; Long practitionerTypeId = null;
if(platform == 1){ if (platform == 1) {
practitionerTypeId = practitionerBasicInfo.getPractitionerTypeId(); practitionerTypeId = practitionerBasicInfo.getPractitionerTypeId();
}else{ } else {
PractitionerBasicInfo practitionerBasicInfoYD = practitionerBasicInfoMap.get(1); PractitionerBasicInfo practitionerBasicInfoYD = practitionerBasicInfoMap.get(1);
if(practitionerBasicInfoYD != null){ if (practitionerBasicInfoYD != null) {
practitionerTypeId = practitionerBasicInfoYD.getPractitionerTypeId(); practitionerTypeId = practitionerBasicInfoYD.getPractitionerTypeId();
} }
} }
if(practitionerBasicInfo != null && practitionerTypeId != null){ if (practitionerBasicInfo != null && practitionerTypeId != null) {
String practitionerId = practitionerBasicInfo.getPractitionerId(); String practitionerId = practitionerBasicInfo.getPractitionerId();
if(!Strings.isNullOrEmpty(practitionerId)){ if (!Strings.isNullOrEmpty(practitionerId)) {
List<PractitionerRankInfo> rankInfoList = getPractitionerRankInfo(time,platform,practitionerTypeId); 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"))); responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
} }
} }
}else{ } else {
responseVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("830001"))); //该经纪人不存在 responseVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("830001"))); //该经纪人不存在
} }
}else{ } else {
String [] param = {"mobileNo"}; String[] param = {"mobileNo"};
responseVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("610001", param))); responseVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("610001", param)));
} }
return responseVO; return responseVO;
} }
private List<PractitionerRankInfo> getPractitionerRankInfo(Integer time, Integer platform,Long practitionerTypeId) { private List<PractitionerRankInfo> getPractitionerRankInfo(Integer time, Integer platform,Long practitionerTypeId) {
List<PractitionerRankInfo> rankInfoList; List<PractitionerRankInfo> rankInfoList = new ArrayList<>();
if(platform == 1){ if(platform == 1){
rankInfoList = aclPractitionerDALService.getPractitionerRankInfoForOnline(time,practitionerTypeId); rankInfoList = aclPractitionerDALService.getPractitionerRankInfoForOnline(time,practitionerTypeId);
//特殊人员处理 //特殊人员处理
...@@ -324,11 +338,158 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -324,11 +338,158 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
rankInfoList.addAll(rankInfoListSpecials); rankInfoList.addAll(rankInfoListSpecials);
} }
}else{ }else{
rankInfoList = aclPractitionerDALService.getPractitionerRankInfoForOffline(time); // 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; 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) { private Map<Integer,PractitionerBasicInfo> getPractitionerBasicInfo(String mobileNo) {
Map<Integer,PractitionerBasicInfo> practitionerBasicInfoMap = new HashMap<>(); Map<Integer,PractitionerBasicInfo> practitionerBasicInfoMap = new HashMap<>();
PractitionerBasicInfo practitionerBasicInfo1 = aclPractitionerDALService.getPractitionerBasicInfoForOnline(mobileNo); PractitionerBasicInfo practitionerBasicInfo1 = aclPractitionerDALService.getPractitionerBasicInfoForOnline(mobileNo);
......
...@@ -78,4 +78,7 @@ public interface AclPractitionerMapper { ...@@ -78,4 +78,7 @@ public interface AclPractitionerMapper {
List<TeamMemberDetail> queryTeamMemberDetailList(List<Long> practitionerIdList); List<TeamMemberDetail> queryTeamMemberDetailList(List<Long> practitionerIdList);
List<String> findLeaveOfficeByPractitionerId(Long practitionerId); List<String> findLeaveOfficeByPractitionerId(Long practitionerId);
List<AclPractitioner> queryAllLifePractitioner();
} }
\ No newline at end of file
...@@ -190,4 +190,10 @@ public interface AclPractitionerDALService { ...@@ -190,4 +190,10 @@ public interface AclPractitionerDALService {
List<TeamMemberDetail> queryTeamMemberDetailList(List<Long> practitionerIdList); List<TeamMemberDetail> queryTeamMemberDetailList(List<Long> practitionerIdList);
List<String> findLeaveOfficeByPractitionerId(Long practitionerId); List<String> findLeaveOfficeByPractitionerId(Long practitionerId);
/**
* 查询所有寿险经纪人
* @return
*/
List<AclPractitioner> queryAllLifePractitioner();
} }
...@@ -206,4 +206,9 @@ public class AclPractitionerDALServiceImpl implements AclPractitionerDALService ...@@ -206,4 +206,9 @@ public class AclPractitionerDALServiceImpl implements AclPractitionerDALService
mobileNos.forEach(m -> mobileNoList.add(jpaCryptoConverter.decode(m))); mobileNos.forEach(m -> mobileNoList.add(jpaCryptoConverter.decode(m)));
return mobileNoList; return mobileNoList;
} }
@Override
public List<AclPractitioner> queryAllLifePractitioner() {
return aclPractitionerMapper.queryAllLifePractitioner();
}
} }
package com.yd.rmi.n22.policy.pojo.policydetail; package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@Data @Data
public class BuryingPointN22 { public class BuryingPointN22 {
@JsonProperty("Pointname") private String Pointname;//埋点名称
private String pointName;//埋点名称 private String PointStartDate;//埋点开始时间
@JsonProperty("PointStartDate") private String PointEndDate;//埋点结束时间
private String pointStartDate;//埋点开始时间
@JsonProperty("PointEndDate")
private String pointEndDate;//埋点结束时间
} }
package com.yd.rmi.n22.policy.pojo.policydetail; package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@Data @Data
public class InstallmentPremiumN22 { public class InstallmentPremiumN22 {
private String periods;//期数 private String periods;//期数
@JsonProperty("share_ratio") private String share_ratio;//分期比率
private String shareRatio;//分期比率
private String premium;//分期金额 private String premium;//分期金额
@JsonProperty("chargedate") private String chargedate;//分期付款时间
private String chargeDate;//分期付款时间
} }
...@@ -6,12 +6,12 @@ import java.util.List; ...@@ -6,12 +6,12 @@ import java.util.List;
@Data @Data
public class InsuredDetailN22 { public class InsuredDetailN22 {
private Long feeId;//费用序列号, 内部使用.目前该字段无需填写. private String feeId;//费用序列号, 内部使用.目前该字段无需填写.
private Long sgp;//毛保费 private String sgp;//毛保费
private Long agp;//调整后毛保费 private String agp;//调整后毛保费
private Long snp;//净保费 private String snp;//净保费
private Long anp;//调整后净保费 private String anp;//调整后净保费
private Long app;//实付保费 private String app;//实付保费
private Object feeAmounts;//费用明细清单 private Object feeAmounts;//费用明细清单
private String insuredId;//标的序列号, 内部使用.如果是第三方输入数据, 该字段无需填写. private String insuredId;//标的序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String insuredType;//标的类型. 参考标的类型 private String insuredType;//标的类型. 参考标的类型
......
package com.yd.rmi.n22.policy.pojo.policydetail; package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@Data @Data
public class PolicyDetailQueryRequestBody { public class PolicyDetailQueryRequestBody {
@JsonProperty("Epid") private String Epid; //epid :saas为当前库的代码如e00008 非saas忽略
private String epId;//epid :saas为当前库的代码如e00008 非saas忽略 private String Loginname; //员工ID
@JsonProperty("Loginname") private String policyNo; //保单号
private String loginName;//员工ID private String relation_id; //保单工单guid
@JsonProperty("policyNo") private String staff_id; //员工内部ID
private String policyNo;//保单号 private Integer clearDataFlag; //是否明文数据:1是,0否,数据脱敏时有效
} }
...@@ -9,19 +9,19 @@ import java.util.List; ...@@ -9,19 +9,19 @@ import java.util.List;
@Data @Data
public class PolicyDetailQueryResponseBody { public class PolicyDetailQueryResponseBody {
private Long policyId;//保单序列号, 内部使用.如果是第三方输入数据, 该字段无需填写. private String policyId;//保单序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private Long productId;//产品序列号, 内部使用.如果是第三方输入数据, 该字段无需填写. private String productId;//产品序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String vendorCode;//产品提供商代码, 必须提供 private String vendorCode;//产品提供商代码, 必须提供
private String vendorName;//产品供应商名称(保司名称) private String vendorName;//产品供应商名称(保司名称)
private String productCode;//产品代码, 必须提供 private String productCode;//产品代码, 必须提供
private String productName;//产品名称 private String productName;//产品名称
private String productVersion;//产品版本, 必须提供. private String productVersion;//产品版本, 必须提供.
private Date effectiveDate;//保单生效日2017/10/18 00:00:00 private String effectiveDate;//保单生效日2017/10/18 00:00:00
private Date expiryDate;//保单失效日2017/10/18 00:00:00 private String expiryDate;//保单失效日2017/10/18 00:00:00
private Date quotationNo;//订单号, 内部使用. private String quotationNo;//订单号, 内部使用.
private String policyNo;//保单号. private String policyNo;//保单号.
private Date issueDate;//出单日 private String issueDate;//出单日
private Date quoteDate;//首次报价日 private String quoteDate;//首次报价日
private String thirdQuoteNo;//第三方(例如:保司)报价单号 private String thirdQuoteNo;//第三方(例如:保司)报价单号
private String thirdOrderNo;//第三方(例如:保司)订单号 private String thirdOrderNo;//第三方(例如:保司)订单号
private String ePolicyDownloadUrl;//电子保单下载地址 private String ePolicyDownloadUrl;//电子保单下载地址
...@@ -37,17 +37,13 @@ public class PolicyDetailQueryResponseBody { ...@@ -37,17 +37,13 @@ public class PolicyDetailQueryResponseBody {
private AgentN22 agent;//代理人. 参考 代理人 说明 private AgentN22 agent;//代理人. 参考 代理人 说明
private String thirdPartyAgentId;//第三方代理人号,对于第三方的只做保存,用于报表显示. private String thirdPartyAgentId;//第三方代理人号,对于第三方的只做保存,用于报表显示.
private String thirdPartyAgentName;//第三方代理人姓名,对于第三方的只做保存,用于报表显示. private String thirdPartyAgentName;//第三方代理人姓名,对于第三方的只做保存,用于报表显示.
@JsonProperty("order_player")
private String orderPlayer;//打单员 private String order_player;//打单员
@JsonProperty("beto_rolegroup") private String beto_rolegroup;//机构code
private String betoRoleGroup;//机构code private String beto_rolegroupdesc;//机构名称
@JsonProperty("beto_rolegroupdesc")
private String betoRoleGroupDesc;//机构名称
private List<BuryingPointN22> buryingPointList;//互联网产品埋点列表,用于记录在投保过程中各个阶段的时间点 private List<BuryingPointN22> buryingPointList;//互联网产品埋点列表,用于记录在投保过程中各个阶段的时间点
@JsonProperty("BuryingVideo") private String BuryingVideo;//埋点视频编号
private String buryingVideo;//埋点视频编号 private List<InstallmentPremiumN22> installment_premium;//保单分期列表
@JsonProperty("installment_premium")
private List<InstallmentPremiumN22> installmentPremium;//保单分期列表
private String sourceCode;//保单来源,如XXAPP下单,在保单同步时填写后,会在这里体现 private String sourceCode;//保单来源,如XXAPP下单,在保单同步时填写后,会在这里体现
private String butler;//管家 private String butler;//管家
} }
package com.yd.rmi.n22.policy.service; 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.PolicyListQueryRequestBody;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryResponseVO; import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryResponseVO;
...@@ -7,4 +9,5 @@ public interface N22PolicyService { ...@@ -7,4 +9,5 @@ public interface N22PolicyService {
PolicyListQueryResponseVO policyList(PolicyListQueryRequestBody requestBody); PolicyListQueryResponseVO policyList(PolicyListQueryRequestBody requestBody);
PolicyDetailQueryResponseVO policyInfo(PolicyDetailQueryRequestBody requestBody);
} }
...@@ -2,6 +2,8 @@ package com.yd.rmi.n22.policy.service.impl; ...@@ -2,6 +2,8 @@ package com.yd.rmi.n22.policy.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yd.rmi.n22.common.utils.N22Utils; 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.PolicyListQueryRequestBody;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryResponseVO; import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryResponseVO;
import com.yd.rmi.n22.policy.service.N22PolicyService; import com.yd.rmi.n22.policy.service.N22PolicyService;
...@@ -35,4 +37,25 @@ public class N22PolicyServiceImpl implements N22PolicyService { ...@@ -35,4 +37,25 @@ public class N22PolicyServiceImpl implements N22PolicyService {
return rObj; 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; 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.SalaryDetailsSearchRequestBody;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchResponseVO; import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchResponseVO;
import java.util.List;
import java.util.Map;
public interface N22SalaryService { public interface N22SalaryService {
SalaryDetailsSearchResponseVO salaryDetailsSearch(SalaryDetailsSearchRequestBody salaryDetailsSearchRequestBody); SalaryDetailsSearchResponseVO salaryDetailsSearch(SalaryDetailsSearchRequestBody salaryDetailsSearchRequestBody);
Map<String, List<SalaryDetails>> groupByYearmonth(List<SalaryDetails> salaryDetailsList);
} }
...@@ -2,6 +2,7 @@ package com.yd.rmi.n22.salary.service.impl; ...@@ -2,6 +2,7 @@ package com.yd.rmi.n22.salary.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yd.rmi.n22.common.utils.N22Utils; 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.SalaryDetailsSearchRequestBody;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchResponseVO; import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchResponseVO;
import com.yd.rmi.n22.salary.service.N22SalaryService; import com.yd.rmi.n22.salary.service.N22SalaryService;
...@@ -9,7 +10,8 @@ import org.slf4j.Logger; ...@@ -9,7 +10,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.UUID; import java.util.*;
@Service @Service
public class N22SalaryServiceImpl implements N22SalaryService { public class N22SalaryServiceImpl implements N22SalaryService {
...@@ -36,4 +38,32 @@ public class N22SalaryServiceImpl implements N22SalaryService { ...@@ -36,4 +38,32 @@ public class N22SalaryServiceImpl implements N22SalaryService {
return response; 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;
}
} }
...@@ -1708,4 +1708,13 @@ ...@@ -1708,4 +1708,13 @@
<select id="findLeaveOfficeByPractitionerId" resultType="string"> <select id="findLeaveOfficeByPractitionerId" resultType="string">
select mobile_no from ag_acl_practitioner where is_active = 0 and subordinate_system_id = #{practitionerId,jdbcType=BIGINT} select mobile_no from ag_acl_practitioner where is_active = 0 and subordinate_system_id = #{practitionerId,jdbcType=BIGINT}
</select> </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> </mapper>
\ 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