Commit f523da78 by akexiu

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	yd-api/src/main/java/com/yd/api/practitioner/service/impl/PractitionerServiceImpl.java
parents 0f1ec912 a0cc0579
...@@ -232,10 +232,10 @@ public class AgmsHiringServiceImpl implements AgmsHiringService { ...@@ -232,10 +232,10 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
String approveRole = step.getApproveRole(); String approveRole = step.getApproveRole();
AclPractitionerHiringMembership membership = membershipMapper.selectByHiringBasicInfoId(hiringBasicInfoId); AclPractitionerHiringMembership membership = membershipMapper.selectByHiringBasicInfoId(hiringBasicInfoId);
if ("subsystemOwner".equals(approveRole)) { if ("subsystemOwner".equals(approveRole)) {
if (!practitionerId.equals(membership.getSubsystemOwnerId())) { // if (!practitionerId.equals(membership.getSubsystemOwnerId())) {
responseVO.setCommonResult(new CommonResult(false, "无此流程的审批权限")); // responseVO.setCommonResult(new CommonResult(false, "无此流程的审批权限"));
return; // return;
} // }
} else { } else {
if (!practitionerId.equals(membership.getMentorPractitionerId())) { if (!practitionerId.equals(membership.getMentorPractitionerId())) {
responseVO.setCommonResult(new CommonResult(false, "无此流程的审批权限")); responseVO.setCommonResult(new CommonResult(false, "无此流程的审批权限"));
...@@ -428,7 +428,7 @@ public class AgmsHiringServiceImpl implements AgmsHiringService { ...@@ -428,7 +428,7 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
if (StringUtils.isNotEmpty(approveRole)) { if (StringUtils.isNotEmpty(approveRole)) {
AclPractitionerHiringMembership membership = membershipMapper.selectByHiringBasicInfoId(basicInfoId); AclPractitionerHiringMembership membership = membershipMapper.selectByHiringBasicInfoId(basicInfoId);
if (membership != null) { if (membership != null) {
if (loginPractitionerId.equals(membership.getSubsystemOwnerId())) { if (loginPractitionerId.equals(membership.getApprovedBy())) {
return true; return true;
} }
} }
...@@ -451,7 +451,7 @@ public class AgmsHiringServiceImpl implements AgmsHiringService { ...@@ -451,7 +451,7 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
//ag_acl_practitioner_setting //ag_acl_practitioner_setting
//ag_acl_practitioner_subordinate_system(如果是团队长)operator //ag_acl_practitioner_subordinate_system(如果是团队长)operator
AclPractitionerHiringBasicInfo basicInfo = aclPractitionerHiringBasicInfoDalService.findById(hiringBasicInfoId); AclPractitionerHiringBasicInfo basicInfo = aclPractitionerHiringBasicInfoDalService.findById(hiringBasicInfoId);
AclPractitionerHiringMembership membership = aclPractitionerHiringMembershipDalService.findByBasicInfoId(hiringBasicInfoId); AclPractitionerHiringMembership membership = agmsHiringDalService.queryHiringMemberShip(hiringBasicInfoId);
AclPractitionerSubordinateSystem subordinateSystem = aclPractitionerSubordinateSystemDalService.findById(membership.getSubsystemId()); AclPractitionerSubordinateSystem subordinateSystem = aclPractitionerSubordinateSystemDalService.findById(membership.getSubsystemId());
AclCustomer customer = aclCustomerDalService.findByMobileNo(basicInfo.getMobileNo()); AclCustomer customer = aclCustomerDalService.findByMobileNo(basicInfo.getMobileNo());
AclPractitioner practitioner = new AclPractitioner(); AclPractitioner practitioner = new AclPractitioner();
...@@ -466,6 +466,10 @@ public class AgmsHiringServiceImpl implements AgmsHiringService { ...@@ -466,6 +466,10 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
practitioner.setIdType(basicInfo.getIdType()); practitioner.setIdType(basicInfo.getIdType());
practitioner.setIdNo(basicInfo.getIdNo()); practitioner.setIdNo(basicInfo.getIdNo());
practitioner.setS1Id(membership.getS1Id());
practitioner.setS2Id(membership.getS2Id());
practitioner.setS3Id(membership.getS3Id());
Date practitionerBirthdate = CommonUtil.stringParseDate(basicInfo.getPractitionerBirthdate(), "yyyy-MM-dd"); Date practitionerBirthdate = CommonUtil.stringParseDate(basicInfo.getPractitionerBirthdate(), "yyyy-MM-dd");
practitioner.setPractitionerBirthdate(practitionerBirthdate); practitioner.setPractitionerBirthdate(practitionerBirthdate);
practitioner.setPractitionerRegNo(" "); practitioner.setPractitionerRegNo(" ");
......
...@@ -6,6 +6,7 @@ import com.yd.api.practitioner.service.PractitionerHiringContractService; ...@@ -6,6 +6,7 @@ import com.yd.api.practitioner.service.PractitionerHiringContractService;
import com.yd.dal.entity.customer.*; import com.yd.dal.entity.customer.*;
import com.yd.dal.mapper.customer.*; import com.yd.dal.mapper.customer.*;
import com.yd.dal.mapper.practitioner.PractitionerHiringMapper; import com.yd.dal.mapper.practitioner.PractitionerHiringMapper;
import com.yd.dal.service.customer.AclPractitionerSubordinateSystemDALService;
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.util.CommonUtil; import com.yd.util.CommonUtil;
...@@ -43,6 +44,8 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring ...@@ -43,6 +44,8 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
private AclInsurerBranchMapper branchMapper; private AclInsurerBranchMapper branchMapper;
@Autowired @Autowired
private AclInsurerBranchDeptMapper deptMapper; private AclInsurerBranchDeptMapper deptMapper;
@Autowired
private AclPractitionerSubordinateSystemDALService aclPractitionerSubordinateSystemDALService;
/** /**
...@@ -170,6 +173,14 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring ...@@ -170,6 +173,14 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
AclPractitioner second = aclPractitionerMapper.selectByMobileNo(basicInfo.getMobileNo()); AclPractitioner second = aclPractitionerMapper.selectByMobileNo(basicInfo.getMobileNo());
List<AclPractitionerHiringWorkingExperience> workingExperienceList = workingExperienceMapper.selectByHiringBasicInfoId(hiringBasicInfoId); List<AclPractitionerHiringWorkingExperience> workingExperienceList = workingExperienceMapper.selectByHiringBasicInfoId(hiringBasicInfoId);
// 获取审批的体系系负责人的systerm
AclPractitionerSubordinateSystem systemOfApproved = null;
if (memberShip.getApprovedBy() != null) {
List<AclPractitionerSubordinateSystem> subordinateSystems = aclPractitionerSubordinateSystemDALService.findByOwnerPractitionerId(memberShip.getApprovedBy());
systemOfApproved = subordinateSystems.get(0);
}
// 体系名称 报聘为S2, S3的没有所属体系
String subsystemName = (systemOfApproved != null) ? systemOfApproved.getName() : memberShip.getSubsystem();
String mentorName = mentor == null ? "" : mentor.getName(); String mentorName = mentor == null ? "" : mentor.getName();
String mentorIdNo = mentor == null ? "" : mentor.getIdNo(); String mentorIdNo = mentor == null ? "" : mentor.getIdNo();
...@@ -192,7 +203,7 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring ...@@ -192,7 +203,7 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
//1页 //1页
data.put("contactNo", contractNo); data.put("contactNo", contractNo);
data.put("practitionerNo", second.getPractitionerCode()); data.put("practitionerNo", second.getPractitionerCode());
data.put("subsystem", memberShip.getSubsystem()); data.put("subsystem", subsystemName);
data.put("practitioner", basicInfo.getName()); data.put("practitioner", basicInfo.getName());
data.put("idNo", basicInfo.getIdNo()); data.put("idNo", basicInfo.getIdNo());
...@@ -245,7 +256,7 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring ...@@ -245,7 +256,7 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
data.put("secondEffectiveDay", applyDate.get(Calendar.DAY_OF_MONTH) + ""); data.put("secondEffectiveDay", applyDate.get(Calendar.DAY_OF_MONTH) + "");
data.put("secondParty802", basicInfo.getName()); data.put("secondParty802", basicInfo.getName());
data.put("secondMentor801", mentorName); data.put("secondMentor801", mentorName);
data.put("secondSubsystem", memberShip.getSubsystem()); data.put("secondSubsystem", subsystemName);
data.put("secondSubsystemNo", ""); data.put("secondSubsystemNo", "");
// 签核人员 // 签核人员
this.setApprovepeople(data, hiringBasicInfoId); this.setApprovepeople(data, hiringBasicInfoId);
...@@ -272,8 +283,13 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring ...@@ -272,8 +283,13 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
private void setSomeAddress(Map<String, String> data, Long hiringBasicInfoId) { private void setSomeAddress(Map<String, String> data, Long hiringBasicInfoId) {
AclPractitionerHiringBasicInfo basicInfo = basicInfoMapper.selectByPrimaryKey(hiringBasicInfoId); AclPractitionerHiringBasicInfo basicInfo = basicInfoMapper.selectByPrimaryKey(hiringBasicInfoId);
AclPractitionerHiringMembership memberShip = membershipMapper.selectByHiringBasicInfoId(hiringBasicInfoId); AclPractitionerHiringMembership memberShip = membershipMapper.selectByHiringBasicInfoId(hiringBasicInfoId);
AclPractitioner systemOwner = aclPractitionerMapper.selectByPrimaryKey(memberShip.getSubsystemOwnerId());
AclPractitioner mentor = aclPractitionerMapper.selectByPrimaryKey(memberShip.getMentorPractitionerId()); AclPractitioner mentor = aclPractitionerMapper.selectByPrimaryKey(memberShip.getMentorPractitionerId());
// 报聘职级
String mdDropOptionName = memberShip.getMdDropOptionName();
// 实际审批的体系负责人
AclPractitioner systemOwner = aclPractitionerMapper.selectByPrimaryKey(memberShip.getApprovedBy());
// 体系负责人姓名
String systemOwnerName = (systemOwner != null) ? systemOwner.getName() : memberShip.getSubsystemOwner();
String mentorName = mentor == null ? "" : mentor.getName(); String mentorName = mentor == null ? "" : mentor.getName();
String mentorIdNo = mentor == null ? "" : mentor.getIdNo(); String mentorIdNo = mentor == null ? "" : mentor.getIdNo();
...@@ -283,18 +299,18 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring ...@@ -283,18 +299,18 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
data.put("secondPartyIDNo", basicInfo.getIdNo()); data.put("secondPartyIDNo", basicInfo.getIdNo());
StringBuffer secondResidentAddress = new StringBuffer(); StringBuffer secondResidentAddress = new StringBuffer();
secondResidentAddress.append(basicInfo.getProvinceName()).append(basicInfo.getCityName()); secondResidentAddress.append(basicInfo.getProvinceName()).append(basicInfo.getCityName());
data.put("secondPartyAddress", basicInfo.getResidentAddress()); data.put("secondPartyAddress", basicInfo.getResidentAddress().replace("null", ""));
data.put("secondMobileNo", basicInfo.getMobileNo()); data.put("secondMobileNo", basicInfo.getMobileNo());
data.put("secondSubsystemOwner", memberShip.getSubsystemOwner()); data.put("secondSubsystemOwner", systemOwnerName);
data.put("secondSubsystemSignature", memberShip.getSubsystemOwner()); data.put("secondSubsystemSignature", memberShip.getSubsystemOwner());
// 查团队长信息 // 查团队长信息
String systemOwnerIdNo = null; String systemOwnerIdNo = null;
String systemOwnerMobile = null; String systemOwnerMobile = null;
StringBuffer systemOwnerAddress = new StringBuffer(); StringBuffer systemOwnerAddress = new StringBuffer();
if (systemOwner == null) { if (systemOwner == null) {
if (Long.valueOf("30").equals(memberShip.getMdDropOptionId())) { if (mdDropOptionName.indexOf("S2") >= 0 || mdDropOptionName.indexOf("S3") >= 0) {
systemOwnerIdNo = basicInfo.getIdNo(); systemOwnerIdNo = basicInfo.getIdNo();
systemOwnerMobile = basicInfo.getMobileNo(); systemOwnerMobile = basicInfo.getMobileNo();
systemOwnerAddress.append(basicInfo.getResidentAddress()); systemOwnerAddress.append(basicInfo.getResidentAddress());
...@@ -307,7 +323,7 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring ...@@ -307,7 +323,7 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
systemOwnerAddress.append(systemOwner.getProvinceName()).append(systemOwner.getCityName()); systemOwnerAddress.append(systemOwner.getProvinceName()).append(systemOwner.getCityName());
} }
data.put("secondSubsystemIDNo", systemOwnerIdNo); data.put("secondSubsystemIDNo", systemOwnerIdNo);
data.put("secondSubsystemAddress", systemOwnerAddress.toString()); data.put("secondSubsystemAddress", systemOwnerAddress.toString().replace("null", ""));
data.put("secondSubsystemMobileNo", systemOwnerMobile); data.put("secondSubsystemMobileNo", systemOwnerMobile);
data.put("secondMentor", mentorName); data.put("secondMentor", mentorName);
...@@ -317,7 +333,7 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring ...@@ -317,7 +333,7 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
if (mentor != null) { if (mentor != null) {
mentorAddress.append(mentor.getProvinceName()).append(mentor.getCityName()); mentorAddress.append(mentor.getProvinceName()).append(mentor.getCityName());
} }
data.put("secondMentorAddress", mentorAddress.toString()); data.put("secondMentorAddress", mentorAddress.toString().replace("null", ""));
data.put("secondMentorMobileNo", mentorMobile); data.put("secondMentorMobileNo", mentorMobile);
} }
......
...@@ -11,6 +11,7 @@ import com.yd.dal.entity.practitioner.hiring.*; ...@@ -11,6 +11,7 @@ import com.yd.dal.entity.practitioner.hiring.*;
import com.yd.dal.mapper.customer.*; import com.yd.dal.mapper.customer.*;
import com.yd.dal.service.customer.AclPractitionerDALService; import com.yd.dal.service.customer.AclPractitionerDALService;
import com.yd.dal.service.customer.AclPractitionerHiringApproveRecordsDALService; import com.yd.dal.service.customer.AclPractitionerHiringApproveRecordsDALService;
import com.yd.dal.service.customer.AclPractitionerSubordinateSystemDALService;
import com.yd.dal.service.practitioner.PractitionerHiringDALService; import com.yd.dal.service.practitioner.PractitionerHiringDALService;
import com.yd.rmi.ali.oss.service.OssService; import com.yd.rmi.ali.oss.service.OssService;
import com.yd.rmi.ali.send.service.SendService; import com.yd.rmi.ali.send.service.SendService;
...@@ -61,6 +62,8 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService ...@@ -61,6 +62,8 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
private AclPractitionerDALService aclPractitionerDALService; private AclPractitionerDALService aclPractitionerDALService;
@Autowired @Autowired
private AclPractitionerPotentialMapper aclPractitionerPotentialMapper; private AclPractitionerPotentialMapper aclPractitionerPotentialMapper;
@Autowired
private AclPractitionerSubordinateSystemDALService aclPractitionerSubordinateSystemDALService;
private PractitionerHiringDALService practitionerHiringDalService; private PractitionerHiringDALService practitionerHiringDalService;
private SystemConfigService systemConfigService; private SystemConfigService systemConfigService;
...@@ -422,11 +425,11 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService ...@@ -422,11 +425,11 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
Long approvingStatus = requestVO.getApprovingStatus(); Long approvingStatus = requestVO.getApprovingStatus();
//等保调整 //等保调整
List<AclCustomer> findByObjSortable = aclPractitionerDALService.getAclCustomers(practitionerId,null); // List<AclCustomer> findByObjSortable = aclPractitionerDALService.getAclCustomers(practitionerId,null);
if(null == findByObjSortable ){ // if(null == findByObjSortable ){
responseVO.setCommonResult(new CommonResult(false,ZHBErrorConfig.getErrorInfo("630028"))); // responseVO.setCommonResult(new CommonResult(false,ZHBErrorConfig.getErrorInfo("630028")));
return responseVO; // return responseVO;
} // }
List<HiringListInfo> hiringListInfoList; List<HiringListInfo> hiringListInfoList;
if (Long.valueOf("0").equals(approvingStatus)) { if (Long.valueOf("0").equals(approvingStatus)) {
// 当前经纪人的待审批记录 // 当前经纪人的待审批记录
...@@ -641,7 +644,7 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService ...@@ -641,7 +644,7 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
//基本信息 //基本信息
AclPractitionerHiringBasicInfo hiringBasicInfo = basicInfoMapper.selectByPrimaryKey(hiringBasicInfoId); AclPractitionerHiringBasicInfo hiringBasicInfo = basicInfoMapper.selectByPrimaryKey(hiringBasicInfoId);
//组织关系 //组织关系
AclPractitionerHiringMembership hiringMemberShip = membershipMapper.selectByHiringBasicInfoId(hiringBasicInfoId); AclPractitionerHiringMembership hiringMemberShip = this.queryHiringMemberShip(hiringBasicInfoId);
//工作经历 //工作经历
List<AclPractitionerHiringWorkingExperience> hiringWorkingExperienceList = workingExperienceMapper.selectByHiringBasicInfoId(hiringBasicInfoId); List<AclPractitionerHiringWorkingExperience> hiringWorkingExperienceList = workingExperienceMapper.selectByHiringBasicInfoId(hiringBasicInfoId);
//申请名目 //申请名目
...@@ -668,6 +671,59 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService ...@@ -668,6 +671,59 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
return resp; return resp;
} }
private AclPractitionerHiringMembership queryHiringMemberShip(Long hiringBasicInfoId) {
AclPractitionerHiringMembership hiringMemberShip = membershipMapper.selectByHiringBasicInfoId(hiringBasicInfoId);
if (hiringMemberShip.getMentorPractitionerId() == null) {
return hiringMemberShip;
}
AclPractitioner mentor = aclPractitionerDALService.findPractitionerById(hiringMemberShip.getMentorPractitionerId());
// 查询并显示“辅导人”所属的S1分部,分部负责人,S2体系,体系负责人,S3纵队,纵队负责人,没有的显示空
List<AclPractitionerSubordinateSystem> subordinateSystemList = aclPractitionerSubordinateSystemDALService.findAll();
Map<Long, AclPractitionerSubordinateSystem> subordinateSystemMap = new HashMap<>();
subordinateSystemList.forEach(i -> subordinateSystemMap.put(i.getId(), i));
Map<Long, AclPractitioner> aclPractitionerMap = aclPractitionerDALService.findAllMap();
//所属体系
AclPractitionerSubordinateSystem subordinateSystem = null;
//体系团队长
AclPractitioner systemOwner = null;
if (mentor.getS1Id() != null) {
subordinateSystem = subordinateSystemMap.get(mentor.getS1Id());
if (subordinateSystem != null) {
hiringMemberShip.setS1SubordinateSystemName(subordinateSystem.getName());
systemOwner = aclPractitionerMap.get(subordinateSystem.getOwnerPractitionerId());
hiringMemberShip.setS1TeamLeaderName(systemOwner != null ? systemOwner.getName() : null);
hiringMemberShip.setS1TeamLeaderId(systemOwner != null ? systemOwner.getId() : null);
}
}
if (null != mentor.getS2Id()) {
subordinateSystem = subordinateSystemMap.get(mentor.getS2Id());
if (subordinateSystem != null) {
hiringMemberShip.setS2SubordinateSystemName(subordinateSystem != null ? subordinateSystem.getName() : null);
systemOwner = aclPractitionerMap.get(subordinateSystem.getOwnerPractitionerId());
hiringMemberShip.setS2TeamLeaderName(systemOwner != null ? systemOwner.getName() : null);
hiringMemberShip.setS2TeamLeaderId(systemOwner != null ? systemOwner.getId() : null);
}
}
if (null != mentor.getS3Id()) {
subordinateSystem = subordinateSystemMap.get(mentor.getS3Id());
if (subordinateSystem != null) {
hiringMemberShip.setS3SubordinateSystemName(subordinateSystem != null ? subordinateSystem.getName() : null);
systemOwner = aclPractitionerMap.get(subordinateSystem.getOwnerPractitionerId());
hiringMemberShip.setS3TeamLeaderName(systemOwner != null ? systemOwner.getName() : null);
hiringMemberShip.setS3TeamLeaderId(systemOwner != null ? systemOwner.getId() : null);
}
}
return hiringMemberShip;
}
@Override @Override
public CommonResultResponseVO saveDigitalSignatures(SaveDigitalSignaturesRequestVO requestVO) { public CommonResultResponseVO saveDigitalSignatures(SaveDigitalSignaturesRequestVO requestVO) {
CommonResultResponseVO resp = new CommonResultResponseVO(); CommonResultResponseVO resp = new CommonResultResponseVO();
...@@ -811,8 +867,8 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService ...@@ -811,8 +867,8 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
mobileNoList.add(mentor.getMobileNo()); mobileNoList.add(mentor.getMobileNo());
} }
if (memberShip.getSubsystemOwnerId() != null) { if (memberShip.getApprovedBy() != null) {
AclPractitioner system = aclPractitionerMapper.selectByPrimaryKey(memberShip.getSubsystemOwnerId()); AclPractitioner system = aclPractitionerMapper.selectByPrimaryKey(memberShip.getApprovedBy());
mobileNoList.add(system.getMobileNo()); mobileNoList.add(system.getMobileNo());
} }
// 若辅导人和团队长为同一人,去重 // 若辅导人和团队长为同一人,去重
...@@ -887,6 +943,8 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService ...@@ -887,6 +943,8 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
} }
// 计算审批流程 // 计算审批流程
basicInfo.setApproveStatus(this.handleApproveStatus(hiringMemberShip)); basicInfo.setApproveStatus(this.handleApproveStatus(hiringMemberShip));
// 将申请人分配给体系负责人
this.distributeToSubsystemOwner(hiringMemberShip);
basicInfoMapper.updateByPrimaryKeySelective(basicInfo); basicInfoMapper.updateByPrimaryKeySelective(basicInfo);
...@@ -899,8 +957,39 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService ...@@ -899,8 +957,39 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
return resp; return resp;
} }
private void distributeToSubsystemOwner(AclPractitionerHiringMembership memberShip) {
Long hiringBasicInfoId = memberShip.getHiringBasicInfoId();
String mdDropOptionName = memberShip.getMdDropOptionName();
// S2,S3报聘不用团队长审批
if (mdDropOptionName.indexOf("S2")>=0 || mdDropOptionName.indexOf("S3")>=0) {
return;
}
// 查询辅导人所在S1,S2,S3
AclPractitionerHiringMembership hiringMemberShip = this.queryHiringMemberShip(hiringBasicInfoId);
Long s1TeamLeaderId = hiringMemberShip.getS1TeamLeaderId();
Long s2TeamLeaderId = hiringMemberShip.getS2TeamLeaderId();
Long s3TeamLeaderId = hiringMemberShip.getS3TeamLeaderId();
Long approvedBy = hiringMemberShip.getSubsystemOwnerId();
if (s2TeamLeaderId != null) {
approvedBy = s2TeamLeaderId;
} else {
if (s1TeamLeaderId != null) {
approvedBy = s1TeamLeaderId;
} else {
approvedBy = s3TeamLeaderId;
}
}
// 保存审批的负责人
hiringMemberShip.setApprovedBy(approvedBy);
membershipMapper.updateByPrimaryKeySelective(hiringMemberShip);
}
private String handleApproveStatus(AclPractitionerHiringMembership hiringMemberShip) { private String handleApproveStatus(AclPractitionerHiringMembership hiringMemberShip) {
if (Long.valueOf("30").equals(hiringMemberShip.getMdDropOptionId())) { // 经纪人报聘职级
String mdDropOptionName = hiringMemberShip.getMdDropOptionName();
if (mdDropOptionName.indexOf("S2")>=0 || mdDropOptionName.indexOf("S3")>=0) {
return "2"; return "2";
} }
if (hiringMemberShip.getMentor() == null || hiringMemberShip.getMentorPractitionerId() == null) { if (hiringMemberShip.getMentor() == null || hiringMemberShip.getMentorPractitionerId() == null) {
......
...@@ -3424,6 +3424,7 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -3424,6 +3424,7 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
statisticInfo.setTargetFyc(0D); statisticInfo.setTargetFyc(0D);
statisticInfo.setTargetFyp(0D); statisticInfo.setTargetFyp(0D);
statisticInfo.setTargetCount(0); statisticInfo.setTargetCount(0);
statisticInfo.setCompletionRate(0D);
if ((practitionerId != null || subordinateSystemId != null) && fycSum != null && time != null && fycSum > 0) { if ((practitionerId != null || subordinateSystemId != null) && fycSum != null && time != null && fycSum > 0) {
List<MktLeadsGoals> leadsGoals; List<MktLeadsGoals> leadsGoals;
Double goalsPremium = null; Double goalsPremium = null;
...@@ -3486,7 +3487,6 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -3486,7 +3487,6 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
} }
} }
} }
statisticInfo.setCompletionRate(0D);
if (goalsPremium != null && goalsPremium > 0) { if (goalsPremium != null && goalsPremium > 0) {
BigDecimal fycBigDecimal = new BigDecimal(fycSum), goalsBigDecimal = new BigDecimal(goalsPremium); BigDecimal fycBigDecimal = new BigDecimal(fycSum), goalsBigDecimal = new BigDecimal(goalsPremium);
statisticInfo.setCompletionRate(CommonUtil.doubleFormat(fycBigDecimal.divide(goalsBigDecimal, 4, BigDecimal.ROUND_HALF_UP).doubleValue() * 100, 2)); statisticInfo.setCompletionRate(CommonUtil.doubleFormat(fycBigDecimal.divide(goalsBigDecimal, 4, BigDecimal.ROUND_HALF_UP).doubleValue() * 100, 2));
......
...@@ -40,6 +40,20 @@ public class PractitionerHiringMemberShip { ...@@ -40,6 +40,20 @@ public class PractitionerHiringMemberShip {
*/ */
private String branch; private String branch;
/**
* 辅导人的组织架构信息
*/
private String systemFlag;//系统标志,区分公司营业部和体系,1,分公司,2营业部,3,S1分部,4,S2体系,5,S3纵队
private String s3SubordinateSystemName;//s3所属体系名称
private String s2SubordinateSystemName;//s2所属体系名称
private String s1SubordinateSystemName;//s1所属体系名称
private String s3TeamLeaderName;//S3团队长名称
private String s2TeamLeaderName;//S2团队长名称
private String s1TeamLeaderName;//S1团队长名称
private Long s3TeamLeaderId;//S3团队长Id
private Long s2TeamLeaderId;//S2团队长Id
private Long s1TeamLeaderId;//S1团队长Id
/** /**
* 获取 報聘经纪人职级类型 FK ag_md_drop_options.id: ag_md_drop_master.scenario_code = "practitioner_level" * 获取 報聘经纪人职级类型 FK ag_md_drop_options.id: ag_md_drop_master.scenario_code = "practitioner_level"
...@@ -167,6 +181,86 @@ public class PractitionerHiringMemberShip { ...@@ -167,6 +181,86 @@ public class PractitionerHiringMemberShip {
this.branch = branch; this.branch = branch;
} }
public String getSystemFlag() {
return systemFlag;
}
public void setSystemFlag(String systemFlag) {
this.systemFlag = systemFlag;
}
public String getS3SubordinateSystemName() {
return s3SubordinateSystemName;
}
public void setS3SubordinateSystemName(String s3SubordinateSystemName) {
this.s3SubordinateSystemName = s3SubordinateSystemName;
}
public String getS2SubordinateSystemName() {
return s2SubordinateSystemName;
}
public void setS2SubordinateSystemName(String s2SubordinateSystemName) {
this.s2SubordinateSystemName = s2SubordinateSystemName;
}
public String getS1SubordinateSystemName() {
return s1SubordinateSystemName;
}
public void setS1SubordinateSystemName(String s1SubordinateSystemName) {
this.s1SubordinateSystemName = s1SubordinateSystemName;
}
public String getS3TeamLeaderName() {
return s3TeamLeaderName;
}
public void setS3TeamLeaderName(String s3TeamLeaderName) {
this.s3TeamLeaderName = s3TeamLeaderName;
}
public String getS2TeamLeaderName() {
return s2TeamLeaderName;
}
public void setS2TeamLeaderName(String s2TeamLeaderName) {
this.s2TeamLeaderName = s2TeamLeaderName;
}
public String getS1TeamLeaderName() {
return s1TeamLeaderName;
}
public void setS1TeamLeaderName(String s1TeamLeaderName) {
this.s1TeamLeaderName = s1TeamLeaderName;
}
public Long getS3TeamLeaderId() {
return s3TeamLeaderId;
}
public void setS3TeamLeaderId(Long s3TeamLeaderId) {
this.s3TeamLeaderId = s3TeamLeaderId;
}
public Long getS2TeamLeaderId() {
return s2TeamLeaderId;
}
public void setS2TeamLeaderId(Long s2TeamLeaderId) {
this.s2TeamLeaderId = s2TeamLeaderId;
}
public Long getS1TeamLeaderId() {
return s1TeamLeaderId;
}
public void setS1TeamLeaderId(Long s1TeamLeaderId) {
this.s1TeamLeaderId = s1TeamLeaderId;
}
@Override @Override
public String toString() { public String toString() {
return "PractitionerHiringMemberShip{" + return "PractitionerHiringMemberShip{" +
...@@ -177,6 +271,16 @@ public class PractitionerHiringMemberShip { ...@@ -177,6 +271,16 @@ public class PractitionerHiringMemberShip {
", subsystem='" + subsystem + '\'' + ", subsystem='" + subsystem + '\'' +
", subsystemOwner='" + subsystemOwner + '\'' + ", subsystemOwner='" + subsystemOwner + '\'' +
", branch='" + branch + '\'' + ", branch='" + branch + '\'' +
", systemFlag='" + systemFlag + '\'' +
", s3SubordinateSystemName='" + s3SubordinateSystemName + '\'' +
", s2SubordinateSystemName='" + s2SubordinateSystemName + '\'' +
", s1SubordinateSystemName='" + s1SubordinateSystemName + '\'' +
", s3TeamLeaderName='" + s3TeamLeaderName + '\'' +
", s2TeamLeaderName='" + s2TeamLeaderName + '\'' +
", s1TeamLeaderName='" + s1TeamLeaderName + '\'' +
", s3TeamLeaderId=" + s3TeamLeaderId +
", s2TeamLeaderId=" + s2TeamLeaderId +
", s1TeamLeaderId=" + s1TeamLeaderId +
'}'; '}';
} }
} }
package com.yd.dal.entity.customer; package com.yd.dal.entity.customer;
import java.util.Date;
import lombok.Data; import lombok.Data;
import java.util.Date;
/** /**
* 報聘经纪人组织关系表 * 報聘经纪人组织关系表
*/ */
...@@ -99,4 +100,23 @@ public class AclPractitionerHiringMembership { ...@@ -99,4 +100,23 @@ public class AclPractitionerHiringMembership {
private Date updatedAt; private Date updatedAt;
private Long updatedBy; private Long updatedBy;
private Long approvedBy;
/**
* 辅导人的组织架构信息
*/
private String systemFlag;//系统标志,区分公司营业部和体系,1,分公司,2营业部,3,S1分部,4,S2体系,5,S3纵队
private String s3SubordinateSystemName;//s3所属体系名称
private String s2SubordinateSystemName;//s2所属体系名称
private String s1SubordinateSystemName;//s1所属体系名称
private Long s1Id;
private Long s2Id;
private Long s3Id;
private String s3TeamLeaderName;//S3团队长名称
private String s2TeamLeaderName;//S2团队长名称
private String s1TeamLeaderName;//S1团队长名称
private Long s3TeamLeaderId;//S3团队长Id
private Long s2TeamLeaderId;//S2团队长Id
private Long s1TeamLeaderId;//S1团队长Id
} }
\ No newline at end of file
package com.yd.dal.entity.practitioner.hiring; package com.yd.dal.entity.practitioner.hiring;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.yd.dal.entity.order.CustomerPolicyInfo;
import com.yd.util.CommonUtil; import com.yd.util.CommonUtil;
import java.util.Date; import java.util.Date;
...@@ -41,6 +40,10 @@ public class HiringListInfo implements Comparable<HiringListInfo> { ...@@ -41,6 +40,10 @@ public class HiringListInfo implements Comparable<HiringListInfo> {
*/ */
private String applicationTime; private String applicationTime;
private Long s1PractitionerId;
private Long s2PractitionerId;
private Long s3PractitionerId;
/** /**
* 获取 经纪人基本信息id * 获取 经纪人基本信息id
* *
...@@ -149,6 +152,30 @@ public class HiringListInfo implements Comparable<HiringListInfo> { ...@@ -149,6 +152,30 @@ public class HiringListInfo implements Comparable<HiringListInfo> {
this.applicationTime = applicationTime; this.applicationTime = applicationTime;
} }
public Long getS1PractitionerId() {
return s1PractitionerId;
}
public void setS1PractitionerId(Long s1PractitionerId) {
this.s1PractitionerId = s1PractitionerId;
}
public Long getS2PractitionerId() {
return s2PractitionerId;
}
public void setS2PractitionerId(Long s2PractitionerId) {
this.s2PractitionerId = s2PractitionerId;
}
public Long getS3PractitionerId() {
return s3PractitionerId;
}
public void setS3PractitionerId(Long s3PractitionerId) {
this.s3PractitionerId = s3PractitionerId;
}
@Override @Override
public String toString() { public String toString() {
return "HiringListInfo{" + return "HiringListInfo{" +
......
...@@ -25,4 +25,17 @@ public interface AgmsDashboardMapper { ...@@ -25,4 +25,17 @@ public interface AgmsDashboardMapper {
List<StatisticsSalesInfo> statisticsSalesEG(@Param("type")String type, @Param("time")String time); List<StatisticsSalesInfo> statisticsSalesEG(@Param("type")String type, @Param("time")String time);
List<PersonalOffLineFYC> personalOffLineFYC(List<String> mobileNoList); List<PersonalOffLineFYC> personalOffLineFYC(List<String> mobileNoList);
List<Map<String, Object>> queryTeamAllMap();
List<StatisticsSalesInfo> statisticsSalesTeam(@Param("category")String category,
@Param("time")String time, @Param("list")List<Map<String, Object>> teamMapList);
List<StatisticsPractitionerInfo> statisticsPractitionerTeam(@Param("time")String time, @Param("list")List<Map<String, Object>> teamMapList);
List<StatisticsPEPInfo> statisticsPEPTeam(@Param("type")String type, @Param("dropOptionId")Long dropOptionId,
@Param("list")List<Map<String, Object>> teamMapList);
List<StatisticsOpportunityInfo> statisticsOpportunityTeam(@Param("type")String type, @Param("time")String time,
@Param("dropOptionId")Long dropOptionId, @Param("list")List<Map<String, Object>> teamMapList);
} }
...@@ -5,6 +5,7 @@ import com.yd.dal.entity.practitioner.hiring.*; ...@@ -5,6 +5,7 @@ import com.yd.dal.entity.practitioner.hiring.*;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author xxy * @author xxy
...@@ -12,42 +13,55 @@ import java.util.List; ...@@ -12,42 +13,55 @@ import java.util.List;
public interface PractitionerHiringMapper { public interface PractitionerHiringMapper {
/** /**
* 通过经纪人id查询此人审批的报聘经纪人 * 通过经纪人id查询此人审批的报聘经纪人
*
* @param practitionerId 经纪人id * @param practitionerId 经纪人id
* @return 返回结果 * @return 返回结果
*/ */
List<HiringListInfo> findHiringList(@Param("practitionerId")Long practitionerId, @Param("approvingStatus")Long approvingStatus); List<HiringListInfo> findHiringList(@Param("practitionerId") Long practitionerId, @Param("approvingStatus") Long approvingStatus);
/** /**
* 经纪人审批基本信息 * 经纪人审批基本信息
*
* @param hiringBasicInfoId 经纪人基本信息id ag_acl_practitioner_hiring_basic_info.id * @param hiringBasicInfoId 经纪人基本信息id ag_acl_practitioner_hiring_basic_info.id
* @return 查询结果 * @return 查询结果
*/ */
HiringBasicInfo findHiringBasicInfo(Long hiringBasicInfoId); HiringBasicInfo findHiringBasicInfo(Long hiringBasicInfoId);
/** /**
* 审批经纪人关系 * 审批经纪人关系
*
* @param hiringBasicInfoId 经纪人基本信息id ag_acl_practitioner_hiring_basic_info.id * @param hiringBasicInfoId 经纪人基本信息id ag_acl_practitioner_hiring_basic_info.id
* @return 查询结果 * @return 查询结果
*/ */
HiringMemberShip findHiringMemberShip(Long hiringBasicInfoId); HiringMemberShip findHiringMemberShip(Long hiringBasicInfoId);
/** /**
* 审批经纪人工作经历 * 审批经纪人工作经历
*
* @param hiringBasicInfoId 经纪人基本信息id ag_acl_practitioner_hiring_basic_info.id * @param hiringBasicInfoId 经纪人基本信息id ag_acl_practitioner_hiring_basic_info.id
* @return 查询结果 * @return 查询结果
*/ */
List<HiringWorkingExperience> findHiringWorkingExperienceList(Long hiringBasicInfoId); List<HiringWorkingExperience> findHiringWorkingExperienceList(Long hiringBasicInfoId);
/** /**
* 经纪人申请名目 * 经纪人申请名目
*
* @param hiringBasicInfoId 经纪人基本信息id ag_acl_practitioner_hiring_basic_info.id * @param hiringBasicInfoId 经纪人基本信息id ag_acl_practitioner_hiring_basic_info.id
* @return 查询结果 * @return 查询结果
*/ */
List<HiringPersonalStatements> findHiringPersonalStatementsList(Long hiringBasicInfoId); List<HiringPersonalStatements> findHiringPersonalStatementsList(Long hiringBasicInfoId);
/** /**
* 经纪人合同条款是否同意 * 经纪人合同条款是否同意
*
* @param hiringBasicInfoId 经纪人基本信息id ag_acl_practitioner_hiring_basic_info.id * @param hiringBasicInfoId 经纪人基本信息id ag_acl_practitioner_hiring_basic_info.id
* @return 查询结果 * @return 查询结果
*/ */
List<HiringContractTermsConfirms> findHiringContractTermsConfirmsList(Long hiringBasicInfoId); List<HiringContractTermsConfirms> findHiringContractTermsConfirmsList(Long hiringBasicInfoId);
/** /**
* 已审批结果 * 已审批结果
*
* @param hiringBasicInfoId 经纪人基本信息id ag_acl_practitioner_hiring_basic_info.id * @param hiringBasicInfoId 经纪人基本信息id ag_acl_practitioner_hiring_basic_info.id
* @return 查询结果 * @return 查询结果
*/ */
...@@ -57,15 +71,20 @@ public interface PractitionerHiringMapper { ...@@ -57,15 +71,20 @@ public interface PractitionerHiringMapper {
/** /**
* ydLife查询当前经纪人已通过或拒绝的报聘记录 * ydLife查询当前经纪人已通过或拒绝的报聘记录
*
* @param practitionerId * @param practitionerId
* @param approvingStatus * @param approvingStatus
* @return * @return
*/ */
List<HiringListInfo> queryHandledList(@Param("practitionerId")Long practitionerId, @Param("approvingStatus")int approvingStatus); List<HiringListInfo> queryHandledList(@Param("practitionerId") Long practitionerId, @Param("approvingStatus") int approvingStatus);
List<HiringListInfo> queryMentorUnhandledList(Long practitionerId); List<HiringListInfo> queryMentorUnhandledList(Long practitionerId);
List<HiringListInfo> querySystemOwnerUnhandledList(Long practitionerId); List<HiringListInfo> querySystemOwnerUnhandledList(@Param("practitionerId") Long practitionerId);
String getNextContractNo(); String getNextContractNo();
Map<String, Long> queryS1S2S3(Long practitionerId);
List<Long> queryBasicInfoIdList(List<Long> list);
} }
...@@ -8,6 +8,7 @@ import com.yd.dal.entity.practitioner.PersonalOffLineFYC; ...@@ -8,6 +8,7 @@ import com.yd.dal.entity.practitioner.PersonalOffLineFYC;
import com.yd.rmi.n22.salary.pojo.Achieve; import com.yd.rmi.n22.salary.pojo.Achieve;
import java.util.List; import java.util.List;
import java.util.Map;
public interface AgmsDashboardDALService { public interface AgmsDashboardDALService {
List<StatisticsPEPInfo> statisticsPEP(String type,Long dropOptionId); List<StatisticsPEPInfo> statisticsPEP(String type,Long dropOptionId);
...@@ -32,4 +33,6 @@ public interface AgmsDashboardDALService { ...@@ -32,4 +33,6 @@ public interface AgmsDashboardDALService {
* @return * @return
*/ */
List<Achieve> queryN22FYC(Integer time, Integer isPersonal, String loginName); List<Achieve> queryN22FYC(Integer time, Integer isPersonal, String loginName);
List<Map<String, Object>> queryTeamAllMap();
} }
...@@ -3,6 +3,7 @@ package com.yd.dal.service.agms; ...@@ -3,6 +3,7 @@ package com.yd.dal.service.agms;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.yd.api.agms.vo.hiring.PractitionerHiringListRequestVO; import com.yd.api.agms.vo.hiring.PractitionerHiringListRequestVO;
import com.yd.dal.entity.agms.hiring.*; import com.yd.dal.entity.agms.hiring.*;
import com.yd.dal.entity.customer.AclPractitionerHiringMembership;
import java.util.List; import java.util.List;
...@@ -65,4 +66,6 @@ public interface AgmsHiringDALService { ...@@ -65,4 +66,6 @@ public interface AgmsHiringDALService {
PractitionerHiringListRequestVO requestVO); PractitionerHiringListRequestVO requestVO);
List<PractitionerHiringListInfo> queryUnhandledList(PractitionerHiringListRequestVO requestVO); List<PractitionerHiringListInfo> queryUnhandledList(PractitionerHiringListRequestVO requestVO);
AclPractitionerHiringMembership queryHiringMemberShip(Long hiringBasicInfoId);
} }
...@@ -14,14 +14,13 @@ import com.yd.rmi.n22.salary.service.N22SalaryService; ...@@ -14,14 +14,13 @@ import com.yd.rmi.n22.salary.service.N22SalaryService;
import com.yd.util.CommonUtil; import com.yd.util.CommonUtil;
import com.yd.util.intercept.annotation.TargetDataSource; import com.yd.util.intercept.annotation.TargetDataSource;
import com.yd.util.intercept.commons.DataSourceKey; import com.yd.util.intercept.commons.DataSourceKey;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Comparator; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; 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;
...@@ -33,15 +32,35 @@ public class AgmsDashboardDALServiceImpl implements AgmsDashboardDALService { ...@@ -33,15 +32,35 @@ public class AgmsDashboardDALServiceImpl implements AgmsDashboardDALService {
private AgmsDashboardMapper agmsDashboardMapper; private AgmsDashboardMapper agmsDashboardMapper;
@Autowired @Autowired
private N22SalaryService n22SalaryService; private N22SalaryService n22SalaryService;
@Autowired
private AgmsDashboardDALService agmsDashboardDALService;
@Override @Override
public List<StatisticsPEPInfo> statisticsPEP(String type,Long dropOptionId) { public List<StatisticsPEPInfo> statisticsPEP(String type,Long dropOptionId) {
//查询总分数
List<StatisticsPEPInfo> statisticsPEPInfos = agmsDashboardMapper.statisticsPEP(type, dropOptionId);
//查询寿险经纪人人数统计,按type分类 //查询寿险经纪人人数统计,按type分类
List<Map<String,Long>> practitionerNums = agmsDashboardMapper.getPractitionerNums(type); List<Map<String,Long>> practitionerNums = agmsDashboardMapper.getPractitionerNums(type);
ConcurrentMap<Long,Long> practitionerNumMap = new ConcurrentHashMap<>(); ConcurrentMap<Long,Long> practitionerNumMap = new ConcurrentHashMap<>();
practitionerNums.forEach(u->practitionerNumMap.put(u.get("id"),u.get("practitionerNum"))); practitionerNums.forEach(u->practitionerNumMap.put(u.get("id"),u.get("practitionerNum")));
//查询总分数
List<StatisticsPEPInfo> statisticsPEPInfos = new ArrayList<>();
if ("b".equalsIgnoreCase(type)) {
statisticsPEPInfos = agmsDashboardMapper.statisticsPEP(type, dropOptionId);
} else {
// 新体系
List<Map<String, Object>> teamMapList = agmsDashboardDALService.queryTeamAllMap();
teamMapList= teamMapList.stream().filter((Map<String, Object> i) -> i.size()==2).collect(Collectors.toList());
statisticsPEPInfos = agmsDashboardMapper.statisticsPEPTeam(type, dropOptionId, teamMapList);
for (Map<String, Object> teamMap :teamMapList) {
Object teamMember = teamMap.get("teamMember");
if (null != teamMember) {
List<Long> list = (List<Long>) teamMember;
practitionerNumMap.put((Long) teamMap.get("id"), (long) list.size());
}
}
}
for (StatisticsPEPInfo statisticsPEPInfo:statisticsPEPInfos) { for (StatisticsPEPInfo statisticsPEPInfo:statisticsPEPInfos) {
Long practitionerNum = 0L; Long practitionerNum = 0L;
if (type.equalsIgnoreCase("B")){ if (type.equalsIgnoreCase("B")){
...@@ -54,6 +73,9 @@ public class AgmsDashboardDALServiceImpl implements AgmsDashboardDALService { ...@@ -54,6 +73,9 @@ public class AgmsDashboardDALServiceImpl implements AgmsDashboardDALService {
practitionerNum = practitionerNumMap.get(0L); practitionerNum = practitionerNumMap.get(0L);
statisticsPEPInfo.setPractitionerNum(practitionerNum); statisticsPEPInfo.setPractitionerNum(practitionerNum);
} }
if ("暂无公司".equals(statisticsPEPInfo.getBranchName())) {
continue;
}
Double scoreDay = BigDecimal.valueOf(statisticsPEPInfo.getScoreDay()) Double scoreDay = BigDecimal.valueOf(statisticsPEPInfo.getScoreDay())
.divide(BigDecimal.valueOf(practitionerNum),2,BigDecimal.ROUND_HALF_UP) .divide(BigDecimal.valueOf(practitionerNum),2,BigDecimal.ROUND_HALF_UP)
.doubleValue(); .doubleValue();
...@@ -84,23 +106,37 @@ public class AgmsDashboardDALServiceImpl implements AgmsDashboardDALService { ...@@ -84,23 +106,37 @@ public class AgmsDashboardDALServiceImpl implements AgmsDashboardDALService {
.doubleValue(); .doubleValue();
statisticsPEPInfo.setScoreTotal(scoreTotal); statisticsPEPInfo.setScoreTotal(scoreTotal);
} }
Comparator<StatisticsPEPInfo> byDay = Comparator.comparing(StatisticsPEPInfo::getScoreDay).reversed(); Comparator<StatisticsPEPInfo> byDay = Comparator.comparing(StatisticsPEPInfo::getScoreDay, Comparator.nullsLast(Double::compareTo)).reversed();
Comparator<StatisticsPEPInfo> byWeek = Comparator.comparing(StatisticsPEPInfo::getScoreWeek).reversed(); Comparator<StatisticsPEPInfo> byWeek = Comparator.comparing(StatisticsPEPInfo::getScoreWeek, Comparator.nullsLast(Double::compareTo)).reversed();
Comparator<StatisticsPEPInfo> byMonth = Comparator.comparing(StatisticsPEPInfo::getScoreMonth).reversed(); Comparator<StatisticsPEPInfo> byMonth = Comparator.comparing(StatisticsPEPInfo::getScoreMonth, Comparator.nullsLast(Double::compareTo)).reversed();
Comparator<StatisticsPEPInfo> byQuarter = Comparator.comparing(StatisticsPEPInfo::getScoreQuarter).reversed(); Comparator<StatisticsPEPInfo> byQuarter = Comparator.comparing(StatisticsPEPInfo::getScoreQuarter, Comparator.nullsLast(Double::compareTo)).reversed();
Comparator<StatisticsPEPInfo> statisticsPEPInfoComparator = byDay.thenComparing(byWeek).thenComparing(byMonth).thenComparing(byQuarter); Comparator<StatisticsPEPInfo> statisticsPEPInfoComparator = byDay.thenComparing(byWeek).thenComparing(byMonth).thenComparing(byQuarter);
statisticsPEPInfos = statisticsPEPInfos.stream().sorted(statisticsPEPInfoComparator).collect(Collectors.toList()); statisticsPEPInfos = statisticsPEPInfos.stream().sorted(statisticsPEPInfoComparator).collect(Collectors.toList());
return statisticsPEPInfos; return statisticsPEPInfos;
} }
@Override @Override
public List<StatisticsOpportunityInfo> statisticsOpportunity(String type,String time, Long dropOptionId) { public List<StatisticsOpportunityInfo> statisticsOpportunity(String type, String time, Long dropOptionId) {
return agmsDashboardMapper.statisticsOpportunity(type , time, dropOptionId); if ("b".equalsIgnoreCase(type)) {
return agmsDashboardMapper.statisticsOpportunity(type, time, dropOptionId);
} else {
// 新体系
List<Map<String, Object>> teamMapList = agmsDashboardDALService.queryTeamAllMap();
teamMapList= teamMapList.stream().filter((Map<String, Object> i) -> i.size()==2).collect(Collectors.toList());
return agmsDashboardMapper.statisticsOpportunityTeam(type, time, dropOptionId, teamMapList);
}
} }
@Override @Override
public List<StatisticsSalesInfo> statisticsSalesYD(String category, String type, String time) { public List<StatisticsSalesInfo> statisticsSalesYD(String category, String type, String time) {
List<StatisticsSalesInfo> statisticsSalesInfos = agmsDashboardMapper.statisticsSalesYD(category, type,time); List<StatisticsSalesInfo> statisticsSalesInfos = null;
if ("b".equalsIgnoreCase(type)) {
statisticsSalesInfos = agmsDashboardMapper.statisticsSalesYD(category, type,time);
} else {
List<Map<String, Object>> teamMapList = this.queryTeamAllMap();
teamMapList= teamMapList.stream().filter((Map<String, Object> i) -> i.size()==2).collect(Collectors.toList());
statisticsSalesInfos = agmsDashboardMapper.statisticsSalesTeam(category, time, teamMapList);
}
getUnitPremium(statisticsSalesInfos); getUnitPremium(statisticsSalesInfos);
return statisticsSalesInfos; return statisticsSalesInfos;
} }
...@@ -159,8 +195,30 @@ public class AgmsDashboardDALServiceImpl implements AgmsDashboardDALService { ...@@ -159,8 +195,30 @@ public class AgmsDashboardDALServiceImpl implements AgmsDashboardDALService {
} }
@Override @Override
public List<Map<String, Object>> queryTeamAllMap() {
List<Map<String, Object>> memberList = agmsDashboardMapper.queryTeamAllMap();
Object teamMember = null;
String[] arr = null;
for (Map<String, Object> map : memberList) {
teamMember = map.get("teamMember");
if (teamMember != null && StringUtils.isNotBlank((String) teamMember)) {
arr = ((String) teamMember).split(",");
map.put("teamMember", Arrays.asList(arr));
}
}
return memberList;
}
@Override
public List<StatisticsPractitionerInfo> statisticsPractitioner(String type, String time) { public List<StatisticsPractitionerInfo> statisticsPractitioner(String type, String time) {
List<StatisticsPractitionerInfo> statisticsPractitionerInfos = agmsDashboardMapper.statisticsPractitioner(type, time); List<StatisticsPractitionerInfo> statisticsPractitionerInfos = null;
if ("b".equalsIgnoreCase(type)) {
statisticsPractitionerInfos = agmsDashboardMapper.statisticsPractitioner(type, time);
} else {
List<Map<String, Object>> teamMapList = this.queryTeamAllMap();
statisticsPractitionerInfos = agmsDashboardMapper.statisticsPractitionerTeam(time, teamMapList);
}
//计算实动率 //计算实动率
if(statisticsPractitionerInfos != null && statisticsPractitionerInfos.size() > 0){ if(statisticsPractitionerInfos != null && statisticsPractitionerInfos.size() > 0){
Integer realAmount,amount; Integer realAmount,amount;
......
...@@ -5,21 +5,22 @@ import com.github.pagehelper.PageHelper; ...@@ -5,21 +5,22 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.yd.api.agms.vo.hiring.PractitionerHiringListRequestVO; import com.yd.api.agms.vo.hiring.PractitionerHiringListRequestVO;
import com.yd.dal.entity.agms.hiring.*; import com.yd.dal.entity.agms.hiring.*;
import com.yd.dal.entity.customer.AclPractitioner;
import com.yd.dal.entity.customer.AclPractitionerHiringMembership;
import com.yd.dal.entity.customer.AclPractitionerSubordinateSystem;
import com.yd.dal.entity.customer.practitioner.PractitionerSubordinateInfo; import com.yd.dal.entity.customer.practitioner.PractitionerSubordinateInfo;
import com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps; import com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps;
import com.yd.dal.entity.practitioner.hiring.HiringListInfo;
import com.yd.dal.entity.user.AclUser; import com.yd.dal.entity.user.AclUser;
import com.yd.dal.mapper.agms.AgmsHiringMapper; import com.yd.dal.mapper.agms.AgmsHiringMapper;
import com.yd.dal.mapper.customer.AclPractitionerHiringMembershipMapper;
import com.yd.dal.service.agms.AgmsHiringDALService; import com.yd.dal.service.agms.AgmsHiringDALService;
import com.yd.dal.service.customer.AclPractitionerDALService;
import com.yd.dal.service.customer.AclPractitionerSubordinateSystemDALService; import com.yd.dal.service.customer.AclPractitionerSubordinateSystemDALService;
import com.yd.dal.service.meta.MdPractitionerHiringApproveStepsDALService; import com.yd.dal.service.meta.MdPractitionerHiringApproveStepsDALService;
import com.yd.dal.service.practitioner.PractitionerHiringDALService; import com.yd.dal.service.practitioner.PractitionerHiringDALService;
import com.yd.dal.service.user.AclUserDALService; import com.yd.dal.service.user.AclUserDALService;
import com.yd.util.CommonUtil;
import com.yd.util.page.PageInfoUtils; import com.yd.util.page.PageInfoUtils;
import net.sf.ehcache.Element;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -42,7 +43,10 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService { ...@@ -42,7 +43,10 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService {
private PractitionerHiringDALService practitionerHiringDalService; private PractitionerHiringDALService practitionerHiringDalService;
@Autowired @Autowired
private AclPractitionerSubordinateSystemDALService aclPractitionerSubordinateSystemDalService; private AclPractitionerSubordinateSystemDALService aclPractitionerSubordinateSystemDalService;
@Autowired
private AclPractitionerHiringMembershipMapper membershipMapper;
@Autowired
private AclPractitionerDALService aclPractitionerDALService;
@Autowired @Autowired
public void setAgmsHiringMapper(AgmsHiringMapper agmsHiringMapper){ public void setAgmsHiringMapper(AgmsHiringMapper agmsHiringMapper){
...@@ -56,7 +60,79 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService { ...@@ -56,7 +60,79 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService {
@Override @Override
public PractitionerHiringMemberShip findPractitionerHiringMemberShip(Long hiringBasicInfoId) { public PractitionerHiringMemberShip findPractitionerHiringMemberShip(Long hiringBasicInfoId) {
return agmsHiringMapper.findPractitionerHiringMemberShip(hiringBasicInfoId); PractitionerHiringMemberShip practitionerHiringMemberShip = agmsHiringMapper.findPractitionerHiringMemberShip(hiringBasicInfoId);
AclPractitionerHiringMembership hiringMemberShip = this.queryHiringMemberShip(hiringBasicInfoId);
practitionerHiringMemberShip.setS1TeamLeaderId(hiringMemberShip.getS1TeamLeaderId());
practitionerHiringMemberShip.setS2TeamLeaderId(hiringMemberShip.getS2TeamLeaderId());
practitionerHiringMemberShip.setS3TeamLeaderId(hiringMemberShip.getS3TeamLeaderId());
practitionerHiringMemberShip.setS1TeamLeaderName(hiringMemberShip.getS1TeamLeaderName());
practitionerHiringMemberShip.setS2TeamLeaderName(hiringMemberShip.getS2TeamLeaderName());
practitionerHiringMemberShip.setS3TeamLeaderName(hiringMemberShip.getS3TeamLeaderName());
practitionerHiringMemberShip.setS1SubordinateSystemName(hiringMemberShip.getS1SubordinateSystemName());
practitionerHiringMemberShip.setS2SubordinateSystemName(hiringMemberShip.getS2SubordinateSystemName());
practitionerHiringMemberShip.setS3SubordinateSystemName(hiringMemberShip.getS3SubordinateSystemName());
return practitionerHiringMemberShip;
}
@Override
public AclPractitionerHiringMembership queryHiringMemberShip(Long hiringBasicInfoId) {
AclPractitionerHiringMembership hiringMemberShip = membershipMapper.selectByHiringBasicInfoId(hiringBasicInfoId);
if (hiringMemberShip.getMentorPractitionerId() == null) {
return hiringMemberShip;
}
AclPractitioner mentor = aclPractitionerDALService.findPractitionerById(hiringMemberShip.getMentorPractitionerId());
hiringMemberShip.setS1Id(mentor.getS1Id());
hiringMemberShip.setS2Id(mentor.getS2Id());
hiringMemberShip.setS3Id(mentor.getS3Id());
// 查询并显示“辅导人”所属的S1分部,分部负责人,S2体系,体系负责人,S3纵队,纵队负责人,没有的显示空
List<AclPractitionerSubordinateSystem> subordinateSystemList = aclPractitionerSubordinateSystemDalService.findAll();
Map<Long, AclPractitionerSubordinateSystem> subordinateSystemMap = new HashMap<>();
subordinateSystemList.forEach(i -> subordinateSystemMap.put(i.getId(), i));
Map<Long, AclPractitioner> aclPractitionerMap = aclPractitionerDALService.findAllMap();
//所属体系
AclPractitionerSubordinateSystem subordinateSystem = null;
//体系团队长
AclPractitioner systemOwner = null;
if (mentor.getS1Id() != null) {
subordinateSystem = subordinateSystemMap.get(mentor.getS1Id());
if (subordinateSystem != null) {
hiringMemberShip.setS1SubordinateSystemName(subordinateSystem.getName());
systemOwner = aclPractitionerMap.get(subordinateSystem.getOwnerPractitionerId());
hiringMemberShip.setS1TeamLeaderName(systemOwner != null ? systemOwner.getName() : null);
hiringMemberShip.setS1TeamLeaderId(systemOwner != null ? systemOwner.getId() : null);
}
}
if (null != mentor.getS2Id()) {
subordinateSystem = subordinateSystemMap.get(mentor.getS2Id());
if (subordinateSystem != null) {
hiringMemberShip.setS2SubordinateSystemName(subordinateSystem != null ? subordinateSystem.getName() : null);
systemOwner = aclPractitionerMap.get(subordinateSystem.getOwnerPractitionerId());
hiringMemberShip.setS2TeamLeaderName(systemOwner != null ? systemOwner.getName() : null);
hiringMemberShip.setS2TeamLeaderId(systemOwner != null ? systemOwner.getId() : null);
}
}
if (null != mentor.getS3Id()) {
subordinateSystem = subordinateSystemMap.get(mentor.getS3Id());
if (subordinateSystem != null) {
hiringMemberShip.setS3SubordinateSystemName(subordinateSystem != null ? subordinateSystem.getName() : null);
systemOwner = aclPractitionerMap.get(subordinateSystem.getOwnerPractitionerId());
hiringMemberShip.setS3TeamLeaderName(systemOwner != null ? systemOwner.getName() : null);
hiringMemberShip.setS3TeamLeaderId(systemOwner != null ? systemOwner.getId() : null);
}
}
return hiringMemberShip;
} }
@Override @Override
......
...@@ -14,6 +14,7 @@ import com.yd.dal.entity.practitioner.payscale.PayScaleBasicInfo; ...@@ -14,6 +14,7 @@ import com.yd.dal.entity.practitioner.payscale.PayScaleBasicInfo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Map;
@Service("aclPractitionerDALService") @Service("aclPractitionerDALService")
public interface AclPractitionerDALService { public interface AclPractitionerDALService {
...@@ -261,4 +262,6 @@ public interface AclPractitionerDALService { ...@@ -261,4 +262,6 @@ public interface AclPractitionerDALService {
* @author Yan Wenyang * @author Yan Wenyang
*/ */
void updateUnionSales(Long unionSalesId, String ossPath, String signStatus); void updateUnionSales(Long unionSalesId, String ossPath, String signStatus);
Map<Long, AclPractitioner> findAllMap();
} }
...@@ -33,7 +33,10 @@ import org.springframework.web.context.request.RequestContextHolder; ...@@ -33,7 +33,10 @@ import org.springframework.web.context.request.RequestContextHolder;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@Service("aclPractitionerDALService") @Service("aclPractitionerDALService")
public class AclPractitionerDALServiceImpl implements AclPractitionerDALService { public class AclPractitionerDALServiceImpl implements AclPractitionerDALService {
private static final Logger LOG = Logger.getLogger(AclPractitionerDALServiceImpl.class); private static final Logger LOG = Logger.getLogger(AclPractitionerDALServiceImpl.class);
...@@ -378,4 +381,12 @@ public class AclPractitionerDALServiceImpl implements AclPractitionerDALService ...@@ -378,4 +381,12 @@ public class AclPractitionerDALServiceImpl implements AclPractitionerDALService
aclPractitionerMapper.updateUnionSales(unionSalesId, ossPath, signStatus); aclPractitionerMapper.updateUnionSales(unionSalesId, ossPath, signStatus);
} }
@Override
public Map<Long, AclPractitioner> findAllMap() {
List<AclPractitioner> list = this.findAll();
Map<Long, AclPractitioner> aclPractitionerMap = new HashMap<>();
list.forEach(i -> aclPractitionerMap.put(i.getId(), i));
return aclPractitionerMap;
}
} }
package com.yd.dal.service.practitioner; package com.yd.dal.service.practitioner;
import com.github.pagehelper.PageInfo;
import com.yd.api.practitioner.vo.hiring.PractitionerHiringContractTerms; import com.yd.api.practitioner.vo.hiring.PractitionerHiringContractTerms;
import com.yd.dal.entity.agms.hiring.*;
import com.yd.dal.entity.practitioner.hiring.*; import com.yd.dal.entity.practitioner.hiring.*;
import java.util.List; import java.util.List;
...@@ -98,4 +96,6 @@ public interface PractitionerHiringDALService { ...@@ -98,4 +96,6 @@ public interface PractitionerHiringDALService {
String getApproveStatusByStepSeq(Integer stepSeq); String getApproveStatusByStepSeq(Integer stepSeq);
Integer getNextStepSeqByApproveStatus(String approveStatus); Integer getNextStepSeqByApproveStatus(String approveStatus);
List<Long> queryBasicInfoIdList(List<Long> list);
} }
...@@ -18,7 +18,6 @@ import com.yd.dal.service.meta.MdPractitionerHiringApproveStepsDALService; ...@@ -18,7 +18,6 @@ import com.yd.dal.service.meta.MdPractitionerHiringApproveStepsDALService;
import com.yd.dal.service.practitioner.PractitionerHiringDALService; import com.yd.dal.service.practitioner.PractitionerHiringDALService;
import com.yd.dal.service.user.AclUserDALService; import com.yd.dal.service.user.AclUserDALService;
import com.yd.rmi.cache.SystemConfigService; import com.yd.rmi.cache.SystemConfigService;
import com.yd.util.CommonUtil;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -113,11 +112,18 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe ...@@ -113,11 +112,18 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
List<MdPractitionerHiringApproveSteps> stepsList = systemConfigService.findHiringApproveStepsAll(); List<MdPractitionerHiringApproveSteps> stepsList = systemConfigService.findHiringApproveStepsAll();
// 当前经纪人的报聘职级 // 当前经纪人的报聘职级
AclPractitionerHiringMembership hiringMemberShip = membershipMapper.selectByHiringBasicInfoId(hiringBasicInfoId); AclPractitionerHiringMembership hiringMemberShip = membershipMapper.selectByHiringBasicInfoId(hiringBasicInfoId);
String mdDropOptionName = hiringMemberShip.getMdDropOptionName();
// 审批的体系负责人
String subsystemOwnerName = "";
if (hiringMemberShip.getApprovedBy() != null) {
AclPractitioner approvedBy = aclPractitionerDALService.findPractitionerById(hiringMemberShip.getApprovedBy());
subsystemOwnerName = (approvedBy != null) ? approvedBy.getName() : "";
}
HiringApproveRecords record; HiringApproveRecords record;
for (MdPractitionerHiringApproveSteps step : stepsList) { for (MdPractitionerHiringApproveSteps step : stepsList) {
// S2前2步不用审批 // S2前2步不用审批
if (Long.valueOf("30").equals(hiringMemberShip.getMdDropOptionId()) if ((mdDropOptionName.indexOf("S2")>=0 || mdDropOptionName.indexOf("S3")>=0)
&& (step.getStepSeq() == 1 || step.getStepSeq() == 2) && (step.getStepSeq() == 1 || step.getStepSeq() == 2)
) { ) {
continue; continue;
...@@ -142,7 +148,7 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe ...@@ -142,7 +148,7 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
if ("mentor".equals(step.getApproveRole())) { if ("mentor".equals(step.getApproveRole())) {
obj.setApprovingPractitionerName(hiringMemberShip.getMentor()); obj.setApprovingPractitionerName(hiringMemberShip.getMentor());
} else if ("subsystemOwner".equals(step.getApproveRole())) { } else if ("subsystemOwner".equals(step.getApproveRole())) {
obj.setApprovingPractitionerName(hiringMemberShip.getSubsystemOwner()); obj.setApprovingPractitionerName(subsystemOwnerName);
} else { } else {
String names = aclUserDalService.selectNamesByMobileNos(step.getAppointedApprovePractitioners()); String names = aclUserDalService.selectNamesByMobileNos(step.getAppointedApprovePractitioners());
obj.setApprovingPractitionerName(names); obj.setApprovingPractitionerName(names);
...@@ -207,20 +213,14 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe ...@@ -207,20 +213,14 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
} }
private List<HiringListInfo> queryYdLifeHiringinfoList(Long practitionerId) { private List<HiringListInfo> queryYdLifeHiringinfoList(Long practitionerId) {
// 查询审批身份 0.既是辅导人又是团队长 1.辅导人 2.团队长
int approvalIdentity = this.queryApprovalIdentity(practitionerId);
List<HiringListInfo> resultList = new ArrayList<>(); List<HiringListInfo> resultList = new ArrayList<>();
if (approvalIdentity == 1) {
resultList = practitionerHiringMapper.queryMentorUnhandledList(practitionerId); List<HiringListInfo> list1 = practitionerHiringMapper.queryMentorUnhandledList(practitionerId);
} else if (approvalIdentity == 2) { List<HiringListInfo> list2 = practitionerHiringMapper.querySystemOwnerUnhandledList(practitionerId);
resultList = practitionerHiringMapper.querySystemOwnerUnhandledList(practitionerId); resultList.addAll(list1);
} else { resultList.addAll(list2);
List<HiringListInfo> list1 = practitionerHiringMapper.queryMentorUnhandledList(practitionerId);
List<HiringListInfo> list2 = practitionerHiringMapper.querySystemOwnerUnhandledList(practitionerId);
resultList.addAll(list1);
resultList.addAll(list2);
}
return resultList; return resultList;
} }
...@@ -322,4 +322,9 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe ...@@ -322,4 +322,9 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
} }
return null; return null;
} }
@Override
public List<Long> queryBasicInfoIdList(List<Long> list) {
return practitionerHiringMapper.queryBasicInfoIdList(list);
}
} }
...@@ -4,6 +4,7 @@ import com.yd.dal.entity.customer.AclInsurerBranch; ...@@ -4,6 +4,7 @@ import com.yd.dal.entity.customer.AclInsurerBranch;
import com.yd.dal.entity.meta.*; import com.yd.dal.entity.meta.*;
import com.yd.dal.service.customer.AclInsurerBranchDALService; import com.yd.dal.service.customer.AclInsurerBranchDALService;
import com.yd.dal.service.meta.*; import com.yd.dal.service.meta.*;
import com.yd.dal.service.practitioner.PractitionerHiringDALService;
import com.yd.rmi.ali.ossinterf.service.AliOssInterfService; import com.yd.rmi.ali.ossinterf.service.AliOssInterfService;
import com.yd.util.CommonUtil; import com.yd.util.CommonUtil;
import net.sf.ehcache.Cache; import net.sf.ehcache.Cache;
...@@ -37,6 +38,8 @@ public class SystemConfigService implements CommandLineRunner{ ...@@ -37,6 +38,8 @@ public class SystemConfigService implements CommandLineRunner{
private MdDropOptionsDALService mdDropOptionsDALService; private MdDropOptionsDALService mdDropOptionsDALService;
@Autowired @Autowired
private AclInsurerBranchDALService aclInsurerBranchDALService; private AclInsurerBranchDALService aclInsurerBranchDALService;
@Autowired
private PractitionerHiringDALService practitionerHiringDalService;
/** /**
* 保存cache * 保存cache
...@@ -347,4 +350,5 @@ public class SystemConfigService implements CommandLineRunner{ ...@@ -347,4 +350,5 @@ public class SystemConfigService implements CommandLineRunner{
} }
return map; return map;
} }
} }
...@@ -322,8 +322,14 @@ ...@@ -322,8 +322,14 @@
<if test="approveStatus != null"> <if test="approveStatus != null">
and b.approve_status = #{approveStatus} and b.approve_status = #{approveStatus}
</if> </if>
and m.md_drop_option_id = 30 and m.md_drop_option_id
in (select md.id
from ag_md_drop_options md
left join ag_md_drop_master ms on ms.id = md.drop_master_id
where 1=1
and ms.scenario_code = 'practitioner_level'
and md.drop_option_code in ('S2','S3')
)
</select> </select>
</mapper> </mapper>
...@@ -23,13 +23,14 @@ ...@@ -23,13 +23,14 @@
<result column="created_by" jdbcType="BIGINT" property="createdBy" /> <result column="created_by" jdbcType="BIGINT" property="createdBy" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" /> <result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="updated_by" jdbcType="BIGINT" property="updatedBy" /> <result column="updated_by" jdbcType="BIGINT" property="updatedBy" />
<result column="approved_by" jdbcType="BIGINT" property="approvedBy" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, hiring_basic_info_id, md_drop_option_id, md_drop_option_name, mentor_practitioner_id, id, hiring_basic_info_id, md_drop_option_id, md_drop_option_name, mentor_practitioner_id,
mentor, introducer_practitioner_id, introducer, subsystem_id, subsystem, subsystem_owner_id, mentor, introducer_practitioner_id, introducer, subsystem_id, subsystem, subsystem_owner_id,
subsystem_owner, branch_id, branch, is_active, created_at, created_by, subsystem_owner, branch_id, branch, is_active, created_at, created_by,
updated_at, updated_by updated_at, updated_by, approved_by
</sql> </sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
<!--@mbg.generated--> <!--@mbg.generated-->
...@@ -243,6 +244,9 @@ ...@@ -243,6 +244,9 @@
<if test="updatedBy != null"> <if test="updatedBy != null">
updated_by = #{updatedBy,jdbcType=BIGINT}, updated_by = #{updatedBy,jdbcType=BIGINT},
</if> </if>
<if test="approvedBy != null">
approved_by = #{approvedBy,jdbcType=BIGINT},
</if>
</set> </set>
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
......
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
education_level, graduated_university, mentor_id, education_level, graduated_university, mentor_id,
introducer_id, gender, contract_oss_path, introducer_id, gender, contract_oss_path,
hiring_basic_info_id, can_login_dyd, can_see_salary_list, hiring_basic_info_id, can_login_dyd, can_see_salary_list,
detail_address,account_bank,bank_card_no,email detail_address,account_bank,bank_card_no,email,s1_id,s2_id,s3_id
) )
values (#{insurerId,jdbcType=BIGINT}, #{insurerBranchId,jdbcType=BIGINT}, #{deptId,jdbcType=BIGINT}, values (#{insurerId,jdbcType=BIGINT}, #{insurerBranchId,jdbcType=BIGINT}, #{deptId,jdbcType=BIGINT},
#{subordinateSystemId,jdbcType=BIGINT}, #{practitionerCode,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{subordinateSystemId,jdbcType=BIGINT}, #{practitionerCode,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR},
...@@ -113,7 +113,8 @@ ...@@ -113,7 +113,8 @@
#{educationLevel,jdbcType=VARCHAR}, #{graduatedUniversity,jdbcType=VARCHAR}, #{mentorId,jdbcType=BIGINT}, #{educationLevel,jdbcType=VARCHAR}, #{graduatedUniversity,jdbcType=VARCHAR}, #{mentorId,jdbcType=BIGINT},
#{introducerId,jdbcType=BIGINT}, #{gender,jdbcType=INTEGER}, #{contractOssPath,jdbcType=VARCHAR}, #{introducerId,jdbcType=BIGINT}, #{gender,jdbcType=INTEGER}, #{contractOssPath,jdbcType=VARCHAR},
#{hiringBasicInfoId,jdbcType=BIGINT}, #{canLoginDyd,jdbcType=BIGINT}, #{canSeeSalaryList,jdbcType=BIGINT}, #{hiringBasicInfoId,jdbcType=BIGINT}, #{canLoginDyd,jdbcType=BIGINT}, #{canSeeSalaryList,jdbcType=BIGINT},
#{detailAddress},#{accountBank,jdbcType=VARCHAR}, #{bankCardNo,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR} #{detailAddress},#{accountBank,jdbcType=VARCHAR}, #{bankCardNo,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR},
#{s1Id,jdbcType=BIGINT},#{s2Id,jdbcType=BIGINT},#{s3Id,jdbcType=BIGINT}
) )
</insert> </insert>
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.yd.dal.entity.customer.AclPractitioner" useGeneratedKeys="true"> <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.yd.dal.entity.customer.AclPractitioner" useGeneratedKeys="true">
......
...@@ -198,7 +198,7 @@ ...@@ -198,7 +198,7 @@
o.ydBranchId, o.ydBranchId,
o.cover_term_type coverageTerm, o.cover_term_type coverageTerm,
CONCAT(o.payment_term, (case o.payment_term_unit when 'Y' then '年' when 'M' then '月' else '' END)) payTerm CONCAT(o.payment_term, (case o.payment_term_unit when 'Y' then '年' when 'M' then '月' else '' END)) payTerm
from ag_po_order_commission oc from ag_po_order_commission oc
left join left join
(SELECT id, order_price, product_id, (SELECT id, order_price, product_id,
...@@ -206,7 +206,7 @@ ...@@ -206,7 +206,7 @@
payment_term, payment_term_unit,broker_customer_id, payment_term, payment_term_unit,broker_customer_id,
cover_term_type cover_term_type
from ag_po_order t from ag_po_order t
where t.status in (3,4) and t.policy_no is not null where t.status=3 and t.payment_status=3 and t.policy_no is not null
and (t.plan_id not in (424,453,464) or t.plan_id is null) and (t.plan_id not in (424,453,464) or t.plan_id is null)
) o ON o.id = oc.order_id ) o ON o.id = oc.order_id
left join ag_product_life_commission_base b on oc.commission_base_id = b.id left join ag_product_life_commission_base b on oc.commission_base_id = b.id
......
...@@ -9,6 +9,9 @@ ...@@ -9,6 +9,9 @@
<result column="practitionerLevel" jdbcType="VARCHAR" property="practitionerLevel"/> <result column="practitionerLevel" jdbcType="VARCHAR" property="practitionerLevel"/>
<result column="mentor" jdbcType="VARCHAR" property="mentor"/> <result column="mentor" jdbcType="VARCHAR" property="mentor"/>
<result column="applicationTime" jdbcType="VARCHAR" property="applicationTime"/> <result column="applicationTime" jdbcType="VARCHAR" property="applicationTime"/>
<result column="s1PractitionerId" jdbcType="BIGINT" property="s1PractitionerId"/>
<result column="s2PractitionerId" jdbcType="BIGINT" property="s2PractitionerId"/>
<result column="s3PractitionerId" jdbcType="BIGINT" property="s3PractitionerId"/>
</resultMap> </resultMap>
<select id="findHiringList" resultMap="HiringListInfo"> <select id="findHiringList" resultMap="HiringListInfo">
select b.id hiringBasicInfoId, select b.id hiringBasicInfoId,
...@@ -126,7 +129,7 @@ ...@@ -126,7 +129,7 @@
mentor mentor, mentor mentor,
introducer introducer, introducer introducer,
subsystem subsystem, subsystem subsystem,
subsystem_owner subsystemOwner, (select name from ag_acl_practitioner where id = approved_by) subsystemOwner,
branch branch branch branch
from ag_acl_practitioner_hiring_membership from ag_acl_practitioner_hiring_membership
where hiring_basic_info_id = #{hiringBasicInfoId,jdbcType=BIGINT} where hiring_basic_info_id = #{hiringBasicInfoId,jdbcType=BIGINT}
...@@ -253,7 +256,7 @@ ...@@ -253,7 +256,7 @@
from ag_acl_practitioner_hiring_basic_info b from ag_acl_practitioner_hiring_basic_info b
left join ag_acl_practitioner_hiring_membership m on b.id = m.hiring_basic_info_id left join ag_acl_practitioner_hiring_membership m on b.id = m.hiring_basic_info_id
where 1=1 where 1=1
and m.subsystem_owner_id = #{practitionerId,jdbcType=BIGINT} and m.approved_by = #{practitionerId,jdbcType=BIGINT}
and b.approve_status = '1' and b.approve_status = '1'
and m.md_drop_option_id != (select id and m.md_drop_option_id != (select id
from ag_md_drop_options from ag_md_drop_options
...@@ -266,4 +269,21 @@ ...@@ -266,4 +269,21 @@
<select id="getNextContractNo" resultType="java.lang.String" statementType="CALLABLE"> <select id="getNextContractNo" resultType="java.lang.String" statementType="CALLABLE">
select f_getNextContractNo() select f_getNextContractNo()
</select> </select>
<select id="queryS1S2S3" resultType="Map">
SELECT
(select owner_practitioner_id from ag_acl_practitioner_subordinate_system where id=p.s1_id) as s1PractitionerId,
(select owner_practitioner_id from ag_acl_practitioner_subordinate_system where id=p.s2_id) as s2PractitionerId,
(select owner_practitioner_id from ag_acl_practitioner_subordinate_system where id=p.s3_id) as s3PractitionerId
from ag_acl_practitioner p
where p.id = #{practitionerId,jdbcType=BIGINT}
</select>
<select id="queryBasicInfoIdList" resultType="java.lang.Long">
select b.id
from ag_acl_practitioner_hiring_basic_info b
where 1=1
and b.id in <foreach collection="list" item="p_id" open="(" separator="," close=")">#{p_id,jdbcType=BIGINT}</foreach>
and b.approve_status = '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