1.部门列表接口

2.人员信息接口
3.登录账号人员信息接口
4.个人信息接口
5.修改密码接口
6.值守人员列表接口
7.人员详情接口
dev
862857010@qq.com 3 years ago
parent c44e82abf2
commit 2bde741fc7
  1. 65
      cjy-mini-project/src/main/java/com/cjy/app/controller/AddressBookController.java
  2. 92
      cjy-mini-project/src/main/java/com/cjy/app/controller/MineController.java
  3. 51
      cjy-mini-project/src/main/java/com/cjy/app/controller/WatchmanController.java
  4. 8
      cjy-project/src/main/java/com/cjy/emergencycommand/mapper/GroupingUserInfoMapper.java
  5. 8
      cjy-project/src/main/java/com/cjy/emergencycommand/service/GroupingUserInfoService.java
  6. 11
      cjy-project/src/main/java/com/cjy/emergencycommand/service/impl/GroupingUserInfoServiceImpl.java
  7. 29
      cjy-project/src/main/resources/mapper/emergencycommand/GroupingUserInfoMapper.xml
  8. 3
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
  9. 20
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
  10. 39
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
  11. 25
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
  12. 8
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
  13. 584
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
  14. 5
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
  15. 30
      ruoyi-system/src/main/java/com/ruoyi/system/vo/SysDeptVO.java
  16. 83
      ruoyi-system/src/main/java/com/ruoyi/system/vo/UserVO.java
  17. 21
      ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
  18. 49
      ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

@ -0,0 +1,65 @@
package com.cjy.app.controller;
import com.cjy.common.groups.DefaultGroup;
import com.cjy.patrol.dto.PatrolTaskByDateDTO;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.vo.SysDeptVO;
import com.ruoyi.system.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author liangjiawei
* @createDate 2023/4/14
*/
@RestController
@RequestMapping("/addressBook")
public class AddressBookController extends BaseController {
@Autowired
private ISysDeptService deptService;
/**
* 通过用户的企业标识码 获取到部门信息
* @param dept
* @return
*/
@GetMapping("/selectListCompanyDepartment")
public AjaxResult selectListCompanyDepartment(SysDept dept) {
dept.setOrganCode(getUserOrganCode());
List<SysDeptVO> depts = deptService.selectListCompanyDepartment(dept);
return success(depts);
}
/**
* 通过名称搜索用户信息
* @param username
* @return
*/
@GetMapping("/selectListCompanyDepartmentByUserName")
public AjaxResult selectListCompanyDepartmentByUserName(@RequestParam("username") String username) {
List<UserVO> userInfoList = deptService.selectListCompanyDepartmentByUserName(username, getUserOrganCode());
return success(userInfoList);
}
/**
* 通过用户id获取用户详情信息
* @param userId
* @return
*/
@GetMapping("/getUserDetailsByid")
public AjaxResult getUserDetailsByid(@RequestParam("userId") String userId) {
UserVO userVO = deptService.getUserDetailsByid(userId);
return success(userVO);
}
}

@ -0,0 +1,92 @@
package com.cjy.app.controller;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.MimeTypeUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
/**
* @author liangjiawei
* @createDate 2023/4/14
*/
@RestController
@RequestMapping("/mine")
public class MineController extends BaseController {
@Autowired
private ISysDeptService deptService;
@Autowired
private ISysUserService iSysUserService;
@Autowired
private TokenService tokenService;
/**
* 获取登录人的个人信息
*
* @return
*/
@GetMapping("/getLoginUserInfo")
public AjaxResult getLoginUserInfo() {
UserVO userVO = deptService.getUserDetailsByid(getUserId().toString());
return success(userVO);
}
/**
* 修改头像接口
*
* @param file
* @return
* @throws Exception
*/
@PostMapping("/updateAvatar")
@Log(title = "App修改头像", businessType = BusinessType.UPDATE)
public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws Exception {
if (!file.isEmpty()) {
LoginUser loginUser = getLoginUser();
String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION);
if (iSysUserService.updateUserAvatarByUserId(getUserId(), avatar)) {
AjaxResult ajax = AjaxResult.success();
ajax.put("imgUrl", avatar);
// 更新缓存用户头像
loginUser.getUser().setAvatar(avatar);
tokenService.setLoginUser(loginUser);
return ajax;
}
}
return error("上传图片异常,请联系管理员");
}
@PutMapping("/appUpdatePwd")
@Log(title = "App修改密码", businessType = BusinessType.UPDATE)
public AjaxResult appUpdatePwd(String oldPassword, String newPassword) {
LoginUser loginUser = getLoginUser();
String userName = loginUser.getUsername();
String password = loginUser.getPassword();
if (!SecurityUtils.matchesPassword(oldPassword, password)) {
return error("修改密码失败,旧密码错误");
}
if (SecurityUtils.matchesPassword(newPassword, password)) {
return error("新密码不能与旧密码相同");
}
if (iSysUserService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0) {
// 更新缓存用户密码
loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword));
tokenService.setLoginUser(loginUser);
return success();
}
return error("修改密码异常,请联系管理员");
}
}

