Commit 31737141 by jianan

我的团队——战队业绩查询优化N22的S1小团体

parent a37a091b
...@@ -55,6 +55,9 @@ import com.yd.rmi.cache.SystemConfigService; ...@@ -55,6 +55,9 @@ import com.yd.rmi.cache.SystemConfigService;
import com.yd.rmi.n22.policy.service.N22PolicyService; import com.yd.rmi.n22.policy.service.N22PolicyService;
import com.yd.rmi.n22.salary.pojo.*; import com.yd.rmi.n22.salary.pojo.*;
import com.yd.rmi.n22.salary.service.N22SalaryService; import com.yd.rmi.n22.salary.service.N22SalaryService;
import com.yd.rmi.n22.staff.pojo.MyStaff;
import com.yd.rmi.n22.staff.pojo.MyStaffSearchRequestBody;
import com.yd.rmi.n22.staff.pojo.MyStaffSearchResponseVO;
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;
...@@ -88,6 +91,8 @@ import java.util.concurrent.ConcurrentHashMap; ...@@ -88,6 +91,8 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static java.util.stream.Collectors.toList;
@Service("practitionerService") @Service("practitionerService")
public class PractitionerServiceImpl implements com.yd.api.practitioner.service.PractitionerService { public class PractitionerServiceImpl implements com.yd.api.practitioner.service.PractitionerService {
...@@ -2017,7 +2022,7 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -2017,7 +2022,7 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
practitionerIdList.addAll(practitionerIdList2); practitionerIdList.addAll(practitionerIdList2);
} }
practitionerIdList = practitionerIdList.stream().distinct().collect(Collectors.toList()); practitionerIdList = practitionerIdList.stream().distinct().collect(toList());
return practitionerIdList; return practitionerIdList;
} }
...@@ -2543,8 +2548,12 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -2543,8 +2548,12 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
Map<String,SubordinateSystemMemberInfo> memberInfoMap = new HashMap<>(); Map<String,SubordinateSystemMemberInfo> memberInfoMap = new HashMap<>();
//银盾保险在线 //银盾保险在线
getMemberInfoForOnLine(memberInfoMap,practitionerId,time); getMemberInfoForOnLine(memberInfoMap,practitionerId,time);
//eGolden //N22
getMemberInfoForEGolden(memberInfoMap,practitionerId,time); try {
this.getMemberInfoFromN22(memberInfoMap,practitionerId,time, mobileNo);
} catch (Exception e) {
e.printStackTrace();
}
//20210303增加逻辑,已离职经纪人没有数据不显示 //20210303增加逻辑,已离职经纪人没有数据不显示
//查询这个团队已离职经纪人电话 //查询这个团队已离职经纪人电话
List<String> leaveOfficeList = aclPractitionerDALService.findLeaveOfficeByPractitionerId(practitionerId); List<String> leaveOfficeList = aclPractitionerDALService.findLeaveOfficeByPractitionerId(practitionerId);
...@@ -2589,6 +2598,109 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -2589,6 +2598,109 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
return responseVO; return responseVO;
} }
private void getMemberInfoFromN22(Map<String, SubordinateSystemMemberInfo> memberInfoMap, Long practitionerId, Integer time, String mobileNo) throws Exception {
// 1.查询N22我管的人
Staff staff = n22StaffService.queryN22StaffByMobileNo(mobileNo);
MyStaffSearchRequestBody myStaffSearchRequestBody = new MyStaffSearchRequestBody();
myStaffSearchRequestBody.setLoginName(staff.getAgent_id());
MyStaffSearchResponseVO myStaffSearchResponseVO = n22StaffService.myStaffSearch(myStaffSearchRequestBody);
if (!"查询成功".equals(myStaffSearchResponseVO.getResponseHead().getMessage())) {
throw new Exception("N22查询我管的人错误");
}
List<MyStaff> staffArray = myStaffSearchResponseVO.getResponseBody().getStaffArray();
List<String> nameList = new ArrayList<>();
for (MyStaff myStaff : staffArray) {
nameList.add(myStaff.getManage_StaffName());
}
// 2.查询所有辅导的人
List<AclPractitioner> practitionerList = aclPractitionerDALService.findByIds(this.getPractitionerIdList(practitionerId,null));
for(AclPractitioner item : practitionerList){
nameList.add(item.getName());
}
// 3.通过姓名查询手机号
List<PractitionerInfo> practitionerInfoList = aclPractitionerDALService.findPractitionerInfoByNameList(nameList);
// 4.根据Agent_id当前经纪人的佣金明细
// 4.1.根据查询时间范围获取查询开始时间和结束时间
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();
}
SearchStaffAchievementRequestBody searchStaffAchievementRequestBody = new SearchStaffAchievementRequestBody();
searchStaffAchievementRequestBody.setSearchtype("1");
searchStaffAchievementRequestBody.setIsdown("0");
searchStaffAchievementRequestBody.setPolicystatus("201");
searchStaffAchievementRequestBody.setIssuedatestart(startTime);
searchStaffAchievementRequestBody.setIssuedateend(endTime);
SearchStaffAchievementResponseVO searchStaffAchievementResponseVO = n22SalaryService.searchStaffAchievement(searchStaffAchievementRequestBody);
if (!"查询成功".equals(searchStaffAchievementResponseVO.getResponseHead().getMessage())){
throw new Exception( "N22寿险业绩统计查询错误");
}
List<Achieve> achieveList = searchStaffAchievementResponseVO.getResponseBody().getAchieveList();
// 5.交集
List<Achieve> intersection = achieveList.stream().filter(item -> nameList.contains(item.getDescription())).collect(toList());
// 6.组装
List<SubordinateSystemMemberInfoE> subordinateSystemMemberInfoEList = new ArrayList<>();
SubordinateSystemMemberInfoE info = null;
String name = "";
for (PractitionerInfo item : practitionerInfoList) {
name = item.getName();
for (Achieve achieve : intersection) {
if (name.equals(achieve.getDescription())) {
info = new SubordinateSystemMemberInfoE();
BeanUtils.copyProperties(item, info);
info.setCount(achieve.getSucNumber());
info.setFyp(achieve.getFYP());
info.setFyc(achieve.getFYC());
info.setName(achieve.getDescription());
}
}
subordinateSystemMemberInfoEList.add(info);
}
System.out.println("看看根据手机号查询的N22");
System.out.println(subordinateSystemMemberInfoEList);
if(!subordinateSystemMemberInfoEList.isEmpty()){
String mobileNoForMember;
SubordinateSystemMemberInfo memberInfo;
Double fyp, fyc;
Integer count;
//4、根据id查询出所有的成员的fyc和fyp
for(SubordinateSystemMemberInfoE item : subordinateSystemMemberInfoEList){
mobileNoForMember = getMobileNo(item.getMobileNo());
if(memberInfoMap.containsKey(mobileNoForMember)){
memberInfo = memberInfoMap.get(mobileNoForMember);
fyp = memberInfo.getFyp();
fyc = memberInfo.getFyc();
count = memberInfo.getCount();
memberInfo.setFyc(CommonUtil.doubleFormat(fyc + item.getFyc(),2));
memberInfo.setFyp(CommonUtil.doubleFormat(fyp + item.getFyp(),2));
memberInfo.setCount(count + item.getCount());
}else{
memberInfo = new SubordinateSystemMemberInfo();
BeanUtils.copyProperties(item,memberInfo);
memberInfoMap.put(mobileNoForMember,memberInfo);
}
}
}
}
/** /**
* EGolden中的体系成员成员或被辅导人信息 * EGolden中的体系成员成员或被辅导人信息
* @param memberInfoMap * @param memberInfoMap
......
...@@ -15,7 +15,7 @@ public class PractitionerInfo { ...@@ -15,7 +15,7 @@ public class PractitionerInfo {
private String qqId; private String qqId;
private String practitionerRegNo; private String practitionerRegNo;
private Long canSeeSalaryList; private Long canSeeSalaryList;
private String test; private String mobileNo;
public Long getCustomerId() { public Long getCustomerId() {
return customerId; return customerId;
...@@ -129,11 +129,11 @@ public class PractitionerInfo { ...@@ -129,11 +129,11 @@ public class PractitionerInfo {
this.subsystem = subsystem; this.subsystem = subsystem;
} }
public String getTest() { public String getMobileNo() {
return test; return mobileNo;
} }
public void setTest(String test) { public void setMobileNo(String mobileNo) {
this.test = test; this.mobileNo = mobileNo;
} }
} }
...@@ -58,7 +58,6 @@ public class N22SalaryServiceImpl implements N22SalaryService { ...@@ -58,7 +58,6 @@ public class N22SalaryServiceImpl implements N22SalaryService {
String url = "http://101.132.32.185:8082/EliteGeneralHttpTask/GeneralService/SearchStaffAchievement"; String url = "http://101.132.32.185:8082/EliteGeneralHttpTask/GeneralService/SearchStaffAchievement";
String result = N22Utils.postTransaction(url, obj.toString()); String result = N22Utils.postTransaction(url, obj.toString());
logger.info("N22寿险业绩统计查询响应报文:"+result);
SearchStaffAchievementResponseVO response = JSONObject.parseObject(result, SearchStaffAchievementResponseVO.class); SearchStaffAchievementResponseVO response = JSONObject.parseObject(result, SearchStaffAchievementResponseVO.class);
return response; return response;
......
package com.yd.rmi.n22.staff.pojo;
import lombok.Data;
@Data
public class MyStaff {
private String Staff_ID;
private String StaffName;
private String LoginName;
private String Manage_Staff_Id;
private String Manage_StaffName;
private String Manage_LoginName;
private String Manage_StaffStatus;
}
package com.yd.rmi.n22.staff.pojo;
import lombok.Data;
@Data
public class MyStaffSearchRequestBody {
private String Epid; //默认空
private String loginName; //销售在本系统中的工号
private String staffId; //内部唯一ID
private String StaffStatus; //人员状态,ONLINE在职QUIT离职
private String TokenID; //签名ID(待开发)
}
package com.yd.rmi.n22.staff.pojo;
import lombok.Data;
import java.util.List;
@Data
public class MyStaffSearchResponseBody {
private List<MyStaff> StaffArray;
}
package com.yd.rmi.n22.staff.pojo;
import com.yd.rmi.n22.common.pojo.ResponseHead;
import lombok.Data;
@Data
public class MyStaffSearchResponseVO {
private ResponseHead responseHead;
private MyStaffSearchResponseBody responseBody;
}
package com.yd.rmi.n22.staff.service; package com.yd.rmi.n22.staff.service;
import com.yd.rmi.n22.staff.pojo.GetStaffNewRequestBody; import com.yd.rmi.n22.staff.pojo.*;
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);
...@@ -13,4 +11,6 @@ public interface N22StaffService { ...@@ -13,4 +11,6 @@ public interface N22StaffService {
* @return * @return
*/ */
Staff queryN22StaffByMobileNo(String mobileNo); Staff queryN22StaffByMobileNo(String mobileNo);
MyStaffSearchResponseVO myStaffSearch(MyStaffSearchRequestBody myStaffSearchRequestBody);
} }
...@@ -4,9 +4,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -4,9 +4,7 @@ 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.policy.service.impl.N22PolicyServiceImpl; import com.yd.rmi.n22.policy.service.impl.N22PolicyServiceImpl;
import com.yd.rmi.n22.staff.pojo.GetStaffNewRequestBody; import com.yd.rmi.n22.staff.pojo.*;
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.n22.staff.service.N22StaffService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -60,4 +58,23 @@ public class N22StaffServiceImpl implements N22StaffService { ...@@ -60,4 +58,23 @@ public class N22StaffServiceImpl implements N22StaffService {
} }
return staff; return staff;
} }
@Override
public MyStaffSearchResponseVO myStaffSearch(MyStaffSearchRequestBody myStaffSearchRequestBody) {
JSONObject obj = new JSONObject(); //传参
JSONObject requestHead = new JSONObject();
requestHead.put("seqNo", UUID.randomUUID().toString());
obj.put("requestHead", requestHead);
obj.put("requestBody", myStaffSearchRequestBody);
// String url = systemConfigService.getSingleConfigValue("N22_URL_Get_Staff_New");
String url = "http://101.132.32.185:8082/EliteGeneralHttpTask/GeneralService/MyStaffSearch";
String result = N22Utils.postTransaction(url, obj.toString());
MyStaffSearchResponseVO response = JSONObject.parseObject(result, MyStaffSearchResponseVO.class);
return response;
}
} }
...@@ -1345,7 +1345,7 @@ ...@@ -1345,7 +1345,7 @@
<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" /> <result column="mobile_no" jdbcType="VARCHAR" property="mobileNo" typeHandler="com.yd.util.deshandler.DESTypeHandler"/>
</resultMap> </resultMap>
<select id="findPractitionerInfoByLogin" resultMap="practitioner_info_map"> <select id="findPractitionerInfoByLogin" resultMap="practitioner_info_map">
...@@ -1734,6 +1734,7 @@ ...@@ -1734,6 +1734,7 @@
p.wechat_id as weChatId, p.wechat_id as weChatId,
p.qq_id as qqId, p.qq_id as qqId,
p.practitioner_reg_no as practitionerRegNo, p.practitioner_reg_no as practitionerRegNo,
p.mobile_no,
p.can_see_salary_list as canSeeSalaryList p.can_see_salary_list as canSeeSalaryList
from ag_acl_practitioner p from ag_acl_practitioner p
left join ag_acl_insurer_branch b on p.insurer_branch_id = b.id left join ag_acl_insurer_branch b on p.insurer_branch_id = b.id
......
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