无关风月
20 小时以前 25b19e60e004290531f61fdf608d1adb5e531903
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.basic.PageInfo;
@@ -7,18 +8,20 @@
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanValidators;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.applet.query.DataReportQuery;
import com.ruoyi.system.applet.vo.TaskFinishListVO;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.domain.SysUserPost;
import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.mapper.SysPostMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.SysUserPostMapper;
import com.ruoyi.system.mapper.SysUserRoleMapper;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.model.TDept;
import com.ruoyi.system.model.TLeave;
import com.ruoyi.system.model.TProjectDept;
import com.ruoyi.system.query.SysUserQuery;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserService;
@@ -31,6 +34,8 @@
import org.springframework.util.CollectionUtils;
import javax.validation.Validator;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -645,14 +650,67 @@
        return userMapper.selectAllList();
    }
    @Autowired
    private TProjectDeptMapper projectDeptMapper;
    @Autowired
    private TDeptMapper deptMapper;
    @Autowired
    private SysUserRoleMapper sysUserRoleMapper;
    @Autowired
    private  TLeaveMapper leaveMapper;
    @Override
    public PageInfo<SysUserVO> pageList(SysUserQuery query) {
        PageInfo<SysUserVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<SysUserVO> list = userMapper.pageList(query,pageInfo);
        if(CollectionUtils.isEmpty(list)){
            return pageInfo;
        }
        List<Long> userIds = list.stream().map(SysUserVO::getUserId).collect(Collectors.toList());
        for (SysUserVO sysUserVO : list) {
            TLeave tLeave = leaveMapper.selectOne(new LambdaQueryWrapper<TLeave>()
                    .eq(TLeave::getLeavePerson, sysUserVO.getUserId())
                    .eq(TLeave::getAuditStatus, 2)
                    .ge(TLeave::getStartTime, DateUtils.getNowDate())
                    .le(TLeave::getEndTime, DateUtils.getNowDate())
                    .last("limit 1"));
            if (tLeave!=null){
                sysUserVO.setLeaveName("请假中");
                LocalDateTime startTime = tLeave.getStartTime();
                LocalDateTime endTime = tLeave.getEndTime();
                // 转化为yyyy-MM-dd字符串格式
                sysUserVO.setLeaveTime(startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))+"至"+endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
            }else{
                sysUserVO.setLeaveName("正常");
            }
            // todo 查询请假状态
            SysUserRole temp = sysUserRoleMapper.selectUserRole(sysUserVO.getUserId());
            if (temp!=null){
                SysRole sysRole = roleMapper.selectRoleById(temp.getRoleId());
                if (sysRole!=null){
                     sysUserVO.setRoleName(sysRole.getRoleName());
                }
            }
            Integer deptType = sysUserVO.getDeptType();
                if (1==deptType){
                        TProjectDept tProjectDept = projectDeptMapper.selectById(sysUserVO.getDeptId());
                        if (!tProjectDept.getParentId().equals("0")){
                            TProjectDept tProjectDept1 = projectDeptMapper.selectById(tProjectDept.getParentId());
                            sysUserVO.setDeptName(tProjectDept1.getProjectName()+">"+tProjectDept.getProjectName());
                        }else{
                            sysUserVO.setDeptName(tProjectDept.getProjectName());
                        }
                }else{
                    if (sysUserVO.getUserId()==1){
                        sysUserVO.setDeptName("公司");
                    }else{
                        TDept tDept = deptMapper.selectById(sysUserVO.getDeptId());
                        sysUserVO.setDeptName(tDept.getDeptName());
                    }
                }
            }
        pageInfo.setRecords(list);
        return pageInfo;
    }
@@ -668,6 +726,44 @@
    }
    @Override
    public List<SysUser> selectUserByTempLateId(String templateId) {
        return userMapper.selectUserByTempLateId(templateId);
    }
    @Override
    public List<SysUser> selectListByDeptId(String deptId) {
        return userMapper.selectListByDeptId(deptId);
    }
    @Override
    public List<SysUser> selectListByDeptType(Integer deptType) {
        return userMapper.selectListByDeptType(deptType);
    }
    @Override
    public List<SysUser> selectListByDeptIds(List<String> projectIds) {
        return userMapper.selectListByDeptIds(projectIds);
    }
    @Override
    public List<SysUser> selectUserByDeptId(List<String> ids) {
        return userMapper.selectUserByDeptId(ids);
    }
    @Override
    public PageInfo<TaskFinishListVO> pageListReport(DataReportQuery query) {
        PageInfo<TaskFinishListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<TaskFinishListVO> list = userMapper.pageListReport(query,pageInfo);
        pageInfo.setRecords(list);
        return pageInfo;
    }
    @Override
    public Integer selectUserCount(List<String> projectId, Integer deptType) {
        return userMapper.selectUserCount(projectId,deptType);
    }
    @Override
    public SysUser selectByPhone(String phonenumber) {
        return userMapper.selectByPhone(phonenumber);
    }