From 7ef4892f9f24f941aca37e6b3991b808a0aca619 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期五, 08 九月 2023 11:16:35 +0800 Subject: [PATCH] 优化 --- ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java | 158 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 146 insertions(+), 12 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 9e13d2f..0f7733e 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,25 +1,40 @@ 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; +import com.ycl.annotation.LogSave; import com.ycl.api.BasePageDTO; 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; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; 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 java.util.Arrays; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.List; +import java.util.Objects; /** * <p> @@ -43,6 +58,7 @@ @ApiOperation("娣诲姞閮ㄩ棬") @PostMapping(value = "/create") + @LogSave(operationType = "閮ㄩ棬绠$悊", contain = "娣诲姞閮ㄩ棬") public CommonResult<Void> create(@Validated @RequestBody DepartVO.AddDepartVO addDepartVO) { departService.create(addDepartVO); return CommonResult.success(null); @@ -50,6 +66,7 @@ @ApiOperation("缂栬緫閮ㄩ棬") @PostMapping(value = "/update") + @LogSave(operationType = "閮ㄩ棬绠$悊", contain = "缂栬緫閮ㄩ棬") public CommonResult<Void> create(@Validated @RequestBody DepartVO.UpdateDepartVO params) { departService.update(params); return CommonResult.success(null); @@ -57,25 +74,40 @@ @ApiOperation("鍒犻櫎") @PostMapping(value = "/delete") + @LogSave(operationType = "閮ㄩ棬绠$悊", contain = "鍒犻櫎閮ㄩ棬") public CommonResult<Void> delete(@Validated @RequestBody DepartVO.IdDepartVO params) { departService.delete(params.getId()); return CommonResult.success(null); } /** - * @Description batch deletion departments - * @Param [ids] * @return com.ycl.api.CommonResult<java.lang.Void> + * @Description batch deletion departments + * @Param [ids] **/ - @ApiOperation("鍒犻櫎") - @PostMapping(value = "/batch_deletion)") - public CommonResult<Void> delete(@RequestParam String[] ids) { - departService.removeBatchByIds(Arrays.asList(ids)); - return CommonResult.success(null); + @ApiOperation("鎵瑰鐞�-鍒犻櫎") + @PostMapping(value = "/batch_deletion") + @LogSave(operationType = "閮ㄩ棬绠$悊", contain = "鎵归噺鍒犻櫎閮ㄩ棬") + public CommonResult delete(@RequestParam List<Long> ids) { + if (ids.isEmpty()) { + return CommonResult.failed("bad request parameter"); + } + 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 = "鏌ョ湅閮ㄩ棬") public CommonResult<UmsDepart> detail(@Validated @RequestBody DepartVO.IdDepartVO params) { UmsDepart sccgDepart = departService.loadDepartById(params.getId()); return CommonResult.success(sccgDepart); @@ -97,16 +129,118 @@ @ApiOperation("鏌ヨ鍏ㄩ儴閮ㄩ棬") @GetMapping(value = "/page") - public CommonResult<IPage<UmsDepart>> page(DepartVO.PageDepartVO params) { - IPage<UmsDepart> page = departService.pageDepart(params); + public CommonResult<IPage<UmsDepartVO>> page(@RequestParam("currentPage") Integer currentPage, @RequestParam("pageSize") Integer pageSize, + @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()); + } + // 璁剧疆鐖秈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, "瀵煎叆鎴愬姛"); } @ApiOperation("鏌ヨ鎴戠殑閮ㄩ棬") @GetMapping(value = "/belongDepart") public CommonResult<BasePageDTO> belongDepart(BasePageVO params) { - BasePageDTO basePageDTO= umsAdminDepartService.belongDepart(fetchOperator(request).getOperatorId(), params.getCurrent(), params.getPageSize()); + BasePageDTO basePageDTO = umsAdminDepartService.belongDepart(fetchOperator(request).getOperatorId(), params.getCurrent(), params.getPageSize()); 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() { + Integer fatherId = 0; + return CommonResult.success(departService + .list(new LambdaQueryWrapper<UmsDepart>() + .eq(UmsDepart::getParentId, fatherId))); + } + + @ApiOperation("鏌ヨ閮ㄩ棬浜岀骇") + @GetMapping(value = "/query_father_children") + public CommonResult search(@RequestParam Integer fatherId) { + return CommonResult.success(departService + .list(new LambdaQueryWrapper<UmsDepart>() + .eq(UmsDepart::getParentId, fatherId))); + } +} \ No newline at end of file -- Gitblit v1.8.0