@ -0,0 +1,51 @@
package com.cjy.app.controller;
import com.cjy.emergencycommand.domain.GroupingConfig;
import com.cjy.emergencycommand.domain.dto.GroupUserDTO;
import com.cjy.emergencycommand.domain.vo.GroupingUserInfoVO;
import com.cjy.emergencycommand.service.GroupingConfigService;
import com.cjy.emergencycommand.service.GroupingUserInfoService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author liangjiawei
* @createDate 2023/4/14
*/
@RestController
@RequestMapping("/watchman")
public class WatchmanController extends BaseController {
@Autowired
private GroupingConfigService GroupingConfigService;
@Autowired
private com.cjy.emergencycommand.service.GroupingUserInfoService GroupingUserInfoService;
/**
* 获取值守分组
*/
@GetMapping("/listWatchmanGroup")
public AjaxResult listWatchmanGroup() {
GroupingConfig emergencyCommandGroupingConfig = new GroupingConfig();
emergencyCommandGroupingConfig.setOrganCode(getUserOrganCode());
return AjaxResult.success(GroupingConfigService.selectGroupingConfigList(emergencyCommandGroupingConfig));
}
/**
* 查询应急管理值守人员列表
*/
@GetMapping("/listWatchmanByGroupId")
public TableDataInfo listWatchmanByGroupId(GroupUserDTO groupUserDTO) {
startPage();
List<UserVO> list = GroupingUserInfoService.listWatchmanByGroupId(groupUserDTO);
return getDataTable(list);
}
}

