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 |  120 +++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 99 insertions(+), 21 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 a8c57b6..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
@@ -8,6 +8,7 @@
 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.*;
@@ -16,6 +17,7 @@
 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.*;
@@ -29,10 +31,10 @@
 @RestController
 @RequestMapping("/department")
 public class DepartmentController extends BaseController {
-	
+
 	@Resource
 	private IDepartmentService departmentService;
-	
+
 	@Resource
 	private ISystemUserService systemUserService;
 
@@ -100,26 +102,41 @@
 	@ApiOperation(value = "获取单位列表", tags = {"西区纪委后台-单位管理"})
 	@OperLog(operModul = "西区纪委后台",operType = 0, businessType = "获取单位列表")
 	public R<List<Department>> getList(String name,Integer level,String code,int type){
-		if(level==null){
-			List<Department> list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name));
-			return  R.ok(list4);
-		}else {
+        SystemUserVo loginUserInfoWest = getLoginUserInfoWest();
+        if(level==null){
+            if(loginUserInfoWest.getSystemRoleId()>2){
+                return  R.ok(new ArrayList<>());
+            }
+            level=loginUserInfoWest.getAccountLevel();
+			if(level==2){
+				code="510403";
+			}
+			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));
+				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){
-				 list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).ge( Department::getTier, 3));
+                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));
+				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).ge(Department::getTier, 4));
+				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);
-		}
+
 	}
 
 
@@ -127,8 +144,23 @@
 	@ApiOperation(value = "获取单位列表1", tags = {"西区纪委后台-单位管理"})
 	@OperLog(operModul = "西区纪委后台",operType = 0, businessType = "获取单位列表")
 	public R<Page<Department>> getDeptList(String name,int pageNum,int pageSize){
-		Page<Department> 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));
-		for (Department department : list4.getRecords()) {
+        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);
 
@@ -147,8 +179,8 @@
 		departmentService.save(department);
 		return R.ok();
 	}
-	
-	
+
+
 	@PostMapping("/edit")
 	@ApiOperation(value = "编辑单位信息", tags = {"西区纪委后台-单位管理"})
 	public R edit(@RequestBody Department department){
@@ -158,11 +190,35 @@
 			return R.fail("单位名称重复。");
 		}
 		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){
@@ -189,9 +245,9 @@
 		departmentService.updateById(department);
 		return R.ok();
 	}
-	
-	
-	
+
+
+
 	@GetMapping("/getDepartmentList/{tier}")
 	@ApiOperation(value = "根据单位层级查询单位数据", tags = {"西区纪委后台-用户管理"})
 	@ApiImplicitParams({
@@ -202,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