Jelajahi Sumber

内蒙山洪灾害运维系统版本提交-旗县市独立运维功能,满洲里和二连浩特独立运维

dylan 2 tahun lalu
induk
melakukan
489ae24ee6
71 mengubah file dengan 1798 tambahan dan 813 penghapusan
  1. 2 0
      src/main/java/org/springblade/constant/BusinessConstant.java
  2. 40 44
      src/main/java/org/springblade/modules/baseinfo/org/controller/BaseInfoOrgController.java
  3. 1 1
      src/main/java/org/springblade/modules/baseinfo/org/dto/OrgInfoDTO.java
  4. 1 1
      src/main/java/org/springblade/modules/baseinfo/org/entity/DeptRegionEntity.java
  5. 1 1
      src/main/java/org/springblade/modules/baseinfo/org/mapper/DeptRegionMapper.java
  6. 1 1
      src/main/java/org/springblade/modules/baseinfo/org/service/IDeptRegionService.java
  7. 1 1
      src/main/java/org/springblade/modules/baseinfo/org/service/impl/DeptRegionServiceImpl.java
  8. 3 1
      src/main/java/org/springblade/modules/baseinfo/org/vo/OrgInfoVO.java
  9. 16 20
      src/main/java/org/springblade/modules/baseinfo/org/wrapper/OrgInfoWrapper.java
  10. 282 162
      src/main/java/org/springblade/modules/baseinfo/region/controller/BaseInfoRegionController.java
  11. 4 0
      src/main/java/org/springblade/modules/baseinfo/region/dto/RegionInfoDTO.java
  12. 3 15
      src/main/java/org/springblade/modules/baseinfo/region/entity/OrgRegionInfoEntity.java
  13. 7 1
      src/main/java/org/springblade/modules/baseinfo/region/entity/RegionInfoEntity.java
  14. 5 2
      src/main/java/org/springblade/modules/baseinfo/region/entity/RegionTreeNodeEntity.java
  15. 2 3
      src/main/java/org/springblade/modules/baseinfo/region/mapper/OrgRegionInfoMapper.java
  16. 0 21
      src/main/java/org/springblade/modules/baseinfo/region/mapper/OrgRegionInfoMapper.xml
  17. 1 0
      src/main/java/org/springblade/modules/baseinfo/region/mapper/RegionInfoMapper.xml
  18. 40 1
      src/main/java/org/springblade/modules/baseinfo/region/service/IBaseInfoRegionService.java
  19. 6 2
      src/main/java/org/springblade/modules/baseinfo/region/service/IOrgRegionInfoService.java
  20. 85 1
      src/main/java/org/springblade/modules/baseinfo/region/service/impl/BaseInfoRegionServiceImpl.java
  21. 9 3
      src/main/java/org/springblade/modules/baseinfo/region/service/impl/OrgRegionInfoServiceImpl.java
  22. 15 14
      src/main/java/org/springblade/modules/baseinfo/rtu/controller/RtuBaseInfoController.java
  23. 4 0
      src/main/java/org/springblade/modules/baseinfo/rtu/dto/RtuInfoDTO.java
  24. 6 4
      src/main/java/org/springblade/modules/baseinfo/rtu/mapper/RtuInfoMapper.java
  25. 32 14
      src/main/java/org/springblade/modules/baseinfo/rtu/mapper/RtuInfoMapper.xml
  26. 6 4
      src/main/java/org/springblade/modules/baseinfo/rtu/service/IRtuBaseInfoService.java
  27. 8 8
      src/main/java/org/springblade/modules/baseinfo/rtu/service/impl/RtuBaseInfoServiceImpl.java
  28. 15 37
      src/main/java/org/springblade/modules/baseinfo/servicePerson/controller/ServicePersonController.java
  29. 1 1
      src/main/java/org/springblade/modules/baseinfo/servicePerson/entity/ServicePersonEntity.java
  30. 1 1
      src/main/java/org/springblade/modules/baseinfo/servicePerson/mapper/ServicePersonMapper.java
  31. 1 1
      src/main/java/org/springblade/modules/baseinfo/servicePerson/service/IServicePersonService.java
  32. 1 1
      src/main/java/org/springblade/modules/baseinfo/servicePerson/service/impl/ServicePersonServiceImpl.java
  33. 1 1
      src/main/java/org/springblade/modules/baseinfo/servicePerson/vo/OrgPersonContactVO.java
  34. 1 1
      src/main/java/org/springblade/modules/baseinfo/servicePerson/vo/ServicePersonVO.java
  35. 1 3
      src/main/java/org/springblade/modules/baseinfo/servicePerson/wrapper/ServicePersonWrapper.java
  36. 59 7
      src/main/java/org/springblade/modules/business/check/order/controller/RtuCheckOrderController.java
  37. 3 0
      src/main/java/org/springblade/modules/business/check/order/dto/CheckOrderInfoDTO.java
  38. 40 10
      src/main/java/org/springblade/modules/business/check/order/mapper/RtuCheckOrderMapper.xml
  39. 127 89
      src/main/java/org/springblade/modules/business/check/order/wrapper/RtuCheckOrderWrapper.java
  40. 30 1
      src/main/java/org/springblade/modules/business/check/process/controller/RtuOrderProcessController.java
  41. 3 0
      src/main/java/org/springblade/modules/business/check/process/dto/OrderProcessInfoDTO.java
  42. 16 8
      src/main/java/org/springblade/modules/business/check/process/mapper/RtuOrderProcessMapper.xml
  43. 10 1
      src/main/java/org/springblade/modules/business/data/controller/RtuDataGroundController.java
  44. 10 2
      src/main/java/org/springblade/modules/business/data/controller/RtuDataRainController.java
  45. 10 2
      src/main/java/org/springblade/modules/business/data/controller/RtuDataRiverController.java
  46. 10 2
      src/main/java/org/springblade/modules/business/data/controller/RtuDataRsvrController.java
  47. 3 0
      src/main/java/org/springblade/modules/business/data/dto/RtuDataGroundDTO.java
  48. 3 0
      src/main/java/org/springblade/modules/business/data/dto/RtuDataRainDTO.java
  49. 3 0
      src/main/java/org/springblade/modules/business/data/dto/RtuDataRiverDTO.java
  50. 3 0
      src/main/java/org/springblade/modules/business/data/dto/RtuDataRsvrDTO.java
  51. 8 2
      src/main/java/org/springblade/modules/business/data/mapper/RtuDataGroundMapper.xml
  52. 12 4
      src/main/java/org/springblade/modules/business/data/mapper/RtuDataRainMapper.xml
  53. 8 2
      src/main/java/org/springblade/modules/business/data/mapper/RtuDataRiverMapper.xml
  54. 4 1
      src/main/java/org/springblade/modules/business/data/mapper/RtuDataRsvrMapper.xml
  55. 239 23
      src/main/java/org/springblade/modules/business/equipment/inspection/base/controller/EquipmentInspectionController.java
  56. 4 0
      src/main/java/org/springblade/modules/business/equipment/inspection/base/dto/EquipmentInspectionInfoDTO.java
  57. 32 5
      src/main/java/org/springblade/modules/business/equipment/inspection/base/mapper/EquipmentInspectionMapper.xml
  58. 41 3
      src/main/java/org/springblade/modules/business/equipment/inspection/report/controller/EquipmentInspectionReportController.java
  59. 2 1
      src/main/java/org/springblade/modules/business/equipment/inspection/report/dto/EquipmentInspectionReportDTO.java
  60. 40 14
      src/main/java/org/springblade/modules/business/equipment/inspection/report/mapper/EquipmentInspectionReportMapper.xml
  61. 29 48
      src/main/java/org/springblade/modules/business/equipment/inspection/report/wrapper/EquipmentInspectionReportWrapper.java
  62. 150 97
      src/main/java/org/springblade/modules/business/home/controller/HomeController.java
  63. 123 61
      src/main/java/org/springblade/modules/business/rtumanage/controller/RtuManageController.java
  64. 24 3
      src/main/java/org/springblade/modules/business/rtumanage/mapper/RtuManageMapper.xml
  65. 0 5
      src/main/java/org/springblade/modules/business/rtumanage/wrapper/RtuManageWrapper.java
  66. 10 2
      src/main/java/org/springblade/modules/business/warning/controller/RtuWarningController.java
  67. 2 1
      src/main/java/org/springblade/modules/business/warning/dto/RtuWarningInfoDTO.java
  68. 88 22
      src/main/java/org/springblade/modules/business/warning/mapper/RtuWarningMapper.xml
  69. 2 2
      src/main/java/org/springblade/modules/business/warning/service/IRtuWarningService.java
  70. 43 24
      src/main/java/org/springblade/modules/business/warning/wrapper/RtuWarningWrapper.java
  71. 4 0
      src/main/resources/application-dev.yml

+ 2 - 0
src/main/java/org/springblade/constant/BusinessConstant.java

@@ -72,4 +72,6 @@ public class BusinessConstant {
 	 * 帐号密码后缀
 	 */
 	public static final String ACCOUNT_PW_SUFFIX="@8282";
+
+	public static final Long DEPT_ROOT_ID =0L;
 }

+ 40 - 44
src/main/java/org/springblade/modules/baseinfo/org/controller/BaseInfoOrgController.java

@@ -1,12 +1,13 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.org.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -25,7 +26,7 @@ import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
 import org.springblade.modules.baseinfo.org.vo.OrgInfoVO;
 import org.springblade.modules.baseinfo.org.wrapper.OrgInfoWrapper;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
 import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.service.IDeptService;
 import org.springframework.transaction.annotation.Transactional;
@@ -50,25 +51,22 @@ import java.util.List;
 public class BaseInfoOrgController extends BladeController {
 	private final IDeptService deptService;
 	private final IDeptRegionService deptRegionService;
+	private final IBaseInfoRegionService regionService;
 
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "分页")
 	public R<List<OrgInfoVO>> list() {
 		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
-			LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
-			wrapper.eq(Dept::getIsDeleted, 0);
-			wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
-			List<Dept> pages = deptService.list(wrapper);
-			return R.data(OrgInfoWrapper.build().listVO(pages));
-		} else {
-			return R.data(null);
-		}
+		LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
+		wrapper.eq(Dept::getIsDeleted, 0);
+		wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
+		List<Dept> pages = deptService.list(wrapper);
+		return R.data(OrgInfoWrapper.build().listVO(pages));
 	}
 
 	/**
-	 * 多表联合查询自定义分页
+	 * 分页
 	 */
 	@GetMapping("/page")
 	@ApiImplicitParams({
@@ -78,18 +76,14 @@ public class BaseInfoOrgController extends BladeController {
 	@ApiOperation(value = "分页")
 	public R<IPage<OrgInfoVO>> page(@ApiIgnore Dept entity, Query query) {
 		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
-			LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
-			wrapper.eq(Dept::getIsDeleted, 0);
-			wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
-			if (entity.getDeptName() != null && entity.getDeptName().length() > 0) {
-				wrapper.like(Dept::getDeptName, entity.getDeptName());
-			}
-			IPage<Dept> pages = deptService.page(Condition.getPage(query), wrapper);
-			return R.data(OrgInfoWrapper.build().pageVO(pages));
-		} else {
-			return R.data(null);
+		LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
+		wrapper.eq(Dept::getIsDeleted, 0);
+		wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
+		if (entity.getDeptName() != null && entity.getDeptName().length() > 0) {
+			wrapper.like(Dept::getDeptName, entity.getDeptName());
 		}
+		IPage<Dept> pages = deptService.page(Condition.getPage(query), wrapper);
+		return R.data(OrgInfoWrapper.build().pageVO(pages));
 	}
 
 	/**
@@ -103,7 +97,6 @@ public class BaseInfoOrgController extends BladeController {
 		return R.data(vo);
 	}
 
-
 	/**
 	 * 新增
 	 */
@@ -115,33 +108,28 @@ public class BaseInfoOrgController extends BladeController {
 		BladeUser user = AuthUtil.getUser();
 		dept.setFullName(dept.getDeptName());
 		dept.setParentId(Func.toLong(user.getDeptId()));
-		Dept parentDept = deptService.getById(Func.toLong(user.getDeptId()));
+		Dept parentDept = this.deptService.getById(Func.toLong(user.getDeptId()));
 		dept.setAncestors(parentDept.getAncestors() + "," + parentDept.getId());
 		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
 			dept.setDeptCategory(2);
 		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
 			dept.setDeptCategory(1);
 		}
-		if (deptService.save(dept)) {
-			DeptRegionEntity deptRegionEntity = new DeptRegionEntity();
-			deptRegionEntity.setDeptId(dept.getId());
-			if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-				deptRegionEntity.setAdcd(dept.getAdcd());
-			} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
-				LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
-				deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
-				deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
-				DeptRegionEntity orgAdmindRegion = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
-				deptRegionEntity.setAdcd(orgAdmindRegion.getAdcd());
-			}
-			if (deptRegionService.save(deptRegionEntity)) {
-				return R.status(true);
-			} else {
-				return R.status(false);
-			}
-		} else {
-			return R.status(false);
+		this.deptService.save(dept);
+		DeptRegionEntity deptRegionEntity = new DeptRegionEntity();
+		deptRegionEntity.setDeptId(dept.getId());
+		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+			deptRegionEntity.setAdcd(dept.getAdcd());
+		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+			LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+			deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
+			deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+			DeptRegionEntity orgAdmindRegion = this.deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+			deptRegionEntity.setAdcd(orgAdmindRegion.getAdcd());
 		}
+		this.deptRegionService.save(deptRegionEntity);
+		this.regionService.updateAdminRegionCache();
+		return R.status(true);
 	}
 
 	/**
@@ -161,6 +149,7 @@ public class BaseInfoOrgController extends BladeController {
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入 Dept")
 	public R submit(@RequestBody Dept dept) {
+		deptService.saveOrUpdate(dept);
 		return R.status(deptService.saveOrUpdate(dept));
 	}
 
@@ -171,13 +160,20 @@ public class BaseInfoOrgController extends BladeController {
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入ID数组")
 	public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+		BladeUser user = AuthUtil.getUser();
 		if (null == ids) {
 			return R.status(false);
 		}
 		List<Long> list = Func.toLongList(ids);
 		for (Long id : list) {
 			deptService.removeById(id);
+			LambdaUpdateWrapper<DeptRegionEntity> updateWrapper = Wrappers.<DeptRegionEntity>update().lambda();
+			updateWrapper.set(DeptRegionEntity::getIsDeleted, 1);
+			updateWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
+			updateWrapper.eq(DeptRegionEntity::getDeptId, id);
+			deptRegionService.update(updateWrapper);
 		}
+		this.regionService.updateAdminRegionCache();
 		return R.status(true);
 	}
 }

+ 1 - 1
src/main/java/org/springblade/modules/baseinfo/org/dto/OrgInfoDTO.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2023/2/22
  */
 package org.springblade.modules.baseinfo.org.dto;

+ 1 - 1
src/main/java/org/springblade/modules/baseinfo/org/entity/DeptRegionEntity.java

@@ -1,7 +1,7 @@
 /**
  * Copyright
  * All right reserved.
- * 项目名称:
+ * 项目名称:运维系统
  * 创建日期:2022/3/9
  */
 package org.springblade.modules.baseinfo.org.entity;

+ 1 - 1
src/main/java/org/springblade/modules/baseinfo/org/mapper/DeptRegionMapper.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2023/2/23
  */
 package org.springblade.modules.baseinfo.org.mapper;

+ 1 - 1
src/main/java/org/springblade/modules/baseinfo/org/service/IDeptRegionService.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2023/2/23
  */
 package org.springblade.modules.baseinfo.org.service;

+ 1 - 1
src/main/java/org/springblade/modules/baseinfo/org/service/impl/DeptRegionServiceImpl.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2023/2/23
  */
 package org.springblade.modules.baseinfo.org.service.impl;

+ 3 - 1
src/main/java/org/springblade/modules/baseinfo/org/vo/OrgInfoVO.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.org.vo;
@@ -41,4 +41,6 @@ public class OrgInfoVO extends Dept {
 	 */
 	@ApiModelProperty(value = "区划名称")
 	private String adnm;
+
+
 }

+ 16 - 20
src/main/java/org/springblade/modules/baseinfo/org/wrapper/OrgInfoWrapper.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.org.wrapper;
@@ -17,7 +17,6 @@ import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
 import org.springblade.modules.baseinfo.org.vo.OrgInfoVO;
 import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
 import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
-import org.springblade.modules.baseinfo.region.vo.RegionInfoVO;
 import org.springblade.modules.system.entity.Dept;
 
 import java.util.Objects;
@@ -57,26 +56,23 @@ public class OrgInfoWrapper extends BaseEntityWrapper<Dept, OrgInfoVO> {
 
 	@Override
 	public OrgInfoVO entityVO(Dept entity) {
-		if(null != entity) {
-			OrgInfoVO orgInfoVO = Objects.requireNonNull(BeanUtil.copy(entity, OrgInfoVO.class));
-			orgInfoVO.setDictValue(entity.getDeptName());
-			LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
-			deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
-			deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, entity.getId());
-			DeptRegionEntity deptRegionEntity = getDeptRegionService().getOne(deptRegionEntityLambdaQueryWrapper);
-			if (deptRegionEntity!= null){
-				LambdaQueryWrapper<RegionInfoEntity> regionInfoEntityLambdaQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-				regionInfoEntityLambdaQueryWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
-				regionInfoEntityLambdaQueryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
-				RegionInfoEntity regionInfoEntity = getBaseInfoRegionService().getOne(regionInfoEntityLambdaQueryWrapper);
-				if(null != regionInfoEntity) {
-					orgInfoVO.setAdcd(regionInfoEntity.getAdcd());
-					orgInfoVO.setAdnm(regionInfoEntity.getAdnm());
-				}
+		OrgInfoVO orgInfoVO = Objects.requireNonNull(BeanUtil.copy(entity, OrgInfoVO.class));
+		orgInfoVO.setDictValue(entity.getDeptName());
+		LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+		deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
+		deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, entity.getId());
+		DeptRegionEntity deptRegionEntity = getDeptRegionService().getOne(deptRegionEntityLambdaQueryWrapper);
+		if (deptRegionEntity != null) {
+			LambdaQueryWrapper<RegionInfoEntity> regionInfoEntityLambdaQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+			regionInfoEntityLambdaQueryWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
+			regionInfoEntityLambdaQueryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+			RegionInfoEntity regionInfoEntity = getBaseInfoRegionService().getOne(regionInfoEntityLambdaQueryWrapper);
+			if (null != regionInfoEntity) {
+				orgInfoVO.setAdcd(regionInfoEntity.getAdcd());
+				orgInfoVO.setAdnm(regionInfoEntity.getAdnm());
 			}
-			return orgInfoVO;
 		}
-		return null;
+		return orgInfoVO;
 	}
 
 }

+ 282 - 162
src/main/java/org/springblade/modules/baseinfo/region/controller/BaseInfoRegionController.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.region.controller;
@@ -12,8 +12,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.mysql.cj.log.Log;
 import io.swagger.annotations.*;
-import lombok.AllArgsConstructor;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springblade.constant.BusinessConstant;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
@@ -26,21 +28,20 @@ import org.springblade.etl.service.IEtlAdCdService;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
 import org.springblade.modules.baseinfo.region.dto.RegionInfoDTO;
-import org.springblade.modules.baseinfo.region.entity.OrgRegionInfoEntity;
 import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
 import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
 import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
 import org.springblade.modules.baseinfo.region.service.IOrgRegionInfoService;
 import org.springblade.modules.baseinfo.region.vo.RegionInfoVO;
 import org.springblade.modules.baseinfo.region.wrapper.RegionInfoWrapper;
+import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.service.IDeptService;
-import org.springblade.modules.system.service.IRegionService;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.web.bind.annotation.*;
-import springfox.documentation.annotations.ApiIgnore;
 
+import javax.annotation.Resource;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -54,20 +55,57 @@ import java.util.List;
  * Remark:认为有必要的其他信息
  */
 @RestController
+@Slf4j
 @RequestMapping("galaxy-business/baseinfo/region")
-@AllArgsConstructor
+@RequiredArgsConstructor
 @Api(value = "行政区划管理", tags = "行政区划管理")
 public class BaseInfoRegionController extends BladeController {
 	private final IBaseInfoRegionService baseInfoRegionService;
 	private final IDeptService deptService;
-	private final IRegionService regionService;
 	private final IEtlAdCdService etlAdCdService;
-	private final IOrgRegionInfoService iOrgRegionInfoService;
 	private final IDeptRegionService deptRegionService;
 
-	@Autowired
+	@Value("${region-ver-config.ver}")
+	private String regionVer;
+
+	@Value("${region-ver-config.original-ver}")
+	private String originalRgionVer;
+
+	@Resource
 	private RedisTemplate redisTemplate;
 
+	/**
+	 * 排除行政区划
+	 *
+	 * @param dto
+	 * @return
+	 */
+	@PostMapping("/exclude")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "修改", notes = "传入 RegionInfoDTO")
+	public R excludeRegion(@RequestBody RegionInfoDTO dto) {
+		this.baseInfoRegionService.excludeRegion(dto);
+		this.baseInfoRegionService.updateAdminRegionCache();
+		this.baseInfoRegionService.updateDeptRegionCache(dto.getDeptId());
+		return R.status(true);
+	}
+
+	/**
+	 * 重置行政区划
+	 *
+	 * @param dto
+	 * @return
+	 */
+	@PostMapping("/reset")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "修改", notes = "传入 RegionInfoDTO")
+	public R resetRegion(@RequestBody RegionInfoDTO dto) {
+		this.baseInfoRegionService.resetRegion(dto);
+		this.baseInfoRegionService.updateAdminRegionCache();
+		this.baseInfoRegionService.updateDeptRegionCache(dto.getDeptId());
+		return R.status(true);
+	}
+
 
 	@GetMapping("/children/list")
 	@ApiOperationSupport(order = 1)
@@ -105,59 +143,7 @@ public class BaseInfoRegionController extends BladeController {
 		return R.data(list);
 	}
 
-	@GetMapping("/lazy-tree")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "adcd", value = "行政区划代码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "树")
-	public R<List<RegionTreeNodeEntity>> lazyTree(@ApiIgnore OrgRegionInfoEntity orgRegionInfoEntity) {
-		List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
-			LambdaQueryWrapper<OrgRegionInfoEntity> queryWrapper = Wrappers.<OrgRegionInfoEntity>query().lambda();
-			if (orgRegionInfoEntity.getAdcd() != null) {
-				queryWrapper.eq(OrgRegionInfoEntity::getParentCode, orgRegionInfoEntity.getAdcd());
-			} else {
-				queryWrapper.eq(OrgRegionInfoEntity::getParentCode, BusinessConstant.REGION_NM_ADCODE);
-			}
-			queryWrapper.eq(OrgRegionInfoEntity::getDeptId, Func.toLong(user.getDeptId()));
-			queryWrapper.eq(OrgRegionInfoEntity::getRegionActive, 1);
-			List<OrgRegionInfoEntity> list = iOrgRegionInfoService.list(queryWrapper);
-			for (OrgRegionInfoEntity entity : list) {
-				if (entity.getRtuCount() > 0) {
-					RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
-					nodeEntity.setId(entity.getAdcd());
-					nodeEntity.setValue(entity.getAdcd());
-					nodeEntity.setTitle(entity.getAdnm());
-					nodeEntity.setKey(entity.getAdcd());
-					nodeEntity.setParentId(entity.getParentCode());
-
-					nodeEntities.add(nodeEntity);
-				}
-			}
-		} else {
-			LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-			if (orgRegionInfoEntity.getAdcd() != null) {
-				queryWrapper.eq(RegionInfoEntity::getParentCode, orgRegionInfoEntity.getAdcd());
-			} else {
-				queryWrapper.eq(RegionInfoEntity::getParentCode, BusinessConstant.REGION_NM_ADCODE);
-			}
-			List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
-			for (RegionInfoEntity entity : list) {
-				RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
-				nodeEntity.setId(entity.getAdcd());
-				nodeEntity.setValue(entity.getAdcd());
-				nodeEntity.setTitle(entity.getAdnm());
-				nodeEntity.setKey(entity.getAdcd());
-				nodeEntity.setParentId(entity.getParentCode());
-				nodeEntities.add(nodeEntity);
-			}
-		}
-		return R.data(nodeEntities);
-	}
-
-	@GetMapping("/tree")
+	@GetMapping("/original/tree")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "树")
 	public R<List<RegionTreeNodeEntity>> regionTree() {
@@ -165,13 +151,21 @@ public class BaseInfoRegionController extends BladeController {
 		List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
 		BladeUser user = AuthUtil.getUser();
 		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			String regionJson = opsHash.get("region.admin");
-			if (null != regionJson) {
-				nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
-				});
+			boolean updateRegion = false;
+			String redisRegionVer = opsHash.get("region.original.ver.admin");
+			if (null == redisRegionVer || redisRegionVer.length() == 0 || !redisRegionVer.equals(this.originalRgionVer)) {
+				updateRegion = true;
 			} else {
+				String regionJson = opsHash.get("region.original.admin");
+				if (null != regionJson) {
+					nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
+					});
+				} else {
+					updateRegion = true;
+				}
+			}
+			if (updateRegion) {
 				LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-				queryWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
 				queryWrapper.eq(RegionInfoEntity::getParentCode, BusinessConstant.REGION_ROOT_ADCODE);
 				List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
 				for (RegionInfoEntity entity : list) {
@@ -182,33 +176,38 @@ public class BaseInfoRegionController extends BladeController {
 					nodeEntity.setText(entity.getAdnm());
 					nodeEntity.setKey(entity.getAdcd());
 					nodeEntity.setParentId(entity.getParentCode());
-					getChildren(nodeEntity, entity);
-					if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
-						nodeEntity.setHasChildren(true);
-					} else {
-						nodeEntity.setHasChildren(false);
+					if (getOriginalTreeChildren(nodeEntity, entity)) {
+						if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
+							nodeEntity.setHasChildren(true);
+						} else {
+							nodeEntity.setHasChildren(false);
+						}
 					}
 					nodeEntities.add(nodeEntity);
 				}
-				opsHash.set("region.admin", JSON.toJSONString(nodeEntities));
+				opsHash.set("region.original.admin", JSON.toJSONString(nodeEntities));
+				opsHash.set("region.original.ver.admin", this.originalRgionVer);
 			}
 		} else {
-			String regionJson = opsHash.get("region." + user.getDeptId());
-			if (null != regionJson) {
-				nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
-				});
+			boolean updateRegion = false;
+			String redisRegionVer = opsHash.get("region.original.ver." + user.getDeptId());
+			if (null == redisRegionVer || redisRegionVer.length() == 0 || !redisRegionVer.equals(this.originalRgionVer)) {
+				updateRegion = true;
 			} else {
+				String regionJson = opsHash.get("region.original." + user.getDeptId());
+				if (null != regionJson) {
+					nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
+					});
+				} else {
+					updateRegion = true;
+				}
+			}
+			if (updateRegion) {
 				LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
-				deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
 				deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
 				DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 				LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-				queryWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
-				if (null == deptRegionEntity) {
-					queryWrapper.eq(RegionInfoEntity::getAdcd, BusinessConstant.REGION_NM_ADCODE);
-				} else {
-					queryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
-				}
+				queryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
 				List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
 				for (RegionInfoEntity entity : list) {
 					RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
@@ -218,55 +217,221 @@ public class BaseInfoRegionController extends BladeController {
 					nodeEntity.setText(entity.getAdnm());
 					nodeEntity.setKey(entity.getAdcd());
 					nodeEntity.setParentId(entity.getParentCode());
-					getChildren(nodeEntity, entity);
-					if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
-						nodeEntity.setHasChildren(true);
-					} else {
-						nodeEntity.setHasChildren(false);
+					if (getOriginalTreeChildren(nodeEntity, entity)) {
+						if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
+							nodeEntity.setHasChildren(true);
+						} else {
+							nodeEntity.setHasChildren(false);
+						}
 					}
 					nodeEntities.add(nodeEntity);
 				}
-				opsHash.set("region." + user.getDeptId(), JSON.toJSONString(nodeEntities));
+				opsHash.set("region.original." + user.getDeptId(), JSON.toJSONString(nodeEntities));
+				opsHash.set("region.original.ver." + user.getDeptId(), this.originalRgionVer);
 			}
 		}
 		return R.data(nodeEntities);
 	}
 
 