@ -3,6 +3,7 @@ package com.cjy.emergencycommand.mapper;
import com.cjy.emergencycommand.domain.GroupingUserInfo;
import com.cjy.emergencycommand.domain.dto.GroupUserDTO;
import com.cjy.emergencycommand.domain.vo.GroupingUserInfoVO;
import com.ruoyi.system.vo.UserVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
@ -73,6 +74,13 @@ public interface GroupingUserInfoMapper {
*/
public List<GroupingUserInfoVO> selectGroupingUserInfoListByUserInfo(GroupUserDTO groupUserDTO);
/**
* 小程序获取值守人员信息
* @param groupUserDTO
* @return
*/
public List<UserVO> listWatchmanByGroupId(GroupUserDTO groupUserDTO);
/**
* 根据部门 姓名查询应急管理值守人员列表
*

@ -3,6 +3,7 @@ package com.cjy.emergencycommand.service;
import com.cjy.emergencycommand.domain.GroupingUserInfo;
import com.cjy.emergencycommand.domain.dto.GroupUserDTO;
import com.cjy.emergencycommand.domain.vo.GroupingUserInfoVO;
import com.ruoyi.system.vo.UserVO;
import java.util.List;
@ -69,6 +70,13 @@ public interface GroupingUserInfoService {
*/
public List<GroupingUserInfoVO> selectGroupingUserInfoListByUserInfo(GroupUserDTO groupUserDTO);
/**
* 小程序获取值守人员信息
* @param groupUserDTO
* @return
*/
public List<UserVO> listWatchmanByGroupId(GroupUserDTO groupUserDTO);
/**
* 根据姓名 手机号查询应急管理值守人员列表
*

@ -8,6 +8,7 @@ import com.cjy.emergencycommand.mapper.GroupingUserInfoMapper;
import com.cjy.emergencycommand.service.GroupingUserInfoService;
import com.cjy.emergencycommand.service.IAlarmUserSchedulingInfoService;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@ -103,6 +104,16 @@ public class GroupingUserInfoServiceImpl implements GroupingUserInfoService {
return groupingUserInfoMapper.selectGroupingUserInfoListByUserInfo(groupUserDTO);
}
/**
* 小程序获取值守人员信息
* @param groupUserDTO
* @return
*/
@Override
public List<UserVO> listWatchmanByGroupId(GroupUserDTO groupUserDTO) {
return groupingUserInfoMapper.listWatchmanByGroupId(groupUserDTO);
}
@Override
public List<GroupingUserInfoVO> getUndistributedGroupingUsers(GroupUserDTO groupUserDTO) {
Long groupId = groupUserDTO.getGroupingId();

@ -152,6 +152,35 @@
LEFT JOIN sys_dept t4 ON t3.dept_id = t4.dept_id
WHERE t1.organ_code = #{organCode} and t1.del_flag !=2
</select>
<select id="listWatchmanByGroupId" resultType="com.ruoyi.system.vo.UserVO">
SELECT
t1.user_id AS userId,
t3.dept_name AS deptName,
t2.nick_name AS name,
t2.phonenumber AS phone,
t2.avatar as imageUrl,
t5.organ_name as company,
CASE
WHEN t2.sex=0 THEN '男'
WHEN t2.sex=1 THEN '女'
ELSE '未知'
END
as sex
FROM
ec_grouping_user_info t1
LEFT JOIN sys_user t2 ON t1.user_id = t2.user_id
LEFT JOIN sys_dept t3 ON t2.dept_id = t3.dept_id
LEFT JOIN ec_grouping_config t4 ON t1.grouping_id = t4.id
AND t2.organ_code = t4.organ_code
LEFT JOIN ti_enterprise_info t5 ON t1.organ_code = t5.organ_code
WHERE
t1.del_flag != 2
AND t2.del_flag != 2
AND t4.del_flag !=2
<if test="groupingId != null ">and t1.grouping_id = #{groupingId}</if>
<if test="organCode != null ">and t2.organ_code = #{organCode}</if>
</select>
<insert id="insertGroupingUserList" parameterType="GroupingUserInfo" useGeneratedKeys="true" keyProperty="id">
insert into ec_grouping_user_info

@ -6,6 +6,8 @@ import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonInclude;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.domain.BaseEntity;
@ -15,6 +17,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
*
* @author ruoyi
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class SysDept extends BaseEntity
{
private static final long serialVersionUID = 1L;

@ -1,6 +1,9 @@
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.vo.SysDeptVO;
import com.ruoyi.system.vo.UserVO;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.common.core.domain.entity.SysDept;
import org.springframework.security.access.method.P;
@ -144,4 +147,21 @@ public interface SysDeptMapper
* @return
*/
public List<SysDept> selectDeptListByOrganCodeOrDeptId(@Param("organCode") Long organCode,@Param("deptId") Long deptId);
/**
* 获取第1级的 部门信息
* @param dept
* @return
*/
List<SysDeptVO> selectListCompanyDepartment(SysDept dept);
/**
* 获取部门下的子部门
* @param deptId
* @return
*/
List<Long> selectDeptByparentId(Long deptId);
}

@ -1,6 +1,8 @@
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.vo.UserVO;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.common.core.domain.entity.SysUser;
@ -83,6 +85,14 @@ public interface SysUserMapper
*/
public int updateUserAvatar(@Param("userName") String userName, @Param("avatar") String avatar);
/**
* 通过用户id修改 用户头像
* @param userId
* @param avatar
* @return
*/
public int updateUserAvatarByUserId(@Param("userId") Long userId, @Param("avatar") String avatar);
/**
* 重置用户密码
*
@ -152,4 +162,33 @@ public interface SysUserMapper
* @return
*/
public List<SysUser> selectUserListByDeptId(Long deptId);
/**
* 获取子部门下的用户数控
* @param deptIds
* @return
*/
Integer selectUserCount(@Param("deptIds") List<Long> deptIds);
/**
* 获取部门下的用户信息
* @param deptId
* @return
*/
List<UserVO>getUserInfoByDept(Long deptId);
/**
* 通过姓名获取用户信息
* @param username
* @param organCode
* @return
*/
List<UserVO> getUserInfoByName(@Param("username") String username ,@Param("organCode")Long organCode);
/**
* 通过用户id获取用户详情
* @param userId
* @return
*/
UserVO getUserDetailsByid(String userId);
}

@ -3,6 +3,8 @@ package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.system.vo.SysDeptVO;
import com.ruoyi.system.vo.UserVO;
/**
* 部门管理 服务层
@ -19,6 +21,7 @@ public interface ISysDeptService
*/
public List<SysDept> selectDeptList(SysDept dept);
/**
* 查询部门树结构信息
*
@ -121,4 +124,26 @@ public interface ISysDeptService
* @return 结果
*/
public int deleteDeptById(Long deptId);
/**
* 通过用户的企业标识码 获取到部门信息
* @param dept
* @return
*/
public List<SysDeptVO> selectListCompanyDepartment(SysDept dept);
/**
* 通过名称搜索用户信息
* @param username
* @param organCode
* @return
*/
public List<UserVO> selectListCompanyDepartmentByUserName(String username , Long organCode);
/**
* 通过用户id获取用户详情信息
* @param userId
* @return
*/
UserVO getUserDetailsByid(String userId);
}

