Ver Fonte

bug修改

huihui há 1 ano atrás
pai
commit
ba02436d3d

+ 4 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java

@@ -535,6 +535,10 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      */
     SysUser getByRoleIdAndDeptId(@Param("roleId") String roleId, @Param("deptId") String deptId);
 
+    /**
+     * 根据登陆者 id deptId 查询
+     */
+    List<SysUser> selectLeaderBylanderInfo(@Param("deptId") String deptId, @Param("leaderId") String leaderId, @Param("userId") String userId);
 }
 
 

+ 28 - 36
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -1881,47 +1881,39 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     private List<SysUserBaseVO> dataDivide(List<SysUserBaseVO> allUsersByHospitality) {
         List<SysUserBaseVO> divideUserInfo = new ArrayList<>();
         List<SysUser> userList = new ArrayList<>();
-        String userId = BaseController.getUserId();
-//        String userId = "99D1502";
-        if ("admin".equals(userId) || "99D1501".equals(userId)) {
+        SysUser landerInfo = BaseController.getUser();
+        //超级管理员不做处理
+        if ("admin".equals(landerInfo.getId()) || "99D1501".equals(landerInfo.getId())) {
             return allUsersByHospitality;
         }
-        SysUser sysUser = sysUserMapper.selectById(userId);
-        if ("99D1502".equals(userId)) {
-            List<SysUser> leaderUsers = sysUserMapper.selectByLeadId(userId);
-            List<String> leaderInfoList = leaderUsers.stream()
-                    .filter(userInfo -> !StringUtils.isNullOrEmpty(userInfo) && StringUtils.isNotEmpty(userInfo.getId())
-                            && !userInfo.getId().contains("M"))
-                    .map(userInfo -> userInfo.getId()).collect(Collectors.toList());
-            if (!StringUtils.isNullOrEmpty(leaderInfoList)) {
-                QueryWrapper<SysUser> leaderIds = new QueryWrapper<SysUser>().in("leader_id", leaderInfoList);
-                List<SysUser> sysUsers = sysUserMapper.selectList(leaderIds);
-                userList.addAll(sysUsers);
-            }
-            userList.addAll(leaderUsers);
-        } else if ("99D1502".equals(sysUser.getLeaderId())) {
-            userList.add(sysUser);
-            List<SysUser> leaderUsers = sysUserMapper.selectByLeadId(userId);
-            userList.addAll(leaderUsers);
-        } else {
-            List<SysUser> sysUsers = sysUserMapper.selectByLeadId(sysUser.getLeaderId());
-            SysUser loginUserLeader = sysUserMapper.selectById(sysUser.getLeaderId());
-            userList.add(loginUserLeader);
+
+        //获取查询结果id
+        List<String> userIds = new ArrayList<>();
+        //查询登陆者组长信息
+        List<SysUser> sysUsers = super.baseMapper.selectLeaderBylanderInfo(landerInfo.getDeptId(), null, landerInfo.getLeaderId());
+        if (StringUtils.isNullOrEmpty(sysUsers) || sysUsers.size() < 1) {
+            userIds.add(landerInfo.getId());
+            //为空则登陆者为组长,id当做leaderID查询
+            sysUsers = super.baseMapper.selectLeaderBylanderInfo(landerInfo.getDeptId(), landerInfo.getId(), null);
             userList.addAll(sysUsers);
+        } else {
+            SysUser sysUser = sysUsers.get(0);
+            userList.add(sysUser);
+            List<SysUser> sysUserList = super.baseMapper.selectLeaderBylanderInfo(landerInfo.getDeptId(), landerInfo.getLeaderId(), null);
+            userList.addAll(sysUserList);
         }
 
-        userList.stream()
-                .filter(user -> !StringUtils.isNullOrEmpty(user) && StringUtils.isNotEmpty(user.getIdentity()))
-                .forEach(user -> {
-                    allUsersByHospitality.stream()
-                            .filter(selectUser -> !StringUtils.isNullOrEmpty(selectUser) && StringUtils.isNotEmpty(selectUser.getIdentity())
-                                    && user.getIdentity().equals(selectUser.getIdentity()))
-                            .forEach(selectUser -> {
-                                selectUser.setLeaderId(user.getLeaderId());
-                                selectUser.setLeaderName(user.getLeaderName());
-                                divideUserInfo.add(selectUser);
-                            });
-                });
+        //获取查询结果id
+         userIds.addAll(userList.stream()
+                .filter(user -> !StringUtils.isNullOrEmpty(user) && StringUtils.isNotEmpty(user.getId()))
+                .map(SysUser::getId)
+                .collect(Collectors.toList()));
+
+        divideUserInfo = allUsersByHospitality.stream()
+                .filter(allUser -> !StringUtils.isNullOrEmpty(allUser) && StringUtils.isNotEmpty(allUser.getLeaderId())
+                        && userIds.contains(allUser.getLeaderId()))
+                .collect(Collectors.toList());
+
         return divideUserInfo;
     }
 

+ 18 - 0
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -2044,4 +2044,22 @@
             limit 1
     </select>
 
+    <select id="selectLeaderBylanderInfo" resultType="com.ydtech.modules.admin.model.SysUser">
+        SELECT *
+        FROM sys_user AS su
+        LEFT JOIN sys_dept sd ON su.id = sd.id
+        <where>
+            <if test="deptId != null and deptId != ''">
+                AND su.dept_id = #{deptId}
+            </if>
+            <if test="leaderId != null and leaderId != ''">
+                AND su.leader_id = #{leaderId}
+            </if>
+            <if test="userId != null and userId != ''">
+                AND su.id = #{userId}
+            </if>
+            AND sd.management_source IS NULL
+            AND su.id NOT LIKE '%M%'
+        </where>
+    </select>
 </mapper>

+ 5 - 3
src/main/resources/mapper/modules/admin/TaskStatisticsMapper.xml

@@ -345,9 +345,11 @@
                       and su.id=#{vo.userId}
                   </if>
 
-                  <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
-                      AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{vo.createtimeStart}, '%Y-%m-%d') AND
-                      DATE_FORMAT( #{vo.createtimeEnd}, '%Y-%m-%d')
+                  <if test="vo.signingTimeStart != null and vo.signingTimeStart!='' and vo.signingTimeEnd != null and vo.signingTimeEnd != ''">
+                      AND DATE_FORMAT(iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.signingTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.signingTimeEnd}, '%Y-%m-%d')
+                  </if>
+                  <if test="vo.enterTimeStart != null and vo.enterTimeStart!='' and vo.enterTimeEnd != null and vo.enterTimeEnd != ''">
+                      AND DATE_FORMAT(iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.enterTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.enterTimeEnd}, '%Y-%m-%d')
                   </if>
 
                   <if test="vo.managementSource !=null  and vo.managementSource!=''">