Преглед изворни кода

合伙人APP贡献费用计算离职人员

helixiao пре 1 година
родитељ
комит
274fe1fcc9

+ 3 - 0
package-lock.json

@@ -0,0 +1,3 @@
+{
+  "lockfileVersion": 1
+}

+ 47 - 15
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java

@@ -694,8 +694,10 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                     List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
                             .likeRight(SysUser::getId, sysDept1.getId()).ne(SysUser::getStatus, 0));
                     deptManNum = deptManNum + sysUsers.size();
-                    if (sysUsers.size() > 0) {
-                        List<String> collect = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
+                    List<SysUser> sysUsers1 = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                            .likeRight(SysUser::getId, sysDept1.getId()));
+                    if (sysUsers1.size() > 0) {
+                        List<String> collect = sysUsers1.stream().map(SysUser::getId).collect(Collectors.toList());
                         userIdList.addAll(collect);
                     }
 
@@ -1155,7 +1157,7 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                     if (sysDeptList.size() > 0) {
                         for (SysDept sysDept : sysDeptList) {
                             List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
-                                    .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
+                                    .likeRight(SysUser::getId, sysDept.getId()));
                             if (sysUsers.size()>0) {
                                 userIds.addAll(sysUsers.stream().map(SysUser::getId).collect(Collectors.toList()));
                             }
@@ -1191,6 +1193,29 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         return userIds;
     }
 
+    private List<String> getUserIdByLeaders(List<SysAgencyLeader> leaderList) {
+        List<String> userIds = new ArrayList<>();
+        if (leaderList.size() > 0) {
+            for (SysAgencyLeader sysAgencyLeader : leaderList) {
+                //获取机构下的团队
+                List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                        .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                        .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                        .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+                if (sysDeptList.size() > 0) {
+                    for (SysDept sysDept : sysDeptList) {
+                        List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                                .likeRight(SysUser::getId, sysDept.getId()));
+                        if (sysUsers.size()>0) {
+                            userIds.addAll(sysUsers.stream().map(SysUser::getId).collect(Collectors.toList()));
+                        }
+                    }
+                }
+            }
+        }
+        return userIds;
+    }
+
     @Override
     public PartnerInfoFreeVo queryPartnerInfo(PartnerGradeInfo partnerGradeInfo) {
         PartnerInfoFreeVo partnerInfoFreeVo = new PartnerInfoFreeVo();
@@ -1539,9 +1564,9 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         }
         teamUserInfosFreeVo.setSumPremium(sumPremium);
         teamUserInfosFreeVo.setExtractFee(extractFee);
-
+        //在职员工
         List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
-                .ne(SysUser::getStatus, 0).in(SysUser::getId, teamUserInfosDto.getUserIds()));
+                .in(SysUser::getId, teamUserInfosDto.getUserIds()));
         for (SysUser sysUser : sysUsers) {
             TeamUserInfosVo teamUserInfosVo = new TeamUserInfosVo();
             teamUserInfosVo.setUserId(sysUser.getId());
@@ -1576,7 +1601,9 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
             teamUserInfosVo.setExtractFee(extractFee1);
             userInfosVoList.add(teamUserInfosVo);
         }
-        teamUserInfosFreeVo.setTeamManNum(userIds.size());
+        List<SysUser> sysUsers1 = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                .ne(SysUser::getStatus, 0).in(SysUser::getId, teamUserInfosDto.getUserIds()));
+        teamUserInfosFreeVo.setTeamManNum(sysUsers1.size());
         teamUserInfosFreeVo.setTeamUserInfosVoList(userInfosVoList);
 
         return teamUserInfosFreeVo;
@@ -1714,8 +1741,6 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
                 .in(SysAgencyLeader::getUserId, leaderIds).eq(SysAgencyLeader::getDelFlag, 1));
 
-
-        List<String> userIdByLeader = getUserIdByLeader(leaderList);
         for (SysAgencyLeader sysAgencyLeader : leaderList) {
             BigDecimal sumPremium1 = BigDecimal.ZERO;
             BigDecimal extractFee1 = BigDecimal.ZERO;
@@ -1744,11 +1769,15 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
             partnerInfoVo.setDeptIds(collect);
             if (sysDeptList.size() > 0) {
                 for (SysDept sysDept : sysDeptList) {
+                    //团队下正常人员
                     List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
                             .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
                     deptManNum = deptManNum + sysUsers.size();
-                    if (CollectionUtil.isNotEmpty(sysUsers)) {
-                        for (SysUser user : sysUsers) {
+                    //团队下所有成员包括离职人员
+                    List<SysUser> sysUsers1 = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                            .likeRight(SysUser::getId, sysDept.getId()));
+                    if (CollectionUtil.isNotEmpty(sysUsers1)) {
+                        for (SysUser user : sysUsers1) {
                             //费用
                             List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
                                     .eq(SysPremiumDetails::getUserId, BaseController.getUserId())
@@ -1780,11 +1809,15 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
 
             partnerInfoVoList.add(partnerInfoVo);
         }
+
+        //所有工作室下的用户(包括离职人员)
+        List<String> userIdByLeaders = getUserIdByLeaders(leaderList);
         //top总费用
         BigDecimal sumPremium = BigDecimal.ZERO;
         BigDecimal extractFee = BigDecimal.ZERO;
-        if (userIdByLeader.size()>0) {
-            for (String id : userIdByLeader) {
+
+        if (userIdByLeaders.size()>0) {
+            for (String id : userIdByLeaders) {
                 //总费用
                 List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
                         .eq(SysPremiumDetails::getUserId, BaseController.getUserId())
@@ -1801,9 +1834,6 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                         List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
                         sumPremium= sumPremium.add(sysPremiumDetails1.get(0).getSumpremium());
                     }
-//                    SysPremiumDetails sysPremiumDetails1 = sysPremiumDetails.get(0);
-//                    sumPremium= sumPremium.add(sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add));
-
                     extractFee = extractFee.add(sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add));
                 }
 
@@ -1813,6 +1843,8 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         partnerLeaderInfoVo.setExtractFee(extractFee);
 
         int sum = partnerInfoVoList.stream().mapToInt(PartnerInfoVo::getTeamManNum).sum();
+        //所有工作室正常用户数
+        List<String> userIdByLeader = getUserIdByLeader(leaderList);
         partnerLeaderInfoVo.setUserIds(userIdByLeader);
         partnerLeaderInfoVo.setTeamManNum(sum);
         partnerLeaderInfoVo.setPartnerInfoVoList(partnerInfoVoList);