package com.ruoyi.web.controller.system;
|
|
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.core.domain.entity.TDept;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.system.domain.vo.TDeptVO;
|
import com.ruoyi.system.dto.AddDeptDTO;
|
import com.ruoyi.system.mapper.SysUserMapper;
|
import com.ruoyi.system.service.ISysUserService;
|
import com.ruoyi.system.service.TDeptService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 通知设置 前端控制器
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2025-05-28
|
*/
|
@Api(tags = "部门管理")
|
@RestController
|
@RequestMapping("/tDept")
|
public class TDeptController {
|
@Resource
|
private TDeptService deptService;
|
@Resource
|
private ISysUserService sysUserService;
|
@Resource
|
private SysUserMapper sysUserMapper;
|
/**
|
* 获取部门树列表
|
*/
|
@ApiOperation("获取部门树列表")
|
@GetMapping("/tree")
|
public R<List<TDept>> tree() {
|
List<TDept> deptTree = deptService.selectDeptTreeList();
|
return R.ok(deptTree);
|
}
|
@Log(title = "新增部门", businessType = BusinessType.INSERT)
|
@ApiOperation(value = "新增部门")
|
@PostMapping(value = "/add")
|
public R add(@RequestBody AddDeptDTO dto) {
|
deptService.save(dto);
|
return R.ok();
|
}
|
@Log(title = "编辑部门", businessType = BusinessType.UPDATE)
|
@ApiOperation(value = "编辑部门")
|
@PostMapping(value = "/edit")
|
public R edit(@RequestBody AddDeptDTO dto) {
|
deptService.updateById(dto);
|
return R.ok();
|
}
|
@ApiOperation(value = "部门详情")
|
@GetMapping(value = "/detail")
|
public R<TDept> edit(@RequestParam String id) {
|
return R.ok(deptService.getById(id));
|
}
|
@ApiOperation(value = "部门删除")
|
@DeleteMapping(value = "/delete")
|
@Log(title = "删除部门", businessType = BusinessType.DELETE)
|
public R<Boolean> delete(@RequestParam String id) {
|
Long count = deptService.lambdaQuery().eq(TDept::getParentId, id).count();
|
if (count>0){
|
return R.fail("当前部门存在下级部门,不可删除!");
|
}
|
List<SysUser> users = sysUserMapper.selectAllList().stream().filter(e -> e.getDelFlag().equals("0") && e.getDeptId().equals(id)).collect(Collectors.toList());
|
if (!users.isEmpty()){
|
return R.fail("当前部门存在用户,不可删除!");
|
}
|
deptService.removeById(id);
|
return R.ok();
|
}
|
}
|