baizonghao
2023-03-17 75f7bbb31181096988b4310ca84654b880f50604
部门管理的导入导出
4个文件已修改
2个文件已添加
147 ■■■■■ 已修改文件
ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/dto/UmsDepartDto.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/utils/listener/DepartListener.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java
@@ -9,9 +9,11 @@
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.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,8 +22,11 @@
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;
/**
@@ -124,6 +129,21 @@
        return CommonResult.success(page);
    }
    @ApiOperation("部门导出")
    @PostMapping("/export")
    public void exportDpt(HttpServletResponse response) {
        List<UmsDepartDto> umsDepartDtos = departService.departExp();
        String sheetName = "部门导出";
        EasyExcelUtils.export(response, sheetName, UmsDepartDto.class, umsDepartDtos);
    }
    @ApiOperation("部门导入")
    @PostMapping("/import")
    public CommonResult importDpt(MultipartFile file) throws IOException {
        EasyExcelUtils.importDepartFile(file);
        return CommonResult.success(true, "导入成功");
    }
    @ApiOperation("查询我的部门")
    @GetMapping(value = "/belongDepart")
    public CommonResult<BasePageDTO> belongDepart(BasePageVO params) {
ycl-common/src/main/java/com/ycl/dto/UmsDepartDto.java
New file
@@ -0,0 +1,29 @@
package com.ycl.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class UmsDepartDto {
    @ExcelProperty(value = "部门ID", index = 0)
    private Long id;
    @ExcelProperty(value = "部门名称", index = 1)
    private String departTypeName;
    @ExcelProperty(value = "部门类型", index = 2)
    private Integer departType;
    @ExcelProperty(value = "上级部门", index = 3)
    private String parentDepartName;
    @ExcelProperty(value = "部门描述", index = 4)
    private String departDes;
}
ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java
@@ -1,13 +1,12 @@
package com.ycl.service.depart;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.dto.UmsDepartDto;
import com.ycl.entity.depart.UmsDepart;
import com.ycl.entity.user.UmsAdmin;
import com.ycl.vo.depart.DepartVO;
import com.ycl.vo.depart.UmsDepartVO;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@@ -64,6 +63,8 @@
     */
    IPage<UmsDepartVO> pageDepart(String departName, IPage<UmsDepartVO> page);
    List<UmsDepartDto> departExp();
    /**
     * 修改状态
     *
ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.dto.UmsDepartDto;
import com.ycl.entity.depart.UmsDepart;
import com.ycl.entity.user.UmsAdmin;
import com.ycl.enums.common.ResultCode;
@@ -23,6 +24,7 @@
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -139,6 +141,27 @@
    }
    @Override
    public List<UmsDepartDto> departExp() {
        List<UmsDepart> umsDeparts = sccgDepartMapper.selectDepartList();
        List<UmsDepartDto> res = umsDeparts
                .stream()
                .map(umsDepart -> {
                    UmsDepartDto umsDepartDto = new UmsDepartDto();
                    umsDepartDto.setId(umsDepart.getId());
                    umsDepartDto.setDepartType(umsDepart.getDepartType());
                    UmsDepart umsDepartFather = sccgDepartMapper.selectOne(new LambdaQueryWrapper<UmsDepart>().eq(UmsDepart::getDepartName, umsDepart.getId()));
                    if (Objects.isNull(umsDepartFather)){
                        umsDepartDto.setParentDepartName("");
                    }else {
                        umsDepartDto.setParentDepartName(umsDepartFather.getDepartName());
                    }
                    umsDepartDto.setDepartDes(umsDepart.getDepartDes());
                    return umsDepartDto;
                }).collect(Collectors.toList());
        return res;
    }
    @Override
    public void updateStatus(DepartVO.StatusDepartVO params) {
        UmsDepart sccgDepart = this.loadDepartById(params.getId());
        BeanUtils.copyProperties(params, sccgDepart);
ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java
@@ -1,9 +1,13 @@
package com.ycl.utils;
import com.alibaba.excel.EasyExcel;
import com.ycl.dto.UmsDepartDto;
import com.ycl.utils.listener.DepartListener;
import lombok.SneakyThrows;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Collection;
@@ -25,4 +29,12 @@
                .sheet(sheetName)
                .doWrite(collection);
    }
    @SneakyThrows
    public static void importDepartFile(MultipartFile file) throws IOException {
        EasyExcel.read(file.getInputStream())
                .head(UmsDepartDto.class)
                .registerReadListener(new DepartListener()).sheet().doRead();
    }
}
ycl-common/src/main/java/com/ycl/utils/listener/DepartListener.java
New file
@@ -0,0 +1,58 @@
package com.ycl.utils.listener;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ycl.dto.UmsDepartDto;
import com.ycl.entity.depart.UmsDepart;
import com.ycl.mapper.depart.UmsDepartMapper;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Objects;
@Component
public class DepartListener implements ReadListener<UmsDepartDto> {
    @Resource
    private UmsDepartMapper sccgDepartMapper;
    @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(umsDepart.getDepartName());
        //  设置部门描述
        umsDepart.setDepartDes(umsDepartDto.getDepartDes());
        //  设置部门类型
        umsDepart.setDepartType(umsDepartDto.getDepartType());
        //  设置父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) {
    }
}