zouyu
2025-03-11 c453de19f357c6998572fcca96d74ff5d9b32531
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package com.ruoyi.system.service.impl;
 
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.entity.Custom;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.core.dto.PersonDto;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.mapper.UserMapper;
import com.ruoyi.system.service.CustomService;
import com.ruoyi.system.service.UserService;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.DigestUtils;
 
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
 
/**
 * 用户信息表
 *
 * @author zhuo
 * @since 2025-02-13
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
 
    @Autowired
    private CustomService customService;
 
    /**
     * 根据条件获取用户列表
     * @param user
     * @param type
     * @return
     */
    @Override
    public List<User> selectUserCondition(User user, String type) {
        return baseMapper.selectUserCondition(QueryWrappers.queryWrappers(user), type);
    }
 
    /**
     * 获取当前登录的客户信息
     * @return
     */
    @Override
    public User getUserNow() {
        return baseMapper.getUserNow(SecurityUtils.getUserId().intValue());
    }
 
    /**
     * 获取当前登录用户部门
     * @return
     */
    @Override
    public String selectUserDepartmentLimsName() {
        return baseMapper.selectUserDepartmentLimsName(SecurityUtils.getUserId().intValue());
    }
 
    @Override
    public int upUserDepardLimsId(String ids, String id) {
        List<Integer> userIds = JSON.parseArray(ids, Integer.class);
        return baseMapper.update(null, Wrappers.<User>lambdaUpdate().in(User::getId, userIds).set(User::getDepartLimsId, id).set(User::getUpdateTime, LocalDateTime.now()).set(User::getUpdateBy,SecurityUtils.getLoginUser().getUsername()));
    }
 
    @Override
    public int delUserDepardLimsId(Integer id) {
        return baseMapper.update(null, Wrappers.<User>lambdaUpdate().eq(User::getId, id).set(User::getDepartLimsId, null).set(User::getUpdateTime, LocalDateTime.now()).set(User::getUpdateBy, SecurityUtils.getUsername()));
    }
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int addPersonUser(PersonDto personDto) {
        personDto.getPerson().forEach(person -> {
            User user = baseMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getAccount, person.getEmployeeID()));
            String companyName = personDto.getCompany().stream().filter(a -> a.getCompanyId().equals(person.getCompanyId())).findFirst().get().getCompanyName();
            Custom custom = customService.getCustomId(companyName);
            if (BeanUtil.isEmpty(user)) {
                user = new User();
                user.setName(person.getName());
                user.setNameEn("not write");
                user.setAccount(person.getEmployeeID());
                user.setPhone(person.getPhoneNumber());
                user.setEmail(person.getCompanyEmail());
                user.setIsCustom(person.getCompanyId().equals("SC2463") ? 0 : 1);
//                user.setPassword(DigestUtils.md5DigestAsHex(headerToken.getPassword(person.getEmployeeID()).getBytes()));
                user.setPassword(SecurityUtils.encryptPassword("zttZTT123!"));
                user.setCompany(BeanUtil.isNotEmpty(custom) ? (custom.getId() + "") : companyName);
//                user.setAddress("未填写");
//                user.setRoleId(personDto.getRoleId() > 10000 ? 0 : personDto.getRoleId());
                user.setCompanyId(person.getCompanyId());
                baseMapper.insert(user);
            } else {
                user.setName(person.getName());
                user.setPhone(person.getPhoneNumber());
                user.setEmail(person.getCompanyEmail());
                user.setIsCustom(0);
                user.setCompany(BeanUtil.isNotEmpty(custom) ? (custom.getId() + "") : companyName);
//                user.setCreateUser(null);
//                user.setCreateTime(null);
//                user.setUpdateUser(null);
//                user.setUpdateTime(null);
                user.setCompanyId(person.getCompanyId());
                baseMapper.updateById(user);
            }
        });
        return 1;
    }
 
    @Override
    public Map<String, List<Map<String, Object>>> getLaboratoryPersonList() {
        //查询通信和电力下的人员信息
        //查询当前登录人员的架构
        //判断全部,个人,组织的权限
        User user = baseMapper.selectById(SecurityUtils.getUserId());//当前登录的人
        //获取当前人所属实验室id
        String laboratory = "";
        String departLimsId = user.getDepartLimsId();
        if (ObjectUtils.isNotEmpty(departLimsId)) {
            String[] split = departLimsId.split(",");
            //查询对应架构名称(通信实验室,电力实验室,检测办)
            String departLims = baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1]));
            if (departLims.contains("实验室")) {
                laboratory = departLims;
            }
        }
        return baseMapper.getLaboratoryPersonList(laboratory).stream().collect(Collectors.groupingBy(m->m.get("depName").toString()));
    }
}