@ -1,6 +1,7 @@
package com.ruoyi.system.service;
import com.ruoyi.common.core.domain.entity.SysUser;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -169,6 +170,13 @@ public interface ISysUserService
*/
public boolean updateUserAvatar(String userName, String avatar);
/**
* 根据用户id需改用户头像
* @param userId
* @param avatar
* @return
*/
public boolean updateUserAvatarByUserId(@Param("userId") Long userId, @Param("avatar") String avatar);
/**
* 重置用户密码
*

@ -4,6 +4,10 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.vo.SysDeptVO;
import com.ruoyi.system.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.annotation.DataScope;
@ -23,316 +27,328 @@ import com.ruoyi.system.service.ISysDeptService;
/**
* 部门管理 服务实现
*
*
* @author ruoyi
*/
@Service
public class SysDeptServiceImpl implements ISysDeptService
{
@Autowired
private SysDeptMapper deptMapper;
public class SysDeptServiceImpl implements ISysDeptService {
@Autowired
private SysDeptMapper deptMapper;
@Autowired
private SysRoleMapper roleMapper;
@Autowired
private SysRoleMapper roleMapper;
/**
* 查询部门管理数据
*
* @param dept 部门信息
* @return 部门信息集合
*/
@Override
@DataScope(deptAlias = "d")
public List<SysDept> selectDeptList(SysDept dept)
{
return deptMapper.selectDeptList(dept);
}
@Autowired
private SysUserMapper sysUserMapper;
/**
* 查询部门树结构信息
*
* @param dept 部门信息
* @return 部门树信息集合
*/
@Override
public List<TreeSelect> selectDeptTreeList(SysDept dept)
{
List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
return buildDeptTreeSelect(depts);
}
/**
* 查询部门管理数据
*
* @param dept 部门信息
* @return 部门信息集合
*/
@Override
@DataScope(deptAlias = "d")
public List<SysDept> selectDeptList(SysDept dept) {
return deptMapper.selectDeptList(dept);
}
/**
* 构建前端所需要树结构
*
* @param depts 部门列表
* @return 树结构列表
*/
@Override
public List<SysDept> buildDeptTree(List<SysDept> depts)
{
List<SysDept> returnList = new ArrayList<SysDept>();
List<Long> tempList = depts.stream().map(SysDept::getDeptId).collect(Collectors.toList());
for (SysDept dept : depts)
{
// 如果是顶级节点, 遍历该父节点的所有子节点
if (!tempList.contains(dept.getParentId()))
{
recursionFn(depts, dept);
returnList.add(dept);
}
}
if (returnList.isEmpty())
{
returnList = depts;
}
return returnList;
}
/**
* 查询部门树结构信息
*
* @param dept 部门信息
* @return 部门树信息集合
*/
@Override
public List<TreeSelect> selectDeptTreeList(SysDept dept) {
List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
return buildDeptTreeSelect(depts);
}
/**
* 构建前端所需要下拉树结构
*
* @param depts 部门列表
* @return 下拉树结构列表
*/
@Override
public List<TreeSelect> buildDeptTreeSelect(List<SysDept> depts)
{
List<SysDept> deptTrees = buildDeptTree(depts);
return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
}
/**
* 构建前端所需要树结构
*
* @param depts 部门列表
* @return 树结构列表
*/
@Override
public List<SysDept> buildDeptTree(List<SysDept> depts) {
List<SysDept> returnList = new ArrayList<SysDept>();
List<Long> tempList = depts.stream().map(SysDept::getDeptId).collect(Collectors.toList());
for (SysDept dept : depts) {
// 如果是顶级节点, 遍历该父节点的所有子节点
if (!tempList.contains(dept.getParentId())) {
recursionFn(depts, dept);
returnList.add(dept);
}
}
if (returnList.isEmpty()) {
returnList = depts;
}
return returnList;
}
/**
* 根据角色ID查询部门树信息
*
* @param roleId 角色ID
* @return 选中部门列表
*/
@Override
public List<Long> selectDeptListByRoleId(Long roleId)
{
SysRole role = roleMapper.selectRoleById(roleId);
return deptMapper.selectDeptListByRoleId(roleId, role.isDeptCheckStrictly());
}
/**
* 构建前端所需要下拉树结构
*
* @param depts 部门列表
* @return 下拉树结构列表
*/
@Override
public List<TreeSelect> buildDeptTreeSelect(List<SysDept> depts) {
List<SysDept> deptTrees = buildDeptTree(depts);
return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
}
/**
* 根据部门ID查询信息
*
* @param deptId 部门ID
* @return 部门信息
*/
@Override
public SysDept selectDeptById(Long deptId)
{
return deptMapper.selectDeptById(deptId);
}
/**
* 根据角色ID查询部门树信息
*
* @param roleId 角色ID
* @return 选中部门列表
*/
@Override
public List<Long> selectDeptListByRoleId(Long roleId) {
SysRole role = roleMapper.selectRoleById(roleId);
return deptMapper.selectDeptListByRoleId(roleId, role.isDeptCheckStrictly());
}
/**
* 根据ID查询所有子部门正常状态
*
* @param deptId 部门ID
* @return 子部门数
*/
@Override
public int selectNormalChildrenDeptById(Long deptId)
{
return deptMapper.selectNormalChildrenDeptById(deptId);
}
/**
* 根据部门ID查询信息
*
* @param deptId 部门ID
* @return 部门信息
*/
@Override
public SysDept selectDeptById(Long deptId) {
return deptMapper.selectDeptById(deptId);
}
/**
* 是否存在子节点
*
* @param deptId 部门ID
* @return 结果
*/
@Override
public boolean hasChildByDeptId(Long deptId)
{
int result = deptMapper.hasChildByDeptId(deptId);
return result > 0;
}
/**
* 根据ID查询所有子部门正常状态
*
* @param deptId 部门ID
* @return 子部门数
*/
@Override
public int selectNormalChildrenDeptById(Long deptId) {
return deptMapper.selectNormalChildrenDeptById(deptId);
}
/**
* 查询部门是否存在用户
*
* @param deptId 部门ID
* @return 结果 true 存在 false 不存在
*/
@Override
public boolean checkDeptExistUser(Long deptId)
{
int result = deptMapper.checkDeptExistUser(deptId);
return result > 0;
}
/**
* 是否存在子节点
*
* @param deptId 部门ID
* @return 结果
*/
@Override
public boolean hasChildByDeptId(Long deptId) {
int result = deptMapper.hasChildByDeptId(deptId);
return result > 0;
}
/**
* 校验部门名称是否唯一
*
* @param dept 部门信息
* @return 结果
*/
@Override
public String checkDeptNameUnique(SysDept dept)
{
Long deptId = StringUtils.isNull(dept.getDeptId()) ? -1L : dept.getDeptId();
SysDept info = deptMapper.checkDeptNameUnique(dept.getDeptName(), dept.getParentId());
if (StringUtils.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue())
{
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
}
/**
* 查询部门是否存在用户
*
* @param deptId 部门ID
* @return 结果 true 存在 false 不存在
*/
@Override
public boolean checkDeptExistUser(Long deptId) {
int result = deptMapper.checkDeptExistUser(deptId);
return result > 0;
}
/**
* 校验部门是否有数据权限
*
* @param deptId 部门id
*/
@Override
public void checkDeptDataScope(Long deptId)
{
if (!SysUser.isAdmin(SecurityUtils.getUserId()))
{
SysDept dept = new SysDept();
dept.setDeptId(deptId);
List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
if (StringUtils.isEmpty(depts))
{
throw new ServiceException("没有权限访问部门数据!");
}
}
}
/**
* 校验部门名称是否唯一
*
* @param dept 部门信息
* @return 结果
*/
@Override
public String checkDeptNameUnique(SysDept dept) {
Long deptId = StringUtils.isNull(dept.getDeptId()) ? -1L : dept.getDeptId();
SysDept info = deptMapper.checkDeptNameUnique(dept.getDeptName(), dept.getParentId());
if (StringUtils.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue()) {
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
}
/**
* 新增保存部门信息
*
* @param dept 部门信息
* @return 结果
*/
@Override
public int insertDept(SysDept dept)
{
SysDept info = deptMapper.selectDeptById(dept.getParentId());
// 如果父节点不为正常状态,则不允许新增子节点
if (!UserConstants.DEPT_NORMAL.equals(info.getStatus()))
{
throw new ServiceException("部门停用,不允许新增");
}
dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
return deptMapper.insertDept(dept);
}
/**
* 校验部门是否有数据权限
*
* @param deptId 部门id
*/
@Override
public void checkDeptDataScope(Long deptId) {
if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
SysDept dept = new SysDept();
dept.setDeptId(deptId);
List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
if (StringUtils.isEmpty(depts)) {
throw new ServiceException("没有权限访问部门数据!");
}
}
}
/**
* 修改保存部门信息
*
* @param dept 部门信息
* @return 结果
*/
@Override
public int updateDept(SysDept dept)
{
SysDept newParentDept = deptMapper.selectDeptById(dept.getParentId());
SysDept oldDept = deptMapper.selectDeptById(dept.getDeptId());
if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept))
{
String newAncestors = newParentDept.getAncestors() + "," + newParentDept.getDeptId();
String oldAncestors = oldDept.getAncestors();
dept.setAncestors(newAncestors);
updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors);
}
int result = deptMapper.updateDept(dept);
if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors())
&& !StringUtils.equals("0", dept.getAncestors()))
{
// 如果该部门是启用状态,则启用该部门的所有上级部门
updateParentDeptStatusNormal(dept);
}
return result;
}
/**
* 新增保存部门信息
*
* @param dept 部门信息
* @return 结果
*/
@Override
public int insertDept(SysDept dept) {
SysDept info = deptMapper.selectDeptById(dept.getParentId());
// 如果父节点不为正常状态,则不允许新增子节点
if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) {
throw new ServiceException("部门停用,不允许新增");
}
dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
return deptMapper.insertDept(dept);
}
/**
* 修改该部门的父级部门状态
*
* @param dept 当前部门
*/
private void updateParentDeptStatusNormal(SysDept dept)
{
String ancestors = dept.getAncestors();
Long[] deptIds = Convert.toLongArray(ancestors);
deptMapper.updateDeptStatusNormal(deptIds);
}
/**
* 修改保存部门信息
*
* @param dept 部门信息
* @return 结果
*/
@Override
public int updateDept(SysDept dept) {
SysDept newParentDept = deptMapper.selectDeptById(dept.getParentId());
SysDept oldDept = deptMapper.selectDeptById(dept.getDeptId());
if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept)) {
String newAncestors = newParentDept.getAncestors() + "," + newParentDept.getDeptId();
String oldAncestors = oldDept.getAncestors();
dept.setAncestors(newAncestors);
updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors);
}
int result = deptMapper.updateDept(dept);
if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors())
&& !StringUtils.equals("0", dept.getAncestors())) {
// 如果该部门是启用状态,则启用该部门的所有上级部门
updateParentDeptStatusNormal(dept);
}
return result;
}
/**
* 修改子元素关系
*
* @param deptId 被修改的部门ID
* @param newAncestors 新的父ID集合
* @param oldAncestors 旧的父ID集合
*/
public void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors)
{
List<SysDept> children = deptMapper.selectChildrenDeptById(deptId);
for (SysDept child : children)
{
child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors));
}
if (children.size() > 0)
{
deptMapper.updateDeptChildren(children);
}
}
/**
* 修改该部门的父级部门状态
*
* @param dept 当前部门
*/
private void updateParentDeptStatusNormal(SysDept dept) {
String ancestors = dept.getAncestors();
Long[] deptIds = Convert.toLongArray(ancestors);
deptMapper.updateDeptStatusNormal(deptIds);
}
/**
* 删除部门管理信息
*
* @param deptId 部门ID
* @return 结果
*/
@Override
public int deleteDeptById(Long deptId)
{
return deptMapper.deleteDeptById(deptId);
}
/**
* 修改子元素关系
*
* @param deptId 被修改的部门ID
* @param newAncestors 新的父ID集合
* @param oldAncestors 旧的父ID集合
*/
public void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) {
List<SysDept> children = deptMapper.selectChildrenDeptById(deptId);
for (SysDept child : children) {
child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors));
}
if (children.size() > 0) {
deptMapper.updateDeptChildren(children);
}
}
/**
* 递归列表
*/
private void recursionFn(List<SysDept> list, SysDept t)
{
// 得到子节点列表
List<SysDept> childList = getChildList(list, t);
t.setChildren(childList);
for (SysDept tChild : childList)
{
if (hasChild(list, tChild))
{
recursionFn(list, tChild);
}
}
}
/**
* 删除部门管理信息
*
* @param deptId 部门ID
* @return 结果
*/
@Override
public int deleteDeptById(Long deptId) {
return deptMapper.deleteDeptById(deptId);
}
/**
* 递归列表
*/
private void recursionFn(List<SysDept> list, SysDept t) {
// 得到子节点列表
List<SysDept> childList = getChildList(list, t);
t.setChildren(childList);
for (SysDept tChild : childList) {
if (hasChild(list, tChild)) {
recursionFn(list, tChild);
}
}
}
/**
* 得到子节点列表
*/
private List<SysDept> getChildList(List<SysDept> list, SysDept t) {
List<SysDept> tlist = new ArrayList<SysDept>();
Iterator<SysDept> it = list.iterator();
while (it.hasNext()) {
SysDept n = (SysDept) it.next();
if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue()) {
tlist.add(n);
}
}
return tlist;
}
/**
* 判断是否有子节点
*/
private boolean hasChild(List<SysDept> list, SysDept t) {
return getChildList(list, t).size() > 0;
}
@Override
public List<SysDeptVO> selectListCompanyDepartment(SysDept dept) {
//获取第1级的 部门信息
List<SysDeptVO> list = deptMapper.selectListCompanyDepartment(dept);
list.stream().forEach(item -> {
//获取部门下的子部门
List<Long> deptIdList = deptMapper.selectDeptByparentId(item.getDeptId());
//获取用户数量
int userCount = 0;
if (!deptIdList.isEmpty()) {
//获取子部门下的用户数控
userCount = sysUserMapper.selectUserCount(deptIdList);
}
item.setUserCount(userCount);
//获取部门下的用户信息
item.setList(sysUserMapper.getUserInfoByDept(item.getDeptId()));
});
return list;
}
/**
* 得到子节点列表
* 通过名称搜索用户信息
* @param username
* @param organCode
* @return
*/
private List<SysDept> getChildList(List<SysDept> list, SysDept t)
{
List<SysDept> tlist = new ArrayList<SysDept>();
Iterator<SysDept> it = list.iterator();
while (it.hasNext())
{
SysDept n = (SysDept) it.next();
if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue())
{
tlist.add(n);
}
}
return tlist;
}
@Override
public List<UserVO> selectListCompanyDepartmentByUserName(String username, Long organCode) {
//第一步通过名称获取到用户信息
List<UserVO> userInfoList = sysUserMapper.getUserInfoByName(username, organCode);
return userInfoList;
}
/**
* 判断是否有子节点
* 通过用户id获取用户详情信息
* @param userId
* @return
*/
private boolean hasChild(List<SysDept> list, SysDept t)
{
return getChildList(list, t).size() > 0;
@Override
public UserVO getUserDetailsByid(String userId) {
return sysUserMapper.getUserDetailsByid(userId);
}
}

