zhanghua
2023-09-08 7ef4892f9f24f941aca37e6b3991b808a0aca619
ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java
@@ -1,6 +1,9 @@
package com.ycl.controller.depart;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -9,9 +12,14 @@
import com.ycl.api.BasePageVO;
import com.ycl.api.CommonResult;
import com.ycl.controller.BaseController;
import com.ycl.dto.UmsDepartDto;
import com.ycl.entity.depart.UmsDepart;
import com.ycl.entity.dict.DataDictionary;
import com.ycl.mapper.depart.UmsDepartMapper;
import com.ycl.mapper.dict.DataDictionary2Mapper;
import com.ycl.service.depart.UmsDepartService;
import com.ycl.service.user.UmsDepartManageService;
import com.ycl.utils.EasyExcelUtils;
import com.ycl.utils.auth.UserAuthUtil;
import com.ycl.vo.depart.DepartVO;
import com.ycl.vo.depart.UmsDepartVO;
@@ -20,9 +28,13 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Objects;
/**
 * <p>
@@ -83,6 +95,16 @@
        return CommonResult.success(departService.removeBatchByIds(ids));
    }
    @ApiOperation("批处理-开启或者禁用部门")
    @PutMapping(value = "/batch_status")
    @LogSave(operationType = "部门管理", contain = "批量开启或者禁用部门")
    public CommonResult updateBatch(@RequestBody List<UmsDepart> umsDepartList) {
        if (umsDepartList.isEmpty()) {
            return CommonResult.failed("bad request parameter");
        }
        return CommonResult.success(departService.updateBatchById(umsDepartList));
    }
    @ApiOperation("详情")
    @PostMapping(value = "/detail")
    @LogSave(operationType = "部门管理", contain = "查看部门")
@@ -108,10 +130,66 @@
    @ApiOperation("查询全部部门")
    @GetMapping(value = "/page")
    public CommonResult<IPage<UmsDepartVO>> page(@RequestParam("currentPage") Integer currentPage, @RequestParam("pageSize") Integer pageSize,
                                                @RequestParam(value = "departName", required = false) String departName) {
                                                 @RequestParam(value = "departName", required = false) String departName) {
        IPage<UmsDepartVO> page = new Page<>(currentPage, pageSize);
        departService.pageDepart(departName, page);
        return CommonResult.success(page);
    }
    @ApiOperation("部门导出")
    @PostMapping("/export")
    public void exportDpt(HttpServletResponse response) {
        List<UmsDepartDto> umsDepartDtos = departService.departExp();
        String sheetName = "部门导出";
        EasyExcelUtils.export1(response, sheetName, UmsDepartDto.class, umsDepartDtos, "部门导出");
    }
    @Resource
    private UmsDepartMapper sccgDepartMapper;
    @Resource
    private DataDictionary2Mapper dataDictionary2Mapper;
    @ApiOperation("部门导入")
    @PostMapping("/import")
    public CommonResult importDpt(MultipartFile file) throws IOException {
        EasyExcel.read(file.getInputStream())
                .head(UmsDepartDto.class)
                .registerReadListener(new ReadListener<UmsDepartDto>() {
                    @Override
                    public void invoke(UmsDepartDto umsDepartDto, AnalysisContext analysisContext) {
                        //  不能重复插入
                        String departTypeName = umsDepartDto.getDepartTypeName();
                        UmsDepart one = sccgDepartMapper.selectOne(new LambdaQueryWrapper<UmsDepart>().eq(UmsDepart::getDepartName, departTypeName));
                        if (Objects.nonNull(one)){
                            throw new RuntimeException("该部门已经存在");
                        }
                        UmsDepart umsDepart = new UmsDepart();
                        //  设置部门名字
                        umsDepart.setDepartName(umsDepartDto.getDepartTypeName());
                        //  设置部门描述
                        umsDepart.setDepartDes(umsDepartDto.getDepartDes());
                        //  设置部门类型
                        DataDictionary dataDictionary = dataDictionary2Mapper.selectOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getName, umsDepartDto.getDepartType()));
                        if (Objects.isNull(dataDictionary)){
                            throw new RuntimeException("部门类型不存在");
                        }else {
                            umsDepart.setDepartType(new Long(dataDictionary.getId()).intValue());
                        }
                        //  设置父id
                        UmsDepart two = sccgDepartMapper.selectOne(new LambdaQueryWrapper<UmsDepart>().eq(UmsDepart::getDepartName, umsDepartDto.getParentDepartName()));
                        if (Objects.nonNull(two)){
                            umsDepart.setParentId(two.getParentId());
                        }
                        int insert = sccgDepartMapper.insert(umsDepart);
                        if (insert < 1){
                            throw new RuntimeException("插入失败");
                        }
                    }
                    @Override
                    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
                    }
                }).sheet().doRead();
        return CommonResult.success(true, "导入成功");
    }
    @ApiOperation("查询我的部门")
@@ -121,6 +199,34 @@
        return CommonResult.success(basePageDTO);
    }
    @ApiOperation("用户修改角色")
    @PutMapping(value = "/user_update_Role")
    public CommonResult userUpdateRole(@RequestParam Long id,
                                       @RequestParam List<Long> roles) {
        umsAdminDepartService.userUpdateRoles(id, roles);
        return CommonResult.success("update success");
    }
    @ApiOperation("用户修改部门")
    @PutMapping(value = "/user_update_depart")
    public CommonResult userUpdateDepart(@RequestParam Long userId,
                                         @RequestParam Long departId) {
        umsAdminDepartService.userUpdateDepart(userId, departId);
        return CommonResult.success("update success");
    }
    @ApiOperation("查询不在部门的剩余人员")
    @GetMapping("/query_surplus_user")
    public CommonResult searchSurplusUser() {
        return CommonResult.success(departService.selectSurplusUser());
    }
    @ApiOperation("查询不在部门的剩余人员和已在部门的人")
    @GetMapping("/query_surplus_exist_user")
    public CommonResult searchSurplusUser(@RequestParam Long id) {
        return CommonResult.success(departService.selectSurplusUserAndExistUser(id));
    }
    @ApiOperation("查询顶级部门")
    @GetMapping(value = "/query_father")
    public CommonResult search() {