-	private boolean getChildren(RegionTreeNodeEntity nodeEntity, OrgRegionInfoEntity regionInfoEntity) {
-		LambdaQueryWrapper<OrgRegionInfoEntity> queryWrapper = Wrappers.<OrgRegionInfoEntity>query().lambda();
-		queryWrapper.eq(OrgRegionInfoEntity::getParentCode, regionInfoEntity.getAdcd());
-		queryWrapper.eq(OrgRegionInfoEntity::getDeptId, regionInfoEntity.getDeptId());
-		queryWrapper.eq(OrgRegionInfoEntity::getRegionActive, 1);
-		List<OrgRegionInfoEntity> list = iOrgRegionInfoService.list(queryWrapper);
+	@GetMapping("/original/tree/{adcd}")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "树")
+	public R<List<RegionTreeNodeEntity>> regionTree(@PathVariable(name = "adcd") String adcd) {
+		List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+		LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+		queryWrapper.eq(RegionInfoEntity::getAdcd, adcd);
+		List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
+		for (RegionInfoEntity entity : list) {
+			RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
+			nodeEntity.setId(entity.getAdcd());
+			nodeEntity.setValue(entity.getAdcd());
+			nodeEntity.setTitle(entity.getAdnm());
+			nodeEntity.setText(entity.getAdnm());
+			nodeEntity.setKey(entity.getAdcd());
+			nodeEntity.setParentId(entity.getParentCode());
+			if (getOriginalTreeChildren(nodeEntity, entity)) {
+				if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
+					nodeEntity.setHasChildren(true);
+				} else {
+					nodeEntity.setHasChildren(false);
+				}
+			}
+			nodeEntities.add(nodeEntity);
+		}
+		return R.data(nodeEntities);
+	}
+
+	private boolean getOriginalTreeChildren(RegionTreeNodeEntity nodeEntity, RegionInfoEntity regionInfoEntity) {
+		LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+		queryWrapper.eq(RegionInfoEntity::getParentCode, regionInfoEntity.getAdcd());
+		List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
 		if (null != list && list.size() > 0) {
 			List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
-			for (OrgRegionInfoEntity entity : list) {
-				if (entity.getRtuCount() > 0) {
-					RegionTreeNodeEntity node = new RegionTreeNodeEntity();
-					node.setId(entity.getAdcd());
-					node.setValue(entity.getAdcd());
-					node.setTitle(entity.getAdnm());
-					node.setText(entity.getAdnm());
-					node.setKey(entity.getAdcd());
-					node.setParentId(entity.getParentCode());
-					getChildren(node, entity);
+			for (RegionInfoEntity entity : list) {
+				RegionTreeNodeEntity node = new RegionTreeNodeEntity();
+				node.setId(entity.getAdcd());
+				node.setValue(entity.getAdcd());
+				node.setTitle(entity.getAdnm());
+				node.setText(entity.getAdnm());
+				node.setKey(entity.getAdcd());
+				node.setParentId(entity.getParentCode());
+				if (getOriginalTreeChildren(node, entity)) {
 					if (node.getChildren() != null && node.getChildren().size() > 0) {
 						node.setHasChildren(true);
 					} else {
 						node.setHasChildren(false);
 					}
-					nodeEntities.add(node);
 				}
+				nodeEntities.add(node);
 			}
 			nodeEntity.setChildren(nodeEntities);
 		}
 		return true;
 	}
 
-	private boolean getChildren(RegionTreeNodeEntity nodeEntity, RegionInfoEntity regionInfoEntity) {
+	@GetMapping("/tree")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "树")
+	public R<List<RegionTreeNodeEntity>> virtuallyRegionTree() {
+		ValueOperations<String, String> opsHash = redisTemplate.opsForValue();
+		List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+		BladeUser user = AuthUtil.getUser();
+		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+			String redisRegionVer = opsHash.get("region.ver.admin");
+			boolean updateRegion = false;
+			if (null == redisRegionVer || redisRegionVer.length() == 0 || !redisRegionVer.equals(this.regionVer)) {
+				updateRegion = true;
+			} else {
+				String regionJson = opsHash.get("region.admin");
+				if (null != regionJson) {
+					nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
+					});
+				} else {
+					updateRegion = true;
+				}
+			}
+			if (updateRegion) {
+				//根节点
+				LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+				queryWrapper.eq(RegionInfoEntity::getAdcd, BusinessConstant.REGION_NM_ADCODE);
+				RegionInfoEntity nmRegion = baseInfoRegionService.getOne(queryWrapper);
+				RegionTreeNodeEntity nmEntity = new RegionTreeNodeEntity();
+				nmEntity.setId(nmRegion.getAdcd());
+				nmEntity.setValue(nmRegion.getAdcd());
+				nmEntity.setTitle(nmRegion.getAdnm());
+				nmEntity.setText(nmRegion.getAdnm());
+				nmEntity.setKey(nmRegion.getAdcd());
+				nmEntity.setExclude(0);
+				nmEntity.setParentId(nmRegion.getParentCode());
+				//查找子节点
+				LambdaQueryWrapper<Dept> deptqueryWrapper = Wrappers.<Dept>query().lambda();
+				deptqueryWrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
+				List<Dept> deptList = deptService.list(deptqueryWrapper);
+				if (null != deptList) {
+					List<RegionTreeNodeEntity> subNodeEntities = new LinkedList<>();
+					for (Dept dept : deptList) {
+						LambdaQueryWrapper<DeptRegionEntity> deptRegionQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+						deptRegionQueryWrapper.eq(DeptRegionEntity::getDeptId, dept.getId());
+						DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionQueryWrapper);
+						if (null != deptRegionEntity) {
+							LambdaQueryWrapper<RegionInfoEntity> nodeQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+							nodeQueryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+							RegionInfoEntity nodeRegion = baseInfoRegionService.getOne(nodeQueryWrapper);
+							if (null != nodeRegion) {
+								RegionTreeNodeEntity node = new RegionTreeNodeEntity();
+								node.setId(nodeRegion.getAdcd());
+								node.setValue(nodeRegion.getAdcd());
+								node.setTitle(nodeRegion.getAdnm());
+								node.setText(nodeRegion.getAdnm());
+								node.setKey(nodeRegion.getAdcd());
+								int excludeCode = 0;
+								if (nodeRegion.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)) {
+									excludeCode = 1;
+								}
+								node.setExclude(excludeCode);
+								node.setParentId(nodeRegion.getParentCode());
+								if (getChildren(node, nodeRegion, excludeCode)) {
+									if (node.getChildren() != null && node.getChildren().size() > 0) {
+										node.setHasChildren(true);
+									} else {
+										node.setHasChildren(false);
+									}
+								}
+								subNodeEntities.add(node);
+							}
+						}
+					}
+					nmEntity.setChildren(subNodeEntities);
+				}
+				if (nmEntity.getChildren() != null && nmEntity.getChildren().size() > 0) {
+					nmEntity.setHasChildren(true);
+				} else {
+					nmEntity.setHasChildren(false);
+				}
+				nodeEntities.add(nmEntity);
+				//更新缓存
+				opsHash.set("region.admin", JSON.toJSONString(nodeEntities));
+				opsHash.set("region.ver.admin", this.regionVer);
+			}
+		} else {
+			String redisRegionVer = opsHash.get("region.ver." + user.getDeptId());
+			boolean updateRegion = false;
+			if (null == redisRegionVer || redisRegionVer.length() == 0 || !redisRegionVer.equals(this.regionVer)) {
+				updateRegion = true;
+			} else {
+				String regionJson = opsHash.get("region." + user.getDeptId());
+				if (null != regionJson) {
+					nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
+					});
+				} else {
+					updateRegion = true;
+				}
+			}
+			if (updateRegion) {
+				//根节点
+				LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+				deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+				DeptRegionEntity rootDeptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+				if (null != rootDeptRegionEntity) {
+					LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+					queryWrapper.eq(RegionInfoEntity::getAdcd, rootDeptRegionEntity.getAdcd());
+					RegionInfoEntity orgRegion = baseInfoRegionService.getOne(queryWrapper);
+					int excludeCode = 0;
+					if (orgRegion.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)) {
+						excludeCode = 1;
+					}
+					RegionTreeNodeEntity orgEntity = new RegionTreeNodeEntity();
+					orgEntity.setId(orgRegion.getAdcd());
+					orgEntity.setValue(orgRegion.getAdcd());
+					orgEntity.setTitle(orgRegion.getAdnm());
+					orgEntity.setText(orgRegion.getAdnm());
+					orgEntity.setKey(orgRegion.getAdcd());
+					orgEntity.setExclude(excludeCode);
+					orgEntity.setParentId(orgRegion.getParentCode());
+					//查找子节点
+					if (getChildren(orgEntity, orgRegion, excludeCode)) {
+						if (orgEntity.getChildren() != null && orgEntity.getChildren().size() > 0) {
+							orgEntity.setHasChildren(true);
+						} else {
+							orgEntity.setHasChildren(false);
+						}
+					}
+					nodeEntities.add(orgEntity);
+					opsHash.set("region." + user.getDeptId(), JSON.toJSONString(nodeEntities));
+					opsHash.set("region.ver." + user.getDeptId(), this.regionVer);
+				}
+			}
+		}
+		return R.data(nodeEntities);
+	}
+
+	private boolean getChildren(RegionTreeNodeEntity nodeEntity, RegionInfoEntity regionInfoEntity, int exclude) {
 		LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
 		queryWrapper.eq(RegionInfoEntity::getParentCode, regionInfoEntity.getAdcd());
+		if (exclude == 1) {
+			queryWrapper.eq(RegionInfoEntity::getExcludeAd, 0);
+		}
 		List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
 		if (null != list && list.size() > 0) {
 			List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
@@ -277,12 +442,14 @@ public class BaseInfoRegionController extends BladeController {
 				node.setTitle(entity.getAdnm());
 				node.setText(entity.getAdnm());
 				node.setKey(entity.getAdcd());
+				node.setExclude(exclude);
 				node.setParentId(entity.getParentCode());
-				getChildren(node, entity);
-				if (node.getChildren() != null && node.getChildren().size() > 0) {
-					node.setHasChildren(true);
-				} else {
-					node.setHasChildren(false);
+				if (getChildren(node, entity, exclude)) {
+					if (node.getChildren() != null && node.getChildren().size() > 0) {
+						node.setHasChildren(true);
+					} else {
+						node.setHasChildren(false);
+					}
 				}
 				nodeEntities.add(node);
 			}
@@ -304,52 +471,6 @@ public class BaseInfoRegionController extends BladeController {
 		return R.data(RegionInfoWrapper.build().entityVO(detail));
 	}
 
-	/**
-	 * 新增或修改
-	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "新增或修改", notes = "传入RegionInfoDTO")
-	public R submit(@RequestBody RegionInfoDTO regionInfoDTO) {
-		LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-		queryWrapper.eq(RegionInfoEntity::getAdcd, regionInfoDTO.getCode());
-		queryWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
-		RegionInfoEntity entity = baseInfoRegionService.getOne(queryWrapper);
-		boolean status = false;
-		if (entity != null) {
-			entity.setAdcd(regionInfoDTO.getCode());
-			entity.setAdnm(regionInfoDTO.getName());
-			entity.setStatus(1);
-			entity.setIsDeleted(0);
-			status = baseInfoRegionService.updateById(entity);
-		} else {
-			entity = new RegionInfoEntity();
-			entity.setAdcd(regionInfoDTO.getCode());
-			entity.setAdnm(regionInfoDTO.getName());
-			entity.setParentCode(regionInfoDTO.getParentCode());
-			entity.setStatus(1);
-			entity.setIsDeleted(0);
-			entity.setAncestors(regionInfoDTO.getAncestors() + "," + regionInfoDTO.getParentCode());
-			status = baseInfoRegionService.save(entity);
-		}
-//		dataTaskManager.deptUpdateTask();
-		return R.status(status);
-	}
-
-	/**
-	 * 删除
-	 */
-	@PostMapping("/remove")
-	@ApiOperationSupport(order = 7)
-	@ApiOperation(value = "逻辑删除", notes = "传入ID数组")
-	public R remove(@ApiParam(value = "主键集合") @RequestParam String id) {
-		LambdaUpdateWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>update().lambda();
-		queryWrapper.eq(RegionInfoEntity::getAdcd, id);
-		boolean temp = baseInfoRegionService.remove(queryWrapper);
-//		dataTaskManager.deptUpdateTask();
-		return R.status(temp);
-	}
-
 	/**
 	 * 从宏图数据导入
 	 */
@@ -387,9 +508,8 @@ public class BaseInfoRegionController extends BladeController {
 				regionInfoEntity.setIsDeleted(0);
 				baseInfoRegionService.save(regionInfoEntity);
 			}
-			importAdcd(regionInfoDTO.getRegionLevel(), 2, code, "00," + code);
+			this.importAdcd(regionInfoDTO.getRegionLevel(), 2, code, "00," + code);
 		}
-//		dataTaskManager.deptUpdateTask();
 		return R.status(true);
 	}
 

+ 4 - 0
src/main/java/org/springblade/modules/baseinfo/region/dto/RegionInfoDTO.java

@@ -48,4 +48,8 @@ public class RegionInfoDTO extends RegionInfoEntity {
 	@ApiModelProperty(value = "是否覆盖")
 	private Integer isCovered;
 
+	@ApiModelProperty(value = "部门ID")
+	private Long deptId;
+
+
 }

+ 3 - 15
src/main/java/org/springblade/modules/baseinfo/region/entity/OrgRegionInfoEntity.java

@@ -1,7 +1,7 @@
 /**
  * Copyright
  * All right reserved.
- * 项目名称:
+ * 项目名称: 运维系统
  * 创建日期:2022/3/9
  */
 package org.springblade.modules.baseinfo.region.entity;
@@ -14,13 +14,13 @@ import org.springblade.core.mp.base.BaseEntity;
 
 
 /**
- * 运维单位实体
+ * 运维单位行政机构信息
  *
  * @author swp
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-@TableName("data_dept_region_cache")
+@TableName("base_data_custom_region")
 public class OrgRegionInfoEntity extends BaseEntity {
 
 	private static final long serialVersionUID = 1L;
@@ -66,16 +66,4 @@ public class OrgRegionInfoEntity extends BaseEntity {
 	 */
 	@ApiModelProperty(value = "政区类型")
 	private String addType;
-
-	/**
-	 * 行政区下测站数量
-	 */
-	@ApiModelProperty(value = "行政区下测站数量")
-	private Long rtuCount;
-
-	/**
-	 * 行政区下测站数量
-	 */
-	@ApiModelProperty(value = "行政区下测站数量")
-	private Integer regionActive;
 }

+ 7 - 1
src/main/java/org/springblade/modules/baseinfo/region/entity/RegionInfoEntity.java

@@ -1,7 +1,7 @@
 /**
  * Copyright
  * All right reserved.
- * 项目名称:
+ * 项目名称: 运维系统
  * 创建日期:2022/3/9
  */
 package org.springblade.modules.baseinfo.region.entity;
@@ -60,4 +60,10 @@ public class RegionInfoEntity extends BaseEntity {
 	 */
 	@ApiModelProperty(value = "政区类型")
 	private String addType;
+
+	/**
+	 * 排除: 默认不排除 0 , 排除 1
+	 */
+	@ApiModelProperty(value = "排除行政区")
+	private int  excludeAd;
 }

+ 5 - 2
src/main/java/org/springblade/modules/baseinfo/region/entity/RegionTreeNodeEntity.java

@@ -35,10 +35,13 @@ public class RegionTreeNodeEntity {
 	private String value;
 
 	@ApiModelProperty("标题")
-	private String  title;
+	private String title;
 
 	@ApiModelProperty("标题")
-	private String  text;
+	private String text;
+
+	@ApiModelProperty("此节点是否排除")
+	private Integer exclude;
 
 	@ApiModelProperty("子节点")
 	List<RegionTreeNodeEntity> children;

+ 2 - 3
src/main/java/org/springblade/modules/baseinfo/region/mapper/OrgRegionInfoMapper.java

@@ -1,13 +1,12 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.region.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Param;
 import org.springblade.modules.baseinfo.region.entity.OrgRegionInfoEntity;
 
 /***
@@ -19,5 +18,5 @@ import org.springblade.modules.baseinfo.region.entity.OrgRegionInfoEntity;
  * Remark:认为有必要的其他信息
  */
 public interface OrgRegionInfoMapper extends BaseMapper<OrgRegionInfoEntity> {
-	OrgRegionInfoEntity queryOrgRegionInfo(@Param("orgId") Long orgId, @Param("adCode") String adCode);
+
 }

+ 0 - 21
src/main/java/org/springblade/modules/baseinfo/region/mapper/OrgRegionInfoMapper.xml

@@ -4,32 +4,11 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="orgRegionResultMap" type="org.springblade.modules.baseinfo.region.entity.OrgRegionInfoEntity">
-
         <result column="dept_id" property="deptId"/>
         <result column="adcd" property="adcd"/>
         <result column="adnm" property="adnm"/>
         <result column="parent_code" property="parentCode"/>
         <result column="ancestors" property="ancestors"/>
         <result column="add_type" property="addType"/>
-        <result column="rtu_count" property="rtuCount"/>
-        <result column="region_active" property="regionActive"/>
-
     </resultMap>
-
-    <select id="queryOrgRegionInfo" resultMap="orgRegionResultMap">
-        SELECT
-        n.*
-        FROM
-        data_dept_region_cache n
-        WHERE
-        n.is_deleted = 0
-        <if test="orgId!=null">
-            and n.dept_id = #{orgId}
-        </if>
-        <if test="adCode!=null">
-            and n.adcd =#{adCode}
-        </if>
-       limit 1
-
-    </select>
 </mapper>

+ 1 - 0
src/main/java/org/springblade/modules/baseinfo/region/mapper/RegionInfoMapper.xml

@@ -9,6 +9,7 @@
         <result column="parent_code" property="parentCode"/>
         <result column="ancestors" property="ancestors"/>
         <result column="add_type" property="addType"/>
+        <result column="exclude_ad" property="excludeAd"/>
     </resultMap>
 
 </mapper>

+ 40 - 1
src/main/java/org/springblade/modules/baseinfo/region/service/IBaseInfoRegionService.java

@@ -1,14 +1,18 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.region.service;
 
 
 import org.springblade.core.mp.base.BaseService;
+import org.springblade.modules.baseinfo.region.dto.RegionInfoDTO;
 import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+
+import java.util.List;
 
 
 /***
@@ -21,4 +25,39 @@ import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
  */
 public interface IBaseInfoRegionService extends BaseService<RegionInfoEntity> {
 
+	/**
+	 * 排除行政区划
+	 * @param dto
+	 * @return
+	 */
+    boolean excludeRegion(RegionInfoDTO dto);
+
+	/**
+	 * 重置行政区划
+	 * @param dto
+	 * @return
+	 */
+	boolean resetRegion(RegionInfoDTO dto);
+
+	/**
+	 * 更新系统管理员行政区划树
+	 * @return
+	 */
+	boolean updateAdminRegionCache();
+
+	/**
+	 * 更新部门行政区划树
+	 * @param deptId
+	 * @return
+	 */
+	boolean updateDeptRegionCache(Long deptId);
+
+	/**
+	 * 查找行政区划节点信息
+	 * @param roleName
+	 * @param deptId
+	 * @param adcd
+	 * @return
+	 */
+	RegionTreeNodeEntity getRegionNode(String roleName,String deptId,String adcd);
 }

+ 6 - 2
src/main/java/org/springblade/modules/baseinfo/region/service/IOrgRegionInfoService.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.region.service;
@@ -18,5 +18,9 @@ import org.springblade.modules.baseinfo.region.entity.OrgRegionInfoEntity;
  * Remark:认为有必要的其他信息
  */
 public interface IOrgRegionInfoService extends BaseService<OrgRegionInfoEntity> {
-	OrgRegionInfoEntity getOrgRegionInfo(Long orgId,String adCode);
+	/**
+	 * 更新自定义行政机构信息
+	 */
+	boolean createCustomRegion(Long deptId,String adCode);
+	boolean removeCustomRegion(Long deptId);
 }

+ 85 - 1
src/main/java/org/springblade/modules/baseinfo/region/service/impl/BaseInfoRegionServiceImpl.java

@@ -1,17 +1,31 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.region.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.constant.BusinessConstant;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.baseinfo.region.dto.RegionInfoDTO;
 import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
 import org.springblade.modules.baseinfo.region.mapper.RegionInfoMapper;
 import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.List;
+
+
 /***
  * Date:2022/8/22
  * Title:文件所属模块(必须填写)
@@ -23,4 +37,74 @@ import org.springframework.stereotype.Service;
 @Service
 public class BaseInfoRegionServiceImpl extends BaseServiceImpl<RegionInfoMapper, RegionInfoEntity> implements IBaseInfoRegionService {
 
+	@Resource
+	private RedisTemplate redisTemplate;
+
+	@Override
+	public boolean excludeRegion(RegionInfoDTO dto) {
+		LambdaUpdateWrapper<RegionInfoEntity> updateWrapper = Wrappers.<RegionInfoEntity>update().lambda();
+		updateWrapper.set(RegionInfoEntity::getExcludeAd, 1);
+		updateWrapper.and(wrapper -> wrapper.or().eq(RegionInfoEntity::getAdcd, dto.getAdcd()).or().like(RegionInfoEntity::getAncestors, dto.getAdcd()));
+		return this.update(updateWrapper);
+	}
+
+	@Override
+	public boolean resetRegion(RegionInfoDTO dto) {
+		LambdaUpdateWrapper<RegionInfoEntity> updateWrapper = Wrappers.<RegionInfoEntity>update().lambda();
+		updateWrapper.set(RegionInfoEntity::getExcludeAd, 0);
+		updateWrapper.and(wrapper -> wrapper.or().eq(RegionInfoEntity::getAdcd, dto.getAdcd()).or().like(RegionInfoEntity::getAncestors, dto.getAdcd()));
+		return this.update(updateWrapper);
+	}
+
+	@Override
+	public boolean updateAdminRegionCache() {
+		ValueOperations<String, String> opsHash = redisTemplate.opsForValue();
+		opsHash.set("region.ver.admin", "");
+		return true;
+	}
+
+	@Override
+	public boolean updateDeptRegionCache(Long deptId) {
+		ValueOperations<String, String> opsHash = redisTemplate.opsForValue();
+		opsHash.set("region.ver."+ Func.toStr(deptId), "");
+		return true;
+	}
+
+	private RegionTreeNodeEntity getNode(List<RegionTreeNodeEntity> list, String adcd) {
+		if (null != list && list.size() > 0) {
+			for (RegionTreeNodeEntity entity : list) {
+				if (entity.getValue().equals(adcd)) {
+					return entity;
+				} else {
+					RegionTreeNodeEntity node = getNode(entity.getChildren(), adcd);
+					if (null != node) {
+						return node;
+					}
+				}
+			}
+		}
+		return null;
+	}
+
+	@Override
+	public RegionTreeNodeEntity getRegionNode(String roleName, String deptId, String adcd) {
+		ValueOperations<String, String> opsHash = redisTemplate.opsForValue();
+		if (BusinessConstant.ROLE_SYS_ADMIN.equals(roleName)) {
+			String regionJson = opsHash.get("region.admin");
+			if (null != regionJson) {
+				List<RegionTreeNodeEntity> nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
+				});
+				return this.getNode(nodeEntities, adcd);
+			}
+		} else {
+			String regionJson = opsHash.get("region." + deptId);
+			if (null != regionJson) {
+				List<RegionTreeNodeEntity> nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
+				});
+				return this.getNode(nodeEntities, adcd);
+			}
+		}
+		return null;
+	}
+
 }

+ 9 - 3
src/main/java/org/springblade/modules/baseinfo/region/service/impl/OrgRegionInfoServiceImpl.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.region.service.impl;
@@ -25,7 +25,13 @@ public class OrgRegionInfoServiceImpl extends BaseServiceImpl<OrgRegionInfoMappe
 
 
 	@Override
-	public OrgRegionInfoEntity getOrgRegionInfo(Long orgId, String adCode) {
-		return baseMapper.queryOrgRegionInfo(orgId,adCode);
+	public boolean createCustomRegion(Long deptId,String adCode) {
+
+		return false;
+	}
+
+	@Override
+	public boolean removeCustomRegion(Long deptId) {
+		return false;
 	}
 }

+ 15 - 14
src/main/java/org/springblade/modules/baseinfo/rtu/controller/RtuBaseInfoController.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.rtu.controller;
@@ -27,6 +27,7 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
 import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
 import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
 import org.springblade.modules.baseinfo.rtu.dto.RtuInfoDTO;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
@@ -79,7 +80,7 @@ public class RtuBaseInfoController extends BladeController {
 	private final IRtuDataRsvrService rtuDataRsvrService;
 	private final IDictBizService dictBizService;
 	private final IDeptRegionService deptRegionService;
-	private final IBaseInfoRegionService baseInfoRegionService;
+	private final IBaseInfoRegionService regionService;
 
 
 	/**
@@ -104,7 +105,6 @@ public class RtuBaseInfoController extends BladeController {
 			rtuInfoDTO.setIsVideo(1);
 		}
 		LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
-		wrapper.eq(RtuInfoEntity::getIsDeleted, 0);
 		if (null != rtuInfoDTO.getRtuName()) {
 			wrapper.like(RtuInfoEntity::getRtuName, rtuInfoDTO.getRtuName());
 		}
@@ -142,6 +142,12 @@ public class RtuBaseInfoController extends BladeController {
 				rtuInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
+		if (rtuInfoDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuInfoDTO.getAdCode());
+			if (null != node) {
+				rtuInfoDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		if (rtuInfoDTO.getRtuKind() != null && "1".equals(rtuInfoDTO.getRtuKind())) {
 			rtuInfoDTO.setIsRain(1);
 		} else if (rtuInfoDTO.getRtuKind() != null && "2".equals(rtuInfoDTO.getRtuKind())) {
@@ -250,12 +256,12 @@ public class RtuBaseInfoController extends BladeController {
 		LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
 		wrapper.eq(RegionInfoEntity::getAdcd, dto.getAdCode());
 		wrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
-		RegionInfoEntity regionInfoEntity = baseInfoRegionService.getOne(wrapper);
+		RegionInfoEntity regionInfoEntity = this.regionService.getOne(wrapper);
 		dto.setAdDist(regionInfoEntity.getAdnm());
 		LambdaQueryWrapper<RegionInfoEntity> citywrapper = Wrappers.<RegionInfoEntity>query().lambda();
 		citywrapper.eq(RegionInfoEntity::getAdcd, regionInfoEntity.getParentCode());
 		citywrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
-		regionInfoEntity = baseInfoRegionService.getOne(citywrapper);
+		regionInfoEntity = this.regionService.getOne(citywrapper);
 		dto.setAdCity(regionInfoEntity.getAdnm());
 		dto.setIsRain(0);
 		dto.setIsRiver(0);
@@ -296,12 +302,12 @@ public class RtuBaseInfoController extends BladeController {
 		LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
 		wrapper.eq(RegionInfoEntity::getAdcd, dto.getAdCode());
 		wrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
-		RegionInfoEntity regionInfoEntity = baseInfoRegionService.getOne(wrapper);
+		RegionInfoEntity regionInfoEntity = this.regionService.getOne(wrapper);
 		dto.setAdDist(regionInfoEntity.getAdnm());
 		LambdaQueryWrapper<RegionInfoEntity> citywrapper = Wrappers.<RegionInfoEntity>query().lambda();
 		citywrapper.eq(RegionInfoEntity::getAdcd, regionInfoEntity.getParentCode());
 		citywrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
-		regionInfoEntity = baseInfoRegionService.getOne(citywrapper);
+		regionInfoEntity = this.regionService.getOne(citywrapper);
 		dto.setAdCity(regionInfoEntity.getAdnm());
 		dto.setIsRain(0);
 		dto.setIsRiver(0);
@@ -342,12 +348,12 @@ public class RtuBaseInfoController extends BladeController {
 		LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
 		wrapper.eq(RegionInfoEntity::getAdcd, dto.getAdCode());
 		wrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
-		RegionInfoEntity regionInfoEntity = baseInfoRegionService.getOne(wrapper);
+		RegionInfoEntity regionInfoEntity = this.regionService.getOne(wrapper);
 		dto.setAdDist(regionInfoEntity.getAdnm());
 		LambdaQueryWrapper<RegionInfoEntity> citywrapper = Wrappers.<RegionInfoEntity>query().lambda();
 		citywrapper.eq(RegionInfoEntity::getAdcd, regionInfoEntity.getParentCode());
 		citywrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
-		regionInfoEntity = baseInfoRegionService.getOne(citywrapper);
+		regionInfoEntity = this.regionService.getOne(citywrapper);
 		dto.setAdCity(regionInfoEntity.getAdnm());
 		dto.setIsRain(0);
 		dto.setIsRiver(0);
@@ -411,7 +417,6 @@ public class RtuBaseInfoController extends BladeController {
 		List<RtuStatisticsInfoVO> list = new LinkedList<>();
 		BladeUser user = AuthUtil.getUser();
 		List<Dept> root = this.deptService.getDeptChild(Func.toLong(user.getDeptId()));
-
 		for (Dept dept : root) {
 			RtuStatisticsInfoVO rtuStatisticsInfoVO = new RtuStatisticsInfoVO();
 			rtuStatisticsInfoVO.setId(dept.getId());
@@ -421,16 +426,12 @@ public class RtuBaseInfoController extends BladeController {
 			wrapper.eq(RtuInfoEntity::getIsDeleted, 0);
 			Long rtus = rtuBaseInfoService.count(wrapper);
 			rtuStatisticsInfoVO.setRtuCount(rtus);
-
 			RtuWarningInfoDTO rtuWarningInfoDTO = new RtuWarningInfoDTO();
 			rtuWarningInfoDTO.setDeptId(dept.getId());
-
 			Long warningRtus = rtuWarningService.warningRtuCount(rtuWarningInfoDTO);
 			rtuStatisticsInfoVO.setWarningRtuCount(warningRtus);
-
 			list.add(rtuStatisticsInfoVO);
 		}
-
 		return R.data(list);
 	}
 

+ 4 - 0
src/main/java/org/springblade/modules/baseinfo/rtu/dto/RtuInfoDTO.java

@@ -58,4 +58,8 @@ public class RtuInfoDTO extends RtuInfoEntity {
 	 */
 	@ApiModelProperty("排序字段")
 	private String prop;
+
+	@ApiModelProperty(value = "行政区划排除")
+	private Integer excludeCode;
+
 }

