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