From 039abee6b27058ca46b1e1e82aa0b5407a5dad44 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 28 七月 2025 15:25:26 +0800 Subject: [PATCH] 优化 和修改bug --- springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/api/DepartmentController.java | 166 +++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 125 insertions(+), 41 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/api/DepartmentController.java b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/api/DepartmentController.java index 9bf5cd8..ff121aa 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/api/DepartmentController.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/api/DepartmentController.java @@ -1,12 +1,14 @@ package com.panzhihua.westcommittee.api; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.interfaces.OperLog; import com.panzhihua.common.model.vos.R; -import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo; +import com.panzhihua.common.model.vos.west.SystemUserVo; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.westcommittee.model.dto.UpdateStatusDeptDto; +import com.panzhihua.westcommittee.model.entity.ComAct; import com.panzhihua.westcommittee.model.entity.Department; import com.panzhihua.westcommittee.model.entity.SystemUser; import com.panzhihua.westcommittee.service.*; @@ -15,11 +17,10 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.util.Date; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -30,10 +31,10 @@ @RestController @RequestMapping("/department") public class DepartmentController extends BaseController { - + @Resource private IDepartmentService departmentService; - + @Resource private ISystemUserService systemUserService; @@ -100,25 +101,71 @@ @GetMapping("/getList") @ApiOperation(value = "获取单位列表", tags = {"西区纪委后台-单位管理"}) @OperLog(operModul = "西区纪委后台",operType = 0, businessType = "获取单位列表") - public R<List<Department>> getList(String name){ - List<Department> list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq(Department::getTier, 4)); - Set<String> collect3 = list4.stream().map(Department::getStreetId).collect(Collectors.toSet()); - - List<Department> list3 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq(Department::getTier, 3) - .or().in(collect3.size() > 0, Department::getStreet, collect3)); - - Set<String> collect2 = list3.stream().map(Department::getDistrictsCode).collect(Collectors.toSet()); - List<Department> list2 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq(Department::getTier, 2) - .or().in(collect2.size() > 0, Department::getDistrictsCode, collect2)); - for (Department department : list2) { - List<Department> departmentList2 = list3.stream().filter(s -> s.getDistrictsCode().equals(department.getDistrictsCode())).collect(Collectors.toList()); - for (Department department1 : departmentList2) { - List<Department> departmentList3 = list4.stream().filter(s -> s.getStreetId().equals(department1.getStreetId())).collect(Collectors.toList()); - department1.setChild(departmentList3); + public R<List<Department>> getList(String name,Integer level,String code,int type){ + SystemUserVo loginUserInfoWest = getLoginUserInfoWest(); + if(level==null){ + if(loginUserInfoWest.getSystemRoleId()>2){ + return R.ok(new ArrayList<>()); + } + level=loginUserInfoWest.getAccountLevel(); + if(level==2){ + code="510403"; } - department.setChild(departmentList2); + if(level==3){ + code = loginUserInfoWest.getStreetId(); + } + if(level==4){ + code = loginUserInfoWest.getCommunityId().toString(); + } + type=2; + } + List<Department> list4=new ArrayList<>(); + if(level==2 && type==1){ + list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 2)); + }else if(level==2 && type==2){ + list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).ge( Department::getTier, 2)); + }else if(level==3 && type==1){ + list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 3).eq(Department::getStreetId, code)); + }else if(level==3 && type==2){ + List<Long> ids = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, code)).stream().map(ComAct::getCommunityId).collect(Collectors.toList()); + list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 3).eq(Department::getStreetId, code) + .or(w->w.eq(Department::getTier,4).in(Department::getCommunityId,ids))); + }else if(level==4 && type==1){ + list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 4).eq(Department::getCommunityId,code)); + }else if(level==4 && type==2){ + list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq(Department::getTier, 4).eq(Department::getCommunityId,code)); + } + return R.ok(list4); + + } + + + @GetMapping("/getDeptList") + @ApiOperation(value = "获取单位列表1", tags = {"西区纪委后台-单位管理"}) + @OperLog(operModul = "西区纪委后台",operType = 0, businessType = "获取单位列表") + public R<Page<Department>> getDeptList(String name,int pageNum,int pageSize){ + SystemUserVo loginUserInfoWest = getLoginUserInfoWest(); + if(loginUserInfoWest.getSystemRoleId()>2){ + return R.ok(new Page<>()); + } + Integer accountLevel = loginUserInfoWest.getAccountLevel(); + Page<Department> list4 = null; + if(accountLevel==2 ){ + list4 = departmentService.page(new Page<Department>(pageNum,pageSize),new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).or().eq(StringUtils.isNotEmpty(name),Department::getId,name).ge(Department::getTier,accountLevel)); + }else if(accountLevel==3){ + String streetId = loginUserInfoWest.getStreetId(); + List<Long> ids = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, streetId)).stream().map(ComAct::getCommunityId).collect(Collectors.toList()); + list4 = departmentService.page(new Page<Department>(pageNum,pageSize),new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).or().eq(StringUtils.isNotEmpty(name),Department::getId,name).eq(Department::getTier,accountLevel).eq(Department::getStreetId,streetId) + .or(department -> department.and(department1 -> department1.eq(Department::getTier, 4).in(Department::getCommunityId, ids)))); + }else if(accountLevel==4){ + list4 = departmentService.page(new Page<Department>(pageNum,pageSize),new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).or().eq(StringUtils.isNotEmpty(name),Department::getId,name).eq(Department::getTier,4).eq(Department::getCommunityId,loginUserInfoWest.getCommunityId())); + } + for (Department department : list4.getRecords()) { + int count = systemUserService.count(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, department.getId())); + department.setUserCount(count); + } - return R.ok(list2); + return R.ok(list4); } @@ -129,15 +176,11 @@ if(0 < count){ return R.fail("单位名称重复。"); } - long count1 = departmentService.count(new LambdaQueryWrapper<Department>().eq(Department::getDeptId, department.getDeptId())); - if(0 < count1){ - return R.fail("单位ID重复。"); - } departmentService.save(department); return R.ok(); } - - + + @PostMapping("/edit") @ApiOperation(value = "编辑单位信息", tags = {"西区纪委后台-单位管理"}) public R edit(@RequestBody Department department){ @@ -146,17 +189,36 @@ if(0 < count){ return R.fail("单位名称重复。"); } - long count1 = departmentService.count(new LambdaQueryWrapper<Department>().eq(Department::getDeptId, department.getDeptId()) - .ne(Department::getId, department.getId())); - if(0 < count1){ - return R.fail("单位ID重复。"); - } departmentService.updateById(department); + + List<SystemUser> list = systemUserService.list(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, department.getId())); + if(!list.isEmpty()) { + if (department.getTier() == 2) { + list.stream().forEach(e -> { + e.setAccountLevel(department.getTier()); + e.setCommunity(null); + e.setCommunityId(null); + e.setStreet(null); + e.setStreetId(null); + }); + } else if (department.getTier() == 3) { + list.stream().forEach(e -> { + e.setAccountLevel(department.getTier()); + e.setCommunity(null); + e.setCommunityId(null); + }); + } else if (department.getTier() == 4) { + list.stream().forEach(e -> { + e.setAccountLevel(department.getTier()); + }); + } + systemUserService.updateBatchById(list); + } return R.ok(); } - - - + + + @DeleteMapping("/delete/{id}") @ApiOperation(value = "删除单位信息", tags = {"西区纪委后台-单位管理"}) public R delete(@PathVariable("id") Integer id){ @@ -173,7 +235,7 @@ public R updateStatus(@RequestBody UpdateStatusDeptDto dto){ Department department = departmentService.getById(dto.getId()); department.setStatus(dto.getStatus()); - department.setRemark(dto.getRemark()); + department.setReason(dto.getReason()); if(dto.getStatus()==2){ SystemUserVo loginUserInfoWest = getLoginUserInfoWest(); department.setOperId(loginUserInfoWest.getId()); @@ -183,9 +245,9 @@ departmentService.updateById(department); return R.ok(); } - - - + + + @GetMapping("/getDepartmentList/{tier}") @ApiOperation(value = "根据单位层级查询单位数据", tags = {"西区纪委后台-用户管理"}) @ApiImplicitParams({ @@ -196,4 +258,26 @@ List<Department> list = departmentService.list(new LambdaQueryWrapper<Department>().eq(Department::getTier, tier)); return R.ok(list); } + + + + @ResponseBody + @PostMapping("/importDepartment") + @ApiOperation(value = "单位导入", tags = {"西区纪委后台-单位管理"}) + public R<?> importDepartment(MultipartFile file) { + String s = file.getOriginalFilename(); + if (s == null || !("xls".equals(s.substring(s.lastIndexOf(".") + 1)) || "xlsx".equals(s.substring(s.lastIndexOf(".") + 1)))) { + return R.fail("只能上传.xls或.xlsx格式的文件"); + } + SystemUserVo loginUserInfoWest = getLoginUserInfoWest(); + String name = loginUserInfoWest.getName(); + Integer id = loginUserInfoWest.getId(); + try { + return departmentService.importDepartment(s, file,name,id); + } catch (Exception e) { + e.printStackTrace(); + } + return R.ok(); + } + } -- Gitblit v1.7.1