+ 6 - 4
src/main/java/org/springblade/modules/baseinfo/rtu/mapper/RtuInfoMapper.java

@@ -32,11 +32,13 @@ public interface RtuInfoMapper extends BaseMapper<RtuInfoEntity> {
 	 */
 	List<RtuInfoVO> selectPage(IPage page, @Param("rtuInfoDTO") RtuInfoDTO rtuInfoDTO);
 
-	Long rtuCount(@Param("adCode") String adCode);
+	Long rtuCount(@Param("rtuInfoDTO") RtuInfoDTO rtuInfoDTO);
 
-	Long rtuRainCount(@Param("adCode") String adCode);
-	Long rtuRiverCount(@Param("adCode") String adCode);
-	Long rtuGroundCount(@Param("adCode") String adCode);
+	Long rtuRainCount(@Param("rtuInfoDTO") RtuInfoDTO rtuInfoDTO);
+
+	Long rtuRiverCount(@Param("rtuInfoDTO") RtuInfoDTO rtuInfoDTO);
+
+	Long rtuGroundCount(@Param("rtuInfoDTO") RtuInfoDTO rtuInfoDTO);
 
 	List<RtuInfoEntity> rtuList(@Param("rtuInfoDTO") RtuInfoDTO rtuInfoDTO);
 

+ 32 - 14
src/main/java/org/springblade/modules/baseinfo/rtu/mapper/RtuInfoMapper.xml

@@ -165,8 +165,11 @@
         <if test="rtuInfoDTO.isVideo!=null">
             and n.is_video = #{rtuInfoDTO.isVideo}
         </if>
+        <if test="rtuInfoDTO.excludeCode!=null and rtuInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuInfoDTO.adCode!=null">
-            and (n.ad_code =#{rtuInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors
+            and (n.ad_code =#{rtuInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted = 0 and  ancestors
             like concat(concat('%', #{rtuInfoDTO.adCode}), '%')))
         </if>
         order by n.rtu_code
@@ -180,9 +183,12 @@
         LEFT JOIN data_ad_cd_b a ON a.adcd = n.ad_code and a.is_deleted=0
         WHERE
         n.is_deleted = 0
-        <if test="adCode!=null">
-            and (n.ad_code =#{adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors like
-            concat(concat('%', #{adCode}), '%')))
+        <if test="rtuInfoDTO.excludeCode!=null and rtuInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
+        <if test="rtuInfoDTO.adCode!=null">
+            and (n.ad_code =#{rtuInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted = 0 and ancestors like
+            concat(concat('%', #{rtuInfoDTO.adCode}), '%')))
         </if>
     </select>
 
@@ -194,9 +200,12 @@
         LEFT JOIN data_ad_cd_b a ON a.adcd = n.ad_code and a.is_deleted=0
         WHERE
         n.is_deleted = 0 and n.is_rain = 1
-        <if test="adCode!=null">
-            and (n.ad_code =#{adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors like
-            concat(concat('%', #{adCode}), '%')))
+        <if test="rtuInfoDTO.excludeCode!=null and rtuInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
+        <if test="rtuInfoDTO.adCode!=null">
+            and (n.ad_code =#{rtuInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like
+            concat(concat('%', #{rtuInfoDTO.adCode}), '%')))
         </if>
     </select>
 
@@ -208,9 +217,12 @@
         LEFT JOIN data_ad_cd_b a ON a.adcd = n.ad_code and a.is_deleted=0
         WHERE
         n.is_deleted = 0 and (n.is_river = 1 or n.is_res = 1)
-        <if test="adCode!=null">
-            and (n.ad_code =#{adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors like
-            concat(concat('%', #{adCode}), '%')))
+        <if test="rtuInfoDTO.excludeCode!=null and rtuInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
+        <if test="rtuInfoDTO.adCode!=null">
+            and (n.ad_code =#{rtuInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like
+            concat(concat('%', #{rtuInfoDTO.adCode}), '%')))
         </if>
     </select>
 
@@ -222,9 +234,12 @@
         LEFT JOIN data_ad_cd_b a ON a.adcd = n.ad_code and a.is_deleted=0
         WHERE
         n.is_deleted = 0 and n.is_ground = 1
-        <if test="adCode!=null">
-            and (n.ad_code =#{adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors like
-            concat(concat('%', #{adCode}), '%')))
+        <if test="rtuInfoDTO.excludeCode!=null and rtuInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
+        <if test="rtuInfoDTO.adCode!=null">
+            and (n.ad_code =#{rtuInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like
+            concat(concat('%', #{rtuInfoDTO.adCode}), '%')))
         </if>
     </select>
 
@@ -265,8 +280,11 @@
         <if test="rtuInfoDTO.isVideo!=null">
             and n.is_video = #{rtuInfoDTO.isVideo}
         </if>
+        <if test="rtuInfoDTO.excludeCode!=null and rtuInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuInfoDTO.adCode!=null">
-            and (n.ad_code =#{rtuInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors
+            and (n.ad_code =#{rtuInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors
             like concat(concat('%', #{rtuInfoDTO.adCode}), '%')))
         </if>
         order by n.rtu_code

+ 6 - 4
src/main/java/org/springblade/modules/baseinfo/rtu/service/IRtuBaseInfoService.java

@@ -33,11 +33,13 @@ public interface IRtuBaseInfoService extends BaseService<RtuInfoEntity> {
 
 	RtuInfoEntity rtuInfoByRtuCode(String rtuCode);
 
-	Long rtuCount(String adCode);
+	Long rtuCount(RtuInfoDTO rtuInfoDTO);
 
-	Long rtuRainCount(String adCode);
-	Long rtuRiverCount(String adCode);
-	Long rtuGroundCount(String adCode);
+	Long rtuRainCount(RtuInfoDTO rtuInfoDTO);
+
+	Long rtuRiverCount(RtuInfoDTO rtuInfoDTO);
+
+	Long rtuGroundCount(RtuInfoDTO rtuInfoDTO);
 
 	List<RtuInfoEntity> rtuList(RtuInfoDTO rtuInfoDTO);
 

+ 8 - 8
src/main/java/org/springblade/modules/baseinfo/rtu/service/impl/RtuBaseInfoServiceImpl.java

@@ -59,23 +59,23 @@ public class RtuBaseInfoServiceImpl extends BaseServiceImpl<RtuInfoMapper, RtuIn
 
 
 	@Override
-	public Long rtuCount( String adCode) {
-		return baseMapper.rtuCount(adCode);
+	public Long rtuCount(RtuInfoDTO rtuInfoDTO) {
+		return baseMapper.rtuCount(rtuInfoDTO);
 	}
 
 	@Override
-	public Long rtuRainCount(String adCode) {
-		return this.baseMapper.rtuRainCount(adCode);
+	public Long rtuRainCount(RtuInfoDTO rtuInfoDTO) {
+		return this.baseMapper.rtuRainCount(rtuInfoDTO);
 	}
 
 	@Override
-	public Long rtuRiverCount(String adCode) {
-		return this.baseMapper.rtuRiverCount(adCode);
+	public Long rtuRiverCount(RtuInfoDTO rtuInfoDTO) {
+		return this.baseMapper.rtuRiverCount(rtuInfoDTO);
 	}
 
 	@Override
-	public Long rtuGroundCount(String adCode) {
-		return this.baseMapper.rtuGroundCount(adCode);
+	public Long rtuGroundCount(RtuInfoDTO rtuInfoDTO) {
+		return this.baseMapper.rtuGroundCount(rtuInfoDTO);
 	}
 
 	@Override

+ 15 - 37
src/main/java/org/springblade/modules/baseinfo/servicePerson/controller/ServicePersonController.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.servicePerson.controller;
@@ -21,16 +21,10 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DigestUtil;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.enums.OrderCloseEnum;
-import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
-import org.springblade.modules.baseinfo.servicePerson.entity.ServicePersonEntity;
 import org.springblade.modules.baseinfo.servicePerson.service.IServicePersonService;
 import org.springblade.modules.baseinfo.servicePerson.vo.OrgPersonContactVO;
 import org.springblade.modules.baseinfo.servicePerson.vo.ServicePersonVO;
 import org.springblade.modules.baseinfo.servicePerson.wrapper.ServicePersonWrapper;
-import org.springblade.modules.business.check.order.dto.CheckOrderInfoDTO;
-import org.springblade.modules.business.check.order.vo.OrgCheckOrderCountVO;
-import org.springblade.modules.business.notice.entity.NoticeEntity;
 import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IDeptService;
@@ -39,7 +33,6 @@ import org.springblade.modules.system.vo.UserVO;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
-import javax.jws.soap.SOAPBinding;
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
@@ -73,8 +66,8 @@ public class ServicePersonController extends BladeController {
 		BladeUser user = AuthUtil.getUser();
 		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
 			LambdaQueryWrapper<Dept> deptLambdaQueryWrapper = Wrappers.<Dept>query().lambda();
-			deptLambdaQueryWrapper.eq(Dept::getIsDeleted,0);
-			deptLambdaQueryWrapper.eq(Dept::getParentId,Func.toLong(user.getDeptId()));
+			deptLambdaQueryWrapper.eq(Dept::getIsDeleted, 0);
+			deptLambdaQueryWrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
 			List<Dept> deptList = deptService.list(deptLambdaQueryWrapper);
 			if (null == deptList || deptList.size() == 0) {
 				return R.data(null);
@@ -96,8 +89,8 @@ public class ServicePersonController extends BladeController {
 			return R.data(ServicePersonWrapper.build().pageVO(pages));
 		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
 			LambdaQueryWrapper<Dept> deptLambdaQueryWrapper = Wrappers.<Dept>query().lambda();
-			deptLambdaQueryWrapper.eq(Dept::getIsDeleted,0);
-			deptLambdaQueryWrapper.eq(Dept::getParentId,Func.toLong(user.getDeptId()));
+			deptLambdaQueryWrapper.eq(Dept::getIsDeleted, 0);
+			deptLambdaQueryWrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
 			List<Dept> deptList = deptService.list(deptLambdaQueryWrapper);
 			if (null == deptList || deptList.size() == 0) {
 				return R.data(null);
@@ -135,6 +128,7 @@ public class ServicePersonController extends BladeController {
 		return R.data(null);
 	}
 
+
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "列表")
@@ -222,25 +216,9 @@ public class ServicePersonController extends BladeController {
 	}
 
 	/**
-	 * 机构树
-	 *
+	 * 用户联系表
 	 * @return
 	 */
-//	@GetMapping("/org/dict")
-//	@ApiOperationSupport(order = 1)
-//	@ApiOperation(value = "详情")
-//	public R<List<Dept>> orgTree() {
-//		BladeUser user = AuthUtil.getUser();
-//		List<Dept> list = new ArrayList<>();
-//		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_SUPER_ADMIN.equals(user.getRoleName())) {
-//			List<Dept> root = this.deptService.getDeptChild(0L);
-//			list = this.deptService.getDeptChild(root.get(0).getId());
-//		} else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
-//			Dept root = this.deptService.getById(Func.toLong(user.getDeptId()));
-//			list.add(root);
-//		}
-//		return R.data(list);
-//	}
 	@GetMapping("/contact")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "通讯录")
@@ -260,8 +238,8 @@ public class ServicePersonController extends BladeController {
 				userLambdaQueryWrapper.eq(User::getIsDeleted, 0);
 				userLambdaQueryWrapper.eq(User::getDeptId, Func.toStr(dept.getId()));
 				List<User> userList = this.userService.list(userLambdaQueryWrapper);
-				List<ServicePersonVO> personVOList=new LinkedList<>();
-				for (User u : userList){
+				List<ServicePersonVO> personVOList = new LinkedList<>();
+				for (User u : userList) {
 					ServicePersonVO vo = new ServicePersonVO();
 					vo.setId(u.getId());
 					vo.setPersonName(u.getRealName());
@@ -271,7 +249,7 @@ public class ServicePersonController extends BladeController {
 				contactVO.setServicePersonVOList(personVOList);
 				list.add(contactVO);
 			}
-		}else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
 			LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
 			wrapper.eq(Dept::getIsDeleted, 0);
 			wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
@@ -284,8 +262,8 @@ public class ServicePersonController extends BladeController {
 				userLambdaQueryWrapper.eq(User::getIsDeleted, 0);
 				userLambdaQueryWrapper.eq(User::getDeptId, Func.toStr(dept.getId()));
 				List<User> userList = this.userService.list(userLambdaQueryWrapper);
-				List<ServicePersonVO> personVOList=new LinkedList<>();
-				for (User u : userList){
+				List<ServicePersonVO> personVOList = new LinkedList<>();
+				for (User u : userList) {
 					ServicePersonVO vo = new ServicePersonVO();
 					vo.setId(u.getId());
 					vo.setPersonName(u.getRealName());
@@ -295,7 +273,7 @@ public class ServicePersonController extends BladeController {
 				contactVO.setServicePersonVOList(personVOList);
 				list.add(contactVO);
 			}
-		}else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+		} else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
 			OrgPersonContactVO contactVO = new OrgPersonContactVO();
 			contactVO.setId(Func.toLong(user.getDeptId()));
 			Dept dept = this.deptService.getById(contactVO.getId());
@@ -304,8 +282,8 @@ public class ServicePersonController extends BladeController {
 			userLambdaQueryWrapper.eq(User::getIsDeleted, 0);
 			userLambdaQueryWrapper.eq(User::getDeptId, Func.toStr(dept.getId()));
 			List<User> userList = this.userService.list(userLambdaQueryWrapper);
-			List<ServicePersonVO> personVOList=new LinkedList<>();
-			for (User u : userList){
+			List<ServicePersonVO> personVOList = new LinkedList<>();
+			for (User u : userList) {
 				ServicePersonVO vo = new ServicePersonVO();
 				vo.setId(u.getId());
 				vo.setPersonName(u.getRealName());

+ 1 - 1
src/main/java/org/springblade/modules/baseinfo/servicePerson/entity/ServicePersonEntity.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.servicePerson.entity;

+ 1 - 1
src/main/java/org/springblade/modules/baseinfo/servicePerson/mapper/ServicePersonMapper.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.servicePerson.mapper;

+ 1 - 1
src/main/java/org/springblade/modules/baseinfo/servicePerson/service/IServicePersonService.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.servicePerson.service;

+ 1 - 1
src/main/java/org/springblade/modules/baseinfo/servicePerson/service/impl/ServicePersonServiceImpl.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.servicePerson.service.impl;

+ 1 - 1
src/main/java/org/springblade/modules/baseinfo/servicePerson/vo/OrgPersonContactVO.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.servicePerson.vo;

+ 1 - 1
src/main/java/org/springblade/modules/baseinfo/servicePerson/vo/ServicePersonVO.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.servicePerson.vo;

+ 1 - 3
src/main/java/org/springblade/modules/baseinfo/servicePerson/wrapper/ServicePersonWrapper.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.baseinfo.servicePerson.wrapper;
@@ -10,8 +10,6 @@ import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.SpringUtil;
-import org.springblade.modules.baseinfo.servicePerson.entity.ServicePersonEntity;
-import org.springblade.modules.baseinfo.servicePerson.vo.ServicePersonVO;
 import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IDeptService;

+ 59 - 7
src/main/java/org/springblade/modules/business/check/order/controller/RtuCheckOrderController.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.business.check.order.controller;
@@ -26,6 +26,10 @@ import org.springblade.modules.baseinfo.dict.entity.DictInfoEntity;
 import org.springblade.modules.baseinfo.dict.service.IBaseInfoDictService;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+import org.springblade.modules.baseinfo.rtu.dto.RtuInfoDTO;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.check.order.dto.CheckOrderInfoDTO;
@@ -89,6 +93,7 @@ public class RtuCheckOrderController extends BladeController {
 	private final IBaseInfoDictService baseInfoDictService;
 	private final IDeptRegionService deptRegionService;
 	private final ICheckOrderSettingService checkOrderSettingService;
+	private final IBaseInfoRegionService regionService;
 
 	/**
 	 * 工单查询,分页
@@ -134,6 +139,10 @@ public class RtuCheckOrderController extends BladeController {
 				}
 			}
 		}
+		if (checkOrderInfoDTO.getAdCode()!=null){
+			RegionTreeNodeEntity nodeEntity= this.regionService.getRegionNode(user.getRoleName(),user.getDeptId(),checkOrderInfoDTO.getAdCode());
+			checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+		}
 		if (checkOrderInfoDTO.getWarnKind() != null) {
 			IPage<CheckOrderInfoVO> pages = rtuCheckOrderService.selectWarnPage(Condition.getPage(query), checkOrderInfoDTO);
 			List<CheckOrderInfoVO> list = pages.getRecords();
@@ -200,6 +209,10 @@ public class RtuCheckOrderController extends BladeController {
 				checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
+		if (checkOrderInfoDTO.getAdCode()!=null){
+			RegionTreeNodeEntity nodeEntity= this.regionService.getRegionNode(user.getRoleName(),user.getDeptId(),checkOrderInfoDTO.getAdCode());
+			checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+		}
 		List<CheckOrderInfoVO> list = rtuCheckOrderService.unconfirmOrderList(checkOrderInfoDTO);
 		for (CheckOrderInfoVO v : list) {
 			RtuCheckOrderWrapper.build().entityVO(v);
@@ -230,7 +243,11 @@ public class RtuCheckOrderController extends BladeController {
 				checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
-		CheckOrderSettingEntity vo = new CheckOrderSettingEntity();
+		if (checkOrderInfoDTO.getAdCode()!=null){
+			RegionTreeNodeEntity nodeEntity= this.regionService.getRegionNode(user.getRoleName(),user.getDeptId(),checkOrderInfoDTO.getAdCode());
+			checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+		}
+
 		LambdaQueryWrapper<CheckOrderSettingEntity> wrapper = Wrappers.<CheckOrderSettingEntity>query().lambda();
 		wrapper.eq(CheckOrderSettingEntity::getIsDeleted, 0);
 		List<CheckOrderSettingEntity> settingEntityList = checkOrderSettingService.list(wrapper);
@@ -279,6 +296,10 @@ public class RtuCheckOrderController extends BladeController {
 				checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
+		if (checkOrderInfoDTO.getAdCode()!=null){
+			RegionTreeNodeEntity nodeEntity= this.regionService.getRegionNode(user.getRoleName(),user.getDeptId(),checkOrderInfoDTO.getAdCode());
+			checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+		}
 		IPage<CheckOrderHistroyVO> pages = rtuCheckOrderService.selectHistoryPage(Condition.getPage(query), checkOrderInfoDTO);
 		List<CheckOrderHistroyVO> list = pages.getRecords();
 		for (CheckOrderHistroyVO v : list) {
@@ -671,24 +692,47 @@ public class RtuCheckOrderController extends BladeController {
 		wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
 		List<Dept> root = this.deptService.list(wrapper);
 		for (Dept dept : root) {
+
+			LambdaQueryWrapper<DeptRegionEntity> deptLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+			//deptLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
+			if (user.getRoleName().equals(BusinessConstant.ROLE_SYS_ADMIN)) {
+				deptLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, dept.getId());
+			}else{
+				deptLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+			}
+			DeptRegionEntity deptRegionEntity = this.deptRegionService.getOne(deptLambdaQueryWrapper);
+			LambdaQueryWrapper<RegionInfoEntity> nodeQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+			nodeQueryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+			RegionInfoEntity nodeRegion = this.regionService.getOne(nodeQueryWrapper);
+
+			int excludecode=0;
+			if (nodeRegion.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)){
+				excludecode=1;
+			}
+
 			OrgCheckOrderCountVO orgCheckOrderCountVO = new OrgCheckOrderCountVO();
 			orgCheckOrderCountVO.setDeptId(dept.getId());
 			orgCheckOrderCountVO.setOrgName(dept.getDeptName());
 			CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
-			LambdaQueryWrapper<DeptRegionEntity> deptLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
-			deptLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
-			deptLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, dept.getId());
-			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptLambdaQueryWrapper);
+
+
 			checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 			checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+
+			checkOrderInfoDTO.setExcludeCode(excludecode);
+
 			Long orderCount = rtuCheckOrderService.orderCount(checkOrderInfoDTO);
 			orgCheckOrderCountVO.setOrderCount(orderCount);
 			checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
 			checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+
+
 			Long unCloseOrderCount = rtuCheckOrderService.unCloseOrderCount(checkOrderInfoDTO);
 			orgCheckOrderCountVO.setProcessingOrderCount(unCloseOrderCount);
 			checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
 			checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+
+
 			long count = rtuCheckOrderService.unconfirmOrderCount(checkOrderInfoDTO);
 			orgCheckOrderCountVO.setUnconfirmOrderCount(count);
 			list.add(orgCheckOrderCountVO);
@@ -704,7 +748,15 @@ public class RtuCheckOrderController extends BladeController {
 			return R.status(false);
 		}
 		checkOrderInfoDTO.setOrderClose(0);
-		Long rtuCount=rtuBaseInfoService.rtuCount(checkOrderInfoDTO.getAdCode());
+		BladeUser user = AuthUtil.getUser();
+		RtuInfoDTO rtuInfoDTO=new RtuInfoDTO();
+		rtuInfoDTO.setAdCode(checkOrderInfoDTO.getAdCode());
+		RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), checkOrderInfoDTO.getAdCode());
+		if (null != node) {
+			rtuInfoDTO.setExcludeCode(node.getExclude());
+			checkOrderInfoDTO.setExcludeCode(node.getExclude());
+		}
+		Long rtuCount=rtuBaseInfoService.rtuCount(rtuInfoDTO);
 		Long orderCount = rtuCheckOrderService.orderCount(checkOrderInfoDTO);
 		Long unConfirmOrderCount = rtuCheckOrderService.unconfirmOrderCount(checkOrderInfoDTO);
 		Long unCloseOrderCount = rtuCheckOrderService.unCloseOrderCount(checkOrderInfoDTO);

+ 3 - 0
src/main/java/org/springblade/modules/business/check/order/dto/CheckOrderInfoDTO.java

@@ -84,4 +84,7 @@ public class CheckOrderInfoDTO extends CheckOrderInfoEntity {
 	 */
 	@ApiModelProperty("排序字段")
 	private String prop;
+
+	@ApiModelProperty(value = "行政区划排除")
+	private Integer excludeCode;
 }

+ 40 - 10
src/main/java/org/springblade/modules/business/check/order/mapper/RtuCheckOrderMapper.xml

@@ -99,9 +99,12 @@
         <if test="checkOrderInfoDTO.orderClose!=null">
             and o.order_close = #{checkOrderInfoDTO.orderClose}
         </if>
+        <if test="checkOrderInfoDTO.excludeCode!=null and checkOrderInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="checkOrderInfoDTO.adCode!=null">
             and (a.adcd =#{checkOrderInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
+            is_deleted =0 and ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
         </if>
         order by o.create_time ,o.order_confirm ,o.order_close
     </select>
@@ -133,9 +136,12 @@
         <if test="checkOrderInfoDTO.orderClose!=null">
             and o.order_close = #{checkOrderInfoDTO.orderClose}
         </if>
+        <if test="checkOrderInfoDTO.excludeCode!=null and checkOrderInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="checkOrderInfoDTO.adCode!=null">
             and (a.adcd =#{checkOrderInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
+            is_deleted =0 and ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
         </if>
         order by o.order_confirm ,o.order_close,o.create_time
     </select>
@@ -171,9 +177,12 @@
         <if test="checkOrderInfoDTO.rtuName!=null">
             and i.rtu_name like concat(concat('%', #{checkOrderInfoDTO.rtuName}), '%')
         </if>
+        <if test="checkOrderInfoDTO.excludeCode!=null and checkOrderInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="checkOrderInfoDTO.adCode!=null">
             and (a.adcd =#{checkOrderInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
+            is_deleted =0 and ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
         </if>
         <choose>
             <when test="checkOrderInfoDTO.order!=null and checkOrderInfoDTO.order=='ascending'">
@@ -222,9 +231,12 @@
         <if test="checkOrderInfoDTO.orderClose!=null">
             and o.order_close = #{checkOrderInfoDTO.orderClose}
         </if>
+        <if test="checkOrderInfoDTO.excludeCode!=null and checkOrderInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="checkOrderInfoDTO.adCode!=null">
             and (a.adcd =#{checkOrderInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
+            is_deleted =0 and ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
         </if>
         order by o.order_confirm ,o.order_close,o.create_time
     </select>
@@ -256,9 +268,12 @@
         <if test="checkOrderInfoDTO.orderClose!=null">
             and o.order_close = #{checkOrderInfoDTO.orderClose}
         </if>
+        <if test="checkOrderInfoDTO.excludeCode!=null and checkOrderInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="checkOrderInfoDTO.adCode!=null">
             and (a.adcd =#{checkOrderInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
+            is_deleted =0 and ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
         </if>
         order by o.order_confirm_time desc
     </select>
@@ -284,9 +299,12 @@
         <if test="checkOrderInfoDTO.rtuName!=null">
             and i.rtu_name like concat(concat('%', #{checkOrderInfoDTO.rtuName}), '%')
         </if>
+        <if test="checkOrderInfoDTO.excludeCode!=null and checkOrderInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="checkOrderInfoDTO.adCode!=null">
             and (a.adcd =#{checkOrderInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
+            is_deleted =0 and ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
         </if>
         order by o.create_time
     </select>
@@ -309,9 +327,12 @@
         <if test="checkOrderInfoDTO.contactUser!=null">
             and o.contact_user = #{checkOrderInfoDTO.contactUser}
         </if>
+        <if test="checkOrderInfoDTO.excludeCode!=null and checkOrderInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="checkOrderInfoDTO.adCode!=null">
             and (a.adcd =#{checkOrderInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
+            is_deleted =0 and ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
         </if>
     </select>
 
@@ -326,9 +347,12 @@
         o.is_deleted = 0
         and o.order_close =0
         and o.order_confirm=1
+        <if test="checkOrderInfoDTO.excludeCode!=null and checkOrderInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="checkOrderInfoDTO.adCode!=null">
             and (a.adcd =#{checkOrderInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
+            is_deleted =0 and ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
         </if>
         order by o.create_time asc
     </select>
@@ -350,9 +374,12 @@
         <if test="checkOrderInfoDTO.rtuName!=null">
             and i.rtu_name like concat(concat('%', #{checkOrderInfoDTO.rtuName}), '%')
         </if>
+        <if test="checkOrderInfoDTO.excludeCode!=null and checkOrderInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="checkOrderInfoDTO.adCode!=null">
             and (a.adcd =#{checkOrderInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
+            is_deleted =0 and ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
         </if>
         order by o.create_time asc limit 10
     </select>
@@ -368,9 +395,12 @@
         WHERE
         o.is_deleted = 0
         and o.order_confirm = 0
+        <if test="checkOrderInfoDTO.excludeCode!=null and checkOrderInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="checkOrderInfoDTO.adCode!=null">
             and (a.adcd =#{checkOrderInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
+            is_deleted =0 and ancestors like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
         </if>
     </select>
 

+ 127 - 89
src/main/java/org/springblade/modules/business/check/order/wrapper/RtuCheckOrderWrapper.java

@@ -1,13 +1,12 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
 package org.springblade.modules.business.check.order.wrapper;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.springblade.common.cache.DictBizCache;
 import org.springblade.constant.BusinessConstant;
@@ -15,18 +14,16 @@ import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.SpringUtil;
-import org.springblade.enums.OrderStatusEnum;
 import org.springblade.enums.WarnKindEnum;
-import org.springblade.modules.baseinfo.dict.entity.DictInfoEntity;
-import org.springblade.modules.baseinfo.dict.service.IBaseInfoDictService;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.check.order.entity.CheckOrderInfoEntity;
 import org.springblade.modules.business.check.order.vo.CheckOrderHistroyVO;
 import org.springblade.modules.business.check.order.vo.CheckOrderInfoVO;
-import org.springblade.modules.business.data.service.IRtuDataRainService;
 import org.springblade.modules.business.warning.entity.RtuWarningInfoEntity;
 import org.springblade.modules.business.warning.service.IRtuWarningService;
 import org.springblade.modules.system.entity.Dept;
@@ -117,50 +114,49 @@ public class RtuCheckOrderWrapper extends BaseEntityWrapper<CheckOrderInfoEntity
 		return rtuBaseInfoService;
 	}
 
+
+	private static IBaseInfoRegionService regionService;
+
+	private static IBaseInfoRegionService getRegionService() {
+		if (regionService == null) {
+			regionService = SpringUtil.getBean(IBaseInfoRegionService.class);
+		}
+		return regionService;
+	}
+
+
 	@Override
 	public CheckOrderInfoVO entityVO(CheckOrderInfoEntity entity) {
 		CheckOrderInfoVO checkOrderInfoVO = Objects.requireNonNull(BeanUtil.copy(entity, CheckOrderInfoVO.class));
 		return this.entityVO(checkOrderInfoVO);
 	}
 
-
 	public CheckOrderHistroyVO entityVO(CheckOrderHistroyVO vo) {
-//		String ancestors = vo.getAncestors();
-//		if (null != ancestors && ancestors.length() > 0) {
-//			String[] ancestorsList = ancestors.split(",");
-//			String adCode;
-//			if (ancestorsList.length >= 3) {
-//				adCode = ancestorsList[2];
-//			} else {
-//				adCode = vo.getAdCode();
-//			}
-//			if (null != adCode) {
-//				LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
-//				wrapper.eq(DeptRegionEntity::getIsDeleted, 0);
-//				wrapper.eq(DeptRegionEntity::getAdcd, adCode);
-//				List<DeptRegionEntity> deptRegionEntities = getDeptRegionService().list(wrapper);
-//				if (null != deptRegionEntities && deptRegionEntities.size() > 0) {
-//					String manageCompany = "";
-//					for (DeptRegionEntity deptRegionEntity : deptRegionEntities) {
-//						Dept dept = getDeptService().getById(deptRegionEntity.getDeptId());
-//						if (null != dept) {
-//							if (manageCompany.length() > 0) {
-//								manageCompany += " / ";
-//							}
-//							manageCompany += dept.getDeptName();
-//						}
-//					}
-//					vo.setManageCompany(manageCompany);
-//				}
-//			}
-//		}
-
 		LambdaQueryWrapper<RtuInfoEntity> rtuLambdaQueryWrapper = Wrappers.<RtuInfoEntity>query().lambda();
-		rtuLambdaQueryWrapper.eq(RtuInfoEntity::getIsDeleted, 0);
 		rtuLambdaQueryWrapper.eq(RtuInfoEntity::getRtuCode, vo.getRtuCode());
-		RtuInfoEntity rtuInfoEntity=getRtuBaseInfoService().getOne(rtuLambdaQueryWrapper);
-		vo.setManageCompany(rtuInfoEntity.getManageCompany());
-
+		RtuInfoEntity rtuInfoEntity = getRtuBaseInfoService().getOne(rtuLambdaQueryWrapper);
+		LambdaQueryWrapper<RegionInfoEntity> regionQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+		regionQueryWrapper.eq(RegionInfoEntity::getAdcd, rtuInfoEntity.getAdCode());
+		RegionInfoEntity regionInfoEntity = getRegionService().getOne(regionQueryWrapper);
+		String ancestors = regionInfoEntity.getAncestors()+","+rtuInfoEntity.getAdCode();
+		String[] ancestorsList = ancestors.split(",");
+		for (int i=2;i<ancestorsList.length;i++){
+			String adCode=ancestorsList[i];
+			LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+			wrapper.eq(DeptRegionEntity::getAdcd, adCode);
+			List<DeptRegionEntity> deptRegionEntities = getDeptRegionService().list(wrapper);
+			if (null != deptRegionEntities && deptRegionEntities.size() > 0) {
+				for (DeptRegionEntity deptRegionEntity : deptRegionEntities) {
+					Dept dept = getDeptService().getById(deptRegionEntity.getDeptId());
+					if (null != dept) {
+						if (dept.getDeptCategory() == 1) {
+							vo.setManageCompany(dept.getDeptName());
+							break;
+						}
+					}
+				}
+			}
+		}
 		return vo;
 	}
 
@@ -176,6 +172,7 @@ public class RtuCheckOrderWrapper extends BaseEntityWrapper<CheckOrderInfoEntity
 			areaName += vo.getAdDist();
 		}
 		vo.setAreaName(areaName);
+
 		DictBiz biz = DictBizCache.getById(vo.getOrderFromKey());
 		vo.setOrderFromName(biz.getDictValue());
 		biz = DictBizCache.getById(vo.getOrderStatusKey());
@@ -210,29 +207,28 @@ public class RtuCheckOrderWrapper extends BaseEntityWrapper<CheckOrderInfoEntity
 			DictBiz dictInfoEntity = getDictBizService().getById(vo.getOrderStatusKey());
 			vo.setOrderStatus(Func.toInt(dictInfoEntity.getDictKey()));
 		}
-		String ancestors = vo.getAncestors();
-		if (null != ancestors && ancestors.length() > 0) {
-			String[] ancestorsList = ancestors.split(",");
-			String adCode;
-			if (ancestorsList.length >= 3) {
-				adCode = ancestorsList[2];
-			} else {
-				adCode = vo.getAdCode();
-			}
-			if (null != adCode) {
-				LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
-				wrapper.eq(DeptRegionEntity::getIsDeleted, 0);
-				wrapper.eq(DeptRegionEntity::getAdcd, adCode);
-				List<DeptRegionEntity> deptRegionEntities = getDeptRegionService().list(wrapper);
-				if (null != deptRegionEntities && deptRegionEntities.size() > 0) {
-					String manageCompany = "";
-					for (DeptRegionEntity deptRegionEntity : deptRegionEntities) {
-						Dept dept = getDeptService().getById(deptRegionEntity.getDeptId());
-						if (null != dept) {
-//							if (manageCompany.length() > 0) {
-//								manageCompany += " / ";
-//							}
-//							manageCompany += dept.getDeptName();
+
+
+		LambdaQueryWrapper<RtuInfoEntity> rtuLambdaQueryWrapper = Wrappers.<RtuInfoEntity>query().lambda();
+		rtuLambdaQueryWrapper.eq(RtuInfoEntity::getRtuCode, vo.getRtuCode());
+		RtuInfoEntity rtuInfoEntity = getRtuBaseInfoService().getOne(rtuLambdaQueryWrapper);
+		LambdaQueryWrapper<RegionInfoEntity> regionQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+		regionQueryWrapper.eq(RegionInfoEntity::getAdcd, rtuInfoEntity.getAdCode());
+		RegionInfoEntity regionInfoEntity = getRegionService().getOne(regionQueryWrapper);
+		String ancestors = regionInfoEntity.getAncestors()+","+rtuInfoEntity.getAdCode();
+		String[] ancestorsList = ancestors.split(",");
+		for (int i=2;i<ancestorsList.length;i++){
+			String adCode=ancestorsList[i];
+			LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+			wrapper.eq(DeptRegionEntity::getAdcd, adCode);
+			List<DeptRegionEntity> deptRegionEntities = getDeptRegionService().list(wrapper);
+			if (null != deptRegionEntities && deptRegionEntities.size() > 0) {
+				for (DeptRegionEntity deptRegionEntity : deptRegionEntities) {
+					Dept dept = getDeptService().getById(deptRegionEntity.getDeptId());
+					if (null != dept) {
+						if (dept.getDeptCategory() == 1) {
+							vo.setManageCompany(dept.getDeptName());
+							vo.setManageCompany(dept.getDeptName());
 							//查找运维公司负责人
 							if (vo.getOrderConfirm() == 0) {
 								LambdaQueryWrapper<User> userLambdaQueryWrapper = Wrappers.<User>query().lambda();
@@ -248,19 +244,61 @@ public class RtuCheckOrderWrapper extends BaseEntityWrapper<CheckOrderInfoEntity
 									}
 								}
 							}
-							//break;
+							break;
 						}
 					}
-					//vo.setManageCompany(manageCompany);
 				}
 			}
 		}
 
-		LambdaQueryWrapper<RtuInfoEntity> rtuLambdaQueryWrapper = Wrappers.<RtuInfoEntity>query().lambda();
-		rtuLambdaQueryWrapper.eq(RtuInfoEntity::getIsDeleted, 0);
-		rtuLambdaQueryWrapper.eq(RtuInfoEntity::getRtuCode, vo.getRtuCode());
-		RtuInfoEntity rtuInfoEntity=getRtuBaseInfoService().getOne(rtuLambdaQueryWrapper);
-		vo.setManageCompany(rtuInfoEntity.getManageCompany());
+
+
+//		String ancestors = vo.getAncestors();
+//		if (null != ancestors && ancestors.length() > 0) {
+//			String[] ancestorsList = ancestors.split(",");
+//			String adCode;
+//			if (ancestorsList.length >= 3) {
+//				adCode = ancestorsList[2];
+//			} else {
+//				adCode = vo.getAdCode();
+//			}
+//			if (null != adCode) {
+//				LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+//				wrapper.eq(DeptRegionEntity::getIsDeleted, 0);
+//				wrapper.eq(DeptRegionEntity::getAdcd, adCode);
+//				List<DeptRegionEntity> deptRegionEntities = getDeptRegionService().list(wrapper);
+//				if (null != deptRegionEntities && deptRegionEntities.size() > 0) {
+//					String manageCompany = "";
+//					for (DeptRegionEntity deptRegionEntity : deptRegionEntities) {
+//						Dept dept = getDeptService().getById(deptRegionEntity.getDeptId());
+//						if (null != dept) {
+//							//查找运维公司负责人
+//							if (vo.getOrderConfirm() == 0) {
+//								LambdaQueryWrapper<User> userLambdaQueryWrapper = Wrappers.<User>query().lambda();
+//								userLambdaQueryWrapper.eq(User::getIsDeleted, 0);
+//								userLambdaQueryWrapper.eq(User::getDeptId, dept.getId());
+//								List<User> userList = getUserService().list(userLambdaQueryWrapper);
+//								for (User u : userList) {
+//									Role role = getRoleService().getById(u.getRoleId());
+//									if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(role.getRoleAlias())) {
+//										vo.setContactUserName(u.getRealName());
+//										vo.setContactPhone(u.getPhone());
+//										break;
+//									}
+//								}
+//							}
+//
+//						}
+//					}
+//				}
+//			}
+//		}
+
+//		LambdaQueryWrapper<RtuInfoEntity> rtuLambdaQueryWrapper = Wrappers.<RtuInfoEntity>query().lambda();
+//		rtuLambdaQueryWrapper.eq(RtuInfoEntity::getIsDeleted, 0);
+//		rtuLambdaQueryWrapper.eq(RtuInfoEntity::getRtuCode, vo.getRtuCode());
+//		RtuInfoEntity rtuInfoEntity=getRtuBaseInfoService().getOne(rtuLambdaQueryWrapper);
+//		vo.setManageCompany(rtuInfoEntity.getManageCompany());
 
 		Duration duration = Func.between(vo.getCreateTime(), new Date());
 		long second = duration.getSeconds();
@@ -293,25 +331,25 @@ public class RtuCheckOrderWrapper extends BaseEntityWrapper<CheckOrderInfoEntity
 			String warnKinds = "";
 			//for (RtuWarningInfoEntity rtuWarningInfoEntity : rtuWarningInfoEntityList) {
 			//	if (warnKinds.length() > 0) {
-				//	warnKinds += "/";
+			//	warnKinds += "/";
 			//	}
-				if (WarnKindEnum.WARN_CLOCK.getCode() == rtuWarningInfoEntity.getWarningKind()) {
-					warnKinds += "测站时钟异常";
-				} else if (WarnKindEnum.WARN_UP_MIN_DELAY.getCode() == rtuWarningInfoEntity.getWarningKind()) {
-					warnKinds += "5分钟上报延时";
-				} else if (WarnKindEnum.WARN_OFFLINE.getCode() == rtuWarningInfoEntity.getWarningKind()) {
-					warnKinds += "测站离线";
-				} else if (WarnKindEnum.WARN_RAIN_MISS_OUT.getCode() == rtuWarningInfoEntity.getWarningKind()) {
-					warnKinds += "雨量站小时报漏报";
-				} else if (WarnKindEnum.WARN_WL_MISS_OUT.getCode() == rtuWarningInfoEntity.getWarningKind()) {
-					warnKinds += "水位站小时报漏报";
-				} else if (WarnKindEnum.WARN_OUTLIER_VALUE.getCode() == rtuWarningInfoEntity.getWarningKind()) {
-					warnKinds += "雨量疑似异常值";
-				} else if (WarnKindEnum.WARN_RAIN_UP_HOUR_DELAY.getCode() == rtuWarningInfoEntity.getWarningKind()) {
-					warnKinds += "雨量站小时上报延时";
-				} else if (WarnKindEnum.WARN_WL_UP_HOUR_DELAY.getCode() == rtuWarningInfoEntity.getWarningKind()) {
-					warnKinds += "水位站小时上报延时";
-				}
+			if (WarnKindEnum.WARN_CLOCK.getCode() == rtuWarningInfoEntity.getWarningKind()) {
+				warnKinds += "测站时钟异常";
+			} else if (WarnKindEnum.WARN_UP_MIN_DELAY.getCode() == rtuWarningInfoEntity.getWarningKind()) {
+				warnKinds += "5分钟上报延时";
+			} else if (WarnKindEnum.WARN_OFFLINE.getCode() == rtuWarningInfoEntity.getWarningKind()) {
+				warnKinds += "测站离线";
+			} else if (WarnKindEnum.WARN_RAIN_MISS_OUT.getCode() == rtuWarningInfoEntity.getWarningKind()) {
+				warnKinds += "雨量站小时报漏报";
+			} else if (WarnKindEnum.WARN_WL_MISS_OUT.getCode() == rtuWarningInfoEntity.getWarningKind()) {
+				warnKinds += "水位站小时报漏报";
+			} else if (WarnKindEnum.WARN_OUTLIER_VALUE.getCode() == rtuWarningInfoEntity.getWarningKind()) {
+				warnKinds += "雨量疑似异常值";
+			} else if (WarnKindEnum.WARN_RAIN_UP_HOUR_DELAY.getCode() == rtuWarningInfoEntity.getWarningKind()) {
+				warnKinds += "雨量站小时上报延时";
+			} else if (WarnKindEnum.WARN_WL_UP_HOUR_DELAY.getCode() == rtuWarningInfoEntity.getWarningKind()) {
+				warnKinds += "水位站小时上报延时";
+			}
 			//}
 			vo.setWarnKindInfo(warnKinds);
 		}

+ 30 - 1
src/main/java/org/springblade/modules/business/check/process/controller/RtuOrderProcessController.java

@@ -30,6 +30,8 @@ import org.springblade.modules.baseinfo.dict.entity.DictInfoEntity;
 import org.springblade.modules.baseinfo.dict.service.IBaseInfoDictService;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.check.order.dto.CheckOrderInfoDTO;
@@ -71,6 +73,7 @@ public class RtuOrderProcessController extends BladeController {
 	private final IBaseInfoDictService dictService;
 	private final IDeptRegionService deptRegionService;
 	private final IRtuBaseInfoService rtuBaseInfoService;
+	private final IBaseInfoRegionService regionService;
 	@Resource
 	private OssBuilder ossBuilder;
 	/**
@@ -134,6 +137,11 @@ public class RtuOrderProcessController extends BladeController {
 			processInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 		}
 
+		if (processInfoDTO.getAdCode()!=null){
+			RegionTreeNodeEntity nodeEntity= this.regionService.getRegionNode(user.getRoleName(),user.getDeptId(),processInfoDTO.getAdCode());
+			processInfoDTO.setExcludeCode(nodeEntity.getExclude());
+		}
+
 		Date date = new Date();
 		String dt = Func.formatDateTime(date);
 		processInfoDTO.setCreateTime(Func.parse(dt, ConcurrentDateFormat.of("yyyy-MM-dd")));
@@ -165,7 +173,10 @@ public class RtuOrderProcessController extends BladeController {
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 			orderProcessInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 		}
-
+		if (orderProcessInfoDTO.getAdCode()!=null){
+			RegionTreeNodeEntity nodeEntity= this.regionService.getRegionNode(user.getRoleName(),user.getDeptId(),orderProcessInfoDTO.getAdCode());
+			orderProcessInfoDTO.setExcludeCode(nodeEntity.getExclude());
+		}
 		Date date = new Date();
 		String dt = Func.formatDateTime(date);
 		orderProcessInfoDTO.setCreateTime(Func.parse(dt, ConcurrentDateFormat.of("yyyy-MM-dd")));
@@ -295,6 +306,24 @@ public class RtuOrderProcessController extends BladeController {
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入OrderProcessInfoDTO")
 	public R<IPage<OrderProcessInfoVO>> page(OrderProcessInfoDTO orderProcessInfoDTO, Query query) {
+		BladeUser user = AuthUtil.getUser();
+		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+			if (orderProcessInfoDTO.getAdCode() == null) {
+				orderProcessInfoDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
+			}
+		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+			if (orderProcessInfoDTO.getAdCode() == null) {
+				LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+				deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
+				deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+				DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+				orderProcessInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+			}
+		}
+		if (orderProcessInfoDTO.getAdCode()!=null){
+			RegionTreeNodeEntity nodeEntity= this.regionService.getRegionNode(user.getRoleName(),user.getDeptId(),orderProcessInfoDTO.getAdCode());
+			orderProcessInfoDTO.setExcludeCode(nodeEntity.getExclude());
+		}
 		IPage<OrderProcessInfoVO> pages = rtuOrderProcessService.selectNoNetworkSignalPage(Condition.getPage(query), orderProcessInfoDTO);
 		List<OrderProcessInfoVO> list = pages.getRecords();
 		for (OrderProcessInfoVO v : list) {

+ 3 - 0
src/main/java/org/springblade/modules/business/check/process/dto/OrderProcessInfoDTO.java

@@ -46,4 +46,7 @@ public class OrderProcessInfoDTO extends OrderProcessInfoEntity {
 	 */
 	@ApiModelProperty("测站名称")
 	private String rtuName;
+
+	@ApiModelProperty(value = "行政区划排除")
+	private Integer excludeCode;
 }

+ 16 - 8
src/main/java/org/springblade/modules/business/check/process/mapper/RtuOrderProcessMapper.xml

@@ -198,8 +198,11 @@
         <if test="processInfoDTO.rtuName!=null">
             and r.rtu_name like concat(concat('%', #{processInfoDTO.rtuName}), '%')
         </if>
+        <if test="processInfoDTO.excludeCode!=null and processInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="processInfoDTO.adCode!=null">
-            and (a.adcd =#{processInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{processInfoDTO.adCode}), '%')))
+            and (a.adcd =#{processInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors  like concat(concat('%', #{processInfoDTO.adCode}), '%')))
         </if>
         order by p.create_time desc
         limit 10
@@ -227,8 +230,11 @@
         <if test="processInfoDTO.rtuName!=null">
             and r.rtu_name like concat(concat('%', #{processInfoDTO.rtuName}), '%')
         </if>
+        <if test="processInfoDTO.excludeCode!=null and processInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="processInfoDTO.adCode!=null">
-            and (a.adcd =#{processInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{processInfoDTO.adCode}), '%')))
+            and (a.adcd =#{processInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors  like concat(concat('%', #{processInfoDTO.adCode}), '%')))
         </if>
         order by p.create_time desc
     </select>
@@ -243,23 +249,22 @@
         LEFT JOIN rtu_failure_check_order o ON o.id=p.order_id
         LEFT JOIN rtu_info r ON r.rtu_code = o.rtu_code and r.is_deleted=0
         LEFT JOIN data_ad_cd_b a ON a.adcd = r.ad_code and a.is_deleted=0
-
         WHERE
         p.is_deleted = 0
         <if test="processInfoDTO.createTime!=null">
             and   DATE_FORMAT(p.create_time,'%Y-%m-%d') = DATE_FORMAT(#{processInfoDTO.createTime},'%Y-%m-%d')
         </if>
-
+        <if test="processInfoDTO.excludeCode!=null and processInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="processInfoDTO.adCode!=null">
-            and (a.adcd =#{processInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{processInfoDTO.adCode}), '%')))
+            and (a.adcd =#{processInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors  like concat(concat('%', #{processInfoDTO.adCode}), '%')))
         </if>
         group by o.rtu_code ) s
 
     </select>
 
 
-
-
     <select id="selectNoNetworkSignalPage" resultMap="orderProcessInfoVOResultMap">
         SELECT
         p.*,u.real_name,o.rtu_code,r.rtu_name,r.ad_city,r.ad_dist
@@ -278,9 +283,12 @@
         <if test="processInfoDTO.rtuCode!=null">
             and r.rtu_code like concat(concat('%', #{processInfoDTO.rtuCode}), '%')
         </if>
+        <if test="processInfoDTO.excludeCode!=null and processInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="processInfoDTO.adCode!=null">
             and (r.ad_code =#{processInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors
+            is_deleted =0 and ancestors
             like concat(concat('%', #{processInfoDTO.adCode}), '%')))
         </if>
         order by  p.photo_supplement_submit_status ASC,p.create_time ASC,o.rtu_code ASC

+ 10 - 1
src/main/java/org/springblade/modules/business/data/controller/RtuDataGroundController.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/28
  */
 package org.springblade.modules.business.data.controller;
@@ -26,6 +26,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
 import org.springblade.modules.business.data.dto.RtuDataGroundDTO;
 import org.springblade.modules.business.data.entity.RtuDataGroundEntity;
 import org.springblade.modules.business.data.service.IRtuDataGroundService;
@@ -51,6 +53,7 @@ import springfox.documentation.annotations.ApiIgnore;
 public class RtuDataGroundController extends BladeController {
 	private final IRtuDataGroundService dataGroundService;
 	private final IDeptRegionService deptRegionService;
+	private final IBaseInfoRegionService regionService;
 	/**
 	 * 分页
 	 */
@@ -77,6 +80,12 @@ public class RtuDataGroundController extends BladeController {
 				rtuDataGroundDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
+		if (rtuDataGroundDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuDataGroundDTO.getAdCode());
+			if (null != node) {
+				rtuDataGroundDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		IPage<RtuDataGroundVO> pages = dataGroundService.selectPage(Condition.getPage(query), rtuDataGroundDTO);
 		return R.data(pages);
 	}

+ 10 - 2
src/main/java/org/springblade/modules/business/data/controller/RtuDataRainController.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/28
  */
 package org.springblade.modules.business.data.controller;
@@ -25,6 +25,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
 import org.springblade.modules.business.data.dto.RtuDataRainDTO;
 import org.springblade.modules.business.data.entity.RtuDataRainEntity;
 import org.springblade.modules.business.data.service.IRtuDataRainService;
@@ -52,7 +54,7 @@ import springfox.documentation.annotations.ApiIgnore;
 public class RtuDataRainController extends BladeController {
 	private final IRtuDataRainService dataRainService;
 	private final IDeptRegionService deptRegionService;
-
+    private final IBaseInfoRegionService regionService;
 	/**
 	 * 分页
 	 */
@@ -79,6 +81,12 @@ public class RtuDataRainController extends BladeController {
 				rtuDataRainDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
+		if (rtuDataRainDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuDataRainDTO.getAdCode());
+			if (null != node) {
+				rtuDataRainDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		IPage<RtuDataRainVO> pages = dataRainService.selectPage(Condition.getPage(query), rtuDataRainDTO);
 		return R.data(pages);
 	}

+ 10 - 2
src/main/java/org/springblade/modules/business/data/controller/RtuDataRiverController.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/28
  */
 package org.springblade.modules.business.data.controller;
@@ -25,6 +25,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
 import org.springblade.modules.baseinfo.rtu.vo.RtuInfoVO;
 import org.springblade.modules.baseinfo.rtu.wrapper.RtuInfoWrapper;
 import org.springblade.modules.business.data.dto.RtuDataRiverDTO;
@@ -55,7 +57,7 @@ import java.util.List;
 public class RtuDataRiverController extends BladeController {
 	private final IRtuDataRiverService dataRiverService;
 	private final IDeptRegionService deptRegionService;
-
+	private final IBaseInfoRegionService regionService;
 	/**
 	 * 分页
 	 */
@@ -82,6 +84,12 @@ public class RtuDataRiverController extends BladeController {
 				rtuDataRiverDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
+		if (rtuDataRiverDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuDataRiverDTO.getAdCode());
+			if (null != node) {
+				rtuDataRiverDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		IPage<RtuDataRiverVO> pages = dataRiverService.selectWaterPage(Condition.getPage(query),rtuDataRiverDTO);
 		List<RtuDataRiverVO> list = pages.getRecords();
 		for (RtuDataRiverVO vo : list) {

+ 10 - 2
src/main/java/org/springblade/modules/business/data/controller/RtuDataRsvrController.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/28
  */
 package org.springblade.modules.business.data.controller;
@@ -25,6 +25,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
 import org.springblade.modules.business.data.dto.RtuDataRsvrDTO;
 import org.springblade.modules.business.data.entity.RtuDataRsvrEntity;
 import org.springblade.modules.business.data.service.IRtuDataRsvrService;
@@ -50,7 +52,7 @@ import springfox.documentation.annotations.ApiIgnore;
 public class RtuDataRsvrController extends BladeController {
 	private final IRtuDataRsvrService dataRsvrService;
 	private final IDeptRegionService deptRegionService;
-
+	private final IBaseInfoRegionService regionService;
 	/**
 	 * 分页
 	 */
@@ -77,6 +79,12 @@ public class RtuDataRsvrController extends BladeController {
 				rtuDataRsvrDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
+		if (rtuDataRsvrDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuDataRsvrDTO.getAdCode());
+			if (null != node) {
+				rtuDataRsvrDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		IPage<RtuDataRsvrVO> pages = dataRsvrService.selectPage(Condition.getPage(query),rtuDataRsvrDTO);
 		return R.data(pages);
 	}

+ 3 - 0
src/main/java/org/springblade/modules/business/data/dto/RtuDataGroundDTO.java

@@ -82,4 +82,7 @@ public class RtuDataGroundDTO extends RtuDataGroundEntity {
 		timezone = "GMT+8"
 	)
 	private Date endTime;
+
+	@ApiModelProperty(value = "行政区划排除")
+	private Integer excludeCode;
 }

+ 3 - 0
src/main/java/org/springblade/modules/business/data/dto/RtuDataRainDTO.java

@@ -81,4 +81,7 @@ public class RtuDataRainDTO extends RtuDataRainEntity {
 		timezone = "GMT+8"
 	)
 	private Date endTime;
+
+	@ApiModelProperty(value = "行政区划排除")
+	private Integer excludeCode;
 }

+ 3 - 0
src/main/java/org/springblade/modules/business/data/dto/RtuDataRiverDTO.java

@@ -82,4 +82,7 @@ public class RtuDataRiverDTO extends RtuDataRiverEntity {
 		timezone = "GMT+8"
 	)
 	private Date endTime;
+
+	@ApiModelProperty(value = "行政区划排除")
+	private Integer excludeCode;
 }

+ 3 - 0
src/main/java/org/springblade/modules/business/data/dto/RtuDataRsvrDTO.java

@@ -46,4 +46,7 @@ public class RtuDataRsvrDTO extends RtuDataRsvrEntity {
 	 */
 	@ApiModelProperty("行政区划编码")
 	private String adCode;
+
+	@ApiModelProperty(value = "行政区划排除")
+	private Integer excludeCode;
 }

+ 8 - 2
src/main/java/org/springblade/modules/business/data/mapper/RtuDataGroundMapper.xml

@@ -57,8 +57,11 @@
         <if test="groundDTO.rtuCode!=null">
             and n.rtu_code like concat(concat('%', #{groundDTO.rtuCode}), '%')
         </if>
+        <if test="groundDTO.excludeCode!=null and groundDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="groundDTO.adCode!=null">
-            and (a.adcd =#{groundDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{groundDTO.adCode}), '%')))
+            and (a.adcd =#{groundDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{groundDTO.adCode}), '%')))
         </if>
         <choose>
             <when test="groundDTO.order!=null and groundDTO.order=='ascending'">
@@ -94,8 +97,11 @@
         w.is_deleted = 0
         AND w.tm >= #{groundDTO.beginTime}
         AND w.tm &lt; #{groundDTO.endTime}
+        <if test="groundDTO.excludeCode!=null and groundDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="groundDTO.adCode!=null">
-            and (a.adcd =#{groundDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{groundDTO.adCode}), '%')))
+            and (a.adcd =#{groundDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{groundDTO.adCode}), '%')))
         </if>
         GROUP BY
         w.rtu_code

+ 12 - 4
src/main/java/org/springblade/modules/business/data/mapper/RtuDataRainMapper.xml

@@ -28,8 +28,8 @@
         r.rtu_name,r.ad_city,r.ad_dist
         FROM
         data_att_st_prec_cache n
-        LEFT JOIN  rtu_info r ON n.rtu_code = r.rtu_code and r.is_deleted=0
-        LEFT JOIN  data_ad_cd_b a ON a.adcd = r.ad_code and a.is_deleted=0
+        LEFT JOIN rtu_info r ON n.rtu_code = r.rtu_code and r.is_deleted=0
+        LEFT JOIN data_ad_cd_b a ON a.adcd = r.ad_code and a.is_deleted=0
         WHERE
         n.is_deleted = 0
         <if test="rtuDataRainDTO.rtuName!=null ">
@@ -38,8 +38,12 @@
         <if test="rtuDataRainDTO.rtuCode!=null">
             and n.rtu_code like concat(concat('%', #{rtuDataRainDTO.rtuCode}), '%')
         </if>
+        <if test="rtuDataRainDTO.excludeCode!=null and rtuDataRainDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuDataRainDTO.adCode!=null">
-            and (a.adcd =#{rtuDataRainDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuDataRainDTO.adCode}), '%')))
+            and (a.adcd =#{rtuDataRainDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors
+            like concat(concat('%', #{rtuDataRainDTO.adCode}), '%')))
         </if>
         <choose>
             <when test="rtuDataRainDTO.order!=null and rtuDataRainDTO.order=='ascending'">
@@ -81,8 +85,12 @@
         w.is_deleted = 0
         AND w.tm >= #{rainDTO.beginTime}
         AND w.tm &lt; #{rainDTO.endTime}
+        <if test="rainDTO.excludeCode!=null and rainDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rainDTO.adCode!=null">
-            and (a.adcd =#{rainDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rainDTO.adCode}), '%')))
+            and (a.adcd =#{rainDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and
+            ancestors like concat(concat('%', #{rainDTO.adCode}), '%')))
         </if>
         GROUP BY
         w.rtu_code

+ 8 - 2
src/main/java/org/springblade/modules/business/data/mapper/RtuDataRiverMapper.xml

@@ -46,8 +46,11 @@
         <if test="riverDTO.rtuCode!=null">
             and n.rtu_code like concat(concat('%', #{riverDTO.rtuCode}), '%')
         </if>
+        <if test="riverDTO.excludeCode!=null and riverDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="riverDTO.adCode!=null">
-            and (a.adcd =#{riverDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{riverDTO.adCode}), '%')))
+            and (a.adcd =#{riverDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{riverDTO.adCode}), '%')))
         </if>
         order by r.ad_code,r.rtu_code
     </select>
@@ -65,8 +68,11 @@
         <if test="riverDTO.rtuCode!=null">
             and r.rtu_code like concat(concat('%', #{riverDTO.rtuCode}), '%')
         </if>
+        <if test="riverDTO.excludeCode!=null and riverDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="riverDTO.adCode!=null">
-            and (r.ad_code =#{riverDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{riverDTO.adCode}), '%')))
+            and (r.ad_code =#{riverDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{riverDTO.adCode}), '%')))
         </if>
         <choose>
             <when test="riverDTO.order!=null and riverDTO.order=='ascending'">

+ 4 - 1
src/main/java/org/springblade/modules/business/data/mapper/RtuDataRsvrMapper.xml

@@ -37,8 +37,11 @@
         <if test="rsvrDTO.rtuCode!=null">
             and n.rtu_code like concat(concat('%', #{rsvrDTO.rtuCode}), '%')
         </if>
+        <if test="rsvrDTO.excludeCode!=null and rsvrDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rsvrDTO.adCode!=null">
-            and (a.adcd =#{rsvrDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rsvrDTO.adCode}), '%')))
+            and (a.adcd =#{rsvrDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rsvrDTO.adCode}), '%')))
         </if>
     </select>
 </mapper>

+ 239 - 23
src/main/java/org/springblade/modules/business/equipment/inspection/base/controller/EquipmentInspectionController.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/23
  */
 package org.springblade.modules.business.equipment.inspection.base.controller;
@@ -28,6 +28,10 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+import org.springblade.modules.baseinfo.rtu.dto.RtuInfoDTO;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.equipment.inspection.base.dto.EquipmentInspectionInfoDTO;
 import org.springblade.modules.business.equipment.inspection.base.entity.EquipmentInspectionInfoEntity;
@@ -41,8 +45,6 @@ import org.springblade.modules.business.equipment.inspection.plan.entity.Equipme
 import org.springblade.modules.business.equipment.inspection.plan.service.IEquipmentInspectionPlanService;
 import org.springblade.modules.business.equipment.inspection.report.dto.EquipmentInspectionReportDTO;
 import org.springblade.modules.business.equipment.inspection.report.service.IEquipmentInspectionReportService;
-import org.springblade.modules.business.equipment.inspection.report.vo.EquipmentInspectionReportVO;
-import org.springblade.modules.business.equipment.inspection.report.wrapper.EquipmentInspectionReportWrapper;
 import org.springblade.modules.resource.builder.oss.OssBuilder;
 import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.entity.User;
@@ -78,6 +80,7 @@ public class EquipmentInspectionController extends BladeController {
 	private final IDeptRegionService deptRegionService;
 	private final IEquipmentInspectionReportService inspectionReportService;
 	private final IUserService userService;
+	private final IBaseInfoRegionService regionService;
 
 	@Resource
 	private OssBuilder ossBuilder;
@@ -123,6 +126,13 @@ public class EquipmentInspectionController extends BladeController {
 				inspectionInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
+
+		if (inspectionInfoDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), inspectionInfoDTO.getAdCode());
+			if (null != node) {
+				inspectionInfoDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		IPage<EquipmentInspectionInfoVO> pages = equipmentInspectionService.selectPage(Condition.getPage(query), inspectionInfoDTO);
 		return R.data(pages);
 	}
@@ -162,6 +172,13 @@ public class EquipmentInspectionController extends BladeController {
 				}
 			}
 		}
+		if (inspectionInfoDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), inspectionInfoDTO.getAdCode());
+			if (null != node) {
+				inspectionInfoDTO.setExcludeCode(node.getExclude());
+			}
+		}
+
 		Calendar calendar = Calendar.getInstance();
 		calendar.setTime(new Date());
 		calendar.set(Calendar.MONTH, 0);
@@ -219,6 +236,12 @@ public class EquipmentInspectionController extends BladeController {
 				inspectionInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
+		if (inspectionInfoDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), inspectionInfoDTO.getAdCode());
+			if (null != node) {
+				inspectionInfoDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		Calendar calendar = Calendar.getInstance();
 		calendar.setTime(new Date());
 		calendar.set(Calendar.MONTH, 0);
@@ -274,16 +297,25 @@ public class EquipmentInspectionController extends BladeController {
 				inspectionInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
+		int excludeCode =0;
+		if (inspectionInfoDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), inspectionInfoDTO.getAdCode());
+			if (null != node) {
+				excludeCode = node.getExclude();
+			}
+		}
+		inspectionInfoDTO.setExcludeCode(excludeCode);
 
 		Map<String, Object> data = new HashMap<>();
-
-		long count = rtuBaseInfoService.rtuCount(inspectionInfoDTO.getAdCode());
+		RtuInfoDTO rtuInfoDTO=new RtuInfoDTO();
+		rtuInfoDTO.setExcludeCode(excludeCode);
+		rtuInfoDTO.setAdCode(inspectionInfoDTO.getAdCode());
+		long count = rtuBaseInfoService.rtuCount(rtuInfoDTO);
 		data.put("rtus", count);
 		long rtus = count;
 		int rainKind = 0;
 		long remaininspectionrtus = 0;
 		EquipmentInspectionPlanEntity planEntity = planService.getPlanInfo();
-
 		Date dt = new Date();
 		if (dt.after(planEntity.getBeforeRainSeasonStartTime()) && dt.before(planEntity.getBeforeRainSeasonEndTime())) {
 			rainKind = 1;
@@ -306,7 +338,6 @@ public class EquipmentInspectionController extends BladeController {
 
 		count = equipmentInspectionService.inspectionCount(inspectionInfoDTO);
 		data.put("inspectionCount", count);
-
 		EquipmentInspectionReportDTO inspectionReportDTO = new EquipmentInspectionReportDTO();
 		calendar.setTime(new Date());
 		calendar.set(Calendar.MONTH, 0);
@@ -317,15 +348,14 @@ public class EquipmentInspectionController extends BladeController {
 		inspectionReportDTO.setInspectionYearStartDate(calendar.getTime());
 		calendar.add(Calendar.YEAR, 1);
 		inspectionReportDTO.setInspectionYearEndDate(calendar.getTime());
-
-
 		inspectionReportDTO.setRainSeasonKind(1);
+		inspectionReportDTO.setExcludeCode(excludeCode);
+		inspectionReportDTO.setAdCode(inspectionInfoDTO.getAdCode());
 		count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
 		data.put("beforeRainInspectionCount", count);
 		if (rainKind == 1) {
 			remaininspectionrtus = rtus - count;
 		}
-
 		inspectionReportDTO.setRainSeasonKind(2);
 		count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
 		data.put("firstRainInspectionCount", count);
@@ -339,7 +369,6 @@ public class EquipmentInspectionController extends BladeController {
 			remaininspectionrtus = rtus - count;
 		}
 		data.put("remaininspectionrtus", remaininspectionrtus);
-
 		return R.data(data);
 	}
 
@@ -503,30 +532,45 @@ public class EquipmentInspectionController extends BladeController {
 	@ApiOperation(value = "统计表格")
 	public R<List<OrgEquipmentInspectionStatisticsVO>> orgInspectionStatistics() {
 		BladeUser user = AuthUtil.getUser();
-		List<Dept> root = new LinkedList<>();
+
 		List<OrgEquipmentInspectionStatisticsVO> list = new LinkedList<>();
 		if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+			//运维公司和运维人员,只显示本部门统计数据
 			Dept dept = deptService.getById(Func.toLong(user.getDeptId()));
-			root.add(dept);
-		} else {
-			LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
-			wrapper.eq(Dept::getIsDeleted, 0);
-			wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
-			root = this.deptService.list(wrapper);
-		}
 
-		for (Dept dept : root) {
 			OrgEquipmentInspectionStatisticsVO orgEquipmentInspectionStatisticsVO = new OrgEquipmentInspectionStatisticsVO();
 			orgEquipmentInspectionStatisticsVO.setDeptId(dept.getId());
 			orgEquipmentInspectionStatisticsVO.setOrgName(dept.getDeptName());
+
 			LambdaQueryWrapper<DeptRegionEntity> deptLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
-			deptLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
-			deptLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, dept.getId());
+			deptLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, dept.getParentId());
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptLambdaQueryWrapper);
-			Long count = rtuBaseInfoService.rtuCount(deptRegionEntity.getAdcd());
+
+
+			LambdaQueryWrapper<RegionInfoEntity> nodeQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+			nodeQueryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+			RegionInfoEntity nodeRegion = this.regionService.getOne(nodeQueryWrapper);
+
+			int excludecode=0;
+			if (nodeRegion.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)){
+				excludecode=1;
+			}
+
+			RtuInfoDTO rtuInfoDTO=new RtuInfoDTO();
+		//	RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(),user.getDeptId(), deptRegionEntity.getAdcd());
+		//	if (null != node) {
+				rtuInfoDTO.setExcludeCode(excludecode);
+		//	}
+			rtuInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+
+			Long count = rtuBaseInfoService.rtuCount(rtuInfoDTO);
 			orgEquipmentInspectionStatisticsVO.setRtuCount(count);
 			EquipmentInspectionInfoDTO inspectionInfoDTO = new EquipmentInspectionInfoDTO();
 			inspectionInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+
+			//if (null != node) {
+				inspectionInfoDTO.setExcludeCode(excludecode);
+			//}
 			Calendar calendar = Calendar.getInstance();
 			calendar.setTime(new Date());
 			calendar.set(Calendar.MONTH, 0);
@@ -541,6 +585,9 @@ public class EquipmentInspectionController extends BladeController {
 			orgEquipmentInspectionStatisticsVO.setInspectionCount(count);
 			EquipmentInspectionReportDTO inspectionReportDTO = new EquipmentInspectionReportDTO();
 			inspectionReportDTO.setAdCode(deptRegionEntity.getAdcd());
+			//if (null != node) {
+				inspectionReportDTO.setExcludeCode(excludecode);
+			//}
 			calendar.setTime(new Date());
 			calendar.set(Calendar.MONTH, 0);
 			calendar.set(Calendar.DAY_OF_MONTH, 1);
@@ -560,7 +607,164 @@ public class EquipmentInspectionController extends BladeController {
 			count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
 			orgEquipmentInspectionStatisticsVO.setSencodRainInspectionCount(count);
 			list.add(orgEquipmentInspectionStatisticsVO);
+
+		} else  if(BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())){
+
+			LambdaQueryWrapper<DeptRegionEntity> orgdeptregionWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+			orgdeptregionWrapper.eq(DeptRegionEntity::getDeptId,Func.toLong(user.getDeptId()));
+			DeptRegionEntity orgdeptregion = deptRegionService.getOne(orgdeptregionWrapper);
+
+			LambdaQueryWrapper<RegionInfoEntity> nodeQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+			nodeQueryWrapper.eq(RegionInfoEntity::getAdcd, orgdeptregion.getAdcd());
+			RegionInfoEntity orgregion = this.regionService.getOne(nodeQueryWrapper);
+
+			int excludecode=0;
+			if (orgregion.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)){
+				excludecode=1;
+			}
+
+			//盟市管理员,显示运维公司统计数据
+			LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
+			wrapper.eq(Dept::getIsDeleted, 0);
+			wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
+			List<Dept> deptList = this.deptService.list(wrapper);
+			for (Dept dept : deptList) {
+				OrgEquipmentInspectionStatisticsVO orgEquipmentInspectionStatisticsVO = new OrgEquipmentInspectionStatisticsVO();
+				orgEquipmentInspectionStatisticsVO.setDeptId(dept.getId());
+				orgEquipmentInspectionStatisticsVO.setOrgName(dept.getDeptName());
+
+			//	LambdaQueryWrapper<DeptRegionEntity> deptLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+				//deptLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, dept.getId());
+			//	DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptLambdaQueryWrapper);
+				RtuInfoDTO rtuInfoDTO=new RtuInfoDTO();
+
+			//	RegionTreeNodeEntity node = this.regionService.getRegionNode(BusinessConstant.ROLE_COMPANY_ADMIN,Func.toStr(dept.getId()), deptRegionEntity.getAdcd());
+			//	if (null != node) {
+					rtuInfoDTO.setExcludeCode(excludecode);
+			//	}
+				rtuInfoDTO.setAdCode(orgregion.getAdcd());
+				Long count = rtuBaseInfoService.rtuCount(rtuInfoDTO);
+				orgEquipmentInspectionStatisticsVO.setRtuCount(count);
+				EquipmentInspectionInfoDTO inspectionInfoDTO = new EquipmentInspectionInfoDTO();
+				inspectionInfoDTO.setAdCode(orgregion.getAdcd());
+			//	if (null != node) {
+					inspectionInfoDTO.setExcludeCode(excludecode);
+			//	}
+				Calendar calendar = Calendar.getInstance();
+				calendar.setTime(new Date());
+				calendar.set(Calendar.MONTH, 0);
+				calendar.set(Calendar.DAY_OF_MONTH, 1);
+				calendar.set(Calendar.HOUR_OF_DAY, 0);
+				calendar.set(Calendar.MINUTE, 0);
+				calendar.set(Calendar.SECOND, 0);
+				inspectionInfoDTO.setInspectionYearStartDate(calendar.getTime());
+				calendar.add(Calendar.YEAR, 1);
+				inspectionInfoDTO.setInspectionYearEndDate(calendar.getTime());
+				count = equipmentInspectionService.inspectionCount(inspectionInfoDTO);
+				orgEquipmentInspectionStatisticsVO.setInspectionCount(count);
+				EquipmentInspectionReportDTO inspectionReportDTO = new EquipmentInspectionReportDTO();
+				inspectionReportDTO.setAdCode(orgregion.getAdcd());
+				//if (null != node) {
+					inspectionReportDTO.setExcludeCode(excludecode);
+			//	}
+				calendar.setTime(new Date());
+				calendar.set(Calendar.MONTH, 0);
+				calendar.set(Calendar.DAY_OF_MONTH, 1);
+				calendar.set(Calendar.HOUR_OF_DAY, 0);
+				calendar.set(Calendar.MINUTE, 0);
+				calendar.set(Calendar.SECOND, 0);
+				inspectionReportDTO.setInspectionYearStartDate(calendar.getTime());
+				calendar.add(Calendar.YEAR, 1);
+				inspectionReportDTO.setInspectionYearEndDate(calendar.getTime());
+				inspectionReportDTO.setRainSeasonKind(1);
+				count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
+				orgEquipmentInspectionStatisticsVO.setBeforeRainInspectionCount(count);
+				inspectionReportDTO.setRainSeasonKind(2);
+				count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
+				orgEquipmentInspectionStatisticsVO.setFirstRainInspectionCount(count);
+				inspectionReportDTO.setRainSeasonKind(3);
+				count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
+				orgEquipmentInspectionStatisticsVO.setSencodRainInspectionCount(count);
+				list.add(orgEquipmentInspectionStatisticsVO);
+			}
+		}else{
+			//系统管理员,显示盟市部门统计数据
+			LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
+			wrapper.eq(Dept::getIsDeleted, 0);
+			wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
+			List<Dept> deptList = this.deptService.list(wrapper);
+			for (Dept dept : deptList) {
+				OrgEquipmentInspectionStatisticsVO orgEquipmentInspectionStatisticsVO = new OrgEquipmentInspectionStatisticsVO();
+				orgEquipmentInspectionStatisticsVO.setDeptId(dept.getId());
+				orgEquipmentInspectionStatisticsVO.setOrgName(dept.getDeptName());
+
+				LambdaQueryWrapper<DeptRegionEntity> deptLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+				deptLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, dept.getId());
+				DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptLambdaQueryWrapper);
+
+				LambdaQueryWrapper<RegionInfoEntity> nodeQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+				nodeQueryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+				RegionInfoEntity nodeRegion = this.regionService.getOne(nodeQueryWrapper);
+
+				int excludecode=0;
+				if (nodeRegion.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)){
+					excludecode=1;
+				}
+
+				RtuInfoDTO rtuInfoDTO=new RtuInfoDTO();
+
+				//RegionTreeNodeEntity node = this.regionService.getRegionNode(BusinessConstant.ROLE_ORG_ADMIN,Func.toStr(dept.getId()), deptRegionEntity.getAdcd());
+				//if (null != node) {
+					rtuInfoDTO.setExcludeCode(excludecode);
+				//}
+				rtuInfoDTO.setAdCode(nodeRegion.getAdcd());
+				Long count = rtuBaseInfoService.rtuCount(rtuInfoDTO);
+
+				orgEquipmentInspectionStatisticsVO.setRtuCount(count);
+				EquipmentInspectionInfoDTO inspectionInfoDTO = new EquipmentInspectionInfoDTO();
+				inspectionInfoDTO.setAdCode(nodeRegion.getAdcd());
+				//if (null != node) {
+					inspectionInfoDTO.setExcludeCode(excludecode);
+				//}
+				Calendar calendar = Calendar.getInstance();
+				calendar.setTime(new Date());
+				calendar.set(Calendar.MONTH, 0);
+				calendar.set(Calendar.DAY_OF_MONTH, 1);
+				calendar.set(Calendar.HOUR_OF_DAY, 0);
+				calendar.set(Calendar.MINUTE, 0);
+				calendar.set(Calendar.SECOND, 0);
+				inspectionInfoDTO.setInspectionYearStartDate(calendar.getTime());
+				calendar.add(Calendar.YEAR, 1);
+				inspectionInfoDTO.setInspectionYearEndDate(calendar.getTime());
+				count = equipmentInspectionService.inspectionCount(inspectionInfoDTO);
+				orgEquipmentInspectionStatisticsVO.setInspectionCount(count);
+				EquipmentInspectionReportDTO inspectionReportDTO = new EquipmentInspectionReportDTO();
+				inspectionReportDTO.setAdCode(deptRegionEntity.getAdcd());
+			//	if (null != node) {
+					inspectionReportDTO.setExcludeCode(excludecode);
+			//	}
+				calendar.setTime(new Date());
+				calendar.set(Calendar.MONTH, 0);
+				calendar.set(Calendar.DAY_OF_MONTH, 1);
+				calendar.set(Calendar.HOUR_OF_DAY, 0);
+				calendar.set(Calendar.MINUTE, 0);
+				calendar.set(Calendar.SECOND, 0);
+				inspectionReportDTO.setInspectionYearStartDate(calendar.getTime());
+				calendar.add(Calendar.YEAR, 1);
+				inspectionReportDTO.setInspectionYearEndDate(calendar.getTime());
+				inspectionReportDTO.setRainSeasonKind(1);
+				count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
+				orgEquipmentInspectionStatisticsVO.setBeforeRainInspectionCount(count);
+				inspectionReportDTO.setRainSeasonKind(2);
+				count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
+				orgEquipmentInspectionStatisticsVO.setFirstRainInspectionCount(count);
+				inspectionReportDTO.setRainSeasonKind(3);
+				count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
+				orgEquipmentInspectionStatisticsVO.setSencodRainInspectionCount(count);
+				list.add(orgEquipmentInspectionStatisticsVO);
+			}
 		}
+
 		return R.data(list);
 	}
 
@@ -587,6 +791,12 @@ public class EquipmentInspectionController extends BladeController {
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 			inspectionInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 		}
+		if (inspectionInfoDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), inspectionInfoDTO.getAdCode());
+			if (null != node) {
+				inspectionInfoDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		Date now = new Date();
 		if (inspectionInfoDTO.getInspectionYear() != null) {
 			Date year = Func.parseDate(inspectionInfoDTO.getInspectionYear(), "yyyy-MM-dd");
@@ -676,6 +886,12 @@ public class EquipmentInspectionController extends BladeController {
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 			inspectionInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 		}
+		if (inspectionInfoDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), inspectionInfoDTO.getAdCode());
+			if (null != node) {
+				inspectionInfoDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		//文件标题
 		String title = "";
 		//当前时间

+ 4 - 0
src/main/java/org/springblade/modules/business/equipment/inspection/base/dto/EquipmentInspectionInfoDTO.java

@@ -98,4 +98,8 @@ public class EquipmentInspectionInfoDTO extends EquipmentInspectionInfoEntity {
 	 */
 	@ApiModelProperty("排序字段")
 	private String prop;
+
+	@ApiModelProperty(value = "行政区划排除")
+	private Integer excludeCode;
+
 }

+ 32 - 5
src/main/java/org/springblade/modules/business/equipment/inspection/base/mapper/EquipmentInspectionMapper.xml

@@ -111,9 +111,12 @@
         <if test="inspectionInfoDTO.rainSeasonSecondReportUser!=null">
             and n.rain_season_second_report_user = #{inspectionInfoDTO.rainSeasonSecondReportUser}
         </if>
+        <if test="inspectionInfoDTO.excludeCode!=null and inspectionInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionInfoDTO.adCode!=null">
             and (a.adcd =#{inspectionInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors like concat(concat('%', #{inspectionInfoDTO.adCode}), '%')))
+            is_deleted =0 and ancestors like concat(concat('%', #{inspectionInfoDTO.adCode}), '%')))
         </if>
         <choose>
             <when test="inspectionInfoDTO.order!=null and inspectionInfoDTO.order=='ascending'">
@@ -160,9 +163,12 @@
         <if test="inspectionInfoDTO.rtuName!=null">
             and r.rtu_name like concat(concat('%', #{inspectionInfoDTO.rtuName}), '%')
         </if>
+        <if test="inspectionInfoDTO.excludeCode!=null and inspectionInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionInfoDTO.adCode!=null">
             and (a.adcd =#{inspectionInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors like concat(concat('%', #{inspectionInfoDTO.adCode}), '%')))
+            is_deleted =0 and ancestors like concat(concat('%', #{inspectionInfoDTO.adCode}), '%')))
         </if>
         and r.rtu_code not in (select n.rtu_code from equipment_inspection n where
         n.is_deleted = 0
@@ -226,9 +232,12 @@
         <if test="inspectionInfoDTO.rainSeasonSecondReportUser!=null">
             and n.rain_season_second_report_user = #{inspectionInfoDTO.rainSeasonSecondReportUser}
         </if>
+        <if test="inspectionInfoDTO.excludeCode!=null and inspectionInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionInfoDTO.adCode!=null">
             and (a.adcd =#{inspectionInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors like concat(concat('%', #{inspectionInfoDTO.adCode}), '%')))
+            is_deleted =0 and ancestors like concat(concat('%', #{inspectionInfoDTO.adCode}), '%')))
         </if>
     </select>
 
@@ -265,9 +274,18 @@
         </if>
         LEFT JOIN data_ad_cd_b a ON a.adcd = r1.ad_code and a.is_deleted=0
         WHERE r1.is_deleted=0
+        <if test="inspectionInfoDTO.rtuCode!=null">
+            and r1.rtu_code like concat(concat('%', #{inspectionInfoDTO.rtuCode}), '%')
+        </if>
+        <if test="inspectionInfoDTO.rtuName!=null">
+            and r1.rtu_name like concat(concat('%', #{inspectionInfoDTO.rtuName}), '%')
+        </if>
+        <if test="inspectionInfoDTO.excludeCode!=null and inspectionInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionInfoDTO.adCode!=null">
             and (a.adcd =#{inspectionInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors
+            is_deleted =0 and ancestors
             like concat(concat('%', #{inspectionInfoDTO.adCode}), '%')))
         </if>
         order by  i1.before_rain_season_status desc ,i1.rain_season_first_status  desc ,i1.rain_season_second_status desc , r1.rtu_code ASC
@@ -305,9 +323,18 @@
         </if>
         LEFT JOIN data_ad_cd_b a ON a.adcd = r1.ad_code and a.is_deleted=0
         WHERE r1.is_deleted=0
+        <if test="inspectionInfoDTO.rtuCode!=null">
+            and r1.rtu_code like concat(concat('%', #{inspectionInfoDTO.rtuCode}), '%')
+        </if>
+        <if test="inspectionInfoDTO.rtuName!=null">
+            and r1.rtu_name like concat(concat('%', #{inspectionInfoDTO.rtuName}), '%')
+        </if>
+        <if test="inspectionInfoDTO.excludeCode!=null and inspectionInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionInfoDTO.adCode!=null">
             and (a.adcd =#{inspectionInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors
+            is_deleted =0 and ancestors
             like concat(concat('%', #{inspectionInfoDTO.adCode}), '%')))
         </if>
         order by  r1.ad_code, r1.rtu_code

+ 41 - 3
src/main/java/org/springblade/modules/business/equipment/inspection/report/controller/EquipmentInspectionReportController.java

@@ -31,6 +31,8 @@ import org.springblade.core.tool.utils.Func;
 
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.equipment.inspection.base.entity.EquipmentInspectionInfoEntity;
@@ -76,6 +78,7 @@ public class EquipmentInspectionReportController extends BladeController {
 	private final IEquipmentInspectionPlanService planService;
 	private final IDeptRegionService deptRegionService;
 	private final IRtuBaseInfoService rtuBaseInfoService;
+	private final IBaseInfoRegionService regionService;
 
 	@Resource
 	private OssBuilder ossBuilder;
@@ -145,9 +148,9 @@ public class EquipmentInspectionReportController extends BladeController {
 	public R<IPage<EquipmentInspectionReportVO>> page(@ApiIgnore EquipmentInspectionReportDTO inspectionReportDTO, Query query) {
 		BladeUser user = AuthUtil.getUser();
 		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			if (inspectionReportDTO.getAdCode() == null) {
-				inspectionReportDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
-			}
+//			if (inspectionReportDTO.getAdCode() == null) {
+//				inspectionReportDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
+//			}
 		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
 			if (inspectionReportDTO.getAdCode() == null) {
 				LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
@@ -157,6 +160,14 @@ public class EquipmentInspectionReportController extends BladeController {
 				inspectionReportDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
+		int excludeCode =0;
+		if (inspectionReportDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), inspectionReportDTO.getAdCode());
+			if (null != node) {
+				excludeCode = node.getExclude();
+			}
+		}
+		inspectionReportDTO.setExcludeCode(excludeCode);
 		if (inspectionReportDTO.getInspectionYear() != null) {
 			Date year = Func.parseDate(inspectionReportDTO.getInspectionYear(), "yyyy-MM-dd");
 			Calendar calendar = Calendar.getInstance();
@@ -506,6 +517,11 @@ public class EquipmentInspectionReportController extends BladeController {
 			inspectionReportDTO.setAdCode(deptRegionEntity.getAdcd());
 		}
 
+		if (inspectionReportDTO.getAdCode()!=null){
+			RegionTreeNodeEntity nodeEntity= this.regionService.getRegionNode(user.getRoleName(),user.getDeptId(),inspectionReportDTO.getAdCode());
+			inspectionReportDTO.setExcludeCode(nodeEntity.getExclude());
+		}
+
 		Date date = new Date();
 		String dt = Func.formatDateTime(date);
 		inspectionReportDTO.setCreateTime(Func.parse(dt, ConcurrentDateFormat.of("yyyy-MM-dd")));
@@ -626,6 +642,10 @@ public class EquipmentInspectionReportController extends BladeController {
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 			inspectionReportDTO.setAdCode(deptRegionEntity.getAdcd());
 		}
+		if (inspectionReportDTO.getAdCode()!=null){
+			RegionTreeNodeEntity nodeEntity= this.regionService.getRegionNode(user.getRoleName(),user.getDeptId(),inspectionReportDTO.getAdCode());
+			inspectionReportDTO.setExcludeCode(nodeEntity.getExclude());
+		}
 		if (inspectionReportDTO.getInspectionYear() != null) {
 			Date year = Func.parseDate(inspectionReportDTO.getInspectionYear(), "yyyy-MM-dd");
 			Calendar calendar = Calendar.getInstance();
@@ -697,6 +717,12 @@ public class EquipmentInspectionReportController extends BladeController {
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 			inspectionReportDTO.setAdCode(deptRegionEntity.getAdcd());
 		}
+		if (inspectionReportDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), inspectionReportDTO.getAdCode());
+			if (null != node) {
+				inspectionReportDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		//文件标题
 		String title = "";
 		//当前时间
@@ -954,6 +980,12 @@ public class EquipmentInspectionReportController extends BladeController {
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 			inspectionReportDTO.setAdCode(deptRegionEntity.getAdcd());
 		}
+		if (inspectionReportDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), inspectionReportDTO.getAdCode());
+			if (null != node) {
+				inspectionReportDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		//文件标题
 		String title = "";
 		//当前时间
@@ -1218,6 +1250,12 @@ public class EquipmentInspectionReportController extends BladeController {
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 			inspectionReportDTO.setAdCode(deptRegionEntity.getAdcd());
 		}
+		if (inspectionReportDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), inspectionReportDTO.getAdCode());
+			if (null != node) {
+				inspectionReportDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		if (inspectionReportDTO.getInspectionYear() != null) {
 			Date year = Func.parseDate(inspectionReportDTO.getInspectionYear(), "yyyy-MM-dd");
 			Calendar calendar = Calendar.getInstance();

+ 2 - 1
src/main/java/org/springblade/modules/business/equipment/inspection/report/dto/EquipmentInspectionReportDTO.java

@@ -58,6 +58,7 @@ public class EquipmentInspectionReportDTO extends EquipmentInspectionReportEntit
 	@ApiModelProperty("结束日期")
 	private Date inspectionYearEndDate;
 
-
+	@ApiModelProperty(value = "行政区划排除")
+	private Integer excludeCode;
 
 }

+ 40 - 14
src/main/java/org/springblade/modules/business/equipment/inspection/report/mapper/EquipmentInspectionReportMapper.xml

@@ -179,9 +179,12 @@
         <if test="inspectionReportDTO.inspectionYearEndDate!=null">
             and r.create_time &lt; #{inspectionReportDTO.inspectionYearEndDate}
         </if>
+        <if test="inspectionReportDTO.excludeCode!=null and inspectionReportDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionReportDTO.adCode!=null">
             and (i.ad_code =#{inspectionReportDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors
+            is_deleted =0 and ancestors
             like concat(concat('%', #{inspectionReportDTO.adCode}), '%')))
         </if>
         order by r.rtu_code ASC,r.create_time desc
@@ -215,9 +218,12 @@
         <if test="inspectionReportDTO.inspectionYearEndDate!=null">
             and r.create_time &lt; #{inspectionReportDTO.inspectionYearEndDate}
         </if>
+        <if test="inspectionReportDTO.excludeCode!=null and inspectionReportDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionReportDTO.adCode!=null">
             and (a.adcd =#{inspectionReportDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors
+            is_deleted =0 and ancestors
             like concat(concat('%', #{inspectionReportDTO.adCode}), '%')))
         </if>
         order by r.create_time DESC,rtu.rtu_code ASC
@@ -241,10 +247,12 @@
         <if test="inspectionReportDTO.inspectionYearEndDate!=null">
             and r.create_time &lt; #{inspectionReportDTO.inspectionYearEndDate}
         </if>
+        <if test="inspectionReportDTO.excludeCode!=null and inspectionReportDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionReportDTO.adCode!=null">
             and (a.adcd =#{inspectionReportDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors
-            like concat(concat('%', #{inspectionReportDTO.adCode}), '%')))
+            is_deleted = 0 and ancestors like concat(concat('%', #{inspectionReportDTO.adCode}), '%')))
         </if>
 
     </select>
@@ -268,9 +276,12 @@
         <if test="inspectionReportDTO.rtuName!=null">
             and rtu.rtu_name like concat(concat('%', #{inspectionReportDTO.rtuName}), '%')
         </if>
+        <if test="inspectionReportDTO.excludeCode!=null and inspectionReportDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionReportDTO.adCode!=null">
             and (a.adcd =#{inspectionReportDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors
+            is_deleted =0 and ancestors
             like concat(concat('%', #{inspectionReportDTO.adCode}), '%')))
         </if>
         order by r.create_time desc
@@ -295,9 +306,12 @@
         <if test="inspectionReportDTO.rtuName!=null">
             and rtu.rtu_name like concat(concat('%', #{inspectionReportDTO.rtuName}), '%')
         </if>
+        <if test="inspectionReportDTO.excludeCode!=null and inspectionReportDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionReportDTO.adCode!=null">
             and (a.adcd =#{inspectionReportDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors
+            is_deleted =0 and ancestors
             like concat(concat('%', #{inspectionReportDTO.adCode}), '%')))
         </if>
         order by r.create_time desc
@@ -317,10 +331,12 @@
         <if test="inspectionReportDTO.createTime!=null ">
             and DATE_FORMAT(r.create_time,'%Y-%m-%d') = DATE_FORMAT(#{inspectionReportDTO.createTime},'%Y-%m-%d')
         </if>
-
+        <if test="inspectionReportDTO.excludeCode!=null and inspectionReportDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionReportDTO.adCode!=null">
             and (a.adcd =#{inspectionReportDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors
+            is_deleted = 0 and ancestors
             like concat(concat('%', #{inspectionReportDTO.adCode}), '%')))
         </if>
          group by r.rtu_code ) s
@@ -353,9 +369,12 @@
         <if test="inspectionReportDTO.inspectionYearEndDate!=null">
             and r.create_time &lt; #{inspectionReportDTO.inspectionYearEndDate}
         </if>
+        <if test="inspectionReportDTO.excludeCode!=null and inspectionReportDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionReportDTO.adCode!=null">
             and (a.adcd =#{inspectionReportDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors
+            is_deleted =0 and ancestors
             like concat(concat('%', #{inspectionReportDTO.adCode}), '%')))
         </if>
         order by r.remain_question_resolution , r.create_time DESC,rtu.rtu_code ASC
@@ -376,9 +395,12 @@
         <if test="inspectionReportDTO.rainSeasonKind!=null">
             and r.rain_season_kind = #{inspectionReportDTO.rainSeasonKind}
         </if>
+        <if test="inspectionReportDTO.excludeCode!=null and inspectionReportDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionReportDTO.adCode!=null">
             and (a.adcd =#{inspectionReportDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors
+            is_deleted =0 and ancestors
             like concat(concat('%', #{inspectionReportDTO.adCode}), '%')))
         </if>
         order by r.remain_question_state ASC,r.create_time DESC,rtu.rtu_code ASC
@@ -396,14 +418,15 @@
         WHERE
         r.is_deleted = 0
         and r.remain_question_state = 1
-
         <if test="inspectionReportDTO.rainSeasonKind!=null">
             and r.rain_season_kind = #{inspectionReportDTO.rainSeasonKind}
         </if>
-
+        <if test="inspectionReportDTO.excludeCode!=null and inspectionReportDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionReportDTO.adCode!=null">
             and (a.adcd =#{inspectionReportDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors
+            is_deleted =0 and ancestors
             like concat(concat('%', #{inspectionReportDTO.adCode}), '%')))
         </if>
         order by r.remain_question_state ASC,r.create_time DESC,rtu.rtu_code ASC
@@ -436,9 +459,12 @@
         <if test="inspectionReportDTO.inspectionYearEndDate!=null">
             and r.create_time &lt; #{inspectionReportDTO.inspectionYearEndDate}
         </if>
+        <if test="inspectionReportDTO.excludeCode!=null and inspectionReportDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="inspectionReportDTO.adCode!=null">
             and (rtu.ad_code =#{inspectionReportDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE
-            ancestors
+            is_deleted =0 and ancestors
             like concat(concat('%', #{inspectionReportDTO.adCode}), '%')))
         </if>
         order by  r.photo_supplement_submit_status ASC,r.create_time ASC,rtu.rtu_code ASC

+ 29 - 48
src/main/java/org/springblade/modules/business/equipment/inspection/report/wrapper/EquipmentInspectionReportWrapper.java

@@ -1,25 +1,25 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/23
  */
 package org.springblade.modules.business.equipment.inspection.report.wrapper;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import org.springblade.common.cache.DictBizCache;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.equipment.inspection.report.entity.EquipmentInspectionReportEntity;
 import org.springblade.modules.business.equipment.inspection.report.vo.EquipmentInspectionReportVO;
 import org.springblade.modules.system.entity.Dept;
-import org.springblade.modules.system.entity.DictBiz;
 import org.springblade.modules.system.service.IDeptService;
 
 import java.util.List;
@@ -66,6 +66,15 @@ public class EquipmentInspectionReportWrapper extends BaseEntityWrapper<Equipmen
 		return deptService;
 	}
 
+	private static IBaseInfoRegionService regionService;
+
+	private static IBaseInfoRegionService getRegionService() {
+		if (regionService == null) {
+			regionService = SpringUtil.getBean(IBaseInfoRegionService.class);
+		}
+		return regionService;
+	}
+
 	@Override
 	public EquipmentInspectionReportVO entityVO(EquipmentInspectionReportEntity entity) {
 		EquipmentInspectionReportVO vo = Objects.requireNonNull(BeanUtil.copy(entity, EquipmentInspectionReportVO.class));
@@ -73,63 +82,35 @@ public class EquipmentInspectionReportWrapper extends BaseEntityWrapper<Equipmen
 	}
 
 	public EquipmentInspectionReportVO entityVO(EquipmentInspectionReportVO vo) {
-//		LambdaQueryWrapper<RtuInfoEntity> rtuwrapper = Wrappers.<RtuInfoEntity>query().lambda();
-//		rtuwrapper.eq(RtuInfoEntity::getIsDeleted, 0L);
-//		rtuwrapper.eq(RtuInfoEntity::getRtuCode, vo.getRtuCode());
-//		RtuInfoEntity rtuInfoEntity = getRtuBaseInfoService().getOne(rtuwrapper);
-//		vo.setRtuName(rtuInfoEntity.getRtuName());
-//		DictBiz biz = DictBizCache.getById(vo.getWaterSensorType());
-//		if (null != biz) {
-//			vo.setWaterSensorTypeText(biz.getDictValue());
-//		}
-//		biz = DictBizCache.getById(vo.getGroundSensorType());
-//		if (null != biz) {
-//			vo.setGroundSensorTypeText(biz.getDictValue());
-//		}
-//		biz = DictBizCache.getById(vo.getSatelliteModel());
-//		if (null != biz) {
-//			vo.setSatelliteModelText(biz.getDictValue());
-//		}
 		LambdaQueryWrapper<RtuInfoEntity> rtuwrapper = Wrappers.<RtuInfoEntity>query().lambda();
-		rtuwrapper.eq(RtuInfoEntity::getIsDeleted, 0);
 		rtuwrapper.eq(RtuInfoEntity::getRtuCode, vo.getRtuCode());
 		RtuInfoEntity rtuInfoEntity = getRtuBaseInfoService().getOne(rtuwrapper);
-
 		vo.setRtuName(rtuInfoEntity.getRtuName());
 		vo.setIsRain(rtuInfoEntity.getIsRain());
 		vo.setIsRes(rtuInfoEntity.getIsRes());
 		vo.setIsRiver(rtuInfoEntity.getIsRiver());
 		vo.setIsGround(rtuInfoEntity.getIsGround());
-
 		vo.setAdCity(rtuInfoEntity.getAdCity());
 		vo.setAdDist(rtuInfoEntity.getAdDist());
-
-		String ancestors = vo.getAncestors();
-		if (null != ancestors && ancestors.length() > 0) {
-			String[] ancestorsList = ancestors.split(",");
-			String adCode;
-			if (ancestorsList.length >= 3) {
-				adCode = ancestorsList[2];
-			} else {
-				adCode = vo.getAdCode();
-			}
-			if (null != adCode) {
-				LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
-				wrapper.eq(DeptRegionEntity::getIsDeleted, 0);
-				wrapper.eq(DeptRegionEntity::getAdcd, adCode);
-				List<DeptRegionEntity> deptRegionEntities = getDeptRegionService().list(wrapper);
-				if (null != deptRegionEntities && deptRegionEntities.size() > 0) {
-					String manageCompany = "";
-					for (DeptRegionEntity deptRegionEntity : deptRegionEntities) {
-						Dept dept = getDeptService().getById(deptRegionEntity.getDeptId());
-						if (null != dept) {
-							if (manageCompany.length() > 0) {
-								manageCompany += " / ";
-							}
-							manageCompany += dept.getDeptName();
+		LambdaQueryWrapper<RegionInfoEntity> regionQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+		regionQueryWrapper.eq(RegionInfoEntity::getAdcd, rtuInfoEntity.getAdCode());
+		RegionInfoEntity regionInfoEntity = getRegionService().getOne(regionQueryWrapper);
+		String ancestors = regionInfoEntity.getAncestors() + "," + rtuInfoEntity.getAdCode();
+		String[] ancestorsList = ancestors.split(",");
+		for (int i = 2; i < ancestorsList.length; i++) {
+			String adCode = ancestorsList[i];
+			LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+			wrapper.eq(DeptRegionEntity::getAdcd, adCode);
+			List<DeptRegionEntity> deptRegionEntities = getDeptRegionService().list(wrapper);
+			if (null != deptRegionEntities && deptRegionEntities.size() > 0) {
+				for (DeptRegionEntity deptRegionEntity : deptRegionEntities) {
+					Dept dept = getDeptService().getById(deptRegionEntity.getDeptId());
+					if (null != dept) {
+						if (dept.getDeptCategory() == 1) {
+							vo.setManageCompany(dept.getDeptName());
+							break;
 						}
 					}
-					vo.setManageCompany(manageCompany);
 				}
 			}
 		}

+ 150 - 97
src/main/java/org/springblade/modules/business/home/controller/HomeController.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/27
  */
 package org.springblade.modules.business.home.controller;
@@ -21,9 +21,12 @@ import org.springblade.core.tool.utils.ConcurrentDateFormat;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.enums.OrderCloseEnum;
 import org.springblade.enums.OrderConfirmEnum;
-import org.springblade.enums.WarnKindEnum;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+import org.springblade.modules.baseinfo.rtu.dto.RtuInfoDTO;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.check.order.dto.CheckOrderInfoDTO;
 import org.springblade.modules.business.check.order.entity.CheckOrderInfoEntity;
@@ -33,39 +36,29 @@ import org.springblade.modules.business.check.order.service.IRtuCheckOrderServic
 import org.springblade.modules.business.check.order.vo.CheckOrderInfoVO;
 import org.springblade.modules.business.check.process.dto.OrderProcessInfoDTO;
 import org.springblade.modules.business.check.process.service.IRtuOrderProcessService;
-import org.springblade.modules.business.check.process.vo.OrderProcessInfoVO;
-import org.springblade.modules.business.check.process.wrapper.RtuOrderProcessWrapper;
 import org.springblade.modules.business.data.dto.RtuDataGroundDTO;
 import org.springblade.modules.business.data.dto.RtuDataRainDTO;
 import org.springblade.modules.business.data.dto.RtuDataRiverDTO;
 import org.springblade.modules.business.data.service.IRtuDataGroundService;
 import org.springblade.modules.business.data.service.IRtuDataRainService;
 import org.springblade.modules.business.data.service.IRtuDataRiverService;
-import org.springblade.modules.business.equipment.inspection.base.dto.EquipmentInspectionInfoDTO;
-import org.springblade.modules.business.equipment.inspection.base.vo.OrgEquipmentInspectionStatisticsVO;
 import org.springblade.modules.business.equipment.inspection.plan.entity.EquipmentInspectionPlanEntity;
 import org.springblade.modules.business.equipment.inspection.plan.service.IEquipmentInspectionPlanService;
 import org.springblade.modules.business.equipment.inspection.report.dto.EquipmentInspectionReportDTO;
 import org.springblade.modules.business.equipment.inspection.report.service.IEquipmentInspectionReportService;
-import org.springblade.modules.business.equipment.inspection.report.vo.EquipmentInspectionReportVO;
-import org.springblade.modules.business.equipment.inspection.report.wrapper.EquipmentInspectionReportWrapper;
 import org.springblade.modules.business.home.VO.*;
 import org.springblade.modules.business.notice.dto.NoticeDTO;
 import org.springblade.modules.business.notice.entity.NoticeViewEntity;
 import org.springblade.modules.business.notice.service.INoticeService;
 import org.springblade.modules.business.notice.service.INoticeViewService;
 import org.springblade.modules.business.warning.dto.RtuWarningInfoDTO;
-import org.springblade.modules.business.warning.entity.RtuWarningInfoEntity;
 import org.springblade.modules.business.warning.service.IRtuWarningService;
-import org.springblade.modules.business.warning.vo.RtuWarningInfoVO;
-import org.springblade.modules.business.warning.wrapper.RtuWarningWrapper;
 import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.service.IDeptService;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-import springfox.documentation.annotations.ApiIgnore;
 
 import javax.annotation.Resource;
 import java.time.Duration;
@@ -100,45 +93,61 @@ public class HomeController {
 	private final IRtuDataRainService rainService;
 	private final IRtuDataRiverService riverService;
 	private final IRtuDataGroundService groundService;
-	@Resource
-	private RedisTemplate redisTemplate;
+	private final IBaseInfoRegionService regionService;
+
 
 	@GetMapping("/real/info")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情")
 	public R<HomeInfoVO> detail() {
-		//HashOperations<String, String, String> opsHash = redisTemplate.opsForHash();
 		BladeUser user = AuthUtil.getUser();
 		String adCode = null;
+		int excludeCode=0;
 		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			adCode = BusinessConstant.REGION_NM_ADCODE;
+		adCode = BusinessConstant.REGION_NM_ADCODE;
 		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
 			LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
-			deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
 			deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 			if (deptRegionEntity != null) {
 				adCode = deptRegionEntity.getAdcd();
+				LambdaQueryWrapper<RegionInfoEntity> regionWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+				regionWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+				RegionInfoEntity regionInfoEntity= this.regionService.getOne(regionWrapper);
+				if (regionInfoEntity.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)){
+					excludeCode=1;
+				}
 			}
 		}
-		if (null == adCode) {
-			log.error("adcd is null********************");
-			return R.status(true);
-		}
 		HomeInfoVO infoVO = new HomeInfoVO();
 		//测站数量
-		long rtuCount = rtuBaseInfoService.rtuCount(adCode);
+		RtuInfoDTO rtuInfoDTO=new RtuInfoDTO();
+		if (null != adCode) {
+			rtuInfoDTO.setAdCode(adCode);
+		}
+		rtuInfoDTO.setExcludeCode(excludeCode);
+		long rtuCount = rtuBaseInfoService.rtuCount(rtuInfoDTO);
 		infoVO.setRtus(rtuCount);
 		//预警中的测站数量
 		RtuWarningInfoDTO warningInfoDTO = new RtuWarningInfoDTO();
-		warningInfoDTO.setAdCode(adCode);
+		if (null != adCode) {
+			warningInfoDTO.setAdCode(adCode);
+		}
+		warningInfoDTO.setExcludeCode(excludeCode);
 		long warningRtuCount = rtuWarningService.warningRtuCount(warningInfoDTO);
 		infoVO.setWarningRtus(warningRtuCount);
 
-		//任务总数
+		/**
+		 * 统计维修任务
+		 */
+
 		CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
 		checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-		checkOrderInfoDTO.setAdCode(adCode);
+		if (null != adCode) {
+			checkOrderInfoDTO.setAdCode(adCode);
+		}
+		checkOrderInfoDTO.setExcludeCode(excludeCode);
+		//任务总数
 		long count = checkOrderService.orderCount(checkOrderInfoDTO);
 		infoVO.setOrderCount(count);
 		//未确认任务
@@ -148,16 +157,14 @@ public class HomeController {
 
 		checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
 		checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-		if (BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
-			checkOrderInfoDTO.setContactUser(user.getUserId());
-		}
+//		if (BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+//			checkOrderInfoDTO.setContactUser(user.getUserId());
+//		}
 		count = checkOrderService.orderCount(checkOrderInfoDTO);
 		infoVO.setProcessCheckOrderCount(count);
 
-
 		checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
 		checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-		checkOrderInfoDTO.setAdCode(adCode);
 		List<CheckOrderInfoVO> orderList = checkOrderService.allOrders(checkOrderInfoDTO);
 		if (null != orderList && orderList.size() > 0) {
 			long delayTime = 120;
@@ -184,6 +191,28 @@ public class HomeController {
 			infoVO.setDelayComfireOrders(0L);
 		}
 
+		OrderProcessInfoDTO processInfoDTO = new OrderProcessInfoDTO();
+		if (null != adCode) {
+			processInfoDTO.setAdCode(adCode);
+		}
+		processInfoDTO.setExcludeCode(excludeCode);
+		Date date = new Date();
+		String dtText = Func.formatDateTime(date);
+		processInfoDTO.setCreateTime(Func.parse(dtText, ConcurrentDateFormat.of("yyyy-MM-dd")));
+		count = rtuOrderProcessService.todayProcessCount(processInfoDTO);
+		infoVO.setTodayOrderProcessCount("" + count);
+
+		//我的任务
+		LambdaQueryWrapper<CheckOrderInfoEntity> orderWrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
+		orderWrapper.eq(CheckOrderInfoEntity::getContactUser, user.getUserId());
+		orderWrapper.eq(CheckOrderInfoEntity::getOrderConfirm, OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+		orderWrapper.eq(CheckOrderInfoEntity::getOrderClose, OrderCloseEnum.ACTIVE_OPEN.getCode());
+		count = checkOrderService.count(orderWrapper);
+		infoVO.setMyOrderCount(count);
+
+		/**
+		 * 统计巡检信息
+		 */
 		infoVO.setEquipmentInspectionCount(infoVO.getRtus());
 		EquipmentInspectionReportDTO inspectionReportDTO = new EquipmentInspectionReportDTO();
 		Calendar calendar = Calendar.getInstance();
@@ -197,7 +226,10 @@ public class HomeController {
 		calendar.add(Calendar.YEAR, 1);
 		inspectionReportDTO.setInspectionYearEndDate(calendar.getTime());
 		inspectionReportDTO.setRainSeasonKind(1);
-		inspectionReportDTO.setAdCode(adCode);
+		if (null != adCode) {
+			inspectionReportDTO.setAdCode(adCode);
+		}
+		inspectionReportDTO.setExcludeCode(excludeCode);
 		count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
 		infoVO.setEquipmentInspectionBeforeRainReports(count);
 		inspectionReportDTO.setRainSeasonKind(2);
@@ -294,6 +326,21 @@ public class HomeController {
 				infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainSecondReports());
 			}
 		}
+		inspectionReportDTO = new EquipmentInspectionReportDTO();
+		if (null != adCode) {
+			inspectionReportDTO.setAdCode(adCode);
+		}
+		inspectionReportDTO.setExcludeCode(excludeCode);
+		date = new Date();
+		dtText = Func.formatDateTime(date);
+		inspectionReportDTO.setCreateTime(Func.parse(dtText, ConcurrentDateFormat.of("yyyy-MM-dd")));
+		count = equipmentInspectionReportService.todayReportCount(inspectionReportDTO);
+		infoVO.setTodayIinspectionReportCount("" + count);
+
+
+		/**
+		 * 统计通知信息
+		 */
 		LambdaQueryWrapper<NoticeViewEntity> noticewrapper = Wrappers.<NoticeViewEntity>query().lambda();
 		noticewrapper.eq(NoticeViewEntity::getCreateUser, user.getUserId());
 		noticewrapper.eq(NoticeViewEntity::getIsDeleted, 0);
@@ -321,30 +368,6 @@ public class HomeController {
 			infoVO.setNewNoticeCount(0L);
 		}
 
-		OrderProcessInfoDTO processInfoDTO = new OrderProcessInfoDTO();
-		processInfoDTO.setAdCode(adCode);
-		Date date = new Date();
-		String dt = Func.formatDateTime(date);
-		processInfoDTO.setCreateTime(Func.parse(dt, ConcurrentDateFormat.of("yyyy-MM-dd")));
-		count = rtuOrderProcessService.todayProcessCount(processInfoDTO);
-		infoVO.setTodayOrderProcessCount("" + count);
-
-		inspectionReportDTO = new EquipmentInspectionReportDTO();
-		inspectionReportDTO.setAdCode(adCode);
-		date = new Date();
-		dt = Func.formatDateTime(date);
-		inspectionReportDTO.setCreateTime(Func.parse(dt, ConcurrentDateFormat.of("yyyy-MM-dd")));
-		count = equipmentInspectionReportService.todayReportCount(inspectionReportDTO);
-		infoVO.setTodayIinspectionReportCount("" + count);
-
-		//我的任务
-		LambdaQueryWrapper<CheckOrderInfoEntity> orderWrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
-		orderWrapper.eq(CheckOrderInfoEntity::getContactUser, user.getUserId());
-		orderWrapper.eq(CheckOrderInfoEntity::getOrderConfirm, OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-		orderWrapper.eq(CheckOrderInfoEntity::getOrderClose, OrderCloseEnum.ACTIVE_OPEN.getCode());
-		orderWrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
-		count = checkOrderService.count(orderWrapper);
-		infoVO.setMyOrderCount(count);
 		return R.data(infoVO);
 	}
 
@@ -354,6 +377,7 @@ public class HomeController {
 	public R<RtuStatusCountInfoVO> rtuStatusCountInfo() {
 		BladeUser user = AuthUtil.getUser();
 		String adCode = null;
+		int excludeCode=0;
 		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
 			adCode = BusinessConstant.REGION_NM_ADCODE;
 		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
@@ -363,22 +387,32 @@ public class HomeController {
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 			if (deptRegionEntity != null) {
 				adCode = deptRegionEntity.getAdcd();
+				LambdaQueryWrapper<RegionInfoEntity> regionWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+				regionWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+				RegionInfoEntity regionInfoEntity= this.regionService.getOne(regionWrapper);
+				if (regionInfoEntity.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)){
+					excludeCode=1;
+				}
 			}
 		}
 		if (null == adCode) {
-			log.error("adcd is null********************");
 			return R.status(false);
 		}
 		RtuStatusCountInfoVO infoVO = new RtuStatusCountInfoVO();
 		//测站数量
-		long count = rtuBaseInfoService.rtuCount(adCode);
+		RtuInfoDTO rtuInfoDTO=new RtuInfoDTO();
+		rtuInfoDTO.setAdCode(adCode);
+		rtuInfoDTO.setExcludeCode(excludeCode);
+		long count = rtuBaseInfoService.rtuCount(rtuInfoDTO);
 		infoVO.setRtus(count);
 		RtuWarningInfoDTO warningInfoDTO = new RtuWarningInfoDTO();
 		warningInfoDTO.setAdCode(adCode);
+		warningInfoDTO.setExcludeCode(excludeCode);
 		count = rtuWarningService.warningRtuCount(warningInfoDTO);
 		infoVO.setWarningRtus(count);
 		RtuWarningInfoDTO rtuWarningInfoDTO = new RtuWarningInfoDTO();
 		rtuWarningInfoDTO.setAdCode(adCode);
+		rtuWarningInfoDTO.setExcludeCode(excludeCode);
 		count = rtuWarningService.warningOfflineRtuCount(rtuWarningInfoDTO);
 		infoVO.setOfflineRtus(count);
 
@@ -391,6 +425,7 @@ public class HomeController {
 	public R<RtuCheckOrderCountInfoVO> rtuCheckOrderCountInfo() {
 		BladeUser user = AuthUtil.getUser();
 		String adCode = null;
+		int excludeCode=0;
 		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
 			adCode = BusinessConstant.REGION_NM_ADCODE;
 		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
@@ -400,19 +435,23 @@ public class HomeController {
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 			if (deptRegionEntity != null) {
 				adCode = deptRegionEntity.getAdcd();
+				LambdaQueryWrapper<RegionInfoEntity> regionWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+				regionWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+				RegionInfoEntity regionInfoEntity= this.regionService.getOne(regionWrapper);
+				if (regionInfoEntity.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)){
+					excludeCode=1;
+				}
 			}
 		}
 		if (null == adCode) {
-			log.error("adcd is null********************");
 			return R.status(true);
 		}
 		RtuCheckOrderCountInfoVO infoVO = new RtuCheckOrderCountInfoVO();
-
-
 		//任务总数
 		CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
 		checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
 		checkOrderInfoDTO.setAdCode(adCode);
+		checkOrderInfoDTO.setExcludeCode(excludeCode);
 		long count = checkOrderService.orderCount(checkOrderInfoDTO);
 		infoVO.setOrderCount(count);
 		//未确认任务
@@ -430,7 +469,7 @@ public class HomeController {
 
 		checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
 		checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-		checkOrderInfoDTO.setAdCode(adCode);
+
 		List<CheckOrderInfoVO> orderList = checkOrderService.allOrders(checkOrderInfoDTO);
 		if (null != orderList && orderList.size() > 0) {
 			long delayTime = 120;
@@ -462,7 +501,6 @@ public class HomeController {
 		orderWrapper.eq(CheckOrderInfoEntity::getContactUser, user.getUserId());
 		orderWrapper.eq(CheckOrderInfoEntity::getOrderConfirm, OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
 		orderWrapper.eq(CheckOrderInfoEntity::getOrderClose, OrderCloseEnum.ACTIVE_OPEN.getCode());
-		orderWrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
 		count = checkOrderService.count(orderWrapper);
 		infoVO.setMyOrderCount(count);
 		return R.data(infoVO);
@@ -474,6 +512,7 @@ public class HomeController {
 	public R<RtuInspectionReportCountInfoVO> rtuInspectionReportCountInfo() {
 		BladeUser user = AuthUtil.getUser();
 		String adCode = null;
+		int excludeCode=0;
 		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
 			adCode = BusinessConstant.REGION_NM_ADCODE;
 		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
@@ -483,14 +522,23 @@ public class HomeController {
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 			if (deptRegionEntity != null) {
 				adCode = deptRegionEntity.getAdcd();
+				LambdaQueryWrapper<RegionInfoEntity> regionWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+				regionWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+				RegionInfoEntity regionInfoEntity= this.regionService.getOne(regionWrapper);
+				if (regionInfoEntity.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)){
+					excludeCode=1;
+				}
 			}
 		}
 		if (null == adCode) {
-			log.error("adcd is null********************");
 			return R.status(true);
 		}
+		RtuInfoDTO rtuInfoDTO=new RtuInfoDTO();
+		rtuInfoDTO.setAdCode(adCode);
+		rtuInfoDTO.setExcludeCode(excludeCode);
+
 		RtuInspectionReportCountInfoVO infoVO = new RtuInspectionReportCountInfoVO();
-		long count = rtuBaseInfoService.rtuCount(adCode);
+		long count = rtuBaseInfoService.rtuCount(rtuInfoDTO);
 		infoVO.setEquipmentInspectionCount(count);
 		EquipmentInspectionReportDTO inspectionReportDTO = new EquipmentInspectionReportDTO();
 		Calendar calendar = Calendar.getInstance();
@@ -505,6 +553,7 @@ public class HomeController {
 		inspectionReportDTO.setInspectionYearEndDate(calendar.getTime());
 		inspectionReportDTO.setRainSeasonKind(1);
 		inspectionReportDTO.setAdCode(adCode);
+		inspectionReportDTO.setExcludeCode(excludeCode);
 		count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
 		infoVO.setEquipmentInspectionBeforeRainReports(count);
 		inspectionReportDTO.setRainSeasonKind(2);
@@ -612,6 +661,7 @@ public class HomeController {
 	public R<RtuUpDataCountInfoVO> rtuUpCountInfo() {
 		BladeUser user = AuthUtil.getUser();
 		String adCode = null;
+		int excludeCode=0;
 		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
 			adCode = BusinessConstant.REGION_NM_ADCODE;
 		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
@@ -621,18 +671,26 @@ public class HomeController {
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 			if (deptRegionEntity != null) {
 				adCode = deptRegionEntity.getAdcd();
+				LambdaQueryWrapper<RegionInfoEntity> regionWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+				regionWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+				RegionInfoEntity regionInfoEntity= this.regionService.getOne(regionWrapper);
+				if (regionInfoEntity.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)){
+					excludeCode=1;
+				}
 			}
 		}
 		if (null == adCode) {
-			log.error("adcd is null********************");
 			return R.status(false);
 		}
+		RtuInfoDTO dto = new RtuInfoDTO();
+		dto.setAdCode(adCode);
+		dto.setExcludeCode(excludeCode);
 		RtuUpDataCountInfoVO infoVO = new RtuUpDataCountInfoVO();
-		long count = rtuBaseInfoService.rtuRainCount(adCode);
+		long count = rtuBaseInfoService.rtuRainCount(dto);
 		infoVO.setRainRtuCount(count);
-		count = rtuBaseInfoService.rtuRiverCount(adCode);
+		count = rtuBaseInfoService.rtuRiverCount(dto);
 		infoVO.setRiverRtuCount(count);
-		count = rtuBaseInfoService.rtuGroundCount(adCode);
+		count = rtuBaseInfoService.rtuGroundCount(dto);
 		infoVO.setGroundRtuCount(count);
 		Calendar calendar = Calendar.getInstance();
 		calendar.set(Calendar.HOUR_OF_DAY, 0);
@@ -646,18 +704,21 @@ public class HomeController {
 		rainDTO.setAdCode(adCode);
 		rainDTO.setBeginTime(beiganTime);
 		rainDTO.setEndTime(endTime);
+		rainDTO.setExcludeCode(excludeCode);
 		count = rainService.rtuUpDataCount(rainDTO);
 		infoVO.setRainUpDataCount(count);
 		RtuDataRiverDTO riverDTO = new RtuDataRiverDTO();
 		riverDTO.setAdCode(adCode);
 		riverDTO.setBeginTime(beiganTime);
 		riverDTO.setEndTime(endTime);
+		riverDTO.setExcludeCode(excludeCode);
 		count = riverService.rtuUpDataCount(riverDTO);
 		infoVO.setRiverUpDataCount(count);
 		RtuDataGroundDTO groundDTO = new RtuDataGroundDTO();
 		groundDTO.setAdCode(adCode);
 		groundDTO.setBeginTime(beiganTime);
 		groundDTO.setEndTime(endTime);
+		groundDTO.setExcludeCode(excludeCode);
 		count = groundService.rtuUpDataCount(groundDTO);
 		infoVO.setGroundUpDataCount(count);
 		return R.data(infoVO);
@@ -672,31 +733,8 @@ public class HomeController {
 			return R.data(null);
 		}
 		List<WarnCountInfoVO> list = new LinkedList<>();
-//		//合计
-//		WarnCountInfoVO sumVo = new WarnCountInfoVO();
-//		sumVo.setDeptId(0L);
-//		sumVo.setAdCity("合计");
-//		//测站数量
-//		Long count = rtuBaseInfoService.rtuCount(BusinessConstant.REGION_NM_ADCODE);
-//		sumVo.setRtus(count.intValue());
-//		//离线数量
-//		RtuWarningInfoDTO dto = new RtuWarningInfoDTO();
-//		dto.setAdCode(BusinessConstant.REGION_NM_ADCODE);
-//		count = rtuWarningService.warningOfflineRtuCount(dto);
-//		sumVo.setWarnOffline(count.intValue());
-//		//小时漏报
-//		count = rtuWarningService.warningHourMissOutRtuCount(dto);
-//		sumVo.setWarnMissOut(count.intValue());
-//		//5分钟延时
-//		count = rtuWarningService.warningMinUpDelayRtuCount(dto);
-//		sumVo.setWarnUpMinDelay(count.intValue());
-//		//小时报延时
-//		count = rtuWarningService.warningHourUpDelayRtuCount(dto);
-//		sumVo.setWarnUpHourDelay(count.intValue());
-//		list.add(sumVo);
 		//盟市统计
 		LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
-		wrapper.eq(Dept::getIsDeleted, 0);
 		wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
 		List<Dept> deptList = this.deptService.list(wrapper);
 		for (Dept dept : deptList) {
@@ -704,15 +742,23 @@ public class HomeController {
 			//盟市名称
 			vo.setDeptId(dept.getId());
 			vo.setAdCity(dept.getDeptName());
+			LambdaQueryWrapper<DeptRegionEntity> deptregionwrapper = Wrappers.<DeptRegionEntity>query().lambda();
+			deptregionwrapper.eq(DeptRegionEntity::getDeptId,dept.getId());
+			DeptRegionEntity deptRegionEntity=this.deptRegionService.getOne(deptregionwrapper);
 			//测站数量
-			LambdaQueryWrapper<DeptRegionEntity> deptLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
-			deptLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
-			deptLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, dept.getId());
-			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptLambdaQueryWrapper);
-			Long count = rtuBaseInfoService.rtuCount(deptRegionEntity.getAdcd());
+			RtuInfoDTO rtuInfoDTO=new RtuInfoDTO();
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(BusinessConstant.ROLE_ORG_ADMIN, Func.toStr(dept.getId()), deptRegionEntity.getAdcd());
+			if (null != node) {
+				rtuInfoDTO.setExcludeCode(node.getExclude());
+			}
+			rtuInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+			Long count = rtuBaseInfoService.rtuCount(rtuInfoDTO);
 			vo.setRtus(count.intValue());
 			//离线数量
 			RtuWarningInfoDTO dto = new RtuWarningInfoDTO();
+			if (null != node) {
+				dto.setExcludeCode(node.getExclude());
+			}
 			dto.setAdCode(deptRegionEntity.getAdcd());
 			count = rtuWarningService.warningOfflineRtuCount(dto);
 			vo.setWarnOffline(count.intValue());
@@ -736,6 +782,7 @@ public class HomeController {
 	public R<WarnKindCountInfoVO> rtuWarnKindCountInfo() {
 		BladeUser user = AuthUtil.getUser();
 		String adCode = null;
+		int excludeCode=0;
 		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
 			adCode = BusinessConstant.REGION_NM_ADCODE;
 		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
@@ -745,15 +792,21 @@ public class HomeController {
 			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
 			if (deptRegionEntity != null) {
 				adCode = deptRegionEntity.getAdcd();
+				LambdaQueryWrapper<RegionInfoEntity> regionWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+				regionWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+				RegionInfoEntity regionInfoEntity= this.regionService.getOne(regionWrapper);
+				if (regionInfoEntity.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)){
+					excludeCode=1;
+				}
 			}
 		}
 		if (null == adCode) {
-			log.error("adcd is null********************");
 			return R.status(false);
 		}
 		WarnKindCountInfoVO infoVO = new WarnKindCountInfoVO();
 		RtuWarningInfoDTO dto = new RtuWarningInfoDTO();
 		dto.setAdCode(adCode);
+		dto.setExcludeCode(excludeCode);
 		Long count = rtuWarningService.warningRtuCount(dto);
 		infoVO.setWarnRtus(count.intValue());
 		count = rtuWarningService.warningClockRtuCount(dto);

+ 123 - 61
src/main/java/org/springblade/modules/business/rtumanage/controller/RtuManageController.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/18
  */
 package org.springblade.modules.business.rtumanage.controller;
@@ -23,7 +23,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.springblade.common.cache.DictBizCache;
 import org.springblade.constant.BusinessConstant;
 import org.springblade.core.boot.ctrl.BladeController;
-import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.oss.model.BladeFile;
@@ -34,20 +33,18 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.enums.OrderStatusEnum;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
 import org.springblade.modules.baseinfo.rtu.dto.RtuInfoDTO;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
-import org.springblade.modules.baseinfo.rtu.vo.RtuInfoVO;
-import org.springblade.modules.baseinfo.rtu.wrapper.RtuInfoWrapper;
 import org.springblade.modules.business.check.order.dto.CheckOrderInfoDTO;
 import org.springblade.modules.business.check.order.entity.CheckOrderInfoEntity;
 import org.springblade.modules.business.check.order.service.IRtuCheckOrderService;
-import org.springblade.modules.business.check.process.dto.OrderProcessInfoDTO;
-import org.springblade.modules.business.check.process.entity.OrderProcessInfoEntity;
 import org.springblade.modules.business.check.process.service.IRtuOrderProcessService;
 import org.springblade.modules.business.check.process.vo.OrderProcessInfoVO;
 import org.springblade.modules.business.equipment.inspection.report.dto.EquipmentInspectionReportDTO;
-import org.springblade.modules.business.equipment.inspection.report.entity.EquipmentInspectionReportEntity;
 import org.springblade.modules.business.equipment.inspection.report.service.IEquipmentInspectionReportService;
 import org.springblade.modules.business.equipment.inspection.report.vo.EquipmentInspectionReportVO;
 import org.springblade.modules.business.rtumanage.entity.EquipmentInfoExportEntity;
@@ -58,7 +55,9 @@ import org.springblade.modules.business.rtumanage.wrapper.RtuManageWrapper;
 import org.springblade.modules.business.warning.dto.RtuWarningInfoDTO;
 import org.springblade.modules.business.warning.service.IRtuWarningService;
 import org.springblade.modules.resource.builder.oss.OssBuilder;
+import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.entity.DictBiz;
+import org.springblade.modules.system.service.IDeptService;
 import org.springblade.modules.system.service.IDictBizService;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
@@ -94,6 +93,8 @@ public class RtuManageController extends BladeController {
 	private final IRtuCheckOrderService rtuCheckOrderService;
 	private final IRtuOrderProcessService rtuOrderProcessService;
 	private final IEquipmentInspectionReportService equipmentInspectionReportService;
+	private final IBaseInfoRegionService regionService;
+	private final IDeptService deptService;
 
 	@Resource
 	private OssBuilder ossBuilder;
@@ -104,6 +105,7 @@ public class RtuManageController extends BladeController {
 	@Value("${export-config.equipment-info-template}")
 	private String exportConfigTemplate;
 
+
 	/**
 	 * 分页
 	 */
@@ -143,6 +145,12 @@ public class RtuManageController extends BladeController {
 				rtuInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
+		if (rtuInfoDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuInfoDTO.getAdCode());
+			if (null != node) {
+				rtuInfoDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		if (rtuInfoDTO.getRtuKind() != null && "1".equals(rtuInfoDTO.getRtuKind())) {
 			rtuInfoDTO.setIsRain(1);
 		} else if (rtuInfoDTO.getRtuKind() != null && "2".equals(rtuInfoDTO.getRtuKind())) {
@@ -153,14 +161,14 @@ public class RtuManageController extends BladeController {
 		} else if (rtuInfoDTO.getRtuKind() != null && "4".equals(rtuInfoDTO.getRtuKind())) {
 			rtuInfoDTO.setIsVideo(1);
 		}
-		if (rtuInfoDTO.getWarnKind()!=null) {
+		if (rtuInfoDTO.getWarnKind() != null) {
 			IPage<RtuStatusVO> pages = rtuManageService.selectWarnPage(Condition.getPage(query), rtuInfoDTO);
 			List<RtuStatusVO> list = pages.getRecords();
 			for (RtuStatusVO vo : list) {
 				RtuManageWrapper.build().entityVO(vo);
 			}
 			return R.data(pages);
-		}else{
+		} else {
 			IPage<RtuStatusVO> pages = rtuManageService.selectPage(Condition.getPage(query), rtuInfoDTO);
 			List<RtuStatusVO> list = pages.getRecords();
 			for (RtuStatusVO vo : list) {
@@ -170,30 +178,9 @@ public class RtuManageController extends BladeController {
 		}
 	}
 
-	@GetMapping("/equipmentlist/export")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "adName", value = "行政区划名称", paramType = "query", dataType = "string")
-	})
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "分页", notes = "传入RtuInfoEntity")
-	public R<Map<String, Object>> equipmentlistExport(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
-		Map<String, Object> data = new HashMap<>();
-		data.put("status", 0);
-		String templateFilePath = this.exportConfigWorkDir + File.separator + this.exportConfigTemplate;
-		String outpath = this.exportConfigWorkDir + File.separator + Func.formatDate(new Date());
-		File dir = new File(outpath);
-		if (!dir.exists()) {
-			if (!dir.mkdir()) {
-				return R.fail("目录创建失败");
-			}
-		}
-		String outFileName = Func.randomUUID() + ".xlsx";
-		outpath += File.separator + outFileName;
-		List<RtuInfoEntity> rtuInfoEntityList = rtuBaseInfoService.rtuList(rtuInfoDTO);
-		List<EquipmentInfoExportEntity> list = new LinkedList<>();
-		int index = 1;
-		for (RtuInfoEntity rtuInfoEntity : rtuInfoEntityList) {
+	private void copyEquipmentInfo(List<EquipmentInfoExportEntity> targetList,List<RtuInfoEntity> sourceList){
+		int index = targetList.size()+ 1;
+		for (RtuInfoEntity rtuInfoEntity : sourceList) {
 			EquipmentInfoExportEntity entity = new EquipmentInfoExportEntity();
 			entity.setIndex(index);
 			if (rtuInfoEntity.getAdCity() != null) {
@@ -338,7 +325,7 @@ public class RtuManageController extends BladeController {
 			}
 			if (rtuInfoEntity.getGroundSensorType() != null) {
 				DictBiz dictBiz = dictBizService.getById(rtuInfoEntity.getGroundSensorType());
-				if(null != dictBiz) {
+				if (null != dictBiz) {
 					entity.setGroundSensorType(dictBiz.getDictValue());
 				}
 			} else {
@@ -400,7 +387,7 @@ public class RtuManageController extends BladeController {
 			}
 			if (rtuInfoEntity.getSatelliteModel() != null) {
 				DictBiz dictBiz = dictBizService.getById(rtuInfoEntity.getSatelliteModel());
-				if (dictBiz!=null){
+				if (dictBiz != null) {
 					entity.setSatelliteModel(dictBiz.getDictValue());
 				}
 			} else {
@@ -411,10 +398,77 @@ public class RtuManageController extends BladeController {
 			} else {
 				entity.setRemark("");
 			}
-			list.add(entity);
+			targetList.add(entity);
 			index += 1;
 		}
-		//ExcelUtil.export(response, "通知公告导出数据", "通知公告数据表", list, NoticeExcel.class);
+	}
+
+	@GetMapping("/equipmentlist/export")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "adName", value = "行政区划名称", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入RtuInfoEntity")
+	public R<Map<String, Object>> equipmentlistExport(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
+		BladeUser user = AuthUtil.getUser();
+		if (null == rtuInfoDTO.getAdCode()){
+			return R.fail("参数错误");
+		}
+		Map<String, Object> data = new HashMap<>();
+		data.put("status", 0);
+		String templateFilePath = this.exportConfigWorkDir + File.separator + this.exportConfigTemplate;
+		String outpath = this.exportConfigWorkDir + File.separator + Func.formatDate(new Date());
+		File dir = new File(outpath);
+		if (!dir.exists()) {
+			if (!dir.mkdir()) {
+				return R.fail("目录创建失败");
+			}
+		}
+		String outFileName = Func.randomUUID() + ".xlsx";
+		outpath += File.separator + outFileName;
+		List<EquipmentInfoExportEntity> list = new LinkedList<>();
+		if (rtuInfoDTO.getAdCode().equals(BusinessConstant.REGION_NM_ADCODE)){
+			LambdaQueryWrapper<Dept> deptqueryWrapper = Wrappers.<Dept>query().lambda();
+			deptqueryWrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
+			List<Dept> deptList = deptService.list(deptqueryWrapper);
+			if (null != deptList) {
+				for (Dept dept : deptList) {
+					LambdaQueryWrapper<DeptRegionEntity> deptRegionQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+					deptRegionQueryWrapper.eq(DeptRegionEntity::getDeptId, dept.getId());
+					DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionQueryWrapper);
+					if (null != deptRegionEntity) {
+						LambdaQueryWrapper<RegionInfoEntity> nodeQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+						nodeQueryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+						RegionInfoEntity nodeRegion = regionService.getOne(nodeQueryWrapper);
+						if (null != nodeRegion) {
+							int excludeCode = 0;
+							if (nodeRegion.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)){
+								excludeCode=1;
+							}
+							rtuInfoDTO.setAdCode(nodeRegion.getAdcd());
+							rtuInfoDTO.setExcludeCode(excludeCode);
+							List<RtuInfoEntity> rtuInfoEntityList = rtuBaseInfoService.rtuList(rtuInfoDTO);
+							copyEquipmentInfo(list,rtuInfoEntityList);
+						}
+					}
+				}
+			}
+		}else{
+			LambdaQueryWrapper<RegionInfoEntity> nodeQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+			nodeQueryWrapper.eq(RegionInfoEntity::getAdcd, rtuInfoDTO.getAdCode());
+			RegionInfoEntity nodeRegion = regionService.getOne(nodeQueryWrapper);
+			if (null != nodeRegion) {
+				int excludeCode = 0;
+				if (nodeRegion.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)){
+					excludeCode=1;
+				}
+				rtuInfoDTO.setAdCode(nodeRegion.getAdcd());
+				rtuInfoDTO.setExcludeCode(excludeCode);
+				List<RtuInfoEntity> rtuInfoEntityList = rtuBaseInfoService.rtuList(rtuInfoDTO);
+				copyEquipmentInfo(list,rtuInfoEntityList);
+			}
+		}
 
 		ExcelWriter excelWriter = EasyExcel.write(outpath).withTemplate(templateFilePath).excelType(ExcelTypeEnum.XLSX).build();
 		WriteSheet writeSheet = EasyExcel.writerSheet("站点信息统计表").build();
@@ -450,13 +504,21 @@ public class RtuManageController extends BladeController {
 		if (rtuInfoDTO.getAdCode() == null) {
 			return R.status(false);
 		}
+		BladeUser user = AuthUtil.getUser();
+		RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuInfoDTO.getAdCode());
+		if (null != node) {
+			rtuInfoDTO.setExcludeCode(node.getExclude());
+		}
 		Map<String, Object> data = new HashMap<>();
 		//测站数量
-		long rtuCount = rtuBaseInfoService.rtuCount(rtuInfoDTO.getAdCode());
+		long rtuCount = rtuBaseInfoService.rtuCount(rtuInfoDTO);
 		data.put("rtuCount", rtuCount);
 		//预警数量
 		RtuWarningInfoDTO rtuWarningInfoDTO = new RtuWarningInfoDTO();
 		rtuWarningInfoDTO.setAdCode(rtuInfoDTO.getAdCode());
+		if (null != node) {
+			rtuWarningInfoDTO.setExcludeCode(node.getExclude());
+		}
 		long warningRtuCount = rtuWarningService.warningRtuCount(rtuWarningInfoDTO);
 		data.put("warningRtuCount", warningRtuCount);
 		return R.data(data);
@@ -515,8 +577,8 @@ public class RtuManageController extends BladeController {
 			equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
 
 			List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
-			for(EquipmentInspectionReportVO inspectionReportEntity:inspectionReportEntityList){
-				if (inspectionReportEntity.getRtuReplace()!=null && inspectionReportEntity.getRtuReplace()==1){
+			for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
+				if (inspectionReportEntity.getRtuReplace() != null && inspectionReportEntity.getRtuReplace() == 1) {
 					RtuReplaceInfoVO vo = new RtuReplaceInfoVO();
 					vo.setInspectionId(inspectionReportEntity.getId());
 					vo.setRtuCode(rtuInfoDTO.getRtuCode());
@@ -531,9 +593,9 @@ public class RtuManageController extends BladeController {
 			replaceInfoVOList.sort(new Comparator<RtuReplaceInfoVO>() {
 				@Override
 				public int compare(RtuReplaceInfoVO o1, RtuReplaceInfoVO o2) {
-					if (o1.getReplaceDate().after(o2.getReplaceDate())){
+					if (o1.getReplaceDate().after(o2.getReplaceDate())) {
 						return 1;
-					}else if (o1.getReplaceDate().before(o2.getReplaceDate())){
+					} else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
 						return -1;
 					}
 					return 0;
@@ -605,8 +667,8 @@ public class RtuManageController extends BladeController {
 			equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
 
 			List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
-			for(EquipmentInspectionReportVO inspectionReportEntity:inspectionReportEntityList){
-				if (inspectionReportEntity.getRainSensorReplace()!=null && inspectionReportEntity.getRainSensorReplace()==1){
+			for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
+				if (inspectionReportEntity.getRainSensorReplace() != null && inspectionReportEntity.getRainSensorReplace() == 1) {
 					RainSensorReplaceInfoVO vo = new RainSensorReplaceInfoVO();
 					vo.setRtuCode(rtuInfoDTO.getRtuCode());
 					vo.setInspectionId(inspectionReportEntity.getId());
@@ -614,16 +676,16 @@ public class RtuManageController extends BladeController {
 					vo.setRainSensorModel(inspectionReportEntity.getRainSensorModelRemark());
 					vo.setReplaceKind(2);
 					vo.setReplaceDate(inspectionReportEntity.getCreateTime());
-				//	vo.setReplaceDesc(inspectionReportEntity.getRainSensorModelRemark());
+					//	vo.setReplaceDesc(inspectionReportEntity.getRainSensorModelRemark());
 					replaceInfoVOList.add(vo);
 				}
 			}
 			replaceInfoVOList.sort(new Comparator<RainSensorReplaceInfoVO>() {
 				@Override
 				public int compare(RainSensorReplaceInfoVO o1, RainSensorReplaceInfoVO o2) {
-					if (o1.getReplaceDate().after(o2.getReplaceDate())){
+					if (o1.getReplaceDate().after(o2.getReplaceDate())) {
 						return 1;
-					}else if (o1.getReplaceDate().before(o2.getReplaceDate())){
+					} else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
 						return -1;
 					}
 					return 0;
@@ -695,8 +757,8 @@ public class RtuManageController extends BladeController {
 			equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
 
 			List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
-			for(EquipmentInspectionReportVO inspectionReportEntity:inspectionReportEntityList){
-				if (inspectionReportEntity.getWaterSensorReplace()!=null && inspectionReportEntity.getWaterSensorReplace()==1){
+			for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
+				if (inspectionReportEntity.getWaterSensorReplace() != null && inspectionReportEntity.getWaterSensorReplace() == 1) {
 					WaterSensorReplaceInfoVO vo = new WaterSensorReplaceInfoVO();
 					vo.setRtuCode(rtuInfoDTO.getRtuCode());
 					vo.setInspectionId(inspectionReportEntity.getId());
@@ -704,16 +766,16 @@ public class RtuManageController extends BladeController {
 					vo.setWaterSensorModel(inspectionReportEntity.getWaterSensorModelRemark());
 					vo.setReplaceKind(2);
 					vo.setReplaceDate(inspectionReportEntity.getCreateTime());
-				//	vo.setReplaceDesc(inspectionReportEntity.getWaterSensorModelRemark());
+					//	vo.setReplaceDesc(inspectionReportEntity.getWaterSensorModelRemark());
 					replaceInfoVOList.add(vo);
 				}
 			}
 			replaceInfoVOList.sort(new Comparator<WaterSensorReplaceInfoVO>() {
 				@Override
 				public int compare(WaterSensorReplaceInfoVO o1, WaterSensorReplaceInfoVO o2) {
-					if (o1.getReplaceDate().after(o2.getReplaceDate())){
+					if (o1.getReplaceDate().after(o2.getReplaceDate())) {
 						return 1;
-					}else if (o1.getReplaceDate().before(o2.getReplaceDate())){
+					} else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
 						return -1;
 					}
 					return 0;
@@ -785,8 +847,8 @@ public class RtuManageController extends BladeController {
 			equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
 
 			List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
-			for(EquipmentInspectionReportVO inspectionReportEntity:inspectionReportEntityList){
-				if (inspectionReportEntity.getGroundSensorReplace()!=null && inspectionReportEntity.getGroundSensorReplace()==1){
+			for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
+				if (inspectionReportEntity.getGroundSensorReplace() != null && inspectionReportEntity.getGroundSensorReplace() == 1) {
 					GroundSensorReplaceInfoVO vo = new GroundSensorReplaceInfoVO();
 					vo.setRtuCode(rtuInfoDTO.getRtuCode());
 					vo.setInspectionId(inspectionReportEntity.getId());
@@ -801,9 +863,9 @@ public class RtuManageController extends BladeController {
 			replaceInfoVOList.sort(new Comparator<GroundSensorReplaceInfoVO>() {
 				@Override
 				public int compare(GroundSensorReplaceInfoVO o1, GroundSensorReplaceInfoVO o2) {
-					if (o1.getReplaceDate().after(o2.getReplaceDate())){
+					if (o1.getReplaceDate().after(o2.getReplaceDate())) {
 						return 1;
-					}else if (o1.getReplaceDate().before(o2.getReplaceDate())){
+					} else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
 						return -1;
 					}
 					return 0;
@@ -860,7 +922,7 @@ public class RtuManageController extends BladeController {
 							//vo.setBatteryModel(orderProcessInfoEntity.getb());
 							vo.setReplaceKind(1);
 							vo.setReplaceDate(orderProcessInfoEntity.getCreateTime());
-                            vo.setReplaceDesc(orderProcessInfoEntity.getPowerDesc());
+							vo.setReplaceDesc(orderProcessInfoEntity.getPowerDesc());
 							replaceInfoVOList.add(vo);
 						}
 					}
@@ -873,8 +935,8 @@ public class RtuManageController extends BladeController {
 			equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
 
 			List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
-			for(EquipmentInspectionReportVO inspectionReportEntity:inspectionReportEntityList){
-				if (inspectionReportEntity.getBatteryReplace()!=null && inspectionReportEntity.getBatteryReplace()==1){
+			for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
+				if (inspectionReportEntity.getBatteryReplace() != null && inspectionReportEntity.getBatteryReplace() == 1) {
 					BatteryReplaceInfoVO vo = new BatteryReplaceInfoVO();
 					vo.setInspectionId(inspectionReportEntity.getId());
 					vo.setRtuCode(rtuInfoDTO.getRtuCode());
@@ -888,9 +950,9 @@ public class RtuManageController extends BladeController {
 			replaceInfoVOList.sort(new Comparator<BatteryReplaceInfoVO>() {
 				@Override
 				public int compare(BatteryReplaceInfoVO o1, BatteryReplaceInfoVO o2) {
-					if (o1.getReplaceDate().after(o2.getReplaceDate())){
+					if (o1.getReplaceDate().after(o2.getReplaceDate())) {
 						return 1;
-					}else if (o1.getReplaceDate().before(o2.getReplaceDate())){
+					} else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
 						return -1;
 					}
 					return 0;

+ 24 - 3
src/main/java/org/springblade/modules/business/rtumanage/mapper/RtuManageMapper.xml

@@ -80,8 +80,11 @@
         <if test="rtuInfoDTO.isVideo!=null">
             and d.is_video = #{rtuInfoDTO.isVideo}
         </if>
+        <if test="rtuInfoDTO.excludeCode!=null and rtuInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuInfoDTO.adCode!=null">
-            and (d.ad_code =#{rtuInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuInfoDTO.adCode}), '%')))
+            and (d.ad_code =#{rtuInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors  like concat(concat('%', #{rtuInfoDTO.adCode}), '%')))
         </if>
         <choose>
             <when test="rtuInfoDTO.order!=null and rtuInfoDTO.order=='ascending'">
@@ -133,9 +136,27 @@
         <if test="rtuInfoDTO.isVideo!=null">
             and d.is_video = #{rtuInfoDTO.isVideo}
         </if>
+        <if test="rtuInfoDTO.excludeCode!=null and rtuInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuInfoDTO.adCode!=null">
-            and (d.ad_code =#{rtuInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuInfoDTO.adCode}), '%')))
+            and (d.ad_code =#{rtuInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors  like concat(concat('%', #{rtuInfoDTO.adCode}), '%')))
         </if>
-        order by IF(isnull(n.run_status_id),1,0) ,n.run_status_id desc, d.rtu_code asc
+        <choose>
+            <when test="rtuInfoDTO.order!=null and rtuInfoDTO.order=='ascending'">
+                <if test="rtuInfoDTO.prop!=null ">
+                    order by n.last_up_time
+                </if>
+            </when>
+            <when test="rtuInfoDTO.order!=null and rtuInfoDTO.order=='descending'">
+                <if test="rtuInfoDTO.prop!=null ">
+                    order by n.last_up_time desc
+                </if>
+            </when>
+            <otherwise>
+                order by IF(isnull(n.run_status_id),1,0) ,n.run_status_id desc, d.rtu_code asc
+            </otherwise>
+        </choose>
+
     </select>
 </mapper>

+ 0 - 5
src/main/java/org/springblade/modules/business/rtumanage/wrapper/RtuManageWrapper.java

@@ -135,7 +135,6 @@ public class RtuManageWrapper extends BaseEntityWrapper<RtuStatusEntity, RtuStat
 		entity.setRtuKindDesc(rtuKindDesc);
 		if (entity.getIsRain() != null &&  entity.getIsRain() == 1) {
 			LambdaQueryWrapper<RtuDataRainEntity> wrapper = Wrappers.<RtuDataRainEntity>query().lambda();
-			wrapper.eq(RtuDataRainEntity::getIsDeleted, 0L);
 			wrapper.eq(RtuDataRainEntity::getRtuCode, entity.getRtuCode());
 			RtuDataRainEntity rainEntity = getRtuDataRainService().getOne(wrapper);
 			if (null != rainEntity) {
@@ -150,7 +149,6 @@ public class RtuManageWrapper extends BaseEntityWrapper<RtuStatusEntity, RtuStat
 		}
 		if (entity.getIsRiver() != null && entity.getIsRiver() == 1) {
 			LambdaQueryWrapper<RtuDataRiverEntity> wrapper = Wrappers.<RtuDataRiverEntity>query().lambda();
-			wrapper.eq(RtuDataRiverEntity::getIsDeleted, 0L);
 			wrapper.eq(RtuDataRiverEntity::getRtuCode, entity.getRtuCode());
 			RtuDataRiverEntity riverEntity = getRtuDataRiverService().getOne(wrapper);
 			if (null != riverEntity) {
@@ -165,7 +163,6 @@ public class RtuManageWrapper extends BaseEntityWrapper<RtuStatusEntity, RtuStat
 		}
 		if (entity.getIsRes() != null && entity.getIsRes() == 1) {
 			LambdaQueryWrapper<RtuDataRsvrEntity> wrapper = Wrappers.<RtuDataRsvrEntity>query().lambda();
-			wrapper.eq(RtuDataRsvrEntity::getIsDeleted, 0L);
 			wrapper.eq(RtuDataRsvrEntity::getRtuCode, entity.getRtuCode());
 			RtuDataRsvrEntity rsvrEntity = getRtuDataRsvrService().getOne(wrapper);
 			if (null != rsvrEntity) {
@@ -180,7 +177,6 @@ public class RtuManageWrapper extends BaseEntityWrapper<RtuStatusEntity, RtuStat
 		}
 		if (entity.getIsGround() != null && entity.getIsGround() == 1) {
 			LambdaQueryWrapper<RtuDataGroundEntity> wrapper = Wrappers.<RtuDataGroundEntity>query().lambda();
-			wrapper.eq(RtuDataGroundEntity::getIsDeleted, 0L);
 			wrapper.eq(RtuDataGroundEntity::getRtuCode, entity.getRtuCode());
 			RtuDataGroundEntity groundEntity = getRtuDataGroundService().getOne(wrapper);
 			if (null != groundEntity) {
@@ -233,7 +229,6 @@ public class RtuManageWrapper extends BaseEntityWrapper<RtuStatusEntity, RtuStat
 
 		if (entity.getRunStatusId()!=null && entity.getRunStatusId() ==1) {
 			LambdaQueryWrapper<RtuWarningInfoEntity> queryWrapper = Wrappers.<RtuWarningInfoEntity>query().lambda();
-			queryWrapper.eq(RtuWarningInfoEntity::getIsDeleted, 0);
 			queryWrapper.eq(RtuWarningInfoEntity::getRtuCode, entity.getRtuCode());
 			queryWrapper.eq(RtuWarningInfoEntity::getWarningStatus, 0);
 			List<RtuWarningInfoEntity> rtuWarningInfoEntityList = getRtuWarningService().list(queryWrapper);

+ 10 - 2
src/main/java/org/springblade/modules/business/warning/controller/RtuWarningController.java

@@ -1,7 +1,7 @@
 /**
  * Copyright 2019 DH
  * All right reserved.
- * 项目名称: 大恒泰山系统
+ * 项目名称: 运维系统
  * 创建日期:2022/8/24
  */
 package org.springblade.modules.business.warning.controller;
@@ -22,6 +22,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
 import org.springblade.modules.business.warning.dto.RtuWarningInfoDTO;
 import org.springblade.modules.business.warning.entity.OriginalWarningInfoEntity;
 import org.springblade.modules.business.warning.entity.RtuWarningInfoEntity;
@@ -53,6 +55,7 @@ public class RtuWarningController extends BladeController {
 	private final IRtuWarningService rtuWarningService;
 	private final IOriginalWarningService originalWarningService;
 	private final IDeptRegionService deptRegionService;
+	private final IBaseInfoRegionService regionService;
 
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 3)
@@ -77,7 +80,6 @@ public class RtuWarningController extends BladeController {
 		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
 		@ApiImplicitParam(name = "warningStatus", value = "测站名称", paramType = "query", dataType = "int"),
 		@ApiImplicitParam(name = "deptId", value = "部门ID", paramType = "query", dataType = "long"),
-
 	})
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页")
@@ -100,6 +102,12 @@ public class RtuWarningController extends BladeController {
 				rtuWarningInfoDTO.setAdCode(deptRegionEntity.getAdcd());
 			}
 		}
+		if (rtuWarningInfoDTO.getAdCode() != null) {
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuWarningInfoDTO.getAdCode());
+			if (null != node) {
+				rtuWarningInfoDTO.setExcludeCode(node.getExclude());
+			}
+		}
 		IPage<RtuWarningInfoVO> pages = rtuWarningService.selectPage(Condition.getPage(query), rtuWarningInfoDTO);
 		List<RtuWarningInfoVO> list = pages.getRecords();
 		for (RtuWarningInfoVO vo : list) {

+ 2 - 1
src/main/java/org/springblade/modules/business/warning/dto/RtuWarningInfoDTO.java

@@ -40,5 +40,6 @@ public class RtuWarningInfoDTO extends RtuWarningInfoEntity {
 	@ApiModelProperty("测站名称")
 	private String  rtuName;
 
-
+	@ApiModelProperty(value = "行政区划排除")
+	private Integer excludeCode;
 }

+ 88 - 22
src/main/java/org/springblade/modules/business/warning/mapper/RtuWarningMapper.xml

@@ -51,8 +51,11 @@
         <if test="rtuWarningInfoDTO.warningStatus!=null">
             and w.warning_status = #{rtuWarningInfoDTO.warningStatus}
         </if>
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         order by w.warning_happen_time desc
     </select>
@@ -72,8 +75,11 @@
         <if test="rtuWarningInfoDTO.rtuName!=null">
             and r.rtu_name like concat(concat('%', #{rtuWarningInfoDTO.rtuName}), '%')
         </if>
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         order by w.warning_happen_time desc
     </select>
@@ -93,8 +99,11 @@
         <if test="rtuWarningInfoDTO.rtuName!=null">
             and r.rtu_name like concat(concat('%', #{rtuWarningInfoDTO.rtuName}), '%')
         </if>
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         order by w.warning_happen_time desc
     </select>
@@ -114,8 +123,11 @@
         <if test="rtuWarningInfoDTO.rtuName!=null">
             and r.rtu_name like concat(concat('%', #{rtuWarningInfoDTO.rtuName}), '%')
         </if>
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         order by w.warning_happen_time desc
     </select>
@@ -135,8 +147,11 @@
         <if test="rtuWarningInfoDTO.rtuName!=null">
             and r.rtu_name like concat(concat('%', #{rtuWarningInfoDTO.rtuName}), '%')
         </if>
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         order by w.warning_happen_time desc
     </select>
@@ -156,8 +171,11 @@
         <if test="rtuWarningInfoDTO.rtuName!=null">
             and r.rtu_name like concat(concat('%', #{rtuWarningInfoDTO.rtuName}), '%')
         </if>
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         order by w.warning_happen_time desc
     </select>
@@ -177,8 +195,11 @@
         <if test="rtuWarningInfoDTO.rtuName!=null">
             and r.rtu_name like concat(concat('%', #{rtuWarningInfoDTO.rtuName}), '%')
         </if>
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         order by w.warning_happen_time desc
     </select>
@@ -199,8 +220,11 @@
         <if test="rtuWarningInfoDTO.rtuName!=null">
             and r.rtu_name like concat(concat('%', #{rtuWarningInfoDTO.rtuName}), '%')
         </if>
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted = 0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         order by w.warning_happen_time desc
     </select>
@@ -220,8 +244,11 @@
         <if test="rtuWarningInfoDTO.rtuName!=null">
             and r.rtu_name like concat(concat('%', #{rtuWarningInfoDTO.rtuName}), '%')
         </if>
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted = 0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         order by w.warning_happen_time desc
     </select>
@@ -242,8 +269,11 @@
         <if test="rtuWarningInfoDTO.rtuName!=null">
             and r.rtu_name like concat(concat('%', #{rtuWarningInfoDTO.rtuName}), '%')
         </if>
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         order by w.warning_happen_time desc
     </select>
@@ -263,8 +293,11 @@
         <if test="rtuWarningInfoDTO.rtuName!=null">
             and r.rtu_name like concat(concat('%', #{rtuWarningInfoDTO.rtuName}), '%')
         </if>
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         order by w.warning_happen_time desc
     </select>
@@ -279,8 +312,11 @@
         LEFT JOIN data_ad_cd_b a ON a.adcd = r.ad_code and a.is_deleted=0
         WHERE
         w.is_deleted = 0
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted = 0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         and w.warning_status = 0
         group by w.rtu_code ) a
@@ -297,8 +333,11 @@
         WHERE
         w.is_deleted = 0
         and w.warning_kind = 1
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         and w.warning_status = 0
         group by w.rtu_code ) a
@@ -315,8 +354,11 @@
         WHERE
         w.is_deleted = 0
         and w.warning_kind = 2
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         and w.warning_status = 0
         group by w.rtu_code ) a
@@ -333,8 +375,11 @@
         WHERE
         w.is_deleted = 0
         and w.warning_kind = 3
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         and w.warning_status = 0
         group by w.rtu_code ) a
@@ -351,8 +396,11 @@
         WHERE
         w.is_deleted = 0
         and w.warning_kind = 4
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         and w.warning_status = 0
         group by w.rtu_code ) a
@@ -369,8 +417,11 @@
         WHERE
         w.is_deleted = 0
         and (w.warning_kind = 3 or  w.warning_kind = 4)
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         and w.warning_status = 0
         group by w.rtu_code ) a
@@ -387,8 +438,11 @@
         WHERE
         w.is_deleted = 0
         and w.warning_kind = 5
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         and w.warning_status = 0
         group by w.rtu_code ) a
@@ -405,8 +459,11 @@
         WHERE
         w.is_deleted = 0
         and (w.warning_kind = 6 or  w.warning_kind = 7)
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         and w.warning_status = 0
         group by w.rtu_code ) a
@@ -423,8 +480,11 @@
         WHERE
         w.is_deleted = 0
         and w.warning_kind = 6
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         and w.warning_status = 0
         group by w.rtu_code ) a
@@ -441,8 +501,11 @@
         WHERE
         w.is_deleted = 0
         and w.warning_kind = 7
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         and w.warning_status = 0
         group by w.rtu_code ) a
@@ -459,8 +522,11 @@
         WHERE
         w.is_deleted = 0
         and w.warning_kind = 8
+        <if test="rtuWarningInfoDTO.excludeCode!=null and rtuWarningInfoDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
         <if test="rtuWarningInfoDTO.adCode!=null">
-            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
+            and (a.adcd =#{rtuWarningInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors like concat(concat('%', #{rtuWarningInfoDTO.adCode}), '%')))
         </if>
         and w.warning_status = 0
         group by w.rtu_code ) a

+ 2 - 2
src/main/java/org/springblade/modules/business/warning/service/IRtuWarningService.java

@@ -46,19 +46,19 @@ public interface IRtuWarningService extends BaseService<RtuWarningInfoEntity> {
 	IPage<RtuWarningInfoVO> selectHourMissOutPage(IPage<RtuWarningInfoVO> page, RtuWarningInfoDTO rtuWarningInfoDTO);
 
 	IPage<RtuWarningInfoVO> selectRainHourMissOutPage(IPage<RtuWarningInfoVO> page,  RtuWarningInfoDTO rtuWarningInfoDTO);
-	IPage<RtuWarningInfoVO> selectRiverHourMissOutPage(IPage<RtuWarningInfoVO> page,  RtuWarningInfoDTO rtuWarningInfoDTO);
 
+	IPage<RtuWarningInfoVO> selectRiverHourMissOutPage(IPage<RtuWarningInfoVO> page,  RtuWarningInfoDTO rtuWarningInfoDTO);
 
 	IPage<RtuWarningInfoVO> selectMinUpDelayPage(IPage<RtuWarningInfoVO> page, RtuWarningInfoDTO rtuWarningInfoDTO);
 
 	IPage<RtuWarningInfoVO> selectHourUpDelayPage(IPage<RtuWarningInfoVO> page, RtuWarningInfoDTO rtuWarningInfoDTO);
 
 	IPage<RtuWarningInfoVO> selectRainHourUpDelayPage(IPage<RtuWarningInfoVO> page,  RtuWarningInfoDTO rtuWarningInfoDTO);
+
 	IPage<RtuWarningInfoVO> selectRiverHourUpDelayPage(IPage<RtuWarningInfoVO> page,  RtuWarningInfoDTO rtuWarningInfoDTO);
 
 	IPage<RtuWarningInfoVO> selectOutlierValuePage(IPage<RtuWarningInfoVO> page,  RtuWarningInfoDTO rtuWarningInfoDTO);
 
-
 	/**
 	 * 设备异常测站数量
 	 * @param rtuWarningInfoDTO

+ 43 - 24
src/main/java/org/springblade/modules/business/warning/wrapper/RtuWarningWrapper.java

@@ -13,6 +13,10 @@ import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
+import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.warning.entity.RtuWarningInfoEntity;
 import org.springblade.modules.business.warning.vo.RtuWarningInfoVO;
 import org.springblade.modules.system.entity.Dept;
@@ -52,6 +56,25 @@ public class RtuWarningWrapper extends BaseEntityWrapper<RtuWarningInfoEntity, R
 		return deptService;
 	}
 
+	private static IRtuBaseInfoService rtuBaseInfoService;
+
+	private static IRtuBaseInfoService getRtuBaseInfoService() {
+		if (rtuBaseInfoService == null) {
+			rtuBaseInfoService = SpringUtil.getBean(IRtuBaseInfoService.class);
+		}
+		return rtuBaseInfoService;
+	}
+
+
+	private static IBaseInfoRegionService regionService;
+
+	private static IBaseInfoRegionService getRegionService() {
+		if (regionService == null) {
+			regionService = SpringUtil.getBean(IBaseInfoRegionService.class);
+		}
+		return regionService;
+	}
+
 	@Override
 	public RtuWarningInfoVO entityVO(RtuWarningInfoEntity entity) {
 		RtuWarningInfoVO rtuWarningInfoVO = Objects.requireNonNull(BeanUtil.copy(entity, RtuWarningInfoVO.class));
@@ -59,32 +82,28 @@ public class RtuWarningWrapper extends BaseEntityWrapper<RtuWarningInfoEntity, R
 	}
 
 	public RtuWarningInfoVO entityVO(RtuWarningInfoVO vo) {
-		String ancestors = vo.getAncestors();
-		if (null != ancestors && ancestors.length() > 0) {
-			String[] ancestorsList = ancestors.split(",");
-			String adCode;
-			if (ancestorsList.length >= 3) {
-				adCode = ancestorsList[2];
-			} else {
-				adCode = vo.getAdCode();
-			}
-			if (null != adCode) {
-				LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
-				wrapper.eq(DeptRegionEntity::getIsDeleted, 0);
-				wrapper.eq(DeptRegionEntity::getAdcd, adCode);
-				List<DeptRegionEntity> deptRegionEntities = getDeptRegionService().list(wrapper);
-				if (null != deptRegionEntities && deptRegionEntities.size() > 0) {
-					String manageCompany = "";
-					for (DeptRegionEntity deptRegionEntity : deptRegionEntities) {
-						Dept dept = getDeptService().getById(deptRegionEntity.getDeptId());
-						if(null != dept) {
-							if (manageCompany.length() > 0) {
-								manageCompany += " / ";
-							}
-							manageCompany += dept.getDeptName();
+		LambdaQueryWrapper<RtuInfoEntity> rtuLambdaQueryWrapper = Wrappers.<RtuInfoEntity>query().lambda();
+		rtuLambdaQueryWrapper.eq(RtuInfoEntity::getRtuCode, vo.getRtuCode());
+		RtuInfoEntity rtuInfoEntity = getRtuBaseInfoService().getOne(rtuLambdaQueryWrapper);
+		LambdaQueryWrapper<RegionInfoEntity> regionQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+		regionQueryWrapper.eq(RegionInfoEntity::getAdcd, rtuInfoEntity.getAdCode());
+		RegionInfoEntity regionInfoEntity = getRegionService().getOne(regionQueryWrapper);
+		String ancestors = regionInfoEntity.getAncestors()+","+rtuInfoEntity.getAdCode();
+		String[] ancestorsList = ancestors.split(",");
+		for (int i=2;i<ancestorsList.length;i++){
+			String adCode=ancestorsList[i];
+			LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+			wrapper.eq(DeptRegionEntity::getAdcd, adCode);
+			List<DeptRegionEntity> deptRegionEntities = getDeptRegionService().list(wrapper);
+			if (null != deptRegionEntities && deptRegionEntities.size() > 0) {
+				for (DeptRegionEntity deptRegionEntity : deptRegionEntities) {
+					Dept dept = getDeptService().getById(deptRegionEntity.getDeptId());
+					if (null != dept) {
+						if (dept.getDeptCategory() == 1) {
+							vo.setManageCompany(dept.getDeptName());
+							break;
 						}
 					}
-					vo.setManageCompany(manageCompany);
 				}
 			}
 		}

+ 4 - 0
src/main/resources/application-dev.yml

@@ -96,6 +96,10 @@ rockdb-config:
 warn-config:
   missout: 5
 
+region-ver-config:
+  original-ver: v1
+  ver: v8
+
 #第三方登陆
 social:
   enabled: true