Commit 31737141 by jianan

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

parent a37a091b
......@@ -55,6 +55,9 @@ import com.yd.rmi.cache.SystemConfigService;
import com.yd.rmi.n22.policy.service.N22PolicyService;
import com.yd.rmi.n22.salary.pojo.*;
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.service.N22StaffService;
import com.yd.rmi.tencent.wechat.service.WechatService;
......@@ -88,6 +91,8 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.stream.Collectors;
import static java.util.stream.Collectors.toList;
@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.
practitionerIdList.addAll(practitionerIdList2);
}
practitionerIdList = practitionerIdList.stream().distinct().collect(Collectors.toList());
practitionerIdList = practitionerIdList.stream().distinct().collect(toList());
return practitionerIdList;
}
......@@ -2543,8 +2548,12 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
Map<String,SubordinateSystemMemberInfo> memberInfoMap = new HashMap<>();
//银盾保险在线
getMemberInfoForOnLine(memberInfoMap,practitionerId,time);
//eGolden
getMemberInfoForEGolden(memberInfoMap,practitionerId,time);
//N22
try {
this.getMemberInfoFromN22(memberInfoMap,practitionerId,time, mobileNo);
} catch (Exception e) {
e.printStackTrace();
}
//20210303增加逻辑,已离职经纪人没有数据不显示
//查询这个团队已离职经纪人电话
List<String> leaveOfficeList = aclPractitionerDALService.findLeaveOfficeByPractitionerId(practitionerId);
......@@ -2589,6 +2598,109 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
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中的体系成员成员或被辅导人信息
* @param memberInfoMap
......
......@@ -15,7 +15,7 @@ public class PractitionerInfo {
private String qqId;
private String practitionerRegNo;
private Long canSeeSalaryList;
private String test;
private String mobileNo;
public Long getCustomerId() {
return customerId;
......@@ -129,11 +129,11 @@ public class PractitionerInfo {
this.subsystem = subsystem;
}
public String getTest() {
return test;
public String getMobileNo() {
return mobileNo;
}
public void setTest(String test) {
this.test = test;
public void setMobileNo(String mobileNo) {
this.mobileNo = mobileNo;
}
}
......@@ -58,7 +58,6 @@ public class N22SalaryServiceImpl implements N22SalaryService {
String url = "http://101.132.32.185:8082/EliteGeneralHttpTask/GeneralService/SearchStaffAchievement";
String result = N22Utils.postTransaction(url, obj.toString());
logger.info("N22寿险业绩统计查询响应报文:"+result);
SearchStaffAchievementResponseVO response = JSONObject.parseObject(result, SearchStaffAchievementResponseVO.class);
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;
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.*;
public interface N22StaffService {
GetStaffNewResponseVO getStaffNew(GetStaffNewRequestBody getStaffNewRequestBody);
......@@ -13,4 +11,6 @@ public interface N22StaffService {
* @return
*/
Staff queryN22StaffByMobileNo(String mobileNo);
MyStaffSearchResponseVO myStaffSearch(MyStaffSearchRequestBody myStaffSearchRequestBody);
}
......@@ -4,9 +4,7 @@ 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.pojo.*;
import com.yd.rmi.n22.staff.service.N22StaffService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -60,4 +58,23 @@ public class N22StaffServiceImpl implements N22StaffService {
}
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 @@
<result column="qqId" property="qqId" />
<result column="practitionerRegNo" property="practitionerRegNo" />
<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>
<select id="findPractitionerInfoByLogin" resultMap="practitioner_info_map">
......@@ -1734,6 +1734,7 @@
p.wechat_id as weChatId,
p.qq_id as qqId,
p.practitioner_reg_no as practitionerRegNo,
p.mobile_no,
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
......
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