Commit 88d8b678 by jianan

ydLife龙虎榜调N22接口

parent 13e4e7c6
...@@ -5,7 +5,6 @@ import com.yd.api.customer.service.CustomerService; ...@@ -5,7 +5,6 @@ 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;
...@@ -53,17 +52,9 @@ import com.yd.dal.service.meta.MdDropOptionsDALService; ...@@ -53,17 +52,9 @@ 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.policy.service.N22PolicyService;
import com.yd.rmi.n22.salary.pojo.SalaryDetails; import com.yd.rmi.n22.salary.pojo.*;
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.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.pojo.Staff;
import com.yd.rmi.n22.staff.service.N22StaffService; import com.yd.rmi.n22.staff.service.N22StaffService;
import com.yd.rmi.tencent.wechat.service.WechatService; import com.yd.rmi.tencent.wechat.service.WechatService;
...@@ -279,24 +270,21 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -279,24 +270,21 @@ 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()) {
Long practitionerTypeId = practitionerBasicInfoMap.get(1).getPractitionerTypeId();
PractitionerBasicInfo practitionerBasicInfo = practitionerBasicInfoMap.get(platform); PractitionerBasicInfo practitionerBasicInfo = practitionerBasicInfoMap.get(platform);
Long practitionerTypeId = null;
if (platform == 1) {
practitionerTypeId = practitionerBasicInfo.getPractitionerTypeId();
} else {
PractitionerBasicInfo practitionerBasicInfoYD = practitionerBasicInfoMap.get(1);
if (practitionerBasicInfoYD != null) {
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(requestVO, practitionerTypeId, practitionerId);
//按照指定类型排序并获取前10个元素
rankInfoList = this.sortByTypeAndGetElement(rankInfoList, type);
//按照指定类型排序 //按照指定类型排序
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")));
...@@ -312,7 +300,35 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -312,7 +300,35 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
return responseVO; return responseVO;
} }
private List<PractitionerRankInfo> getPractitionerRankInfo(Integer time, Integer platform,Long practitionerTypeId) { private List<PractitionerRankInfo> sortByTypeAndGetElement(List<PractitionerRankInfo> rankInfoList, Integer type) {
// 排序---1-保费,2-佣金,3-件数
if(2 == type){
rankInfoList.sort(Comparator.comparingDouble(PractitionerRankInfo::getFyc).reversed());
}else if(3 == type){
rankInfoList.sort(Comparator.comparingInt(PractitionerRankInfo::getCount).reversed());
}else{
rankInfoList.sort(Comparator.comparingDouble(PractitionerRankInfo::getFyp).reversed());
}
// 获取前10个元素
List<PractitionerRankInfo> subList = rankInfoList;
if (rankInfoList != null && rankInfoList.size() > 10) {
subList = rankInfoList.subList(0, 10);
}
System.out.println("看看截取后的集合个数");
System.out.println(subList.size());
return subList;
}
private List<PractitionerRankInfo> getPractitionerRankInfo(PractitionerRankRequestVO requestVO, Long practitionerTypeId, String practitionerId) {
Integer time = requestVO.getTime();
Integer isPersonal = requestVO.getIsPersonal();
Integer platform = requestVO.getPlatform();
time = (time == null) ? 1 : time;//默认:本月
platform = (platform == null) ? 1 : platform;
List<PractitionerRankInfo> rankInfoList = new ArrayList<>(); List<PractitionerRankInfo> rankInfoList = new ArrayList<>();
if(platform == 1){ if(platform == 1){
rankInfoList = aclPractitionerDALService.getPractitionerRankInfoForOnline(time,practitionerTypeId); rankInfoList = aclPractitionerDALService.getPractitionerRankInfoForOnline(time,practitionerTypeId);
...@@ -324,19 +340,19 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -324,19 +340,19 @@ 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接口查寿险 // 调用N22接口查寿险
// try { try {
// rankInfoList = this.getPractitionerRankInfoFromN22(time); rankInfoList = this.getPractitionerRankInfoFromN22(time, isPersonal, practitionerId);
// } catch (Exception e) { } catch (Exception e) {
// e.printStackTrace(); e.printStackTrace();
// } }
} }
return rankInfoList; return rankInfoList;
} }
private List<PractitionerRankInfo> getPractitionerRankInfoFromN22(Integer time) throws Exception { private List<PractitionerRankInfo> getPractitionerRankInfoFromN22(Integer time, Integer isPersonal, String loginName) throws Exception {
// 根据查询时间范围获取查询开始时间和结束时间 // 根据查询时间范围获取查询开始时间和结束时间
String startTime; String startTime;
String endTime; String endTime;
...@@ -350,130 +366,59 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -350,130 +366,59 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
startTime = CommonUtil.getBeginDayOfYear(); startTime = CommonUtil.getBeginDayOfYear();
endTime = CommonUtil.getEndDayOfYear(); endTime = CommonUtil.getEndDayOfYear();
} }
// 循环查询每个经纪人的数据
List<AclPractitioner> list = aclPractitionerDALService.queryAllLifePractitioner(); List<PractitionerRankInfo> rankInfoList = this.queryN22RankInfoList(loginName, isPersonal, startTime, endTime);
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 { private List<PractitionerRankInfo> queryN22RankInfoList(String loginName, Integer isPersonal, 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())){ // 1.根据Agent_id当前经纪人的佣金明细
return null; SearchStaffAchievementRequestBody searchStaffAchievementRequestBody = new SearchStaffAchievementRequestBody();
} if (Integer.valueOf("0").equals(isPersonal)) {
if (!"查询成功".equals(resp.getResponseHead().getMessage())){ searchStaffAchievementRequestBody.setAgent_id(loginName);
throw new Exception("查询N22的Agent_id错误");
} }
List<Staff> staffList = resp.getResponseBody().getStaff(); searchStaffAchievementRequestBody.setSearchtype("1");
if (staffList.size() == 0) { searchStaffAchievementRequestBody.setIsdown("0");
throw new Exception("查询N22的经纪人错误"); searchStaffAchievementRequestBody.setPolicystatus("201");
} searchStaffAchievementRequestBody.setIssuedatestart(startTime);
Staff staff = staffList.get(0); searchStaffAchievementRequestBody.setIssuedateend(endTime);
String agent_id = staff.getAgent_id(); SearchStaffAchievementResponseVO searchStaffAchievementResponseVO = n22SalaryService.searchStaffAchievement(searchStaffAchievementRequestBody);
// 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())){ if (!"查询成功".equals(searchStaffAchievementResponseVO.getResponseHead().getMessage())){
throw new Exception( "查询N22佣金明细列表错误"); throw new Exception( "N22寿险业绩统计查询错误");
} }
List<SalaryDetails> salaryDetailsList = salaryDetailsSearchResponseVO.getResponseBody().getSalaryDetailsLIST(); List<Achieve> achieveList = searchStaffAchievementResponseVO.getResponseBody().getAchieveList();
// 3.按年月分组 // 2.组装返回报文
Map<String, List<SalaryDetails>> group = n22SalaryService.groupByYearmonth(salaryDetailsList); List<PractitionerRankInfo> rankInfoList = new ArrayList<>();
List<String> nameList = new ArrayList<>();
// 4.统计FYC,FYP,count
PractitionerRankInfo rankInfo = null; PractitionerRankInfo rankInfo = null;
for (String key : group.keySet()) { for (Achieve achieve : achieveList) {
System.out.println("Key = " + key); rankInfo = new PractitionerRankInfo();
List<SalaryDetails> list = group.get(key); rankInfo.setCount(achieve.getSucNumber());
rankInfo.setFyp(achieve.getFYP());
rankInfo.setFyc(achieve.getFYC());
rankInfo.setName(achieve.getDescription());
// 计算每组FYC,FYP,count rankInfoList.add(rankInfo);
rankInfo = this.getFypAndFycAndCount(list); // 获取nameList
nameList.add(achieve.getDescription());
}
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 // 3.根据姓名查询经纪人所属体系名称
Double premium = 0D; List<PractitionerInfo> practitionerInfoList = aclPractitionerDALService.findPractitionerInfoByNameList(nameList);
for (SalaryDetails s : list) { for (PractitionerRankInfo rankInfo1 : rankInfoList) {
// 2.调用N22保单接口获取每个保单的保费 for (PractitionerInfo practitionerInfo : practitionerInfoList) {
if ("FYC".equals(s.getSalaryName())) { if (rankInfo1.getName().equals(practitionerInfo.getName())) {
premium = this.getFyp(s.getAppl_No()); rankInfo1.setSpcDivName(practitionerInfo.getSubsystem());
}
fyp = BigDecimal.valueOf(premium)
.add(BigDecimal.valueOf(fyp))
.doubleValue();
} }
} }
PractitionerRankInfo rankInfo = new PractitionerRankInfo(); return rankInfoList;
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) {
...@@ -486,24 +431,32 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -486,24 +431,32 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
practitionerBasicInfoMap.put(1,practitionerBasicInfo1); practitionerBasicInfoMap.put(1,practitionerBasicInfo1);
} }
} }
PractitionerBasicInfo practitionerBasicInfo2 = aclPractitionerDALService.getPractitionerBasicInfoForOffline(mobileNo); // PractitionerBasicInfo practitionerBasicInfo2 = aclPractitionerDALService.getPractitionerBasicInfoForOffline(mobileNo);
// N22查询经纪人信息接口
PractitionerBasicInfo practitionerBasicInfo2 = this.queryN22PractitionerBasicInfo(mobileNo);
practitionerBasicInfoMap.put(2,practitionerBasicInfo2); practitionerBasicInfoMap.put(2,practitionerBasicInfo2);
return practitionerBasicInfoMap; return practitionerBasicInfoMap;
} }
private PractitionerBasicInfo queryN22PractitionerBasicInfo(String mobileNo) {
Staff staff = n22StaffService.queryN22StaffByMobileNo(mobileNo);
if (staff != null) {
PractitionerBasicInfo practitionerBasicInfo = new PractitionerBasicInfo();
practitionerBasicInfo.setPractitionerId(staff.getAgent_id());
return practitionerBasicInfo;
}
return null;
}
private void getPractitionerRankResult(PractitionerRankResponseVO responseVO, List<PractitionerRankInfo> rankInfoList, Integer type, Map<Integer,PractitionerBasicInfo> practitionerBasicInfoMap,Integer time,Integer platform,Long practitionerTypeId) { private void getPractitionerRankResult(PractitionerRankResponseVO responseVO, List<PractitionerRankInfo> rankInfoList, Integer type, Map<Integer,PractitionerBasicInfo> practitionerBasicInfoMap,Integer time,Integer platform,Long practitionerTypeId) {
PractitionerInfoForAchievement practitionerInfo = new PractitionerInfoForAchievement(0D,0D,0); PractitionerInfoForAchievement practitionerInfo = new PractitionerInfoForAchievement(0D,0D,0);
List<AclCustomerFortuneStatistics> rankList = new ArrayList<>(); List<AclCustomerFortuneStatistics> rankList = new ArrayList<>();
String practitionerId = practitionerBasicInfoMap.get(platform).getPractitionerId(); String practitionerId = practitionerBasicInfoMap.get(platform).getPractitionerId();
if(!rankInfoList.isEmpty()){ if(!rankInfoList.isEmpty()){
//排序---1-保费,2-佣金,3-件数
if(2 == type){
rankInfoList.sort(Comparator.comparingDouble(PractitionerRankInfo::getFyc).reversed());
}else if(3 == type){
rankInfoList.sort(Comparator.comparingInt(PractitionerRankInfo::getCount).reversed());
}else{
rankInfoList.sort(Comparator.comparingDouble(PractitionerRankInfo::getFyp).reversed());
}
AclCustomerFortuneStatistics fortuneStatistics; AclCustomerFortuneStatistics fortuneStatistics;
int rank = 1; int rank = 1;
Long practitionerIdForOnLine; Long practitionerIdForOnLine;
......
...@@ -2,9 +2,10 @@ package com.yd.api.practitioner.vo.rank; ...@@ -2,9 +2,10 @@ package com.yd.api.practitioner.vo.rank;
public class PractitionerRankRequestVO { public class PractitionerRankRequestVO {
private String mobileNo; private String mobileNo;
private Integer platform;//1-online,2-offline private Integer platform;//1-online,2-offline(N22)
private Integer time;//1-month,2-year,3-quarter private Integer time;//1-month,2-year,3-quarter
private Integer type;//1-保费,2-佣金,3-件数 private Integer type;//1-保费,2-佣金,3-件数
private Integer isPersonal;//0-查询当前经纪人的个人数据,1-查询所有经纪人的数据
public String getMobileNo() { public String getMobileNo() {
return mobileNo; return mobileNo;
...@@ -37,4 +38,12 @@ public class PractitionerRankRequestVO { ...@@ -37,4 +38,12 @@ public class PractitionerRankRequestVO {
public void setType(Integer type) { public void setType(Integer type) {
this.type = type; this.type = type;
} }
public Integer getIsPersonal() {
return isPersonal;
}
public void setIsPersonal(Integer isPersonal) {
this.isPersonal = isPersonal;
}
} }
...@@ -10,10 +10,12 @@ public class PractitionerInfo { ...@@ -10,10 +10,12 @@ public class PractitionerInfo {
private String levelName;//级别 private String levelName;//级别
private String insurerBranchName;//分公司名称 private String insurerBranchName;//分公司名称
private Long subordinateId;//体系ID private Long subordinateId;//体系ID
private String subsystem;
private String weChatId; private String weChatId;
private String qqId; private String qqId;
private String practitionerRegNo; private String practitionerRegNo;
private Long canSeeSalaryList; private Long canSeeSalaryList;
private String test;
public Long getCustomerId() { public Long getCustomerId() {
return customerId; return customerId;
...@@ -118,4 +120,20 @@ public class PractitionerInfo { ...@@ -118,4 +120,20 @@ public class PractitionerInfo {
public void setCanSeeSalaryList(Long canSeeSalaryList) { public void setCanSeeSalaryList(Long canSeeSalaryList) {
this.canSeeSalaryList = canSeeSalaryList; this.canSeeSalaryList = canSeeSalaryList;
} }
public String getSubsystem() {
return subsystem;
}
public void setSubsystem(String subsystem) {
this.subsystem = subsystem;
}
public String getTest() {
return test;
}
public void setTest(String test) {
this.test = test;
}
} }
...@@ -81,4 +81,5 @@ public interface AclPractitionerMapper { ...@@ -81,4 +81,5 @@ public interface AclPractitionerMapper {
List<AclPractitioner> queryAllLifePractitioner(); List<AclPractitioner> queryAllLifePractitioner();
List<PractitionerInfo> findPractitionerInfoByNameList(List<String> nameList);
} }
\ No newline at end of file
...@@ -65,6 +65,13 @@ public interface AclPractitionerDALService { ...@@ -65,6 +65,13 @@ public interface AclPractitionerDALService {
PractitionerInfo findPractitionerInfoByLogin(String mobileNo); PractitionerInfo findPractitionerInfoByLogin(String mobileNo);
/** /**
* 经纪人基本信息查询
* @param nameList
* @return
*/
List<PractitionerInfo> findPractitionerInfoByNameList(List<String> nameList);
/**
* 通过经纪人id查找经纪人 * 通过经纪人id查找经纪人
* @param practitionerId * @param practitionerId
* @return * @return
......
...@@ -74,6 +74,11 @@ public class AclPractitionerDALServiceImpl implements AclPractitionerDALService ...@@ -74,6 +74,11 @@ public class AclPractitionerDALServiceImpl implements AclPractitionerDALService
} }
@Override @Override
public List<PractitionerInfo> findPractitionerInfoByNameList(List<String> nameList) {
return aclPractitionerMapper.findPractitionerInfoByNameList(nameList);
}
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_MASTER) @TargetDataSource(dataSourceKey = DataSourceKey.DB_MASTER)
public AclPractitioner findPractitionerById(Long practitionerId) { public AclPractitioner findPractitionerById(Long practitionerId) {
return aclPractitionerMapper.selectByPrimaryKey(practitionerId); return aclPractitionerMapper.selectByPrimaryKey(practitionerId);
......
package com.yd.rmi.n22.salary.pojo;
public class Achieve {
private String ID;
private String Description;
private String SearchType;
private Double FYC;
private Double FYP;
private int SucNumber;
private Double StandardPREMIUM;
public void setID(String ID){
this.ID = ID;
}
public String getID(){
return this.ID;
}
public void setDescription(String Description){
this.Description = Description;
}
public String getDescription(){
return this.Description;
}
public void setSearchType(String SearchType){
this.SearchType = SearchType;
}
public String getSearchType(){
return this.SearchType;
}
public void setFYC(Double FYC){
this.FYC = FYC;
}
public Double getFYC(){
return this.FYC;
}
public void setFYP(Double FYP){
this.FYP = FYP;
}
public Double getFYP(){
return this.FYP;
}
public void setSucNumber(int SucNumber){
this.SucNumber = SucNumber;
}
public int getSucNumber(){
return this.SucNumber;
}
public void setStandardPREMIUM(Double StandardPREMIUM){
this.StandardPREMIUM = StandardPREMIUM;
}
public Double getStandardPREMIUM(){
return this.StandardPREMIUM;
}
}
package com.yd.rmi.n22.salary.pojo;
public class SearchStaffAchievementRequestBody {
private String Epid;
private String issuedatestart;
private String issuedateend;
private String searchtype;
private String policystatus;
private String isdown;
private String agent_id;
private String rolegroup_id;
private String organization_id;
public void setEpid(String Epid){
this.Epid = Epid;
}
public String getEpid(){
return this.Epid;
}
public void setIssuedatestart(String issuedatestart){
this.issuedatestart = issuedatestart;
}
public String getIssuedatestart(){
return this.issuedatestart;
}
public void setIssuedateend(String issuedateend){
this.issuedateend = issuedateend;
}
public String getIssuedateend(){
return this.issuedateend;
}
public void setSearchtype(String searchtype){
this.searchtype = searchtype;
}
public String getSearchtype(){
return this.searchtype;
}
public void setPolicystatus(String policystatus){
this.policystatus = policystatus;
}
public String getPolicystatus(){
return this.policystatus;
}
public void setIsdown(String isdown){
this.isdown = isdown;
}
public String getIsdown(){
return this.isdown;
}
public void setAgent_id(String agent_id){
this.agent_id = agent_id;
}
public String getAgent_id(){
return this.agent_id;
}
public void setRolegroup_id(String rolegroup_id){
this.rolegroup_id = rolegroup_id;
}
public String getRolegroup_id(){
return this.rolegroup_id;
}
public void setOrganization_id(String organization_id){
this.organization_id = organization_id;
}
public String getOrganization_id(){
return this.organization_id;
}
}
package com.yd.rmi.n22.salary.pojo;
import lombok.Data;
import java.util.List;
@Data
public class SearchStaffAchievementResponseBody {
private List<Achieve> AchieveList;
}
package com.yd.rmi.n22.salary.pojo;
import com.yd.rmi.n22.common.pojo.ResponseHead;
import lombok.Data;
@Data
public class SearchStaffAchievementResponseVO {
private ResponseHead responseHead;
private SearchStaffAchievementResponseBody responseBody;
}
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.*;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchRequestBody;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchResponseVO;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -10,5 +8,5 @@ import java.util.Map; ...@@ -10,5 +8,5 @@ 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); SearchStaffAchievementResponseVO searchStaffAchievement(SearchStaffAchievementRequestBody searchStaffAchievementRequestBody);
} }
...@@ -3,9 +3,7 @@ package com.yd.rmi.n22.salary.service.impl; ...@@ -3,9 +3,7 @@ package com.yd.rmi.n22.salary.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yd.rmi.cache.SystemConfigService; import com.yd.rmi.cache.SystemConfigService;
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.*;
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.salary.service.N22SalaryService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -40,35 +38,29 @@ public class N22SalaryServiceImpl implements N22SalaryService { ...@@ -40,35 +38,29 @@ public class N22SalaryServiceImpl implements N22SalaryService {
logger.info("N22佣金明细查询响应报文:"+result); logger.info("N22佣金明细查询响应报文:"+result);
SalaryDetailsSearchResponseVO response = JSONObject.parseObject(result, SalaryDetailsSearchResponseVO.class); SalaryDetailsSearchResponseVO response = JSONObject.parseObject(result, SalaryDetailsSearchResponseVO.class);
return response; return response;
} }
@Override @Override
public Map<String, List<SalaryDetails>> groupByYearmonth(List<SalaryDetails> salaryDetailsList) { public SearchStaffAchievementResponseVO searchStaffAchievement(SearchStaffAchievementRequestBody searchStaffAchievementRequestBody) {
Map<String, List<SalaryDetails>> result = new HashMap<String, List<SalaryDetails>>(); JSONObject obj = new JSONObject(); //接口传参
int year = 0;
String month = ""; JSONObject requestHead = new JSONObject();
String key = ""; requestHead.put("seqNo", UUID.randomUUID().toString());
for (SalaryDetails SalaryDetails : salaryDetailsList) {
year = SalaryDetails.getYear(); obj.put("requestHead", requestHead);
month = SalaryDetails.getMonth(); obj.put("requestBody", searchStaffAchievementRequestBody);
key = year + month; logger.info("N22寿险业绩统计查询请求报文:"+obj.toString());
List<SalaryDetails> childList = result.get(key);
if (childList == null) { // String url = systemConfigService.getSingleConfigValue("N22_URL_Salary_Details_Search");
childList = new ArrayList<SalaryDetails>();
result.put(key, childList); String url = "http://101.132.32.185:8082/EliteGeneralHttpTask/GeneralService/SearchStaffAchievement";
} String result = N22Utils.postTransaction(url, obj.toString());
childList.add(SalaryDetails); logger.info("N22寿险业绩统计查询响应报文:"+result);
} SearchStaffAchievementResponseVO response = JSONObject.parseObject(result, SearchStaffAchievementResponseVO.class);
result.forEach((cc, list) -> {
System.out.println("CheckDate is:" + cc); return response;
list.forEach((SalaryDetails) -> {
System.out.println("SalaryDetails is:" + SalaryDetails);
});
});
return result;
} }
} }
...@@ -2,9 +2,15 @@ package com.yd.rmi.n22.staff.service; ...@@ -2,9 +2,15 @@ package com.yd.rmi.n22.staff.service;
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;
public interface N22StaffService { public interface N22StaffService {
GetStaffNewResponseVO getStaffNew(GetStaffNewRequestBody getStaffNewRequestBody); GetStaffNewResponseVO getStaffNew(GetStaffNewRequestBody getStaffNewRequestBody);
String queryN22LoginNameByMobileNo(String mobileNo); /**
* 根据手机号查询N22经纪人信息
* @param mobileNo
* @return
*/
Staff queryN22StaffByMobileNo(String mobileNo);
} }
...@@ -42,23 +42,22 @@ public class N22StaffServiceImpl implements N22StaffService { ...@@ -42,23 +42,22 @@ public class N22StaffServiceImpl implements N22StaffService {
} }
@Override @Override
public String queryN22LoginNameByMobileNo(String mobileNo) { public Staff queryN22StaffByMobileNo(String mobileNo) {
// 根据手机号查询经纪人在N22系统的Agent_id
GetStaffNewRequestBody getStaffNewRequestBody = new GetStaffNewRequestBody(); GetStaffNewRequestBody getStaffNewRequestBody = new GetStaffNewRequestBody();
getStaffNewRequestBody.setMobile(mobileNo); getStaffNewRequestBody.setMobile(mobileNo);
GetStaffNewResponseVO resp = this.getStaffNew(getStaffNewRequestBody); GetStaffNewResponseVO resp = this.getStaffNew(getStaffNewRequestBody);
String agent_id = null; Staff staff = null;
if(resp != null){ if(resp != null){
if ("查询成功".equals(resp.getResponseHead().getMessage())){ if ("查询成功".equals(resp.getResponseHead().getMessage())){
List<Staff> staffList = resp.getResponseBody().getStaff(); List<Staff> staffList = resp.getResponseBody().getStaff();
if (staffList.size() > 0) { if (staffList.size() > 0) {
Staff staff = staffList.get(0); staff = staffList.get(0);
agent_id = staff.getAgent_id();
} }
} }
} }
return agent_id; return staff;
} }
} }
...@@ -1340,10 +1340,12 @@ ...@@ -1340,10 +1340,12 @@
<result column="levelName" property="levelName" /> <result column="levelName" property="levelName" />
<result column="insurerBranchName" property="insurerBranchName" /> <result column="insurerBranchName" property="insurerBranchName" />
<result column="subordinateId" property="subordinateId" /> <result column="subordinateId" property="subordinateId" />
<result column="subsystem" property="subsystem" />
<result column="weChatId" property="weChatId" /> <result column="weChatId" property="weChatId" />
<result column="qqId" property="qqId" /> <result column="qqId" property="qqId" />
<result column="practitionerRegNo" property="practitionerRegNo" /> <result column="practitionerRegNo" property="practitionerRegNo" />
<result column="canSeeSalaryList" property="canSeeSalaryList" /> <result column="canSeeSalaryList" property="canSeeSalaryList" />
<result column="test" property="test" />
</resultMap> </resultMap>
<select id="findPractitionerInfoByLogin" resultMap="practitioner_info_map"> <select id="findPractitionerInfoByLogin" resultMap="practitioner_info_map">
...@@ -1717,4 +1719,33 @@ ...@@ -1717,4 +1719,33 @@
and p.is_active=1 and p.is_active=1
</select> </select>
<select id="findPractitionerInfoByNameList" resultMap="practitioner_info_map">
select
p.customer_id as customerId,
p.id as practitionerId,
p.name as name,
p.gender as gender,
s.practitioner_type_id as practitionerType,
sys.name as subsystem,
o.drop_option_code as levelCode,
o.drop_option_name as levelName,
b.branch_name as insurerBranchName,
p.subordinate_system_id as subordinateId,
p.wechat_id as weChatId,
p.qq_id as qqId,
p.practitioner_reg_no as practitionerRegNo,
p.can_see_salary_list as canSeeSalaryList
from ag_acl_practitioner p
left join ag_acl_insurer_branch b on p.insurer_branch_id = b.id
left join ag_acl_practitioner_subordinate_system sys on p.subordinate_system_id = sys.id
left join ag_acl_practitioner_setting s on p.id = s.practitioner_id
left join ag_md_drop_options o on s.practitioner_level = o.id
where p.name in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
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