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 { @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 queryWrapper = new QueryWrapper<>(); if (StringUtils.isNotBlank(searchKey)) { queryWrapper.like("depart_name", searchKey); } if (StringUtils.isNotBlank(parentCode)) { queryWrapper.likeRight("org_code", parentCode); } Page page = new Page<>(pageNo, pageSize); IPage 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 queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.likeRight(Device::getOrgCode, sysDepart.getOrgCode()); List list = deviceService.list(queryWrapper); if (!list.isEmpty()) { return Result.error("本级或下级机构有关联网关设备,无法删除"); } service.delete(id); sysUserVOService.physicalRemove(sysDepart.getOrgCode()); return Result.ok(); } }