@ -549,4 +549,9 @@ public class SysUserServiceImpl implements ISysUserService
}
return successMsg.toString();
}
@Override
public boolean updateUserAvatarByUserId(Long userId, String avatar) {
return userMapper.updateUserAvatarByUserId(userId,avatar)>0;
}
}

@ -0,0 +1,30 @@
package com.ruoyi.system.vo;
import com.ruoyi.common.core.domain.entity.SysDept;
import java.util.List;
/**
* @author liangjiawei
* @createDate 2023/4/14
*/
public class SysDeptVO extends SysDept {
private List<UserVO> list;
private int UserCount;
public List<UserVO> getList() {
return list;
}
public void setList(List<UserVO> list) {
this.list = list;
}
public int getUserCount() {
return UserCount;
}
public void setUserCount(int userCount) {
UserCount = userCount;
}
}

@ -0,0 +1,83 @@
package com.ruoyi.system.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
/**
* @author liangjiawei
* @createDate 2023/4/14
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
public class UserVO {
private Long userId;
private String name;
private String phone;
private String imageUrl;
private String deptId;
private String sex;
private String company;
private String deptName;
public String getDeptId() {
return deptId;
}
public void setDeptId(String deptId) {
this.deptId = deptId;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
}

@ -102,6 +102,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
</select>
<insert id="insertDept" parameterType="SysDept">
insert into sys_dept(
<if test="deptId != null and deptId != 0">dept_id,</if>
@ -209,4 +210,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update sys_dept set del_flag = '2' where dept_id = #{deptId}
</delete>
<select id="selectListCompanyDepartment" resultType="com.ruoyi.system.vo.SysDeptVO">
SELECT
dept_id as deptId,
dept_name as deptName
FROM
sys_dept
WHERE del_flag !=2
<if test="deptId == null">
and parent_id=0
</if>
<if test="deptId != null">
and parent_id=#{deptId, jdbcType=INTEGER}
</if>
</select>
<select id="selectDeptByparentId" resultType="java.lang.Long">
select dept_id from sys_dept WHERE del_flag !=2 and ancestors like concat('%', #{deptId}, '%')
</select>
</mapper>

@ -161,6 +161,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from sys_user u where u.dept_id =#{deptId} and u.del_flag !='2'
</select>
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
insert into sys_user(
<if test="userId != null and userId != 0">user_id,</if>
@ -225,7 +226,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateUserAvatar" parameterType="SysUser">
update sys_user set avatar = #{avatar} where user_name = #{userName}
</update>
<update id="updateUserAvatarByUserId" parameterType="SysUser">
update sys_user set avatar = #{avatar} where user_id = #{userId}
</update>
<update id="resetUserPwd" parameterType="SysUser">
update sys_user set password = #{password} where user_name = #{userName}
</update>
@ -243,5 +248,45 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{userId}
</foreach>
</delete>
<select id="selectUserCount" resultType="java.lang.Integer">
select count(*) from sys_user where 1=1
and dept_id in
<foreach item="item" collection="deptIds" open="(" separator="," close=")">
#{item}
</foreach>
and del_flag !=2
</select>
<select id="getUserInfoByDept" resultType="com.ruoyi.system.vo.UserVO">
select user_id as userId,nick_name as name,phonenumber as phone,avatar as imageUrl from sys_user where dept_id = #{deptIds} and del_flag !=2
</select>
<select id="getUserInfoByName" resultType="com.ruoyi.system.vo.UserVO">
select dept_id as deptId,user_id as userId, nick_name as name, phonenumber as phone, avatar as imageUrl
from sys_user
where nick_name like concat('%', #{username}, '%')
and del_flag !=2
and organ_code=#{organCode}
</select>
<select id="getUserDetailsByid" resultType="com.ruoyi.system.vo.UserVO">
select t1.user_id as userId,
t1.nick_name as name,
t1.phonenumber as phone,
t1.avatar as imageUrl,
t2.dept_name as deptName,
CASE
WHEN t1.sex=0 THEN '男'
WHEN t1.sex=1 THEN '女'
ELSE '未知'
END
as sex,
t3.organ_name as company
from sys_user t1
LEFT JOIN sys_dept t2 on t1.dept_id = t2.dept_id
LEFT JOIN ti_enterprise_info t3 on t1.organ_code=t3.organ_code
where t1.user_id = #{userId}
and t1.del_flag !=2
</select>
</mapper>
Loading…
Cancel
Save