package com.tievd.jyz.controller;
|
|
import cn.hutool.extra.pinyin.PinyinUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.tievd.cube.commons.annotations.AutoLog;
|
import com.tievd.cube.commons.annotations.DictApi;
|
import com.tievd.cube.commons.base.CubeController;
|
import com.tievd.cube.commons.base.Result;
|
import com.tievd.cube.modules.system.entity.SysDepart;
|
import com.tievd.cube.modules.system.entity.SysUser;
|
import com.tievd.cube.modules.system.service.ISysUserService;
|
import com.tievd.jyz.constants.SystemConstant;
|
import com.tievd.jyz.entity.Device;
|
import com.tievd.jyz.entity.vo.SysDepartVO;
|
import com.tievd.jyz.service.IDeviceService;
|
import com.tievd.jyz.service.ISysDepartVOService;
|
import com.tievd.jyz.service.ISysUserVOService;
|
import io.swagger.v3.oas.annotations.Operation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.List;
|
|
/**
|
* @author yang'zhi'shui
|
*/
|
@Slf4j
|
@DictApi
|
@RestController
|
@RequestMapping("/jyz/custom/sys/depart")
|
public class SysDepartVOController extends CubeController<SysDepartVO, ISysDepartVOService> {
|
|
@Autowired
|
private ISysUserService sysUserService;
|
|
@Autowired
|
private ISysDepartVOService sysDepartService;
|
|
@Autowired
|
private com.tievd.cube.modules.system.service.ISysDepartService service;
|
|
@Autowired
|
private IDeviceService deviceService;
|
|
@Autowired
|
private ISysUserVOService sysUserVOService;
|
|
@AutoLog("机构管理-添加")
|
@PostMapping("/add")
|
public Result<?> add(@RequestBody SysDepart sysDepart) {
|
service.saveDepartData(sysDepart);
|
SysUser sysUser = new SysUser();
|
String username = PinyinUtil.getFirstLetter(sysDepart.getDepartName(), "");
|
sysUser.setUsername(username);
|
sysUser.setRealname(username);
|
sysUser.setPassword(SystemConstant.DEFAULT_PASSWORD);
|
sysUser.setOrgCode(sysDepart.getOrgCode());
|
sysUser.setDepartIds(sysDepart.getId());
|
String selectedRoles = "1456085100369317890";
|
sysUserService.add(sysUser, selectedRoles, sysDepart.getId());
|
return Result.ok();
|
}
|
|
@GetMapping("/tables")
|
public Result<?> tables(SysDepartVO sysDepartDTO,
|
@RequestParam(defaultValue = "1") Integer pageNo,
|
@RequestParam(defaultValue = "10") Integer pageSize,
|
@RequestParam(required = false) String searchKey,
|
@RequestParam(required = false) String parentCode) {
|
QueryWrapper<SysDepartVO> queryWrapper = new QueryWrapper<>();
|
if (StringUtils.isNotBlank(searchKey)) {
|
queryWrapper.like("depart_name", searchKey);
|
}
|
if (StringUtils.isNotBlank(parentCode)) {
|
queryWrapper.likeRight("org_code", parentCode);
|
}
|
Page<SysDepartVO> page = new Page<>(pageNo, pageSize);
|
IPage<SysDepartVO> pageList = sysDepartService.tables(page, queryWrapper);
|
return Result.ok(pageList);
|
}
|
|
/**
|
* 删除部门
|
*
|
* @param id 主键id
|
*/
|
@AutoLog("删除部门")
|
@DeleteMapping("/delete")
|
@Operation(summary = "删除部门")
|
public Result<?> delete(@RequestParam String id) {
|
SysDepart sysDepart = service.getById(id);
|
if (sysDepart == null) {
|
return Result.error("未找到对应数据!");
|
}
|
LambdaQueryWrapper<Device> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.likeRight(Device::getOrgCode, sysDepart.getOrgCode());
|
List<Device> list = deviceService.list(queryWrapper);
|
if (!list.isEmpty()) {
|
return Result.error("本级或下级机构有关联网关设备,无法删除");
|
}
|
service.delete(id);
|
sysUserVOService.physicalRemove(sysDepart.getOrgCode());
|
return Result.ok();
|
}
|
|
}
|