From c59ca4c858387a73c626cc7cb995ed57fdea69f8 Mon Sep 17 00:00:00 2001 From: baizonghao <1719256278@qq.com> Date: 星期六, 18 三月 2023 13:56:45 +0800 Subject: [PATCH] 用户导入 --- ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java | 4 +- ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java | 50 ++++++++++++++++++++++++ ycl-common/src/main/java/com/ycl/utils/listener/DepartListener.java | 13 +++++- ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java | 1 4 files changed, 62 insertions(+), 6 deletions(-) diff --git a/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java b/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java index 8485e5f..d2c0283 100644 --- a/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java +++ b/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; @@ -11,6 +14,9 @@ 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.DataDictionaryMapper; import com.ycl.service.depart.UmsDepartService; import com.ycl.service.user.UmsDepartManageService; import com.ycl.utils.EasyExcelUtils; @@ -28,6 +34,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; +import java.util.Objects; /** * <p> @@ -137,10 +144,51 @@ EasyExcelUtils.export(response, sheetName, UmsDepartDto.class, umsDepartDtos); } + @Resource + private UmsDepartMapper sccgDepartMapper; + @Resource + private DataDictionaryMapper dataDictionaryMapper; @ApiOperation("閮ㄩ棬瀵煎叆") @PostMapping("/import") public CommonResult importDpt(MultipartFile file) throws IOException { - EasyExcelUtils.importDepartFile(file); + 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 = dataDictionaryMapper.selectOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getName, umsDepartDto.getDepartType())); + if (Objects.isNull(dataDictionary)){ + throw new RuntimeException("閮ㄩ棬绫诲瀷涓嶅瓨鍦�"); + }else { + umsDepart.setDepartType(new Long(dataDictionary.getId()).intValue()); + } + // 璁剧疆鐖秈d + 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, "瀵煎叆鎴愬姛"); } diff --git a/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java index 837d69e..71a2f27 100644 --- a/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java +++ b/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java @@ -148,10 +148,10 @@ .map(item -> { UmsDepartDto umsDepartDto = new UmsDepartDto(); umsDepartDto.setId(item.getId()); - umsDepartDto.setParentDepartName(item.getDepartName()); + umsDepartDto.setDepartTypeName(item.getDepartName()); String departType = sccgDepartMapper.getDepartType(item.getDepartType()); umsDepartDto.setDepartType(departType); - UmsDepart umsDepartFather = sccgDepartMapper.selectOne(new LambdaQueryWrapper<UmsDepart>().eq(UmsDepart::getDepartName, item.getId())); + UmsDepart umsDepartFather = sccgDepartMapper.selectOne(new LambdaQueryWrapper<UmsDepart>().eq(UmsDepart::getId, item.getParentId())); if (Objects.isNull(umsDepartFather)){ umsDepartDto.setParentDepartName(""); }else { diff --git a/ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java b/ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java index d479f54..50156d9 100644 --- a/ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java +++ b/ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java @@ -14,7 +14,6 @@ public class EasyExcelUtils { - /** * @Description 瀵煎嚭 * @Param [response , sheetName sheet鍚嶅瓧, className 绫诲悕, collection data] diff --git a/ycl-common/src/main/java/com/ycl/utils/listener/DepartListener.java b/ycl-common/src/main/java/com/ycl/utils/listener/DepartListener.java index 3313a43..7be3c66 100644 --- a/ycl-common/src/main/java/com/ycl/utils/listener/DepartListener.java +++ b/ycl-common/src/main/java/com/ycl/utils/listener/DepartListener.java @@ -8,8 +8,10 @@ import com.ycl.entity.dict.DataDictionary; import com.ycl.mapper.depart.UmsDepartMapper; import com.ycl.mapper.dict.DataDictionaryMapper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.util.Objects; @@ -18,10 +20,17 @@ @Resource private UmsDepartMapper sccgDepartMapper; - @Resource - DataDictionaryMapper dataDictionaryMapper; + private DataDictionaryMapper dataDictionaryMapper; +// private static DepartListener departListener; +// +// @PostConstruct +// public void init(){ +// departListener = this; +// departListener.sccgDepartMapper = this.sccgDepartMapper; +// departListener.dataDictionaryMapper = this.dataDictionaryMapper; +// } @Override public void invoke(UmsDepartDto umsDepartDto, AnalysisContext analysisContext) { -- Gitblit v1.8.0