Преглед на файлове

内蒙山洪运维系统-应急系统功能模块开发,增加旗县管理员角色

dylan преди 2 години
родител
ревизия
20ce0c9aad
променени са 34 файла, в които са добавени 4416 реда и са изтрити 3546 реда
  1. 14 0
      src/main/java/org/springblade/constant/BusinessConstant.java
  2. 10 0
      src/main/java/org/springblade/modules/baseinfo/org/controller/BaseInfoOrgController.java
  3. 20 0
      src/main/java/org/springblade/modules/baseinfo/region/whole/controller/BaseRegionController.java
  4. 455 448
      src/main/java/org/springblade/modules/baseinfo/rtu/controller/RtuBaseInfoController.java
  5. 335 0
      src/main/java/org/springblade/modules/baseinfo/servicePerson/qi/controller/QiServicePersonController.java
  6. 33 0
      src/main/java/org/springblade/modules/baseinfo/servicePerson/qi/dto/QiServicePersonDTO.java
  7. 35 0
      src/main/java/org/springblade/modules/baseinfo/servicePerson/qi/vo/QiServicePersonVO.java
  8. 64 0
      src/main/java/org/springblade/modules/baseinfo/servicePerson/qi/wrapper/QiServicePersonWrapper.java
  9. 876 850
      src/main/java/org/springblade/modules/business/check/order/controller/RtuCheckOrderController.java
  10. 69 59
      src/main/java/org/springblade/modules/business/data/controller/RtuDataGroundController.java
  11. 176 166
      src/main/java/org/springblade/modules/business/data/controller/RtuDataRainController.java
  12. 19 10
      src/main/java/org/springblade/modules/business/data/controller/RtuDataRiverController.java
  13. 19 10
      src/main/java/org/springblade/modules/business/data/controller/RtuDataRsvrController.java
  14. 19 10
      src/main/java/org/springblade/modules/business/data/controller/RtuDataWaterLevelController.java
  15. 781 774
      src/main/java/org/springblade/modules/business/home/controller/HomeController.java
  16. 259 249
      src/main/java/org/springblade/modules/business/notice/controller/NoticeController.java
  17. 9 0
      src/main/java/org/springblade/modules/business/notice/mapper/NoticeMapper.xml
  18. 897 885
      src/main/java/org/springblade/modules/business/rtumanage/controller/RtuManageController.java
  19. 6 0
      src/main/java/org/springblade/modules/yjxt/base/map/vo/DangerAreaVO.java
  20. 39 23
      src/main/java/org/springblade/modules/yjxt/base/map/wrapper/DangerAreaWrapper.java
  21. 47 4
      src/main/java/org/springblade/modules/yjxt/base/servicePerson/controller/YjxtServicePersonController.java
  22. 4 0
      src/main/java/org/springblade/modules/yjxt/base/servicePerson/mapper/YjxtServicePersonMapper.xml
  23. 26 14
      src/main/java/org/springblade/modules/yjxt/business/check/controller/DangerAreaCheckController.java
  24. 6 0
      src/main/java/org/springblade/modules/yjxt/business/check/vo/DangerAreaCheckInfoVO.java
  25. 33 4
      src/main/java/org/springblade/modules/yjxt/business/check/wrapper/DanagerAreaCheckWrapper.java
  26. 14 1
      src/main/java/org/springblade/modules/yjxt/business/resident/controller/DangerAreaResidentController.java
  27. 2 1
      src/main/java/org/springblade/modules/yjxt/business/resident/mapper/DangerAreaResidentInfoMapper.xml
  28. 12 0
      src/main/java/org/springblade/modules/yjxt/business/resident/vo/DangerAreaResidentInfoVO.java
  29. 48 0
      src/main/java/org/springblade/modules/yjxt/business/resident/wrapper/DanagerAreaResidentWrapper.java
  30. 9 0
      src/main/java/org/springblade/modules/yjxt/business/warn/controller/YjWarnController.java
  31. 5 2
      src/main/java/org/springblade/modules/yjxt/business/warn/mapper/OriginalWarningMapper.xml
  32. 7 0
      src/main/java/org/springblade/modules/yjxt/business/warn/vo/OriginalWarningInfoVO.java
  33. 23 0
      src/main/java/org/springblade/modules/yjxt/business/warn/wrapper/YjWarnInfoWrapper.java
  34. 45 36
      src/main/java/org/springblade/share/DataShareController.java

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

@@ -28,6 +28,12 @@ public class BusinessConstant {
 	 * 盟市机构管理员角色
 	 */
 	public static final  String ROLE_ORG_ADMIN ="org_admin";
+
+	/**
+	 * 旗县管理员角色
+	 */
+	public static final  String ROLE_QI_ADMIN ="qi_admin";
+
 	/**
 	 * 运维公司管理员角色
 	 */
@@ -45,6 +51,8 @@ public class BusinessConstant {
 	 * 盟市机构管理员角色ID
 	 */
 	public static final  String ROLE_ORG_ADMIN_ID ="1641334028382662657";
+
+
 	/**
 	 * 公司运维管理员角色ID
 	 */
@@ -67,6 +75,12 @@ public class BusinessConstant {
 	 * 应急工作人员岗位
 	 */
 	public static final  String POST_YJ_SERVICE_PERSON_CODE ="yj_service_person";
+
+	/**
+	 * 旗县管理员
+	 */
+	public static final  String POST_QI_ADMIN_CODE ="qi_admin";
+
 	/**
 	 * 系统管理员用户ID
 	 */

+ 10 - 0
src/main/java/org/springblade/modules/baseinfo/org/controller/BaseInfoOrgController.java

@@ -61,6 +61,11 @@ public class BaseInfoOrgController extends BladeController {
 		LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
 		wrapper.eq(Dept::getIsDeleted, 0);
 		wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
+		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+			wrapper.eq(Dept::getDeptCategory, 2);
+		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+			wrapper.eq(Dept::getDeptCategory, 1);
+		}
 		List<Dept> pages = deptService.list(wrapper);
 		return R.data(OrgInfoWrapper.build().listVO(pages));
 	}
@@ -79,6 +84,11 @@ public class BaseInfoOrgController extends BladeController {
 		LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
 		wrapper.eq(Dept::getIsDeleted, 0);
 		wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
+		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+			wrapper.eq(Dept::getDeptCategory, 2);
+		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+			wrapper.eq(Dept::getDeptCategory, 1);
+		}
 		if (entity.getDeptName() != null && entity.getDeptName().length() > 0) {
 			wrapper.like(Dept::getDeptName, entity.getDeptName());
 		}

+ 20 - 0
src/main/java/org/springblade/modules/baseinfo/region/whole/controller/BaseRegionController.java

@@ -84,6 +84,17 @@ public class BaseRegionController extends BladeController {
                     return R.fail("查询失败");
                 }
                 queryWrapper.eq(BaseRegionInfoEntity::getParentCode,deptRegionEntity.getAdcd());
+            }else if(BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())){
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)){
+                    return R.fail("查询失败");
+                }
+                queryWrapper.eq(BaseRegionInfoEntity::getParentCode,deptRegionEntity.getAdcd());
+            }else{
+                return R.fail("查询失败");
             }
         } else {
             queryWrapper.eq(BaseRegionInfoEntity::getParentCode, entity.getParentCode());
@@ -120,6 +131,15 @@ public class BaseRegionController extends BladeController {
                     return R.fail("查询失败");
                 }
                 queryWrapper.eq(BaseRegionInfoEntity::getAdcd,deptRegionEntity.getAdcd());
+            }else if(BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())){
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)){
+                    return R.fail("查询失败");
+                }
+                queryWrapper.eq(BaseRegionInfoEntity::getAdcd,deptRegionEntity.getAdcd());
             }else{
                 return R.fail("查询失败");
             }

+ 455 - 448
src/main/java/org/springblade/modules/baseinfo/rtu/controller/RtuBaseInfoController.java

@@ -70,467 +70,474 @@ import java.util.List;
 @AllArgsConstructor
 @Api(value = "测站设备基础管理", tags = "测站设备基础管理")
 public class RtuBaseInfoController extends BladeController {
-	private final IRtuBaseInfoService rtuBaseInfoService;
-	private final IDeptService deptService;
-	private final IRtuWarningService rtuWarningService;
-	private final IRtuManageService rtuManageService;
-	private final IRtuDataRainService rtuDataRainService;
-	private final IRtuDataRiverService rtuDataRiverService;
-	private final IRtuDataRsvrService rtuDataRsvrService;
-	private final IDictBizService dictBizService;
-	private final IDeptRegionService deptRegionService;
-	private final IRegionInfoService regionService;
+    private final IRtuBaseInfoService rtuBaseInfoService;
+    private final IDeptService deptService;
+    private final IRtuWarningService rtuWarningService;
+    private final IRtuManageService rtuManageService;
+    private final IRtuDataRainService rtuDataRainService;
+    private final IRtuDataRiverService rtuDataRiverService;
+    private final IRtuDataRsvrService rtuDataRsvrService;
+    private final IDictBizService dictBizService;
+    private final IDeptRegionService deptRegionService;
+    private final IRegionInfoService regionService;
 
 
-	/**
-	 * 分页
-	 */
-	@GetMapping("/list")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "不分页")
-	public R<List<RtuInfoVO>> list(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
-		if (rtuInfoDTO.getRtuKind() != null && "1".equals(rtuInfoDTO.getRtuKind())) {
-			rtuInfoDTO.setIsRain(1);
-		} else if (rtuInfoDTO.getRtuKind() != null && "2".equals(rtuInfoDTO.getRtuKind())) {
-			rtuInfoDTO.setIsRiver(1);
-			//rtuInfoDTO.setIsRes(1);
-		} else if (rtuInfoDTO.getRtuKind() != null && "3".equals(rtuInfoDTO.getRtuKind())) {
-			rtuInfoDTO.setIsGround(1);
-		} else if (rtuInfoDTO.getRtuKind() != null && "4".equals(rtuInfoDTO.getRtuKind())) {
-			rtuInfoDTO.setIsVideo(1);
-		}
-		LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
-		if (null != rtuInfoDTO.getRtuName()) {
-			wrapper.like(RtuInfoEntity::getRtuName, rtuInfoDTO.getRtuName());
-		}
-		if (null != rtuInfoDTO.getRtuCode()) {
-			wrapper.like(RtuInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
-		}
-		wrapper.orderByAsc(RtuInfoEntity::getRtuCode);
-		List<RtuInfoEntity> pages = rtuBaseInfoService.list(wrapper);
-		return R.data(RtuInfoWrapper.build().listVO(pages));
-	}
+    /**
+     * 分页
+     */
+    @GetMapping("/list")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "不分页")
+    public R<List<RtuInfoVO>> list(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
+        if (rtuInfoDTO.getRtuKind() != null && "1".equals(rtuInfoDTO.getRtuKind())) {
+            rtuInfoDTO.setIsRain(1);
+        } else if (rtuInfoDTO.getRtuKind() != null && "2".equals(rtuInfoDTO.getRtuKind())) {
+            rtuInfoDTO.setIsRiver(1);
+        } else if (rtuInfoDTO.getRtuKind() != null && "3".equals(rtuInfoDTO.getRtuKind())) {
+            rtuInfoDTO.setIsGround(1);
+        } else if (rtuInfoDTO.getRtuKind() != null && "4".equals(rtuInfoDTO.getRtuKind())) {
+            rtuInfoDTO.setIsVideo(1);
+        }
+        LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
+        if (null != rtuInfoDTO.getRtuName()) {
+            wrapper.like(RtuInfoEntity::getRtuName, rtuInfoDTO.getRtuName());
+        }
+        if (null != rtuInfoDTO.getRtuCode()) {
+            wrapper.like(RtuInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
+        }
+        wrapper.orderByAsc(RtuInfoEntity::getRtuCode);
+        List<RtuInfoEntity> pages = rtuBaseInfoService.list(wrapper);
+        return R.data(RtuInfoWrapper.build().listVO(pages));
+    }
 
-	/**
-	 * 多表联合查询自定义分页
-	 */
-	@GetMapping("/page")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "分页")
-	public R<IPage<RtuInfoVO>> page(@ApiIgnore RtuInfoDTO rtuInfoDTO, Query query) {
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			if (rtuInfoDTO.getAdCode() == null) {
-				rtuInfoDTO.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 (rtuInfoDTO.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);
-				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())) {
-			rtuInfoDTO.setIsRiver(1);
-			//rtuInfoDTO.setIsRes(1);
-		} else if (rtuInfoDTO.getRtuKind() != null && "3".equals(rtuInfoDTO.getRtuKind())) {
-			rtuInfoDTO.setIsGround(1);
-		} else if (rtuInfoDTO.getRtuKind() != null && "4".equals(rtuInfoDTO.getRtuKind())) {
-			rtuInfoDTO.setIsVideo(1);
-		}
-		IPage<RtuInfoVO> pages = rtuBaseInfoService.selectPage(Condition.getPage(query), rtuInfoDTO);
-		List<RtuInfoVO> list = pages.getRecords();
-		for (RtuInfoVO vo : list) {
-			RtuInfoWrapper.build().entityVO(vo);
-		}
-		return R.data(pages);
-	}
+    /**
+     * 多表联合查询自定义分页
+     */
+    @GetMapping("/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "分页")
+    public R<IPage<RtuInfoVO>> page(@ApiIgnore RtuInfoDTO rtuInfoDTO, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        rtuInfoDTO.setExcludeCode(0);
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(rtuInfoDTO.getAdCode())) {
+                rtuInfoDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
+            }
+            RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuInfoDTO.getAdCode());
+            if (Func.notNull(node)) {
+                rtuInfoDTO.setExcludeCode(node.getExclude());
+            }
+        } 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 (Func.isNull(rtuInfoDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                rtuInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            }
+            RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuInfoDTO.getAdCode());
+            if (Func.notNull(node)) {
+                rtuInfoDTO.setExcludeCode(node.getExclude());
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(rtuInfoDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                rtuInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            }
+        }
+        if (rtuInfoDTO.getRtuKind() != null && "1".equals(rtuInfoDTO.getRtuKind())) {
+            rtuInfoDTO.setIsRain(1);
+        } else if (rtuInfoDTO.getRtuKind() != null && "2".equals(rtuInfoDTO.getRtuKind())) {
+            rtuInfoDTO.setIsRiver(1);
+        } else if (rtuInfoDTO.getRtuKind() != null && "3".equals(rtuInfoDTO.getRtuKind())) {
+            rtuInfoDTO.setIsGround(1);
+        } else if (rtuInfoDTO.getRtuKind() != null && "4".equals(rtuInfoDTO.getRtuKind())) {
+            rtuInfoDTO.setIsVideo(1);
+        }
+        IPage<RtuInfoVO> pages = rtuBaseInfoService.selectPage(Condition.getPage(query), rtuInfoDTO);
+        List<RtuInfoVO> list = pages.getRecords();
+        for (RtuInfoVO vo : list) {
+            RtuInfoWrapper.build().entityVO(vo);
+        }
+        return R.data(pages);
+    }
 
 
-	/**
-	 * 详情
-	 */
-	@GetMapping("/detail")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情", notes = "传入rtuInfoEntity")
-	public R<RtuInfoVO> detail(RtuInfoEntity rtuInfoEntity) {
-		RtuInfoEntity detail = rtuBaseInfoService.getOne(Condition.getQueryWrapper(rtuInfoEntity));
-		RtuInfoVO rtuInfoVO = RtuInfoWrapper.build().entityVO(detail);
-		Dept dept = deptService.getById(detail.getOrgId());
-		if (null != dept) {
-			rtuInfoVO.setOrgName(dept.getDeptName());
-		}
-		LambdaQueryWrapper<RtuStatusEntity> statusWwrapper = Wrappers.<RtuStatusEntity>query().lambda();
-		statusWwrapper.eq(RtuStatusEntity::getIsDeleted, 0);
-		statusWwrapper.eq(RtuStatusEntity::getRtuCode, detail.getRtuCode());
-		RtuStatusEntity statusEntity = rtuManageService.getOne(statusWwrapper);
-		if (null != statusEntity) {
-			rtuInfoVO.setLastUpTime(statusEntity.getLastUpTime());
-		}
-		if (detail.getIsRain() != null && detail.getIsRain() == 1) {
-			LambdaQueryWrapper<RtuDataRainEntity> rainwrapper = Wrappers.<RtuDataRainEntity>query().lambda();
-			rainwrapper.eq(RtuDataRainEntity::getRtuCode, detail.getRtuCode());
-			rainwrapper.eq(RtuDataRainEntity::getIsDeleted, 0L);
-			RtuDataRainEntity rainEntity = rtuDataRainService.getOne(rainwrapper);
-			if (null != rainEntity) {
-				rtuInfoVO.setDrp(rainEntity.getDrp());
-			}
-		}
-		if (detail.getIsRiver() != null && detail.getIsRiver() == 1) {
-			LambdaQueryWrapper<RtuDataRiverEntity> riverwrapper = Wrappers.<RtuDataRiverEntity>query().lambda();
-			riverwrapper.eq(RtuDataRiverEntity::getRtuCode, detail.getRtuCode());
-			riverwrapper.eq(RtuDataRiverEntity::getIsDeleted, 0L);
-			RtuDataRiverEntity riverEntity = rtuDataRiverService.getOne(riverwrapper);
-			if (null != riverEntity) {
-				rtuInfoVO.setZ(riverEntity.getZ());
-			}
-		}
-		if (detail.getIsRes() != null && detail.getIsRes() == 1) {
-			LambdaQueryWrapper<RtuDataRsvrEntity> rsvrWrapper = Wrappers.<RtuDataRsvrEntity>query().lambda();
-			rsvrWrapper.eq(RtuDataRsvrEntity::getRtuCode, detail.getRtuCode());
-			rsvrWrapper.eq(RtuDataRsvrEntity::getIsDeleted, 0L);
-			RtuDataRsvrEntity rsvrEntity = rtuDataRsvrService.getOne(rsvrWrapper);
-			if (null != rsvrEntity) {
-				rtuInfoVO.setRz(rsvrEntity.getRz());
-			}
-		}
-		if (detail.getIsGround() != null && detail.getIsGround() == 1) {
+    /**
+     * 详情
+     */
+    @GetMapping("/detail")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情", notes = "传入rtuInfoEntity")
+    public R<RtuInfoVO> detail(RtuInfoEntity rtuInfoEntity) {
+        RtuInfoEntity detail = rtuBaseInfoService.getOne(Condition.getQueryWrapper(rtuInfoEntity));
+        RtuInfoVO rtuInfoVO = RtuInfoWrapper.build().entityVO(detail);
+        Dept dept = deptService.getById(detail.getOrgId());
+        if (null != dept) {
+            rtuInfoVO.setOrgName(dept.getDeptName());
+        }
+        LambdaQueryWrapper<RtuStatusEntity> statusWwrapper = Wrappers.<RtuStatusEntity>query().lambda();
+        statusWwrapper.eq(RtuStatusEntity::getIsDeleted, 0);
+        statusWwrapper.eq(RtuStatusEntity::getRtuCode, detail.getRtuCode());
+        RtuStatusEntity statusEntity = rtuManageService.getOne(statusWwrapper);
+        if (null != statusEntity) {
+            rtuInfoVO.setLastUpTime(statusEntity.getLastUpTime());
+        }
+        if (detail.getIsRain() != null && detail.getIsRain() == 1) {
+            LambdaQueryWrapper<RtuDataRainEntity> rainwrapper = Wrappers.<RtuDataRainEntity>query().lambda();
+            rainwrapper.eq(RtuDataRainEntity::getRtuCode, detail.getRtuCode());
+            rainwrapper.eq(RtuDataRainEntity::getIsDeleted, 0L);
+            RtuDataRainEntity rainEntity = rtuDataRainService.getOne(rainwrapper);
+            if (null != rainEntity) {
+                rtuInfoVO.setDrp(rainEntity.getDrp());
+            }
+        }
+        if (detail.getIsRiver() != null && detail.getIsRiver() == 1) {
+            LambdaQueryWrapper<RtuDataRiverEntity> riverwrapper = Wrappers.<RtuDataRiverEntity>query().lambda();
+            riverwrapper.eq(RtuDataRiverEntity::getRtuCode, detail.getRtuCode());
+            riverwrapper.eq(RtuDataRiverEntity::getIsDeleted, 0L);
+            RtuDataRiverEntity riverEntity = rtuDataRiverService.getOne(riverwrapper);
+            if (null != riverEntity) {
+                rtuInfoVO.setZ(riverEntity.getZ());
+            }
+        }
+        if (detail.getIsRes() != null && detail.getIsRes() == 1) {
+            LambdaQueryWrapper<RtuDataRsvrEntity> rsvrWrapper = Wrappers.<RtuDataRsvrEntity>query().lambda();
+            rsvrWrapper.eq(RtuDataRsvrEntity::getRtuCode, detail.getRtuCode());
+            rsvrWrapper.eq(RtuDataRsvrEntity::getIsDeleted, 0L);
+            RtuDataRsvrEntity rsvrEntity = rtuDataRsvrService.getOne(rsvrWrapper);
+            if (null != rsvrEntity) {
+                rtuInfoVO.setRz(rsvrEntity.getRz());
+            }
+        }
+        if (detail.getIsGround() != null && detail.getIsGround() == 1) {
 
-		}
-		if (null != detail.getWaterSensorType()) {
-			DictBiz dictBiz = dictBizService.getById(detail.getWaterSensorType());
-			if (null != dictBiz) {
-				rtuInfoVO.setWaterSensorTypeText(dictBiz.getDictValue());
-			}
-		}
-		if (null != detail.getGroundSensorType()) {
-			DictBiz dictBiz = dictBizService.getById(detail.getGroundSensorType());
-			if (null != dictBiz) {
-				rtuInfoVO.setGroundSensorTypeText(dictBiz.getDictValue());
-			}
-		}
-		if (null != detail.getSatelliteModel()) {
-			DictBiz dictBiz = dictBizService.getById(detail.getSatelliteModel());
-			if (null != dictBiz) {
-				rtuInfoVO.setSatelliteModelText(dictBiz.getDictValue());
-			}
-		}
-		return R.data(rtuInfoVO);
-	}
+        }
+        if (null != detail.getWaterSensorType()) {
+            DictBiz dictBiz = dictBizService.getById(detail.getWaterSensorType());
+            if (null != dictBiz) {
+                rtuInfoVO.setWaterSensorTypeText(dictBiz.getDictValue());
+            }
+        }
+        if (null != detail.getGroundSensorType()) {
+            DictBiz dictBiz = dictBizService.getById(detail.getGroundSensorType());
+            if (null != dictBiz) {
+                rtuInfoVO.setGroundSensorTypeText(dictBiz.getDictValue());
+            }
+        }
+        if (null != detail.getSatelliteModel()) {
+            DictBiz dictBiz = dictBizService.getById(detail.getSatelliteModel());
+            if (null != dictBiz) {
+                rtuInfoVO.setSatelliteModelText(dictBiz.getDictValue());
+            }
+        }
+        return R.data(rtuInfoVO);
+    }
 
 
-	/**
-	 * 新增
-	 */
-	@PostMapping("/save")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "新增", notes = "传入rtuInfoEntity")
-	public R save(@RequestBody RtuInfoDTO dto) {
-		LambdaQueryWrapper<RtuInfoEntity> rtuwrapper = Wrappers.<RtuInfoEntity>query().lambda();
-		rtuwrapper.eq(RtuInfoEntity::getRtuCode, dto.getRtuCode());
-		rtuwrapper.eq(RtuInfoEntity::getIsDeleted, 0L);
-		RtuInfoEntity entity = rtuBaseInfoService.getOne(rtuwrapper);
-		if (null != entity) {
-			return R.fail("测站编码已存在,请确认!");
-		}
-		LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
-		wrapper.eq(RegionInfoEntity::getAdcd, dto.getAdCode());
-		wrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
-		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 = this.regionService.getOne(citywrapper);
-		dto.setAdCity(regionInfoEntity.getAdnm());
-		dto.setIsRain(0);
-		dto.setIsRiver(0);
-		dto.setIsRes(0);
-		dto.setIsGround(0);
-		dto.setIsVideo(0);
-		if (dto.getSiteKind() != null && dto.getSiteKind().length > 0) {
-			for (String kind : dto.getSiteKind()) {
-				if ("1".equals(kind)) {
-					dto.setIsRain(1);
-				} else if ("2".equals(kind)) {
-					dto.setIsRiver(1);
-				} else if ("3".equals(kind)) {
-					dto.setIsRes(1);
-				} else if ("4".equals(kind)) {
-					dto.setIsGround(1);
-				} else if ("5".equals(kind)) {
-					dto.setIsVideo(1);
-				}
-			}
-		}
-		if (null != dto.getLng() && dto.getLng().trim().length() > 0) {
-			String lng = this.getLng(dto.getLng().trim());
-			dto.setLng(lng);
-		}
-		if (null != dto.getLat() && dto.getLat().trim().length() > 0) {
-			String lat = this.getLat(dto.getLat().trim());
-			dto.setLat(lat);
-		}
-		return R.status(rtuBaseInfoService.save(dto));
-	}
+    /**
+     * 新增
+     */
+    @PostMapping("/save")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "新增", notes = "传入rtuInfoEntity")
+    public R save(@RequestBody RtuInfoDTO dto) {
+        LambdaQueryWrapper<RtuInfoEntity> rtuwrapper = Wrappers.<RtuInfoEntity>query().lambda();
+        rtuwrapper.eq(RtuInfoEntity::getRtuCode, dto.getRtuCode());
+        rtuwrapper.eq(RtuInfoEntity::getIsDeleted, 0L);
+        RtuInfoEntity entity = rtuBaseInfoService.getOne(rtuwrapper);
+        if (null != entity) {
+            return R.fail("测站编码已存在,请确认!");
+        }
+        LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
+        wrapper.eq(RegionInfoEntity::getAdcd, dto.getAdCode());
+        wrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
+        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 = this.regionService.getOne(citywrapper);
+        dto.setAdCity(regionInfoEntity.getAdnm());
+        dto.setIsRain(0);
+        dto.setIsRiver(0);
+        dto.setIsRes(0);
+        dto.setIsGround(0);
+        dto.setIsVideo(0);
+        if (dto.getSiteKind() != null && dto.getSiteKind().length > 0) {
+            for (String kind : dto.getSiteKind()) {
+                if ("1".equals(kind)) {
+                    dto.setIsRain(1);
+                } else if ("2".equals(kind)) {
+                    dto.setIsRiver(1);
+                } else if ("3".equals(kind)) {
+                    dto.setIsRes(1);
+                } else if ("4".equals(kind)) {
+                    dto.setIsGround(1);
+                } else if ("5".equals(kind)) {
+                    dto.setIsVideo(1);
+                }
+            }
+        }
+        if (null != dto.getLng() && dto.getLng().trim().length() > 0) {
+            String lng = this.getLng(dto.getLng().trim());
+            dto.setLng(lng);
+        }
+        if (null != dto.getLat() && dto.getLat().trim().length() > 0) {
+            String lat = this.getLat(dto.getLat().trim());
+            dto.setLat(lat);
+        }
+        return R.status(rtuBaseInfoService.save(dto));
+    }
 
-	/**
-	 * 修改
-	 */
-	@PostMapping("/update")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "修改", notes = "传入RtuInfoDTO")
-	public R update(@RequestBody RtuInfoDTO dto) {
-		LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
-		wrapper.eq(RegionInfoEntity::getAdcd, dto.getAdCode());
-		wrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
-		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 = this.regionService.getOne(citywrapper);
-		dto.setAdCity(regionInfoEntity.getAdnm());
-		dto.setIsRain(0);
-		dto.setIsRiver(0);
-		dto.setIsRes(0);
-		dto.setIsGround(0);
-		dto.setIsVideo(0);
-		if (dto.getSiteKind() != null && dto.getSiteKind().length > 0) {
-			for (String kind : dto.getSiteKind()) {
-				if ("1".equals(kind)) {
-					dto.setIsRain(1);
-				} else if ("2".equals(kind)) {
-					dto.setIsRiver(1);
-				} else if ("3".equals(kind)) {
-					dto.setIsRes(1);
-				} else if ("4".equals(kind)) {
-					dto.setIsGround(1);
-				} else if ("5".equals(kind)) {
-					dto.setIsVideo(1);
-				}
-			}
-		}
-		if (null != dto.getLng() && dto.getLng().trim().length() > 0) {
-			String lng = this.getLng(dto.getLng().trim());
-			dto.setLng(lng);
-		}
-		if (null != dto.getLat() && dto.getLat().trim().length() > 0) {
-			String lat = this.getLat(dto.getLat().trim());
-			dto.setLat(lat);
-		}
-		return R.status(rtuBaseInfoService.updateById(dto));
-	}
+    /**
+     * 修改
+     */
+    @PostMapping("/update")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "修改", notes = "传入RtuInfoDTO")
+    public R update(@RequestBody RtuInfoDTO dto) {
+        LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
+        wrapper.eq(RegionInfoEntity::getAdcd, dto.getAdCode());
+        wrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
+        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 = this.regionService.getOne(citywrapper);
+        dto.setAdCity(regionInfoEntity.getAdnm());
+        dto.setIsRain(0);
+        dto.setIsRiver(0);
+        dto.setIsRes(0);
+        dto.setIsGround(0);
+        dto.setIsVideo(0);
+        if (dto.getSiteKind() != null && dto.getSiteKind().length > 0) {
+            for (String kind : dto.getSiteKind()) {
+                if ("1".equals(kind)) {
+                    dto.setIsRain(1);
+                } else if ("2".equals(kind)) {
+                    dto.setIsRiver(1);
+                } else if ("3".equals(kind)) {
+                    dto.setIsRes(1);
+                } else if ("4".equals(kind)) {
+                    dto.setIsGround(1);
+                } else if ("5".equals(kind)) {
+                    dto.setIsVideo(1);
+                }
+            }
+        }
+        if (null != dto.getLng() && dto.getLng().trim().length() > 0) {
+            String lng = this.getLng(dto.getLng().trim());
+            dto.setLng(lng);
+        }
+        if (null != dto.getLat() && dto.getLat().trim().length() > 0) {
+            String lat = this.getLat(dto.getLat().trim());
+            dto.setLat(lat);
+        }
+        return R.status(rtuBaseInfoService.updateById(dto));
+    }
 
-	/**
-	 * 新增或修改
-	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "新增或修改", notes = "传入RtuInfoDTO")
-	public R submit(@RequestBody RtuInfoDTO dto) {
-		LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
-		wrapper.eq(RegionInfoEntity::getAdcd, dto.getAdCode());
-		wrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
-		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 = this.regionService.getOne(citywrapper);
-		dto.setAdCity(regionInfoEntity.getAdnm());
-		dto.setIsRain(0);
-		dto.setIsRiver(0);
-		dto.setIsRes(0);
-		dto.setIsGround(0);
-		dto.setIsVideo(0);
-		if (dto.getSiteKind() != null && dto.getSiteKind().length > 0) {
-			for (String kind : dto.getSiteKind()) {
-				if ("1".equals(kind)) {
-					dto.setIsRain(1);
-				} else if ("2".equals(kind)) {
-					dto.setIsRiver(1);
-				} else if ("3".equals(kind)) {
-					dto.setIsRes(1);
-				} else if ("4".equals(kind)) {
-					dto.setIsGround(1);
-				} else if ("5".equals(kind)) {
-					dto.setIsVideo(1);
-				}
-			}
-		}
-		if (null != dto.getLng() && dto.getLng().trim().length() > 0) {
-			String lng = this.getLng(dto.getLng().trim());
-			dto.setLng(lng);
-		}
-		if (null != dto.getLat() && dto.getLat().trim().length() > 0) {
-			String lat = this.getLat(dto.getLat().trim());
-			dto.setLat(lat);
-		}
-		return R.status(rtuBaseInfoService.saveOrUpdate(dto));
-	}
+    /**
+     * 新增或修改
+     */
+    @PostMapping("/submit")
+    @ApiOperationSupport(order = 6)
+    @ApiOperation(value = "新增或修改", notes = "传入RtuInfoDTO")
+    public R submit(@RequestBody RtuInfoDTO dto) {
+        LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
+        wrapper.eq(RegionInfoEntity::getAdcd, dto.getAdCode());
+        wrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
+        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 = this.regionService.getOne(citywrapper);
+        dto.setAdCity(regionInfoEntity.getAdnm());
+        dto.setIsRain(0);
+        dto.setIsRiver(0);
+        dto.setIsRes(0);
+        dto.setIsGround(0);
+        dto.setIsVideo(0);
+        if (dto.getSiteKind() != null && dto.getSiteKind().length > 0) {
+            for (String kind : dto.getSiteKind()) {
+                if ("1".equals(kind)) {
+                    dto.setIsRain(1);
+                } else if ("2".equals(kind)) {
+                    dto.setIsRiver(1);
+                } else if ("3".equals(kind)) {
+                    dto.setIsRes(1);
+                } else if ("4".equals(kind)) {
+                    dto.setIsGround(1);
+                } else if ("5".equals(kind)) {
+                    dto.setIsVideo(1);
+                }
+            }
+        }
+        if (null != dto.getLng() && dto.getLng().trim().length() > 0) {
+            String lng = this.getLng(dto.getLng().trim());
+            dto.setLng(lng);
+        }
+        if (null != dto.getLat() && dto.getLat().trim().length() > 0) {
+            String lat = this.getLat(dto.getLat().trim());
+            dto.setLat(lat);
+        }
+        return R.status(rtuBaseInfoService.saveOrUpdate(dto));
+    }
 
-	/**
-	 * 删除
-	 */
-	@PostMapping("/remove")
-	@ApiOperationSupport(order = 7)
-	@ApiOperation(value = "逻辑删除", notes = "传入ID数组")
-	public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
-		boolean temp = rtuBaseInfoService.deleteLogic(Func.toLongList(ids));
-		return R.status(temp);
-	}
+    /**
+     * 删除
+     */
+    @PostMapping("/remove")
+    @ApiOperationSupport(order = 7)
+    @ApiOperation(value = "逻辑删除", notes = "传入ID数组")
+    public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+        boolean temp = rtuBaseInfoService.deleteLogic(Func.toLongList(ids));
+        return R.status(temp);
+    }
 
-	@GetMapping("/dict/list")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页")
-	public R<List<DictBiz>> dictList(@RequestParam String code) {
-		List<DictBiz> dicts = dictBizService.getList(code);
-		return R.data(dicts);
-	}
+    @GetMapping("/dict/list")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "分页")
+    public R<List<DictBiz>> dictList(@RequestParam String code) {
+        List<DictBiz> dicts = dictBizService.getList(code);
+        return R.data(dicts);
+    }
 
-	/**
-	 * 按机构统计测站信息
-	 *
-	 * @return
-	 */
-	@GetMapping("/statistics")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页")
-	public R<List<RtuStatisticsInfoVO>> rtuStatistics() {
-		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());
-			rtuStatisticsInfoVO.setOrgName(dept.getDeptName());
-			LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
-			wrapper.eq(RtuInfoEntity::getOrgId, dept.getId());
-			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);
-	}
+    /**
+     * 按机构统计测站信息
+     *
+     * @return
+     */
+    @GetMapping("/statistics")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "分页")
+    public R<List<RtuStatisticsInfoVO>> rtuStatistics() {
+        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());
+            rtuStatisticsInfoVO.setOrgName(dept.getDeptName());
+            LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
+            wrapper.eq(RtuInfoEntity::getOrgId, dept.getId());
+            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);
+    }
 
-	private String getLng(String lngText) {
-		ArrayList<String> textArr = new ArrayList<>();
-		textArr.add("");
-		for (int l = 0; l < lngText.length(); l++) {
-			String subtext = lngText.substring(l, l + 1);
-			if (Func.isNumeric(subtext)) {
-				String str = textArr.get(textArr.size() - 1);
-				str += subtext;
-				textArr.set(textArr.size() - 1, str);
-			} else {
-				textArr.add("");
-			}
-		}
-		ArrayList<String> tmp = new ArrayList<>();
-		for (String text : textArr) {
-			if (text.length() > 0) {
-				tmp.add(text);
-			}
-		}
-		if (tmp.size() >= 4) {
-			//度分秒,秒有小数点
-			String v = tmp.get(2) + "." + tmp.get(3);
-			double lat = Double.parseDouble(v);
-			lat = lat / 60.0;
-			v = tmp.get(1);
-			lat = (Double.parseDouble(v) + lat) / 60.0;
-			v = tmp.get(0);
-			lat = Double.parseDouble(v) + lat;
-			return String.format("%.06f", lat);
-		} else if (tmp.size() == 3) {
-			//度分秒
-			String v = tmp.get(2);
-			double lat = Double.parseDouble(v);
-			lat = lat / 60.0;
-			v = tmp.get(1);
-			lat = (Double.parseDouble(v) + lat) / 60.0;
-			v = tmp.get(0);
-			lat = Double.parseDouble(v) + lat;
-			return String.format("%.06f", lat);
-		} else if (tmp.size() == 2) {
-			//度
-			String v = tmp.get(0) + "." + tmp.get(1);
-			double lat = Double.parseDouble(v);
-			return String.format("%.06f", lat);
-		}
-		return null;
-	}
+    private String getLng(String lngText) {
+        ArrayList<String> textArr = new ArrayList<>();
+        textArr.add("");
+        for (int l = 0; l < lngText.length(); l++) {
+            String subtext = lngText.substring(l, l + 1);
+            if (Func.isNumeric(subtext)) {
+                String str = textArr.get(textArr.size() - 1);
+                str += subtext;
+                textArr.set(textArr.size() - 1, str);
+            } else {
+                textArr.add("");
+            }
+        }
+        ArrayList<String> tmp = new ArrayList<>();
+        for (String text : textArr) {
+            if (text.length() > 0) {
+                tmp.add(text);
+            }
+        }
+        if (tmp.size() >= 4) {
+            //度分秒,秒有小数点
+            String v = tmp.get(2) + "." + tmp.get(3);
+            double lat = Double.parseDouble(v);
+            lat = lat / 60.0;
+            v = tmp.get(1);
+            lat = (Double.parseDouble(v) + lat) / 60.0;
+            v = tmp.get(0);
+            lat = Double.parseDouble(v) + lat;
+            return String.format("%.06f", lat);
+        } else if (tmp.size() == 3) {
+            //度分秒
+            String v = tmp.get(2);
+            double lat = Double.parseDouble(v);
+            lat = lat / 60.0;
+            v = tmp.get(1);
+            lat = (Double.parseDouble(v) + lat) / 60.0;
+            v = tmp.get(0);
+            lat = Double.parseDouble(v) + lat;
+            return String.format("%.06f", lat);
+        } else if (tmp.size() == 2) {
+            //度
+            String v = tmp.get(0) + "." + tmp.get(1);
+            double lat = Double.parseDouble(v);
+            return String.format("%.06f", lat);
+        }
+        return null;
+    }
 
-	private String getLat(String latText) {
-		ArrayList<String> textArr = new ArrayList<>();
-		textArr.add("");
-		for (int l = 0; l < latText.length(); l++) {
-			String subtext = latText.substring(l, l + 1);
-			if (Func.isNumeric(subtext)) {
-				String str = textArr.get(textArr.size() - 1);
-				str += subtext;
-				textArr.set(textArr.size() - 1, str);
-			} else {
-				textArr.add("");
-			}
-		}
-		ArrayList<String> tmp = new ArrayList<>();
-		for (String text : textArr) {
-			if (text.length() > 0) {
-				tmp.add(text);
-			}
-		}
-		if (tmp.size() >= 4) {
-			//度分秒,秒有小数点
-			String v = tmp.get(2) + "." + tmp.get(3);
-			double lat = Double.parseDouble(v);
-			lat = lat / 60.0;
-			v = tmp.get(1);
-			lat = (Double.parseDouble(v) + lat) / 60.0;
-			v = tmp.get(0);
-			lat = Double.parseDouble(v) + lat;
-			return String.format("%.06f", lat);
-		} else if (tmp.size() == 3) {
-			//度分秒
-			String v = tmp.get(2);
-			double lat = Double.parseDouble(v);
-			lat = lat / 60.0;
-			v = tmp.get(1);
-			lat = (Double.parseDouble(v) + lat) / 60.0;
-			v = tmp.get(0);
-			lat = Double.parseDouble(v) + lat;
-			return String.format("%.06f", lat);
-		} else if (tmp.size() == 2) {
-			//度
-			String v = tmp.get(0) + "." + tmp.get(1);
-			double lat = Double.parseDouble(v);
-			return String.format("%.06f", lat);
-		}
-		return null;
-	}
+    private String getLat(String latText) {
+        ArrayList<String> textArr = new ArrayList<>();
+        textArr.add("");
+        for (int l = 0; l < latText.length(); l++) {
+            String subtext = latText.substring(l, l + 1);
+            if (Func.isNumeric(subtext)) {
+                String str = textArr.get(textArr.size() - 1);
+                str += subtext;
+                textArr.set(textArr.size() - 1, str);
+            } else {
+                textArr.add("");
+            }
+        }
+        ArrayList<String> tmp = new ArrayList<>();
+        for (String text : textArr) {
+            if (text.length() > 0) {
+                tmp.add(text);
+            }
+        }
+        if (tmp.size() >= 4) {
+            //度分秒,秒有小数点
+            String v = tmp.get(2) + "." + tmp.get(3);
+            double lat = Double.parseDouble(v);
+            lat = lat / 60.0;
+            v = tmp.get(1);
+            lat = (Double.parseDouble(v) + lat) / 60.0;
+            v = tmp.get(0);
+            lat = Double.parseDouble(v) + lat;
+            return String.format("%.06f", lat);
+        } else if (tmp.size() == 3) {
+            //度分秒
+            String v = tmp.get(2);
+            double lat = Double.parseDouble(v);
+            lat = lat / 60.0;
+            v = tmp.get(1);
+            lat = (Double.parseDouble(v) + lat) / 60.0;
+            v = tmp.get(0);
+            lat = Double.parseDouble(v) + lat;
+            return String.format("%.06f", lat);
+        } else if (tmp.size() == 2) {
+            //度
+            String v = tmp.get(0) + "." + tmp.get(1);
+            double lat = Double.parseDouble(v);
+            return String.format("%.06f", lat);
+        }
+        return null;
+    }
 }

+ 335 - 0
src/main/java/org/springblade/modules/baseinfo/servicePerson/qi/controller/QiServicePersonController.java

@@ -0,0 +1,335 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 运维系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.servicePerson.qi.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.constant.BusinessConstant;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
+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.modules.baseinfo.org.dto.OrgInfoDTO;
+import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
+import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.whole.entity.BaseRegionInfoEntity;
+import org.springblade.modules.baseinfo.region.whole.service.IBaseRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.servicePerson.qi.dto.QiServicePersonDTO;
+import org.springblade.modules.baseinfo.servicePerson.qi.vo.QiServicePersonVO;
+import org.springblade.modules.baseinfo.servicePerson.qi.wrapper.QiServicePersonWrapper;
+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.system.entity.Dept;
+import org.springblade.modules.system.entity.Post;
+import org.springblade.modules.system.entity.Role;
+import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.service.IDeptService;
+import org.springblade.modules.system.service.IPostService;
+import org.springblade.modules.system.service.IRoleService;
+import org.springblade.modules.system.service.IUserService;
+import org.springblade.modules.system.vo.UserVO;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Objects;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@RestController
+@RequestMapping("galaxy-business/qi/serviceperson")
+@AllArgsConstructor
+@Api(value = "项目运维人员管理", tags = "项目运维人员管理")
+public class QiServicePersonController extends BladeController {
+    private final IServicePersonService servicePersonService;
+    private final IUserService userService;
+    private final IDeptService deptService;
+    private final IBaseRegionInfoService baseRegionInfoService;
+    private final IDeptRegionService deptRegionService;
+    private final IRegionInfoService regionService;
+    private final IRoleService roleService;
+    private final IPostService postService;
+
+    @GetMapping("/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "realName", value = "人员名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "phone", value = "联系电话", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "分页")
+    public R<IPage<UserVO>> orgPersonList(@ApiIgnore User userEntity, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            LambdaQueryWrapper<Post> postQueryWrapper = Wrappers.<Post>query().lambda();
+            postQueryWrapper.eq(Post::getPostCode, BusinessConstant.POST_QI_ADMIN_CODE);
+            postQueryWrapper.last("limit 1");
+            Post post =postService.getOne(postQueryWrapper);
+            LambdaQueryWrapper<User> wrapper = Wrappers.<User>query().lambda();
+            wrapper.eq(User::getIsDeleted, 0);
+            wrapper.eq(User::getPostId, Func.toStr(post.getId()));
+            if (userEntity.getRealName() != null) {
+                wrapper.like(User::getRealName, userEntity.getRealName());
+            }
+            if (userEntity.getPhone() != null) {
+                wrapper.like(User::getPhone, userEntity.getPhone());
+            }
+            IPage<User> pages = userService.page(Condition.getPage(query), wrapper);
+            return R.data(QiServicePersonWrapper.build().pageVO(pages));
+        } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+            LambdaQueryWrapper<Post> postQueryWrapper = Wrappers.<Post>query().lambda();
+            postQueryWrapper.eq(Post::getPostCode, BusinessConstant.POST_QI_ADMIN_CODE);
+            postQueryWrapper.last("limit 1");
+            Post post =postService.getOne(postQueryWrapper);
+
+            LambdaQueryWrapper<Dept> deptLambdaQueryWrapper = Wrappers.<Dept>query().lambda();
+            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);
+            }
+            ArrayList<Long> deptIds = new ArrayList<>();
+            for (Dept dept : deptList) {
+                deptIds.add(dept.getId());
+            }
+            LambdaQueryWrapper<User> wrapper = Wrappers.<User>query().lambda();
+            wrapper.eq(User::getIsDeleted, 0);
+            wrapper.eq(User::getPostId, Func.toStr(post.getId()));
+            wrapper.in(User::getDeptId, deptIds);
+
+            if (userEntity.getRealName() != null) {
+                wrapper.like(User::getRealName, userEntity.getRealName());
+            }
+            if (userEntity.getPhone() != null) {
+                wrapper.like(User::getPhone, userEntity.getPhone());
+            }
+            IPage<User> pages = userService.page(Condition.getPage(query), wrapper);
+            return R.data(QiServicePersonWrapper.build().pageVO(pages));
+        }
+        return R.data(null);
+    }
+
+
+    @GetMapping("/list")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "列表")
+    public R<List<User>> list() {
+        BladeUser user = AuthUtil.getUser();
+        LambdaQueryWrapper<User> wrapper = Wrappers.<User>query().lambda();
+        wrapper.eq(User::getIsDeleted, 0);
+        wrapper.eq(User::getDeptId, Func.toLong(user.getDeptId()));
+        List<User> lists = userService.list(wrapper);
+        return R.data(lists);
+    }
+
+    /**
+     * 详情
+     */
+    @GetMapping("/detail")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "详情", notes = "传入 User")
+    public R<User> detail(User user) {
+        User detail = userService.getById(user.getId());
+        return R.data(detail);
+    }
+
+    /**
+     * 新增
+     */
+    @PostMapping("/save")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "新增", notes = "传入 User")
+    public R save(@RequestBody QiServicePersonDTO dto) {
+        if (Func.isNull(dto.getDistrictAdcd())) {
+            return R.fail("参数错误");
+        }
+        LambdaQueryWrapper<User> wrapper = Wrappers.<User>query().lambda();
+        wrapper.eq(User::getAccount, dto.getAccount());
+        wrapper.eq(User::getIsDeleted, 0);
+        List<User> list = userService.list(wrapper);
+        if (null != list && list.size() > 0) {
+            return R.fail("帐号已经存在");
+        }
+        dto.setName(dto.getRealName());
+        dto.setPassword(DigestUtil.encrypt(dto.getAccount() + BusinessConstant.ACCOUNT_PW_SUFFIX));
+
+        LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+        deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getAdcd, dto.getDistrictAdcd());
+        DeptRegionEntity qiAdmindRegion = this.deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+        if (Func.isNull(qiAdmindRegion)) {
+            deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+            deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getAdcd, dto.getCityAdcd());
+            DeptRegionEntity orgAdmindRegion = this.deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+            if (Func.isNull(orgAdmindRegion)) {
+                return R.fail("盟市机构不存在");
+            }
+            Dept orgDept = this.deptService.getById(orgAdmindRegion.getDeptId());
+
+            LambdaQueryWrapper<BaseRegionInfoEntity> queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+            queryWrapper.eq(BaseRegionInfoEntity::getAdcd, dto.getDistrictAdcd());
+            queryWrapper.last("limit 1");
+            BaseRegionInfoEntity regionInfoEntity = baseRegionInfoService.getOne(queryWrapper);
+            OrgInfoDTO dept = new OrgInfoDTO();
+            dept.setFullName(regionInfoEntity.getAdnm());
+            dept.setDeptName(regionInfoEntity.getAdnm());
+            dept.setParentId(orgDept.getId());
+            dept.setAncestors(orgDept.getAncestors() + "," + orgDept.getId());
+            dept.setDeptCategory(3);
+            this.deptService.save(dept);
+            dto.setDeptId(Func.toStr(dept.getId()));
+            DeptRegionEntity deptRegionEntity = new DeptRegionEntity();
+            deptRegionEntity.setDeptId(dept.getId());
+            deptRegionEntity.setAdcd(dto.getDistrictAdcd());
+            this.deptRegionService.save(deptRegionEntity);
+        } else {
+            dto.setDeptId(Func.toStr(qiAdmindRegion.getDeptId()));
+        }
+        LambdaQueryWrapper<Role> roleQueryWrapper = Wrappers.<Role>query().lambda();
+        roleQueryWrapper.eq(Role::getRoleAlias, "qi_admin");
+        roleQueryWrapper.last("limit 1");
+        Role role = roleService.getOne(roleQueryWrapper);
+        dto.setRoleId(Func.toStr(role.getId()));
+        LambdaQueryWrapper<Post> postQueryWrapper = Wrappers.<Post>query().lambda();
+        postQueryWrapper.eq(Post::getPostCode, BusinessConstant.POST_QI_ADMIN_CODE);
+        postQueryWrapper.last("limit 1");
+        Post post =postService.getOne(postQueryWrapper);
+        dto.setPostId(Func.toStr(post.getId()));
+        dto.setUserType(1);
+        return R.status(userService.save(dto));
+    }
+
+    /**
+     * 修改
+     */
+    @PostMapping("/update")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "修改", notes = "传入 User")
+    public R update(@RequestBody User user) {
+        if (Objects.isNull(user.getId())) {
+            return R.fail("用户ID不能为空!");
+        }
+        return R.status(userService.updateById(user));
+    }
+
+    /**
+     * 删除
+     */
+    @PostMapping("/remove")
+    @ApiOperationSupport(order = 7)
+    @ApiOperation(value = "逻辑删除", notes = "传入 ids")
+    public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+        List<Long> list = Func.toLongList(ids);
+        if (null != list && list.size() > 0) {
+            for (Long id : list) {
+                userService.removeById(id);
+            }
+        }
+        return R.status(true);
+    }
+
+    /**
+     * 用户联系表
+     *
+     * @return
+     */
+    @GetMapping("/contact")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "通讯录")
+    public R<List<OrgPersonContactVO>> contact() {
+        BladeUser user = AuthUtil.getUser();
+        List<OrgPersonContactVO> list = new LinkedList<>();
+        if (BusinessConstant.ROLE_SYS_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> root = this.deptService.list(wrapper);
+            for (Dept dept : root) {
+                OrgPersonContactVO contactVO = new OrgPersonContactVO();
+                contactVO.setId(dept.getId());
+                contactVO.setOrgName(dept.getDeptName());
+                LambdaQueryWrapper<User> userLambdaQueryWrapper = Wrappers.<User>query().lambda();
+                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) {
+                    ServicePersonVO vo = new ServicePersonVO();
+                    vo.setId(u.getId());
+                    vo.setPersonName(u.getRealName());
+                    vo.setContactPhone(u.getPhone());
+                    personVOList.add(vo);
+                }
+                contactVO.setServicePersonVOList(personVOList);
+                list.add(contactVO);
+            }
+        } 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()));
+            List<Dept> root = this.deptService.list(wrapper);
+            for (Dept dept : root) {
+                OrgPersonContactVO contactVO = new OrgPersonContactVO();
+                contactVO.setId(dept.getId());
+                contactVO.setOrgName(dept.getDeptName());
+                LambdaQueryWrapper<User> userLambdaQueryWrapper = Wrappers.<User>query().lambda();
+                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) {
+                    ServicePersonVO vo = new ServicePersonVO();
+                    vo.setId(u.getId());
+                    vo.setPersonName(u.getRealName());
+                    vo.setContactPhone(u.getPhone());
+                    personVOList.add(vo);
+                }
+                contactVO.setServicePersonVOList(personVOList);
+                list.add(contactVO);
+            }
+        } 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());
+            contactVO.setOrgName(dept.getDeptName());
+            LambdaQueryWrapper<User> userLambdaQueryWrapper = Wrappers.<User>query().lambda();
+            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) {
+                ServicePersonVO vo = new ServicePersonVO();
+                vo.setId(u.getId());
+                vo.setPersonName(u.getRealName());
+                vo.setContactPhone(u.getPhone());
+                personVOList.add(vo);
+            }
+            contactVO.setServicePersonVOList(personVOList);
+
+            list.add(contactVO);
+        }
+        return R.data(list);
+    }
+}

+ 33 - 0
src/main/java/org/springblade/modules/baseinfo/servicePerson/qi/dto/QiServicePersonDTO.java

@@ -0,0 +1,33 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2024/4/17
+ */
+package org.springblade.modules.baseinfo.servicePerson.qi.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.system.entity.User;
+
+/***
+ * Date:2024/4/17
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class QiServicePersonDTO extends User {
+    /**
+     * 行政区划
+     */
+    @ApiModelProperty("行政区划")
+    private String cityAdcd;
+
+    @ApiModelProperty("行政区划")
+    private String districtAdcd;
+}

+ 35 - 0
src/main/java/org/springblade/modules/baseinfo/servicePerson/qi/vo/QiServicePersonVO.java

@@ -0,0 +1,35 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 运维系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.servicePerson.qi.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.baseinfo.servicePerson.entity.ServicePersonEntity;
+import org.springblade.modules.system.entity.User;
+
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class QiServicePersonVO extends User {
+
+
+	/**
+	 * 机构名称
+	 */
+	@ApiModelProperty(value = "机构名称")
+	private String fullOrgName;
+
+}

+ 64 - 0
src/main/java/org/springblade/modules/baseinfo/servicePerson/qi/wrapper/QiServicePersonWrapper.java

@@ -0,0 +1,64 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 运维系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.servicePerson.qi.wrapper;
+
+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.system.entity.Dept;
+import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.service.IDeptService;
+import org.springblade.modules.system.vo.UserVO;
+
+import java.util.Objects;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public class QiServicePersonWrapper extends BaseEntityWrapper<User, UserVO> {
+    public static QiServicePersonWrapper build() {
+        return new QiServicePersonWrapper();
+    }
+
+    private static IDeptService deptService;
+
+    private static IDeptService getDeptService() {
+        if (deptService == null) {
+            deptService = SpringUtil.getBean(IDeptService.class);
+        }
+        return deptService;
+    }
+
+    @Override
+    public UserVO entityVO(User entity) {
+        UserVO servicePersonVO = Objects.requireNonNull(BeanUtil.copy(entity, UserVO.class));
+        return entityVO(servicePersonVO);
+    }
+
+    public UserVO entityVO(UserVO vo) {
+        Dept dept = getDeptService().getById(Func.toLong(vo.getDeptId()));
+        if (Func.notNull(dept)) {
+            StringBuilder stringBuilder = new StringBuilder();
+            Dept parentDept = getDeptService().getById(dept.getParentId());
+            if (Func.notNull(parentDept)) {
+                stringBuilder.append(parentDept.getDeptName());
+            }
+            if (stringBuilder.length() > 0) {
+                stringBuilder.append("/");
+            }
+            stringBuilder.append(dept.getDeptName());
+            vo.setDeptName(stringBuilder.toString());
+        }
+        return vo;
+    }
+}

+ 876 - 850
src/main/java/org/springblade/modules/business/check/order/controller/RtuCheckOrderController.java

@@ -79,854 +79,880 @@ import java.util.*;
 @Api(value = "测站设备故障工单管理模块", tags = "测站设备故障工单管理模块")
 public class RtuCheckOrderController extends BladeController {
 
-	private final IRtuCheckOrderService rtuCheckOrderService;
-	private final IRtuOrderProcessService rtuOrderProcessService;
-	private final IRtuWarningService rtuWarningService;
-	private final IDictBizService dictBizService;
-	private final IRtuManageService rtuManageService;
-	private final IUserService userService;
-	private final IDeptService deptService;
-	private final IRtuBaseInfoService rtuBaseInfoService;
-	private final IRtuDataRainService rtuDataRainService;
-	private final IRtuDataRiverService rtuDataRiverService;
-	private final IRtuDataRsvrService rtuDataRsvrService;
-	private final IBaseInfoDictService baseInfoDictService;
-	private final IDeptRegionService deptRegionService;
-	private final ICheckOrderSettingService checkOrderSettingService;
-	private final IRegionInfoService regionService;
-	private final IBaseInfoDictService dictService;
-
-	/**
-	 * 工单查询,分页
-	 */
-	@GetMapping("/page")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "orderConfirm", value = "是否确认", paramType = "query", dataType = "int"),
-		@ApiImplicitParam(name = "orderClose", value = "是否关闭", paramType = "query", dataType = "int"),
-		@ApiImplicitParam(name = "servicePersonId", value = "运维人员", paramType = "query", dataType = "long"),
-		@ApiImplicitParam(name = "deptId", value = "部门ID", paramType = "query", dataType = "long"),
-		@ApiImplicitParam(name = "warnKind", value = "异常类型", paramType = "query", dataType = "int"),
-		@ApiImplicitParam(name = "orderReportStatus", value = "是否维修", paramType = "query", dataType = "int"),
-	})
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "分页", notes = "传入实体类CheckOrderInfoDTO")
-	public R<IPage<CheckOrderInfoVO>> page(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO, Query query) {
-		BladeUser user = AuthUtil.getUser();
-		if (checkOrderInfoDTO.getServicePersonId() != null) {
-			checkOrderInfoDTO.setOrderConfirmUser(checkOrderInfoDTO.getServicePersonId());
-		} else if (checkOrderInfoDTO.getDeptId() != null) {
-			LambdaQueryWrapper<DeptRegionEntity> deptLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
-			deptLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
-			deptLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, checkOrderInfoDTO.getDeptId());
-			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptLambdaQueryWrapper);
-			checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
-		} else {
-			if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-				if (checkOrderInfoDTO.getAdCode() == null) {
-					checkOrderInfoDTO.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 (checkOrderInfoDTO.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);
-					checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
-				}
-			}
-		//	if (BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
-				//	if (checkOrderInfoDTO.getOrderConfirm() != null && checkOrderInfoDTO.getOrderConfirm() == 1) {
-				//checkOrderInfoDTO.setOrderConfirmUser(user.getUserId());
-				//	}
-		//	}
-		}
-		if (checkOrderInfoDTO.getAdCode() != null) {
-			RegionTreeNodeEntity nodeEntity = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), checkOrderInfoDTO.getAdCode());
-			checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
-		}
-		if (checkOrderInfoDTO.getOrderStatus() != null) {
-			if (checkOrderInfoDTO.getOrderStatus() == 1) {
-				DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CREATE.getCode());
-				if (biz != null) {
-					checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-				}
-			} else if (checkOrderInfoDTO.getOrderStatus() == 2) {
-				DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
-				if (biz != null) {
-					checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-				}
-			} else if (checkOrderInfoDTO.getOrderStatus() == 3) {
-				DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
-				if (biz != null) {
-					checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-				}
-			}
-		}
-//		if (checkOrderInfoDTO.getOrderReportStatus()!=null){
-//			if(checkOrderInfoDTO.getOrderReportStatus()==0){
-//				DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
-//				if (biz != null) {
-//					checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-//				}
-//			}else if(checkOrderInfoDTO.getOrderReportStatus()==1){
-//				DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
-//				if (biz != null) {
-//					checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-//				}
-//			}
-//		}
-
-		if (checkOrderInfoDTO.getWarnKind() != null) {
-			IPage<CheckOrderInfoVO> pages = rtuCheckOrderService.selectWarnPage(Condition.getPage(query), checkOrderInfoDTO);
-			List<CheckOrderInfoVO> list = pages.getRecords();
-			for (CheckOrderInfoVO v : list) {
-				RtuCheckOrderWrapper.build().entityVO(v);
-			}
-			return R.data(pages);
-		} else {
-			IPage<CheckOrderInfoVO> pages = rtuCheckOrderService.selectPage(Condition.getPage(query), checkOrderInfoDTO);
-			List<CheckOrderInfoVO> list = pages.getRecords();
-			for (CheckOrderInfoVO v : list) {
-				RtuCheckOrderWrapper.build().entityVO(v);
-			}
-			return R.data(pages);
-		}
-	}
-
-	/**
-	 * 我的工单查询,分页
-	 */
-	@GetMapping("/my/page")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string")
-	})
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "分页", notes = "传入实体类CheckOrderInfoDTO")
-	public R<IPage<CheckOrderInfoVO>> mypage(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO, Query query) {
-		BladeUser user = AuthUtil.getUser();
-		checkOrderInfoDTO.setContactUser(user.getUserId());
-		checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-		checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-		IPage<CheckOrderInfoVO> pages = rtuCheckOrderService.selectMyPage(Condition.getPage(query), checkOrderInfoDTO);
-		List<CheckOrderInfoVO> list = pages.getRecords();
-		for (CheckOrderInfoVO v : list) {
-			RtuCheckOrderWrapper.build().entityVO(v);
-		}
-		return R.data(pages);
-	}
-
-	/**
-	 * 最新未确认工单列表,不分页,最多返回10条数据
-	 */
-	@GetMapping("/unconfirm/last/list")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "不分页", notes = "传入实体类CheckOrderInfoDTO")
-	public R<List<CheckOrderInfoVO>> unconfirmLastOrderList(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO) {
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			if (checkOrderInfoDTO.getAdCode() == null) {
-				checkOrderInfoDTO.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 (checkOrderInfoDTO.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);
-				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);
-		}
-		return R.data(list);
-	}
-
-	/**
-	 * 未确认工单列表,分页
-	 */
-	@GetMapping("/unconfirm/page")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "orderConfirm", value = "是否确认", paramType = "query", dataType = "int"),
-		@ApiImplicitParam(name = "orderClose", value = "是否关闭", paramType = "query", dataType = "int"),
-		@ApiImplicitParam(name = "servicePersonId", value = "运维人员", paramType = "query", dataType = "long"),
-		@ApiImplicitParam(name = "deptId", value = "部门ID", paramType = "query", dataType = "long"),
-		@ApiImplicitParam(name = "warnKind", value = "异常类型", paramType = "query", dataType = "int"),
-	})
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "分页", notes = "传入实体类CheckOrderInfoDTO")
-	public R<IPage<CheckOrderInfoVO>> unconfirmOrderPage(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO, Query query) {
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			if (checkOrderInfoDTO.getAdCode() == null) {
-				checkOrderInfoDTO.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 (checkOrderInfoDTO.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);
-				checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
-			}
-		}
-		checkOrderInfoDTO.setOrderConfirm(0);
-		checkOrderInfoDTO.setOrderClose(0);
-		if (checkOrderInfoDTO.getAdCode() != null) {
-			RegionTreeNodeEntity nodeEntity = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), checkOrderInfoDTO.getAdCode());
-			checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
-		}
-		if (checkOrderInfoDTO.getOrderStatus() != null) {
-			if (checkOrderInfoDTO.getOrderStatus() == 1) {
-				DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CREATE.getCode());
-				if (biz != null) {
-					checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-				}
-			} else if (checkOrderInfoDTO.getOrderStatus() == 2) {
-				DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
-				if (biz != null) {
-					checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-				}
-			} else if (checkOrderInfoDTO.getOrderStatus() == 3) {
-				DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
-				if (biz != null) {
-					checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-				}
-			}
-		}
-		if (checkOrderInfoDTO.getWarnKind() != null) {
-			IPage<CheckOrderInfoVO> pages = rtuCheckOrderService.selectWarnPage(Condition.getPage(query), checkOrderInfoDTO);
-			List<CheckOrderInfoVO> list = pages.getRecords();
-			for (CheckOrderInfoVO v : list) {
-				RtuCheckOrderWrapper.build().entityVO(v);
-			}
-			return R.data(pages);
-		} else {
-			IPage<CheckOrderInfoVO> pages = rtuCheckOrderService.selectPage(Condition.getPage(query), checkOrderInfoDTO);
-			List<CheckOrderInfoVO> list = pages.getRecords();
-			for (CheckOrderInfoVO v : list) {
-				RtuCheckOrderWrapper.build().entityVO(v);
-			}
-			return R.data(pages);
-		}
-	}
-
-	@GetMapping("/confirm/delay/page")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "分页", notes = "传入实体类CheckOrderInfoDTO")
-	public R<IPage<CheckOrderInfoVO>> unconfirmDelayPage(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO, Query query) {
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			if (checkOrderInfoDTO.getAdCode() == null) {
-				checkOrderInfoDTO.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 (checkOrderInfoDTO.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);
-				checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
-			}
-		}
-		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);
-		if (null != settingEntityList && settingEntityList.size() > 0) {
-			CheckOrderSettingEntity settingEntity = settingEntityList.get(0);
-			checkOrderInfoDTO.setOrderComfireDelayTime(settingEntity.getOrderComfireDelayTime());
-		} else {
-			checkOrderInfoDTO.setOrderComfireDelayTime(120);
-		}
-
-		IPage<CheckOrderInfoVO> pages = rtuCheckOrderService.selectConfirmDelayPage(Condition.getPage(query), checkOrderInfoDTO);
-		List<CheckOrderInfoVO> list = pages.getRecords();
-		for (CheckOrderInfoVO v : list) {
-			RtuCheckOrderWrapper.build().entityVO(v);
-		}
-		return R.data(pages);
-	}
-
-
-	/**
-	 * 按页查询维修任务历史信息
-	 *
-	 * @param checkOrderInfoDTO
-	 * @param query
-	 * @return
-	 */
-	@GetMapping("/histroy/page")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "warnKind", value = "异常类型", paramType = "query", dataType = "int"),
-		@ApiImplicitParam(name = "orderCloseType", value = "关闭类别", paramType = "query", dataType = "int"),
-		@ApiImplicitParam(name = "orderReportStatus", value = "是否维修", paramType = "query", dataType = "int"),
-	})
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "分页", notes = "传入实体类CheckOrderInfoDTO")
-	public R<IPage<CheckOrderHistroyVO>> histroyPage(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO, Query query) {
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			if (checkOrderInfoDTO.getAdCode() == null) {
-				checkOrderInfoDTO.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 (checkOrderInfoDTO.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);
-				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) {
-			RtuCheckOrderWrapper.build().entityVO(v);
-		}
-		return R.data(pages);
-	}
-
-
-	/**
-	 * 详情
-	 */
-	@GetMapping("/detail")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情", notes = "传入实体类CheckOrderInfoEntity")
-	public R<CheckOrderInfoVO> detail(CheckOrderInfoEntity checkOrderInfoEntity) {
-		if (checkOrderInfoEntity.getId() == null) {
-			return R.fail("参数错误");
-		}
-		CheckOrderInfoEntity detail = rtuCheckOrderService.getById(checkOrderInfoEntity.getId());
-		LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
-		wrapper.eq(RtuInfoEntity::getRtuCode, detail.getRtuCode());
-		wrapper.eq(RtuInfoEntity::getIsDeleted, 0L);
-		RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(wrapper);
-		CheckOrderInfoVO vo = RtuCheckOrderWrapper.build().entityVO(detail);
-		vo.setRtuName(rtuInfoEntity.getRtuName());
-		vo.setAdCity(rtuInfoEntity.getAdCity());
-		vo.setAdDist(rtuInfoEntity.getAdDist());
-		vo.setLocationDesc(rtuInfoEntity.getLocationDesc());
-		vo.setLng(rtuInfoEntity.getLng());
-		vo.setLat(rtuInfoEntity.getLat());
-		vo.setNetworkPayer(rtuInfoEntity.getNetworkPayer());
-		vo.setNetworkSimId(rtuInfoEntity.getNetworkSimId());
-		vo.setIsRain(rtuInfoEntity.getIsRain());
-		vo.setIsRiver(rtuInfoEntity.getIsRiver());
-		vo.setIsRes(rtuInfoEntity.getIsRes());
-		vo.setIsGround(rtuInfoEntity.getIsGround());
-		vo.setIsVideo(rtuInfoEntity.getIsVideo());
-		LambdaQueryWrapper<RtuStatusEntity> statusWwrapper = Wrappers.<RtuStatusEntity>query().lambda();
-		statusWwrapper.eq(RtuStatusEntity::getRtuCode, detail.getRtuCode());
-		statusWwrapper.eq(RtuStatusEntity::getIsDeleted, 0L);
-		RtuStatusEntity statusEntity = rtuManageService.getOne(statusWwrapper);
-		if (null != statusEntity) {
-			vo.setLastUpTime(statusEntity.getLastUpTime());
-		}
-		if (rtuInfoEntity.getIsRain() != null && rtuInfoEntity.getIsRain() == 1) {
-			LambdaQueryWrapper<RtuDataRainEntity> rainwrapper = Wrappers.<RtuDataRainEntity>query().lambda();
-			rainwrapper.eq(RtuDataRainEntity::getRtuCode, detail.getRtuCode());
-			rainwrapper.eq(RtuDataRainEntity::getIsDeleted, 0L);
-			RtuDataRainEntity rainEntity = rtuDataRainService.getOne(rainwrapper);
-			if (null != rainEntity) {
-				vo.setDrp(rainEntity.getDrp());
-			}
-		} else if (rtuInfoEntity.getIsRiver() != null && rtuInfoEntity.getIsRiver() == 1) {
-			LambdaQueryWrapper<RtuDataRiverEntity> riverwrapper = Wrappers.<RtuDataRiverEntity>query().lambda();
-			riverwrapper.eq(RtuDataRiverEntity::getRtuCode, detail.getRtuCode());
-			riverwrapper.eq(RtuDataRiverEntity::getIsDeleted, 0L);
-			RtuDataRiverEntity riverEntity = rtuDataRiverService.getOne(riverwrapper);
-			if (riverEntity != null) {
-				vo.setZ(riverEntity.getZ());
-			}
-		} else if (rtuInfoEntity.getIsRes() != null && rtuInfoEntity.getIsRes() == 1) {
-			LambdaQueryWrapper<RtuDataRsvrEntity> rsvrWrapper = Wrappers.<RtuDataRsvrEntity>query().lambda();
-			rsvrWrapper.eq(RtuDataRsvrEntity::getRtuCode, detail.getRtuCode());
-			rsvrWrapper.eq(RtuDataRsvrEntity::getIsDeleted, 0L);
-			RtuDataRsvrEntity rsvrEntity = rtuDataRsvrService.getOne(rsvrWrapper);
-			if (rsvrEntity != null) {
-				vo.setRz(rsvrEntity.getRz());
-			}
-		} else if (rtuInfoEntity.getIsGround() != null && rtuInfoEntity.getIsGround() == 1) {
-
-		}
-		return R.data(vo);
-	}
-
-	/**
-	 * 详情
-	 */
-	@GetMapping("/setting/detail")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "设置详情")
-	public R<CheckOrderSettingEntity> settingDetail() {
-		CheckOrderSettingEntity vo = new CheckOrderSettingEntity();
-		LambdaQueryWrapper<CheckOrderSettingEntity> wrapper = Wrappers.<CheckOrderSettingEntity>query().lambda();
-		wrapper.eq(CheckOrderSettingEntity::getIsDeleted, 0);
-		List<CheckOrderSettingEntity> list = checkOrderSettingService.list(wrapper);
-		if (null != list && list.size() > 0) {
-			vo = list.get(0);
-		} else {
-			vo.setOrderComfireDelayTime(120);
-		}
-		return R.data(vo);
-	}
-
-	/**
-	 * 新增
-	 */
-	@PostMapping("/save")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "新增", notes = "传入实体类CheckOrderInfoEntity")
-	public R save(@RequestBody CheckOrderInfoEntity checkOrderInfoEntity) {
-		DictInfoEntity dictInfoEntity = baseInfoDictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CREATE.getCode());
-		checkOrderInfoEntity.setOrderStatusKey(dictInfoEntity.getId());
-		rtuCheckOrderService.save(checkOrderInfoEntity);
-		OrderProcessInfoEntity processInfoEntity = new OrderProcessInfoEntity();
-		processInfoEntity.setOrderId(checkOrderInfoEntity.getId());
-		processInfoEntity.setOrderStatusKey(checkOrderInfoEntity.getOrderStatusKey());
-		processInfoEntity.setProcessDesc(checkOrderInfoEntity.getOrderDesc());
-		return R.status(rtuOrderProcessService.save(processInfoEntity));
-	}
-
-	/**
-	 * 修改
-	 */
-	@PostMapping("/update")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "修改", notes = "传入实体类CheckOrderInfoEntity")
-	public R update(@RequestBody CheckOrderInfoEntity checkOrderInfoEntity) {
-		return R.status(rtuCheckOrderService.updateById(checkOrderInfoEntity));
-	}
-
-	/**
-	 * 新增或修改
-	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "新增或修改", notes = "传入实体类CheckOrderInfoEntity")
-	public R submit(@RequestBody CheckOrderInfoEntity checkOrderInfoEntity) {
-		return R.status(rtuCheckOrderService.saveOrUpdate(checkOrderInfoEntity));
-	}
-
-	/**
-	 * 新增或修改
-	 */
-	@PostMapping("/setting/submit")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "新增或修改", notes = "传入实体类CheckOrderInfoEntity")
-	public R settingSubmit(@RequestBody CheckOrderSettingEntity checkOrderSettingEntity) {
-		if (checkOrderSettingEntity.getId() <= 0L) {
-			checkOrderSettingEntity.setId(null);
-		}
-		return R.status(checkOrderSettingService.saveOrUpdate(checkOrderSettingEntity));
-	}
-
-	/**
-	 * 删除
-	 */
-	@PostMapping("/remove")
-	@ApiOperationSupport(order = 7)
-	@ApiOperation(value = "逻辑删除", notes = "传入ID数组")
-	public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
-		boolean temp = rtuCheckOrderService.deleteLogic(Func.toLongList(ids));
-		return R.status(temp);
-	}
-
-	/**
-	 * 工单关闭
-	 *
-	 * @param checkOrderInfoEntity
-	 * @return
-	 */
-	@PostMapping("/close")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "id", value = "工单ID", paramType = "query", dataType = "long"),
-		@ApiImplicitParam(name = "orderDesc", value = "处理意见", paramType = "query", dataType = "string")
-	})
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "工单关闭", notes = "传入实体类CheckOrderInfoEntity")
-	public R orderClose(@ApiIgnore CheckOrderInfoEntity checkOrderInfoEntity) {
-		BladeUser user = AuthUtil.getUser();
-		DictInfoEntity dictInfoEntity = baseInfoDictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CLOSE.getCode());
-		checkOrderInfoEntity.setOrderStatusKey(dictInfoEntity.getId());
-		CheckOrderInfoEntity detail = this.rtuCheckOrderService.getById(checkOrderInfoEntity.getId());
-		if (null == detail || detail.getOrderClose() == OrderCloseEnum.ACTIVE_CLOSE.getCode()) {
-			return R.status(false);
-		}
-		detail.setOrderStatusKey(checkOrderInfoEntity.getOrderStatusKey());
-		detail.setOrderClose(OrderCloseEnum.ACTIVE_CLOSE.getCode());
-		detail.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-		detail.setUpdateTime(new Date());
-		detail.setUpdateUser(user.getUserId());
-		detail.setOrderCloseType(1);
-		rtuCheckOrderService.updateById(detail);
-		OrderProcessInfoEntity processInfoEntity = new OrderProcessInfoEntity();
-		processInfoEntity.setOrderId(detail.getId());
-		processInfoEntity.setOrderStatusKey(detail.getOrderStatusKey());
-		if (checkOrderInfoEntity.getOrderDesc() != null) {
-			processInfoEntity.setProcessDesc("由用户[" + user.getNickName() + "]人工关闭维修任务,处理意见:" + checkOrderInfoEntity.getOrderDesc());
-		} else {
-			processInfoEntity.setProcessDesc("由用户[" + user.getNickName() + "]人工关闭维修任务");
-		}
-		processInfoEntity.setCreateUser(user.getUserId());
-		processInfoEntity.setUpdateUser(user.getUserId());
-		rtuOrderProcessService.save(processInfoEntity);
-		if (null != detail.getWarnId()) {
-			List<DictBiz> orderFromDict = dictBizService.getList("rtu_check_order_from");
-			for (DictBiz biz : orderFromDict) {
-				if (biz.getDictKey().equals(OrderFromEnum.FROM_WARNING.getCode())) {
-					RtuWarningInfoEntity warningInfoEntity = this.rtuWarningService.getById(detail.getWarnId());
-					if (null != warningInfoEntity) {
-						warningInfoEntity.setWarningRecoveryTime(new Date());
-						warningInfoEntity.setWarningStatus(WarningStatusEnum.STATUS_CLOSE.getCode());
-						warningInfoEntity.setUpdateTime(new Date());
-						warningInfoEntity.setUpdateUser(user.getUserId());
-						this.rtuWarningService.updateById(warningInfoEntity);
-					}
-					break;
-				}
-			}
-		}
-		RtuStatusEntity rtuStatusEntity = new RtuStatusEntity();
-		rtuStatusEntity.setLastUpTime(new Date());
-		rtuStatusEntity.setRunStatusId(EquipmentStatusEnum.STATUS_RUN.getCode());
-		this.rtuManageService.updateRtuStatus(rtuStatusEntity);
-		return R.success("工单关闭已操作成功!");
-	}
-
-	/**
-	 * 查询最新的数据
-	 */
-	@GetMapping("/last/list")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页")
-	public R<List<CheckOrderInfoVO>> lastList() {
-		LambdaQueryWrapper<CheckOrderInfoEntity> wrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
-		wrapper.orderByDesc(CheckOrderInfoEntity::getUpdateTime);
-		wrapper.last("limit 1");
-		List<CheckOrderInfoEntity> pages = rtuCheckOrderService.list(wrapper);
-		return R.data(RtuCheckOrderWrapper.build().listVO(pages));
-	}
-
-	/**
-	 * 工单确认
-	 *
-	 * @param checkOrderInfoEntity
-	 * @return
-	 */
-	@PostMapping("/confirm")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "工单确认", notes = "传入实体类CheckOrderInfoEntity")
-	public R orderConfirm(@RequestBody CheckOrderInfoEntity checkOrderInfoEntity) {
-		DictInfoEntity dictInfoEntity = baseInfoDictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
-		checkOrderInfoEntity.setOrderStatusKey(dictInfoEntity.getId());
-		BladeUser user = AuthUtil.getUser();
-		User userInfo = userService.getById(user.getUserId());
-		CheckOrderInfoEntity detail = this.rtuCheckOrderService.getById(checkOrderInfoEntity.getId());
-		if (null == detail || null != detail.getOrderConfirmUser()) {
-			return R.status(false);
-		}
-		detail.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-		detail.setOrderStatusKey(checkOrderInfoEntity.getOrderStatusKey());
-		detail.setOrderConfirmUser(user.getUserId());
-		detail.setOrderConfirmTime(new Date());
-		detail.setUpdateTime(new Date());
-		detail.setContactUser(userInfo.getId());
-		detail.setContactPhone(userInfo.getPhone());
-		rtuCheckOrderService.updateById(detail);
-		OrderProcessInfoEntity processInfoEntity = new OrderProcessInfoEntity();
-		processInfoEntity.setOrderId(checkOrderInfoEntity.getId());
-		processInfoEntity.setOrderStatusKey(checkOrderInfoEntity.getOrderStatusKey());
-		processInfoEntity.setProcessDesc("维修任务由[" + userInfo.getRealName() + "]确认");
-		return R.status(rtuOrderProcessService.save(processInfoEntity));
-	}
-
-	@PostMapping("/manually")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "人工生成工单", notes = "传入实体类CheckOrderInfoDTO")
-	public R manuallyOrder(@RequestBody CheckOrderInfoDTO checkOrderInfoDTO) {
-		if (null == checkOrderInfoDTO.getRtuCode()) {
-			return R.status(false);
-		}
-		BladeUser user = AuthUtil.getUser();
-		LambdaQueryWrapper<CheckOrderInfoEntity> wrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
-		wrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
-		wrapper.eq(CheckOrderInfoEntity::getOrderClose, 0);
-		wrapper.eq(CheckOrderInfoEntity::getRtuCode, checkOrderInfoDTO.getRtuCode());
-		long orders = rtuCheckOrderService.count(wrapper);
-		if (orders > 0) {
-			return R.fail("当前测站已经有维修任务");
-		}
-		DictInfoEntity statusdict = baseInfoDictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CREATE.getCode());
-		DictInfoEntity fromdict = baseInfoDictService.getDict(DictBusinessConstant.ORDER_FROM_CODE, OrderFromEnum.FROM_MANUALLY.getCode());
-		checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-		checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
-		checkOrderInfoDTO.setOrderFromKey(fromdict.getId());
-		checkOrderInfoDTO.setOrderStatusKey(statusdict.getId());
-		checkOrderInfoDTO.setStatus(1);
-		checkOrderInfoDTO.setCreateTime(new Date());
-		checkOrderInfoDTO.setCreateUser(user.getUserId());
-		checkOrderInfoDTO.setCreateDept(Func.toLong(user.getDeptId()));
-		rtuCheckOrderService.save(checkOrderInfoDTO);
-		//增加工单处理创建记录
-		OrderProcessInfoEntity processInfoEntity = new OrderProcessInfoEntity();
-		processInfoEntity.setOrderId(checkOrderInfoDTO.getId());
-		processInfoEntity.setOrderStatusKey(statusdict.getId());
-		processInfoEntity.setProcessDesc(checkOrderInfoDTO.getOrderDesc());
-
-		rtuOrderProcessService.save(processInfoEntity);
-		//更新测站状态
-		RtuStatusEntity statusEntity = new RtuStatusEntity();
-		statusEntity.setRtuCode(checkOrderInfoDTO.getRtuCode());
-		statusEntity.setLastUpTime(new Date());
-		statusEntity.setRunStatusId(EquipmentStatusEnum.STATUS_FAILURE.getCode());
-		rtuManageService.updateRtuStatus(statusEntity);
-
-		return R.status(true);
-	}
-
-
-	@PostMapping("/change")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "任务指派", notes = "传入实体类CheckOrderInfoDTO")
-	public R orderChange(@RequestBody CheckOrderInfoDTO checkOrderInfoDTO) {
-		CheckOrderInfoEntity detail = this.rtuCheckOrderService.getById(checkOrderInfoDTO.getId());
-		if (null == detail) {
-			return R.status(false);
-		}
-		BladeUser user = AuthUtil.getUser();
-		DictInfoEntity dictInfoEntity = baseInfoDictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
-		if (detail.getOrderConfirm() != OrderConfirmEnum.ACTIVE_CONFIRM.getCode()) {
-			detail.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-			detail.setOrderStatusKey(dictInfoEntity.getId());
-			detail.setOrderConfirmUser(user.getUserId());
-			detail.setOrderConfirmTime(new Date());
-		}
-		User userInfo = userService.getById(checkOrderInfoDTO.getServicePersonId());
-		OrderProcessInfoEntity processInfoEntity = new OrderProcessInfoEntity();
-		processInfoEntity.setOrderId(detail.getId());
-		processInfoEntity.setOrderStatusKey(dictInfoEntity.getId());
-		processInfoEntity.setProcessDesc("维修任务指派给[" + userInfo.getRealName() + "]");
-		rtuOrderProcessService.save(processInfoEntity);
-		detail.setUpdateTime(new Date());
-		detail.setContactUser(userInfo.getId());
-		detail.setContactPhone(userInfo.getPhone());
-		rtuCheckOrderService.updateById(detail);
-		return R.status(rtuCheckOrderService.updateById(detail));
-	}
-
-
-	/**
-	 * 工单统计
-	 *
-	 * @return
-	 */
-	@GetMapping("/statistics")
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "统计表格")
-	public R<List<CheckOrderCountVO>> orderStatistics() {
-		BladeUser user = AuthUtil.getUser();
-		List<CheckOrderCountVO> countList = new LinkedList<>();
-		LambdaQueryWrapper<User> userQueryWrapper = Wrappers.<User>query().lambda();
-		userQueryWrapper.eq(User::getIsDeleted, 0);
-		userQueryWrapper.eq(User::getDeptId, Func.toLong(user.getDeptId()));
-		List<User> list = userService.list(userQueryWrapper);
-		for (User u : list) {
-			CheckOrderCountVO vo = new CheckOrderCountVO();
-			vo.setUserId(u.getId());
-			vo.setServicePersonName(u.getRealName());
-			//任务数量
-			LambdaQueryWrapper<CheckOrderInfoEntity> queryWrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
-			queryWrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
-			queryWrapper.eq(CheckOrderInfoEntity::getOrderConfirm, OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-			queryWrapper.eq(CheckOrderInfoEntity::getOrderClose, OrderCloseEnum.ACTIVE_OPEN.getCode());
-			queryWrapper.eq(CheckOrderInfoEntity::getOrderConfirmUser, u.getId());
-			long count = rtuCheckOrderService.count(queryWrapper);
-			vo.setOrderCount(count);
-			CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
-			checkOrderInfoDTO.setOrderConfirmUser(u.getId());
-			//处理中
-			checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-			checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-			DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
-			if (biz != null) {
-				checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-			}
-			Long unCloseOrderCount = rtuCheckOrderService.unCloseOrderCount(checkOrderInfoDTO);
-			vo.setProcessingOrderCount(unCloseOrderCount);
-			//已处理
-			checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-			checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-			biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
-			if (biz != null) {
-				checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-			}
-			Long reportCount = rtuCheckOrderService.reportCount(checkOrderInfoDTO);
-			vo.setReportOrderCount(reportCount);
-
-//			LambdaQueryWrapper<OrderProcessInfoEntity> reportQueryWrapper = Wrappers.<OrderProcessInfoEntity>query().lambda();
-//			reportQueryWrapper.eq(OrderProcessInfoEntity::getIsDeleted, 0);
-//			reportQueryWrapper.eq(OrderProcessInfoEntity::getCreateUser, u.getId());
-//			upcount = rtuOrderProcessService.upcount(reportQueryWrapper);
-//			vo.setProcessingOrderCount(upcount);
-			countList.add(vo);
-		}
-		return R.data(countList);
-
-
-	}
-
-	/**
-	 * 按机构统计工单
-	 *
-	 * @return
-	 */
-	@GetMapping("/org/statistics")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "统计表格")
-	public R<List<OrgCheckOrderCountVO>> orgOrderStatistics() {
-		BladeUser user = AuthUtil.getUser();
-		List<OrgCheckOrderCountVO> list = new LinkedList<>();
-		LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
-		wrapper.eq(Dept::getIsDeleted, 0);
-		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();
-			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();
-			checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
-			checkOrderInfoDTO.setExcludeCode(excludecode);
-			//任务数量
-			checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-			Long orderCount = rtuCheckOrderService.orderCount(checkOrderInfoDTO);
-			orgCheckOrderCountVO.setOrderCount(orderCount);
-			//未确认
-			checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-			checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
-			long count = rtuCheckOrderService.unconfirmOrderCount(checkOrderInfoDTO);
-			orgCheckOrderCountVO.setUnconfirmOrderCount(count);
-			//处理中
-			checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-			checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-			DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
-			if (biz != null) {
-				checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-			}
-			Long unCloseOrderCount = rtuCheckOrderService.unCloseOrderCount(checkOrderInfoDTO);
-			orgCheckOrderCountVO.setProcessingOrderCount(unCloseOrderCount);
-			//已处理
-			checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-			checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-			biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
-			if (biz != null) {
-				checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-			}
-			Long reportCount = rtuCheckOrderService.reportCount(checkOrderInfoDTO);
-			orgCheckOrderCountVO.setReportOrderCount(reportCount);
-
-			list.add(orgCheckOrderCountVO);
-		}
-		return R.data(list);
-	}
-
-	@GetMapping("/count")
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "统计表格")
-	public R<Map<String, Object>> orderCount(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO) {
-		if (checkOrderInfoDTO.getAdCode() == null) {
-			return R.status(false);
-		}
-		checkOrderInfoDTO.setOrderClose(0);
-		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);
-		checkOrderInfoDTO.setOrderClose(0);
-		Long orderCount = rtuCheckOrderService.orderCount(checkOrderInfoDTO);
-
-		Long unConfirmOrderCount = rtuCheckOrderService.unconfirmOrderCount(checkOrderInfoDTO);
-
-		DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
-		if (biz != null) {
-			checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-		}
-		Long unCloseOrderCount = rtuCheckOrderService.unCloseOrderCount(checkOrderInfoDTO);
-		Map<String, Object> data = new HashMap<>();
-		data.put("rtuCount", rtuCount);
-		data.put("orderCount", orderCount);
-		data.put("orderUnconfirm", unConfirmOrderCount);
-		data.put("orderProcessing", unCloseOrderCount);
-
-		DictInfoEntity dictInfoEntity = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
-		if (dictInfoEntity != null) {
-			checkOrderInfoDTO.setOrderStatusKey(dictInfoEntity.getId());
-		}
-		Long reports = rtuCheckOrderService.reportCount(checkOrderInfoDTO);
-		data.put("reportOrder", reports);
-
-		checkOrderInfoDTO.setOrderConfirm(1);
-		checkOrderInfoDTO.setOrderClose(1);
-		Long reportOrderCount = rtuCheckOrderService.orderCount(checkOrderInfoDTO);
-		data.put("reportOrderCount", reportOrderCount);
-		return R.data(data);
-	}
+    private final IRtuCheckOrderService rtuCheckOrderService;
+    private final IRtuOrderProcessService rtuOrderProcessService;
+    private final IRtuWarningService rtuWarningService;
+    private final IDictBizService dictBizService;
+    private final IRtuManageService rtuManageService;
+    private final IUserService userService;
+    private final IDeptService deptService;
+    private final IRtuBaseInfoService rtuBaseInfoService;
+    private final IRtuDataRainService rtuDataRainService;
+    private final IRtuDataRiverService rtuDataRiverService;
+    private final IRtuDataRsvrService rtuDataRsvrService;
+    private final IBaseInfoDictService baseInfoDictService;
+    private final IDeptRegionService deptRegionService;
+    private final ICheckOrderSettingService checkOrderSettingService;
+    private final IRegionInfoService regionService;
+    private final IBaseInfoDictService dictService;
+
+    /**
+     * 工单查询,分页
+     */
+    @GetMapping("/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "orderConfirm", value = "是否确认", paramType = "query", dataType = "int"),
+            @ApiImplicitParam(name = "orderClose", value = "是否关闭", paramType = "query", dataType = "int"),
+            @ApiImplicitParam(name = "servicePersonId", value = "运维人员", paramType = "query", dataType = "long"),
+            @ApiImplicitParam(name = "deptId", value = "部门ID", paramType = "query", dataType = "long"),
+            @ApiImplicitParam(name = "warnKind", value = "异常类型", paramType = "query", dataType = "int"),
+            @ApiImplicitParam(name = "orderReportStatus", value = "是否维修", paramType = "query", dataType = "int"),
+    })
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "分页", notes = "传入实体类CheckOrderInfoDTO")
+    public R<IPage<CheckOrderInfoVO>> page(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        checkOrderInfoDTO.setExcludeCode(0);
+        if (Func.notNull(checkOrderInfoDTO.getServicePersonId())) {
+            checkOrderInfoDTO.setOrderConfirmUser(checkOrderInfoDTO.getServicePersonId());
+        } else if (Func.notNull(checkOrderInfoDTO.getDeptId())) {
+            LambdaQueryWrapper<DeptRegionEntity> deptLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+            deptLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, checkOrderInfoDTO.getDeptId());
+            DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptLambdaQueryWrapper);
+            checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+        } else {
+            if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+                if (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                    checkOrderInfoDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
+                }
+                RegionTreeNodeEntity nodeEntity = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), checkOrderInfoDTO.getAdCode());
+                if (Func.notNull(nodeEntity)) {
+                    checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+                }
+            } 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 (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                    LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                    deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                    DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                    checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+                }
+                RegionTreeNodeEntity nodeEntity = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), checkOrderInfoDTO.getAdCode());
+                if (Func.notNull(nodeEntity)) {
+                    checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+                }
+            } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+                if (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                    LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                    deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                    DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                    checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+                }
+            }
+        }
+        if (Func.notNull(checkOrderInfoDTO.getOrderStatus())) {
+            if (checkOrderInfoDTO.getOrderStatus() == 1) {
+                DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CREATE.getCode());
+                if (biz != null) {
+                    checkOrderInfoDTO.setOrderStatusKey(biz.getId());
+                }
+            } else if (checkOrderInfoDTO.getOrderStatus() == 2) {
+                DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
+                if (biz != null) {
+                    checkOrderInfoDTO.setOrderStatusKey(biz.getId());
+                }
+            } else if (checkOrderInfoDTO.getOrderStatus() == 3) {
+                DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
+                if (biz != null) {
+                    checkOrderInfoDTO.setOrderStatusKey(biz.getId());
+                }
+            }
+        }
+        if (Func.notNull(checkOrderInfoDTO.getWarnKind())) {
+            IPage<CheckOrderInfoVO> pages = rtuCheckOrderService.selectWarnPage(Condition.getPage(query), checkOrderInfoDTO);
+            List<CheckOrderInfoVO> list = pages.getRecords();
+            for (CheckOrderInfoVO v : list) {
+                RtuCheckOrderWrapper.build().entityVO(v);
+            }
+            return R.data(pages);
+        } else {
+            IPage<CheckOrderInfoVO> pages = rtuCheckOrderService.selectPage(Condition.getPage(query), checkOrderInfoDTO);
+            List<CheckOrderInfoVO> list = pages.getRecords();
+            for (CheckOrderInfoVO v : list) {
+                RtuCheckOrderWrapper.build().entityVO(v);
+            }
+            return R.data(pages);
+        }
+    }
+
+    /**
+     * 我的工单查询,分页
+     */
+    @GetMapping("/my/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string")
+    })
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "分页", notes = "传入实体类CheckOrderInfoDTO")
+    public R<IPage<CheckOrderInfoVO>> mypage(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        checkOrderInfoDTO.setContactUser(user.getUserId());
+        checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+        checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+        IPage<CheckOrderInfoVO> pages = rtuCheckOrderService.selectMyPage(Condition.getPage(query), checkOrderInfoDTO);
+        List<CheckOrderInfoVO> list = pages.getRecords();
+        for (CheckOrderInfoVO v : list) {
+            RtuCheckOrderWrapper.build().entityVO(v);
+        }
+        return R.data(pages);
+    }
+
+    /**
+     * 最新未确认工单列表,不分页,最多返回10条数据
+     */
+    @GetMapping("/unconfirm/last/list")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "不分页", notes = "传入实体类CheckOrderInfoDTO")
+    public R<List<CheckOrderInfoVO>> unconfirmLastOrderList(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO) {
+        BladeUser user = AuthUtil.getUser();
+        checkOrderInfoDTO.setExcludeCode(0);
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                checkOrderInfoDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
+            }
+            RegionTreeNodeEntity nodeEntity = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), checkOrderInfoDTO.getAdCode());
+            if (Func.notNull(nodeEntity)) {
+                checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+            }
+        } 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 (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            }
+            RegionTreeNodeEntity nodeEntity = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), checkOrderInfoDTO.getAdCode());
+            if (Func.notNull(nodeEntity)) {
+                checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            }
+        }
+
+        List<CheckOrderInfoVO> list = rtuCheckOrderService.unconfirmOrderList(checkOrderInfoDTO);
+        for (CheckOrderInfoVO v : list) {
+            RtuCheckOrderWrapper.build().entityVO(v);
+        }
+        return R.data(list);
+    }
+
+    /**
+     * 未确认工单列表,分页
+     */
+    @GetMapping("/unconfirm/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "orderConfirm", value = "是否确认", paramType = "query", dataType = "int"),
+            @ApiImplicitParam(name = "orderClose", value = "是否关闭", paramType = "query", dataType = "int"),
+            @ApiImplicitParam(name = "servicePersonId", value = "运维人员", paramType = "query", dataType = "long"),
+            @ApiImplicitParam(name = "deptId", value = "部门ID", paramType = "query", dataType = "long"),
+            @ApiImplicitParam(name = "warnKind", value = "异常类型", paramType = "query", dataType = "int"),
+    })
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "分页", notes = "传入实体类CheckOrderInfoDTO")
+    public R<IPage<CheckOrderInfoVO>> unconfirmOrderPage(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        checkOrderInfoDTO.setExcludeCode(0);
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                checkOrderInfoDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
+            }
+            RegionTreeNodeEntity nodeEntity = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), checkOrderInfoDTO.getAdCode());
+            if (Func.notNull(nodeEntity)) {
+                checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+            }
+        } 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 (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            }
+            RegionTreeNodeEntity nodeEntity = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), checkOrderInfoDTO.getAdCode());
+            if (Func.notNull(nodeEntity)) {
+                checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            }
+        }
+        checkOrderInfoDTO.setOrderConfirm(0);
+        checkOrderInfoDTO.setOrderClose(0);
+        if (checkOrderInfoDTO.getOrderStatus() != null) {
+            if (checkOrderInfoDTO.getOrderStatus() == 1) {
+                DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CREATE.getCode());
+                if (biz != null) {
+                    checkOrderInfoDTO.setOrderStatusKey(biz.getId());
+                }
+            } else if (checkOrderInfoDTO.getOrderStatus() == 2) {
+                DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
+                if (biz != null) {
+                    checkOrderInfoDTO.setOrderStatusKey(biz.getId());
+                }
+            } else if (checkOrderInfoDTO.getOrderStatus() == 3) {
+                DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
+                if (biz != null) {
+                    checkOrderInfoDTO.setOrderStatusKey(biz.getId());
+                }
+            }
+        }
+        if (checkOrderInfoDTO.getWarnKind() != null) {
+            IPage<CheckOrderInfoVO> pages = rtuCheckOrderService.selectWarnPage(Condition.getPage(query), checkOrderInfoDTO);
+            List<CheckOrderInfoVO> list = pages.getRecords();
+            for (CheckOrderInfoVO v : list) {
+                RtuCheckOrderWrapper.build().entityVO(v);
+            }
+            return R.data(pages);
+        } else {
+            IPage<CheckOrderInfoVO> pages = rtuCheckOrderService.selectPage(Condition.getPage(query), checkOrderInfoDTO);
+            List<CheckOrderInfoVO> list = pages.getRecords();
+            for (CheckOrderInfoVO v : list) {
+                RtuCheckOrderWrapper.build().entityVO(v);
+            }
+            return R.data(pages);
+        }
+    }
+
+    @GetMapping("/confirm/delay/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "分页", notes = "传入实体类CheckOrderInfoDTO")
+    public R<IPage<CheckOrderInfoVO>> unconfirmDelayPage(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        checkOrderInfoDTO.setExcludeCode(0);
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                checkOrderInfoDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
+            }
+            RegionTreeNodeEntity nodeEntity = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), checkOrderInfoDTO.getAdCode());
+            if (Func.notNull(nodeEntity)) {
+                checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+            }
+        } 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 (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            }
+            RegionTreeNodeEntity nodeEntity = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), checkOrderInfoDTO.getAdCode());
+            if (Func.notNull(nodeEntity)) {
+                checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            }
+        }
+
+        LambdaQueryWrapper<CheckOrderSettingEntity> wrapper = Wrappers.<CheckOrderSettingEntity>query().lambda();
+        wrapper.eq(CheckOrderSettingEntity::getIsDeleted, 0);
+        List<CheckOrderSettingEntity> settingEntityList = checkOrderSettingService.list(wrapper);
+        if (null != settingEntityList && settingEntityList.size() > 0) {
+            CheckOrderSettingEntity settingEntity = settingEntityList.get(0);
+            checkOrderInfoDTO.setOrderComfireDelayTime(settingEntity.getOrderComfireDelayTime());
+        } else {
+            checkOrderInfoDTO.setOrderComfireDelayTime(120);
+        }
+
+        IPage<CheckOrderInfoVO> pages = rtuCheckOrderService.selectConfirmDelayPage(Condition.getPage(query), checkOrderInfoDTO);
+        List<CheckOrderInfoVO> list = pages.getRecords();
+        for (CheckOrderInfoVO v : list) {
+            RtuCheckOrderWrapper.build().entityVO(v);
+        }
+        return R.data(pages);
+    }
+
+
+    /**
+     * 按页查询维修任务历史信息
+     *
+     * @param checkOrderInfoDTO
+     * @param query
+     * @return
+     */
+    @GetMapping("/histroy/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "warnKind", value = "异常类型", paramType = "query", dataType = "int"),
+            @ApiImplicitParam(name = "orderCloseType", value = "关闭类别", paramType = "query", dataType = "int"),
+            @ApiImplicitParam(name = "orderReportStatus", value = "是否维修", paramType = "query", dataType = "int"),
+    })
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "分页", notes = "传入实体类CheckOrderInfoDTO")
+    public R<IPage<CheckOrderHistroyVO>> histroyPage(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO, Query query) {
+        BladeUser user = AuthUtil.getUser();
+
+        checkOrderInfoDTO.setExcludeCode(0);
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                checkOrderInfoDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
+            }
+            RegionTreeNodeEntity nodeEntity = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), checkOrderInfoDTO.getAdCode());
+            if (Func.notNull(nodeEntity)) {
+                checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+            }
+        } 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 (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            }
+            RegionTreeNodeEntity nodeEntity = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), checkOrderInfoDTO.getAdCode());
+            if (Func.notNull(nodeEntity)) {
+                checkOrderInfoDTO.setExcludeCode(nodeEntity.getExclude());
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(checkOrderInfoDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            }
+        }
+
+        IPage<CheckOrderHistroyVO> pages = rtuCheckOrderService.selectHistoryPage(Condition.getPage(query), checkOrderInfoDTO);
+        List<CheckOrderHistroyVO> list = pages.getRecords();
+        for (CheckOrderHistroyVO v : list) {
+            RtuCheckOrderWrapper.build().entityVO(v);
+        }
+        return R.data(pages);
+    }
+
+
+    /**
+     * 详情
+     */
+    @GetMapping("/detail")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情", notes = "传入实体类CheckOrderInfoEntity")
+    public R<CheckOrderInfoVO> detail(CheckOrderInfoEntity checkOrderInfoEntity) {
+        if (checkOrderInfoEntity.getId() == null) {
+            return R.fail("参数错误");
+        }
+        CheckOrderInfoEntity detail = rtuCheckOrderService.getById(checkOrderInfoEntity.getId());
+        LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
+        wrapper.eq(RtuInfoEntity::getRtuCode, detail.getRtuCode());
+        wrapper.eq(RtuInfoEntity::getIsDeleted, 0L);
+        RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(wrapper);
+        CheckOrderInfoVO vo = RtuCheckOrderWrapper.build().entityVO(detail);
+        vo.setRtuName(rtuInfoEntity.getRtuName());
+        vo.setAdCity(rtuInfoEntity.getAdCity());
+        vo.setAdDist(rtuInfoEntity.getAdDist());
+        vo.setLocationDesc(rtuInfoEntity.getLocationDesc());
+        vo.setLng(rtuInfoEntity.getLng());
+        vo.setLat(rtuInfoEntity.getLat());
+        vo.setNetworkPayer(rtuInfoEntity.getNetworkPayer());
+        vo.setNetworkSimId(rtuInfoEntity.getNetworkSimId());
+        vo.setIsRain(rtuInfoEntity.getIsRain());
+        vo.setIsRiver(rtuInfoEntity.getIsRiver());
+        vo.setIsRes(rtuInfoEntity.getIsRes());
+        vo.setIsGround(rtuInfoEntity.getIsGround());
+        vo.setIsVideo(rtuInfoEntity.getIsVideo());
+        LambdaQueryWrapper<RtuStatusEntity> statusWwrapper = Wrappers.<RtuStatusEntity>query().lambda();
+        statusWwrapper.eq(RtuStatusEntity::getRtuCode, detail.getRtuCode());
+        statusWwrapper.eq(RtuStatusEntity::getIsDeleted, 0L);
+        RtuStatusEntity statusEntity = rtuManageService.getOne(statusWwrapper);
+        if (null != statusEntity) {
+            vo.setLastUpTime(statusEntity.getLastUpTime());
+        }
+        if (rtuInfoEntity.getIsRain() != null && rtuInfoEntity.getIsRain() == 1) {
+            LambdaQueryWrapper<RtuDataRainEntity> rainwrapper = Wrappers.<RtuDataRainEntity>query().lambda();
+            rainwrapper.eq(RtuDataRainEntity::getRtuCode, detail.getRtuCode());
+            rainwrapper.eq(RtuDataRainEntity::getIsDeleted, 0L);
+            RtuDataRainEntity rainEntity = rtuDataRainService.getOne(rainwrapper);
+            if (null != rainEntity) {
+                vo.setDrp(rainEntity.getDrp());
+            }
+        } else if (rtuInfoEntity.getIsRiver() != null && rtuInfoEntity.getIsRiver() == 1) {
+            LambdaQueryWrapper<RtuDataRiverEntity> riverwrapper = Wrappers.<RtuDataRiverEntity>query().lambda();
+            riverwrapper.eq(RtuDataRiverEntity::getRtuCode, detail.getRtuCode());
+            riverwrapper.eq(RtuDataRiverEntity::getIsDeleted, 0L);
+            RtuDataRiverEntity riverEntity = rtuDataRiverService.getOne(riverwrapper);
+            if (riverEntity != null) {
+                vo.setZ(riverEntity.getZ());
+            }
+        } else if (rtuInfoEntity.getIsRes() != null && rtuInfoEntity.getIsRes() == 1) {
+            LambdaQueryWrapper<RtuDataRsvrEntity> rsvrWrapper = Wrappers.<RtuDataRsvrEntity>query().lambda();
+            rsvrWrapper.eq(RtuDataRsvrEntity::getRtuCode, detail.getRtuCode());
+            rsvrWrapper.eq(RtuDataRsvrEntity::getIsDeleted, 0L);
+            RtuDataRsvrEntity rsvrEntity = rtuDataRsvrService.getOne(rsvrWrapper);
+            if (rsvrEntity != null) {
+                vo.setRz(rsvrEntity.getRz());
+            }
+        } else if (rtuInfoEntity.getIsGround() != null && rtuInfoEntity.getIsGround() == 1) {
+
+        }
+        return R.data(vo);
+    }
+
+    /**
+     * 详情
+     */
+    @GetMapping("/setting/detail")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "设置详情")
+    public R<CheckOrderSettingEntity> settingDetail() {
+        CheckOrderSettingEntity vo = new CheckOrderSettingEntity();
+        LambdaQueryWrapper<CheckOrderSettingEntity> wrapper = Wrappers.<CheckOrderSettingEntity>query().lambda();
+        wrapper.eq(CheckOrderSettingEntity::getIsDeleted, 0);
+        List<CheckOrderSettingEntity> list = checkOrderSettingService.list(wrapper);
+        if (null != list && list.size() > 0) {
+            vo = list.get(0);
+        } else {
+            vo.setOrderComfireDelayTime(120);
+        }
+        return R.data(vo);
+    }
+
+    /**
+     * 新增
+     */
+    @PostMapping("/save")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "新增", notes = "传入实体类CheckOrderInfoEntity")
+    public R save(@RequestBody CheckOrderInfoEntity checkOrderInfoEntity) {
+        DictInfoEntity dictInfoEntity = baseInfoDictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CREATE.getCode());
+        checkOrderInfoEntity.setOrderStatusKey(dictInfoEntity.getId());
+        rtuCheckOrderService.save(checkOrderInfoEntity);
+        OrderProcessInfoEntity processInfoEntity = new OrderProcessInfoEntity();
+        processInfoEntity.setOrderId(checkOrderInfoEntity.getId());
+        processInfoEntity.setOrderStatusKey(checkOrderInfoEntity.getOrderStatusKey());
+        processInfoEntity.setProcessDesc(checkOrderInfoEntity.getOrderDesc());
+        return R.status(rtuOrderProcessService.save(processInfoEntity));
+    }
+
+    /**
+     * 修改
+     */
+    @PostMapping("/update")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "修改", notes = "传入实体类CheckOrderInfoEntity")
+    public R update(@RequestBody CheckOrderInfoEntity checkOrderInfoEntity) {
+        return R.status(rtuCheckOrderService.updateById(checkOrderInfoEntity));
+    }
+
+    /**
+     * 新增或修改
+     */
+    @PostMapping("/submit")
+    @ApiOperationSupport(order = 6)
+    @ApiOperation(value = "新增或修改", notes = "传入实体类CheckOrderInfoEntity")
+    public R submit(@RequestBody CheckOrderInfoEntity checkOrderInfoEntity) {
+        return R.status(rtuCheckOrderService.saveOrUpdate(checkOrderInfoEntity));
+    }
+
+    /**
+     * 新增或修改
+     */
+    @PostMapping("/setting/submit")
+    @ApiOperationSupport(order = 6)
+    @ApiOperation(value = "新增或修改", notes = "传入实体类CheckOrderInfoEntity")
+    public R settingSubmit(@RequestBody CheckOrderSettingEntity checkOrderSettingEntity) {
+        if (checkOrderSettingEntity.getId() <= 0L) {
+            checkOrderSettingEntity.setId(null);
+        }
+        return R.status(checkOrderSettingService.saveOrUpdate(checkOrderSettingEntity));
+    }
+
+    /**
+     * 删除
+     */
+    @PostMapping("/remove")
+    @ApiOperationSupport(order = 7)
+    @ApiOperation(value = "逻辑删除", notes = "传入ID数组")
+    public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+        boolean temp = rtuCheckOrderService.deleteLogic(Func.toLongList(ids));
+        return R.status(temp);
+    }
+
+    /**
+     * 工单关闭
+     *
+     * @param checkOrderInfoEntity
+     * @return
+     */
+    @PostMapping("/close")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "工单ID", paramType = "query", dataType = "long"),
+            @ApiImplicitParam(name = "orderDesc", value = "处理意见", paramType = "query", dataType = "string")
+    })
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "工单关闭", notes = "传入实体类CheckOrderInfoEntity")
+    public R orderClose(@ApiIgnore CheckOrderInfoEntity checkOrderInfoEntity) {
+        BladeUser user = AuthUtil.getUser();
+        DictInfoEntity dictInfoEntity = baseInfoDictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CLOSE.getCode());
+        checkOrderInfoEntity.setOrderStatusKey(dictInfoEntity.getId());
+        CheckOrderInfoEntity detail = this.rtuCheckOrderService.getById(checkOrderInfoEntity.getId());
+        if (null == detail || detail.getOrderClose() == OrderCloseEnum.ACTIVE_CLOSE.getCode()) {
+            return R.status(false);
+        }
+        detail.setOrderStatusKey(checkOrderInfoEntity.getOrderStatusKey());
+        detail.setOrderClose(OrderCloseEnum.ACTIVE_CLOSE.getCode());
+        detail.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+        detail.setUpdateTime(new Date());
+        detail.setUpdateUser(user.getUserId());
+        detail.setOrderCloseType(1);
+        rtuCheckOrderService.updateById(detail);
+        OrderProcessInfoEntity processInfoEntity = new OrderProcessInfoEntity();
+        processInfoEntity.setOrderId(detail.getId());
+        processInfoEntity.setOrderStatusKey(detail.getOrderStatusKey());
+        if (checkOrderInfoEntity.getOrderDesc() != null) {
+            processInfoEntity.setProcessDesc("由用户[" + user.getNickName() + "]人工关闭维修任务,处理意见:" + checkOrderInfoEntity.getOrderDesc());
+        } else {
+            processInfoEntity.setProcessDesc("由用户[" + user.getNickName() + "]人工关闭维修任务");
+        }
+        processInfoEntity.setCreateUser(user.getUserId());
+        processInfoEntity.setUpdateUser(user.getUserId());
+        rtuOrderProcessService.save(processInfoEntity);
+        if (null != detail.getWarnId()) {
+            List<DictBiz> orderFromDict = dictBizService.getList("rtu_check_order_from");
+            for (DictBiz biz : orderFromDict) {
+                if (biz.getDictKey().equals(OrderFromEnum.FROM_WARNING.getCode())) {
+                    RtuWarningInfoEntity warningInfoEntity = this.rtuWarningService.getById(detail.getWarnId());
+                    if (null != warningInfoEntity) {
+                        warningInfoEntity.setWarningRecoveryTime(new Date());
+                        warningInfoEntity.setWarningStatus(WarningStatusEnum.STATUS_CLOSE.getCode());
+                        warningInfoEntity.setUpdateTime(new Date());
+                        warningInfoEntity.setUpdateUser(user.getUserId());
+                        this.rtuWarningService.updateById(warningInfoEntity);
+                    }
+                    break;
+                }
+            }
+        }
+        RtuStatusEntity rtuStatusEntity = new RtuStatusEntity();
+        rtuStatusEntity.setLastUpTime(new Date());
+        rtuStatusEntity.setRunStatusId(EquipmentStatusEnum.STATUS_RUN.getCode());
+        this.rtuManageService.updateRtuStatus(rtuStatusEntity);
+        return R.success("工单关闭已操作成功!");
+    }
+
+    /**
+     * 查询最新的数据
+     */
+    @GetMapping("/last/list")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "分页")
+    public R<List<CheckOrderInfoVO>> lastList() {
+        LambdaQueryWrapper<CheckOrderInfoEntity> wrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
+        wrapper.orderByDesc(CheckOrderInfoEntity::getUpdateTime);
+        wrapper.last("limit 1");
+        List<CheckOrderInfoEntity> pages = rtuCheckOrderService.list(wrapper);
+        return R.data(RtuCheckOrderWrapper.build().listVO(pages));
+    }
+
+    /**
+     * 工单确认
+     *
+     * @param checkOrderInfoEntity
+     * @return
+     */
+    @PostMapping("/confirm")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "工单确认", notes = "传入实体类CheckOrderInfoEntity")
+    public R orderConfirm(@RequestBody CheckOrderInfoEntity checkOrderInfoEntity) {
+        DictInfoEntity dictInfoEntity = baseInfoDictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
+        checkOrderInfoEntity.setOrderStatusKey(dictInfoEntity.getId());
+        BladeUser user = AuthUtil.getUser();
+        User userInfo = userService.getById(user.getUserId());
+        CheckOrderInfoEntity detail = this.rtuCheckOrderService.getById(checkOrderInfoEntity.getId());
+        if (null == detail || null != detail.getOrderConfirmUser()) {
+            return R.status(false);
+        }
+        detail.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+        detail.setOrderStatusKey(checkOrderInfoEntity.getOrderStatusKey());
+        detail.setOrderConfirmUser(user.getUserId());
+        detail.setOrderConfirmTime(new Date());
+        detail.setUpdateTime(new Date());
+        detail.setContactUser(userInfo.getId());
+        detail.setContactPhone(userInfo.getPhone());
+        rtuCheckOrderService.updateById(detail);
+        OrderProcessInfoEntity processInfoEntity = new OrderProcessInfoEntity();
+        processInfoEntity.setOrderId(checkOrderInfoEntity.getId());
+        processInfoEntity.setOrderStatusKey(checkOrderInfoEntity.getOrderStatusKey());
+        processInfoEntity.setProcessDesc("维修任务由[" + userInfo.getRealName() + "]确认");
+        return R.status(rtuOrderProcessService.save(processInfoEntity));
+    }
+
+    @PostMapping("/manually")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "人工生成工单", notes = "传入实体类CheckOrderInfoDTO")
+    public R manuallyOrder(@RequestBody CheckOrderInfoDTO checkOrderInfoDTO) {
+        if (null == checkOrderInfoDTO.getRtuCode()) {
+            return R.status(false);
+        }
+        BladeUser user = AuthUtil.getUser();
+        LambdaQueryWrapper<CheckOrderInfoEntity> wrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
+        wrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
+        wrapper.eq(CheckOrderInfoEntity::getOrderClose, 0);
+        wrapper.eq(CheckOrderInfoEntity::getRtuCode, checkOrderInfoDTO.getRtuCode());
+        long orders = rtuCheckOrderService.count(wrapper);
+        if (orders > 0) {
+            return R.fail("当前测站已经有维修任务");
+        }
+        DictInfoEntity statusdict = baseInfoDictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CREATE.getCode());
+        DictInfoEntity fromdict = baseInfoDictService.getDict(DictBusinessConstant.ORDER_FROM_CODE, OrderFromEnum.FROM_MANUALLY.getCode());
+        checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+        checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
+        checkOrderInfoDTO.setOrderFromKey(fromdict.getId());
+        checkOrderInfoDTO.setOrderStatusKey(statusdict.getId());
+        checkOrderInfoDTO.setStatus(1);
+        checkOrderInfoDTO.setCreateTime(new Date());
+        checkOrderInfoDTO.setCreateUser(user.getUserId());
+        checkOrderInfoDTO.setCreateDept(Func.toLong(user.getDeptId()));
+        rtuCheckOrderService.save(checkOrderInfoDTO);
+        //增加工单处理创建记录
+        OrderProcessInfoEntity processInfoEntity = new OrderProcessInfoEntity();
+        processInfoEntity.setOrderId(checkOrderInfoDTO.getId());
+        processInfoEntity.setOrderStatusKey(statusdict.getId());
+        processInfoEntity.setProcessDesc(checkOrderInfoDTO.getOrderDesc());
+
+        rtuOrderProcessService.save(processInfoEntity);
+        //更新测站状态
+        RtuStatusEntity statusEntity = new RtuStatusEntity();
+        statusEntity.setRtuCode(checkOrderInfoDTO.getRtuCode());
+        statusEntity.setLastUpTime(new Date());
+        statusEntity.setRunStatusId(EquipmentStatusEnum.STATUS_FAILURE.getCode());
+        rtuManageService.updateRtuStatus(statusEntity);
+
+        return R.status(true);
+    }
+
+
+    @PostMapping("/change")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "任务指派", notes = "传入实体类CheckOrderInfoDTO")
+    public R orderChange(@RequestBody CheckOrderInfoDTO checkOrderInfoDTO) {
+        CheckOrderInfoEntity detail = this.rtuCheckOrderService.getById(checkOrderInfoDTO.getId());
+        if (null == detail) {
+            return R.status(false);
+        }
+        BladeUser user = AuthUtil.getUser();
+        DictInfoEntity dictInfoEntity = baseInfoDictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
+        if (detail.getOrderConfirm() != OrderConfirmEnum.ACTIVE_CONFIRM.getCode()) {
+            detail.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+            detail.setOrderStatusKey(dictInfoEntity.getId());
+            detail.setOrderConfirmUser(user.getUserId());
+            detail.setOrderConfirmTime(new Date());
+        }
+        User userInfo = userService.getById(checkOrderInfoDTO.getServicePersonId());
+        OrderProcessInfoEntity processInfoEntity = new OrderProcessInfoEntity();
+        processInfoEntity.setOrderId(detail.getId());
+        processInfoEntity.setOrderStatusKey(dictInfoEntity.getId());
+        processInfoEntity.setProcessDesc("维修任务指派给[" + userInfo.getRealName() + "]");
+        rtuOrderProcessService.save(processInfoEntity);
+        detail.setUpdateTime(new Date());
+        detail.setContactUser(userInfo.getId());
+        detail.setContactPhone(userInfo.getPhone());
+        rtuCheckOrderService.updateById(detail);
+        return R.status(rtuCheckOrderService.updateById(detail));
+    }
+
+
+    /**
+     * 工单统计
+     *
+     * @return
+     */
+    @GetMapping("/statistics")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "统计表格")
+    public R<List<CheckOrderCountVO>> orderStatistics() {
+        BladeUser user = AuthUtil.getUser();
+        List<CheckOrderCountVO> countList = new LinkedList<>();
+        LambdaQueryWrapper<User> userQueryWrapper = Wrappers.<User>query().lambda();
+        userQueryWrapper.eq(User::getDeptId, Func.toLong(user.getDeptId()));
+        List<User> list = userService.list(userQueryWrapper);
+        for (User u : list) {
+            CheckOrderCountVO vo = new CheckOrderCountVO();
+            vo.setUserId(u.getId());
+            vo.setServicePersonName(u.getRealName());
+            //任务数量
+            LambdaQueryWrapper<CheckOrderInfoEntity> queryWrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
+            queryWrapper.eq(CheckOrderInfoEntity::getOrderConfirm, OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+            queryWrapper.eq(CheckOrderInfoEntity::getOrderClose, OrderCloseEnum.ACTIVE_OPEN.getCode());
+            queryWrapper.eq(CheckOrderInfoEntity::getOrderConfirmUser, u.getId());
+            long count = rtuCheckOrderService.count(queryWrapper);
+            vo.setOrderCount(count);
+            CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
+            checkOrderInfoDTO.setOrderConfirmUser(u.getId());
+            //处理中
+            checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+            checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+            DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
+            if (biz != null) {
+                checkOrderInfoDTO.setOrderStatusKey(biz.getId());
+            }
+            Long unCloseOrderCount = rtuCheckOrderService.unCloseOrderCount(checkOrderInfoDTO);
+            vo.setProcessingOrderCount(unCloseOrderCount);
+            //已处理
+            checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+            checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+            biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
+            if (biz != null) {
+                checkOrderInfoDTO.setOrderStatusKey(biz.getId());
+            }
+            Long reportCount = rtuCheckOrderService.reportCount(checkOrderInfoDTO);
+            vo.setReportOrderCount(reportCount);
+            countList.add(vo);
+        }
+        return R.data(countList);
+    }
+
+    /**
+     * 按机构统计工单
+     *
+     * @return
+     */
+    @GetMapping("/org/statistics")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "统计表格")
+    public R<List<OrgCheckOrderCountVO>> orgOrderStatistics() {
+        BladeUser user = AuthUtil.getUser();
+        List<OrgCheckOrderCountVO> list = new LinkedList<>();
+        LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
+        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();
+            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();
+            checkOrderInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            checkOrderInfoDTO.setExcludeCode(excludecode);
+            //任务数量
+            checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+            Long orderCount = rtuCheckOrderService.orderCount(checkOrderInfoDTO);
+            orgCheckOrderCountVO.setOrderCount(orderCount);
+            //未确认
+            checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+            checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
+            long count = rtuCheckOrderService.unconfirmOrderCount(checkOrderInfoDTO);
+            orgCheckOrderCountVO.setUnconfirmOrderCount(count);
+            //处理中
+            checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+            checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+            DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
+            if (biz != null) {
+                checkOrderInfoDTO.setOrderStatusKey(biz.getId());
+            }
+            Long unCloseOrderCount = rtuCheckOrderService.unCloseOrderCount(checkOrderInfoDTO);
+            orgCheckOrderCountVO.setProcessingOrderCount(unCloseOrderCount);
+            //已处理
+            checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+            checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+            biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
+            if (biz != null) {
+                checkOrderInfoDTO.setOrderStatusKey(biz.getId());
+            }
+            Long reportCount = rtuCheckOrderService.reportCount(checkOrderInfoDTO);
+            orgCheckOrderCountVO.setReportOrderCount(reportCount);
+            list.add(orgCheckOrderCountVO);
+        }
+        return R.data(list);
+    }
+
+    @GetMapping("/count")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "统计表格")
+    public R<Map<String, Object>> orderCount(@ApiIgnore CheckOrderInfoDTO checkOrderInfoDTO) {
+        if (checkOrderInfoDTO.getAdCode() == null) {
+            return R.status(false);
+        }
+        checkOrderInfoDTO.setOrderClose(0);
+        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);
+        checkOrderInfoDTO.setOrderClose(0);
+        Long orderCount = rtuCheckOrderService.orderCount(checkOrderInfoDTO);
+
+        Long unConfirmOrderCount = rtuCheckOrderService.unconfirmOrderCount(checkOrderInfoDTO);
+
+        DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
+        if (biz != null) {
+            checkOrderInfoDTO.setOrderStatusKey(biz.getId());
+        }
+        Long unCloseOrderCount = rtuCheckOrderService.unCloseOrderCount(checkOrderInfoDTO);
+        Map<String, Object> data = new HashMap<>();
+        data.put("rtuCount", rtuCount);
+        data.put("orderCount", orderCount);
+        data.put("orderUnconfirm", unConfirmOrderCount);
+        data.put("orderProcessing", unCloseOrderCount);
+
+        DictInfoEntity dictInfoEntity = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
+        if (dictInfoEntity != null) {
+            checkOrderInfoDTO.setOrderStatusKey(dictInfoEntity.getId());
+        }
+        Long reports = rtuCheckOrderService.reportCount(checkOrderInfoDTO);
+        data.put("reportOrder", reports);
+
+        checkOrderInfoDTO.setOrderConfirm(1);
+        checkOrderInfoDTO.setOrderClose(1);
+        Long reportOrderCount = rtuCheckOrderService.orderCount(checkOrderInfoDTO);
+        data.put("reportOrderCount", reportOrderCount);
+        return R.data(data);
+    }
 }

+ 69 - 59
src/main/java/org/springblade/modules/business/data/controller/RtuDataGroundController.java

@@ -51,64 +51,74 @@ import springfox.documentation.annotations.ApiIgnore;
 @AllArgsConstructor
 @Api(value = "墒情实时数据管理", tags = "测站实时数据管理")
 public class RtuDataGroundController extends BladeController {
-	private final IRtuDataGroundService dataGroundService;
-	private final IDeptRegionService deptRegionService;
-	private final IRegionInfoService regionService;
-	/**
-	 * 分页
-	 */
-	@GetMapping("/page")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页")
-	public R<IPage<RtuDataGroundVO>> page(@ApiIgnore RtuDataGroundDTO rtuDataGroundDTO, Query query) {
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			if (rtuDataGroundDTO.getAdCode() == null) {
-				rtuDataGroundDTO.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 (rtuDataGroundDTO.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);
-				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);
-	}
+    private final IRtuDataGroundService dataGroundService;
+    private final IDeptRegionService deptRegionService;
+    private final IRegionInfoService regionService;
 
-	/**
-	 * 详情
-	 */
-	@GetMapping("/detail")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "id", value = "ID", paramType = "query", dataType = "long"),
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情", notes = "传入RtuDataGroundEntity")
-	public R<RtuDataGroundEntity> detail(RtuDataGroundEntity groundEntity) {
-		LambdaQueryWrapper<RtuDataGroundEntity> wrapper = Wrappers.<RtuDataGroundEntity>query().lambda();
-		wrapper.eq(RtuDataGroundEntity::getIsDeleted, 0L);
-		if (groundEntity.getId()!=null){
-			wrapper.eq(RtuDataGroundEntity::getId,groundEntity.getId());
-		}else{
-			wrapper.eq(RtuDataGroundEntity::getRtuCode, groundEntity.getRtuCode());
-		}
-		RtuDataGroundEntity detail = dataGroundService.getOne(wrapper);
-		return R.data(detail);
-	}
+    /**
+     * 分页
+     */
+    @GetMapping("/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "分页")
+    public R<IPage<RtuDataGroundVO>> page(@ApiIgnore RtuDataGroundDTO rtuDataGroundDTO, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        rtuDataGroundDTO.setExcludeCode(0);
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(rtuDataGroundDTO.getAdCode())) {
+                rtuDataGroundDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
+            }
+            RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuDataGroundDTO.getAdCode());
+            if (Func.notNull(node)) {
+                rtuDataGroundDTO.setExcludeCode(node.getExclude());
+            }
+        } 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 (Func.isNull(rtuDataGroundDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity entity = deptRegionService.getOne(wrapper);
+                rtuDataGroundDTO.setAdCode(entity.getAdcd());
+            }
+            RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuDataGroundDTO.getAdCode());
+            if (Func.notNull(node)) {
+                rtuDataGroundDTO.setExcludeCode(node.getExclude());
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(rtuDataGroundDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity entity = deptRegionService.getOne(wrapper);
+                rtuDataGroundDTO.setAdCode(entity.getAdcd());
+            }
+        }
+        IPage<RtuDataGroundVO> pages = dataGroundService.selectPage(Condition.getPage(query), rtuDataGroundDTO);
+        return R.data(pages);
+    }
+
+    /**
+     * 详情
+     */
+    @GetMapping("/detail")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "ID", paramType = "query", dataType = "long"),
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情", notes = "传入RtuDataGroundEntity")
+    public R<RtuDataGroundEntity> detail(RtuDataGroundEntity groundEntity) {
+        LambdaQueryWrapper<RtuDataGroundEntity> wrapper = Wrappers.<RtuDataGroundEntity>query().lambda();
+        wrapper.eq(RtuDataGroundEntity::getIsDeleted, 0L);
+        if (groundEntity.getId() != null) {
+            wrapper.eq(RtuDataGroundEntity::getId, groundEntity.getId());
+        } else {
+            wrapper.eq(RtuDataGroundEntity::getRtuCode, groundEntity.getRtuCode());
+        }
+        RtuDataGroundEntity detail = dataGroundService.getOne(wrapper);
+        return R.data(detail);
+    }
 }

+ 176 - 166
src/main/java/org/springblade/modules/business/data/controller/RtuDataRainController.java

@@ -52,175 +52,185 @@ import java.util.List;
 @AllArgsConstructor
 @Api(value = "降水实时数据管理", tags = "测站实时数据管理")
 public class RtuDataRainController extends BladeController {
-	private final IRtuDataRainService dataRainService;
-	private final IDeptRegionService deptRegionService;
+    private final IRtuDataRainService dataRainService;
+    private final IDeptRegionService deptRegionService;
     private final IRegionInfoService regionService;
-	/**
-	 * 分页
-	 */
-	@GetMapping("/page")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "rainCountType", value = "雨量统计类型", paramType = "query", dataType = "int"),
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页")
-	public R<IPage<RtuDataRainVO>> page(@ApiIgnore RtuDataRainDTO rtuDataRainDTO, Query query) {
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			if (rtuDataRainDTO.getAdCode() == null) {
-				rtuDataRainDTO.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 (rtuDataRainDTO.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);
-				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);
-		List<RtuDataRainVO> list = pages.getRecords();
-		for(RtuDataRainVO vo:list){
-			if(rtuDataRainDTO.getRainCountType()!=null){
-				if(rtuDataRainDTO.getRainCountType()==1){
-					vo.setIntvLable("近1小时");
-					vo.setDrp(vo.getH1drp());
-					vo.setTm(vo.getH1tm());
-				}else if(rtuDataRainDTO.getRainCountType()==3){
-					vo.setIntvLable("近3小时");
-					vo.setDrp(vo.getH3drp());
-					vo.setTm(vo.getH3tm());
-				}else if(rtuDataRainDTO.getRainCountType()==6){
-					vo.setIntvLable("近6小时");
-					vo.setDrp(vo.getH6drp());
-					vo.setTm(vo.getH6tm());
-				}else if(rtuDataRainDTO.getRainCountType()==12){
-					vo.setIntvLable("近12小时");
-					vo.setDrp(vo.getH12drp());
-					vo.setTm(vo.getH12tm());
-				}else if(rtuDataRainDTO.getRainCountType()==24){
-					vo.setIntvLable("近24小时");
-					vo.setDrp(vo.getH24drp());
-					vo.setTm(vo.getH24tm());
-				}else{
-					if(vo.getIntv() !=null && vo.getIntv()==0.05){
-						vo.setIntvLable("5分钟");
-					}else if(vo.getIntv()!=null &&  vo.getIntv()==1.0){
-						vo.setIntvLable("小时");
-					}
-				}
-			}else{
-				if(vo.getIntv() !=null && vo.getIntv()==0.05){
-					vo.setIntvLable("5分钟");
-				}else if(vo.getIntv()!=null &&  vo.getIntv()==1.0){
-					vo.setIntvLable("小时");
-				}
-			}
-		}
-		return R.data(pages);
-	}
 
+    /**
+     * 分页
+     */
+    @GetMapping("/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rainCountType", value = "雨量统计类型", paramType = "query", dataType = "int"),
+    })
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "分页")
+    public R<IPage<RtuDataRainVO>> page(@ApiIgnore RtuDataRainDTO rtuDataRainDTO, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        rtuDataRainDTO.setExcludeCode(0);
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(rtuDataRainDTO.getAdCode())) {
+                rtuDataRainDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
+            }
+            RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuDataRainDTO.getAdCode());
+            if (Func.notNull(node)) {
+                rtuDataRainDTO.setExcludeCode(node.getExclude());
+            }
+        } 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 (Func.isNull(rtuDataRainDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity entity = deptRegionService.getOne(wrapper);
+                rtuDataRainDTO.setAdCode(entity.getAdcd());
+            }
+            RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuDataRainDTO.getAdCode());
+            if (Func.notNull(node)) {
+                rtuDataRainDTO.setExcludeCode(node.getExclude());
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(rtuDataRainDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity entity = deptRegionService.getOne(wrapper);
+                rtuDataRainDTO.setAdCode(entity.getAdcd());
+            }
+        }
+        IPage<RtuDataRainVO> pages = dataRainService.selectPage(Condition.getPage(query), rtuDataRainDTO);
+        List<RtuDataRainVO> list = pages.getRecords();
+        for (RtuDataRainVO vo : list) {
+            if (Func.notNull(rtuDataRainDTO.getRainCountType())) {
+                if (rtuDataRainDTO.getRainCountType() == 1) {
+                    vo.setIntvLable("近1小时");
+                    vo.setDrp(vo.getH1drp());
+                    vo.setTm(vo.getH1tm());
+                } else if (rtuDataRainDTO.getRainCountType() == 3) {
+                    vo.setIntvLable("近3小时");
+                    vo.setDrp(vo.getH3drp());
+                    vo.setTm(vo.getH3tm());
+                } else if (rtuDataRainDTO.getRainCountType() == 6) {
+                    vo.setIntvLable("近6小时");
+                    vo.setDrp(vo.getH6drp());
+                    vo.setTm(vo.getH6tm());
+                } else if (rtuDataRainDTO.getRainCountType() == 12) {
+                    vo.setIntvLable("近12小时");
+                    vo.setDrp(vo.getH12drp());
+                    vo.setTm(vo.getH12tm());
+                } else if (rtuDataRainDTO.getRainCountType() == 24) {
+                    vo.setIntvLable("近24小时");
+                    vo.setDrp(vo.getH24drp());
+                    vo.setTm(vo.getH24tm());
+                } else {
+                    if (vo.getIntv() != null && vo.getIntv() == 0.05) {
+                        vo.setIntvLable("5分钟");
+                    } else if (vo.getIntv() != null && vo.getIntv() == 1.0) {
+                        vo.setIntvLable("小时");
+                    }
+                }
+            } else {
+                if (vo.getIntv() != null && vo.getIntv() == 0.05) {
+                    vo.setIntvLable("5分钟");
+                } else if (vo.getIntv() != null && vo.getIntv() == 1.0) {
+                    vo.setIntvLable("小时");
+                }
+            }
+        }
+        return R.data(pages);
+    }
 
-	/**
-	 * 分页
-	 */
-	@GetMapping("/yj/page")
-	@ApiImplicitParams({
-			@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-			@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-			@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
-			@ApiImplicitParam(name = "rainCountType", value = "雨量统计类型", paramType = "query", dataType = "int"),
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页")
-	public R<IPage<RtuDataRainVO>> yjPage(@ApiIgnore RtuDataRainDTO rtuDataRainDTO, Query query) {
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			if (rtuDataRainDTO.getAdCode() == null) {
-				rtuDataRainDTO.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 (rtuDataRainDTO.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);
-				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.selectYjPage(Condition.getPage(query), rtuDataRainDTO);
-		List<RtuDataRainVO> list = pages.getRecords();
-		for(RtuDataRainVO vo:list){
-			if(rtuDataRainDTO.getRainCountType()!=null){
-				if(rtuDataRainDTO.getRainCountType()==1){
-					vo.setIntvLable("近1小时");
-					vo.setDrp(vo.getH1drp());
-					vo.setTm(vo.getH1tm());
-				}else if(rtuDataRainDTO.getRainCountType()==3){
-					vo.setIntvLable("近3小时");
-					vo.setDrp(vo.getH3drp());
-					vo.setTm(vo.getH3tm());
-				}else if(rtuDataRainDTO.getRainCountType()==6){
-					vo.setIntvLable("近6小时");
-					vo.setDrp(vo.getH6drp());
-					vo.setTm(vo.getH6tm());
-				}else if(rtuDataRainDTO.getRainCountType()==12){
-					vo.setIntvLable("近12小时");
-					vo.setDrp(vo.getH12drp());
-					vo.setTm(vo.getH12tm());
-				}else if(rtuDataRainDTO.getRainCountType()==24){
-					vo.setIntvLable("近24小时");
-					vo.setDrp(vo.getH24drp());
-					vo.setTm(vo.getH24tm());
-				}else{
-					if(vo.getIntv() !=null && vo.getIntv()==0.05){
-						vo.setIntvLable("5分钟");
-					}else if(vo.getIntv()!=null &&  vo.getIntv()==1.0){
-						vo.setIntvLable("小时");
-					}
-				}
-			}else{
-				if(vo.getIntv() !=null && vo.getIntv()==0.05){
-					vo.setIntvLable("5分钟");
-				}else if(vo.getIntv()!=null &&  vo.getIntv()==1.0){
-					vo.setIntvLable("小时");
-				}
-			}
-		}
-		return R.data(pages);
-	}
 
+    /**
+     * 分页
+     */
+    @GetMapping("/yj/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rainCountType", value = "雨量统计类型", paramType = "query", dataType = "int"),
+    })
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "分页")
+    public R<IPage<RtuDataRainVO>> yjPage(@ApiIgnore RtuDataRainDTO rtuDataRainDTO, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            if (rtuDataRainDTO.getAdCode() == null) {
+                rtuDataRainDTO.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 (rtuDataRainDTO.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);
+                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.selectYjPage(Condition.getPage(query), rtuDataRainDTO);
+        List<RtuDataRainVO> list = pages.getRecords();
+        for (RtuDataRainVO vo : list) {
+            if (rtuDataRainDTO.getRainCountType() != null) {
+                if (rtuDataRainDTO.getRainCountType() == 1) {
+                    vo.setIntvLable("近1小时");
+                    vo.setDrp(vo.getH1drp());
+                    vo.setTm(vo.getH1tm());
+                } else if (rtuDataRainDTO.getRainCountType() == 3) {
+                    vo.setIntvLable("近3小时");
+                    vo.setDrp(vo.getH3drp());
+                    vo.setTm(vo.getH3tm());
+                } else if (rtuDataRainDTO.getRainCountType() == 6) {
+                    vo.setIntvLable("近6小时");
+                    vo.setDrp(vo.getH6drp());
+                    vo.setTm(vo.getH6tm());
+                } else if (rtuDataRainDTO.getRainCountType() == 12) {
+                    vo.setIntvLable("近12小时");
+                    vo.setDrp(vo.getH12drp());
+                    vo.setTm(vo.getH12tm());
+                } else if (rtuDataRainDTO.getRainCountType() == 24) {
+                    vo.setIntvLable("近24小时");
+                    vo.setDrp(vo.getH24drp());
+                    vo.setTm(vo.getH24tm());
+                } else {
+                    if (vo.getIntv() != null && vo.getIntv() == 0.05) {
+                        vo.setIntvLable("5分钟");
+                    } else if (vo.getIntv() != null && vo.getIntv() == 1.0) {
+                        vo.setIntvLable("小时");
+                    }
+                }
+            } else {
+                if (vo.getIntv() != null && vo.getIntv() == 0.05) {
+                    vo.setIntvLable("5分钟");
+                } else if (vo.getIntv() != null && vo.getIntv() == 1.0) {
+                    vo.setIntvLable("小时");
+                }
+            }
+        }
+        return R.data(pages);
+    }
 
-	/**
-	 * 详情
-	 */
-	@GetMapping("/detail")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情", notes = "传入 RtuDataRainEntity")
-	public R<RtuDataRainEntity> detail(RtuDataRainEntity entity) {
-		LambdaQueryWrapper<RtuDataRainEntity> wrapper = Wrappers.<RtuDataRainEntity>query().lambda();
-		wrapper.eq(RtuDataRainEntity::getIsDeleted, 0L);
-		wrapper.eq(RtuDataRainEntity::getRtuCode, entity.getRtuCode());
-		RtuDataRainEntity rainEntity = dataRainService.getOne(wrapper);
-		return R.data(rainEntity);
-	}
+
+    /**
+     * 详情
+     */
+    @GetMapping("/detail")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情", notes = "传入 RtuDataRainEntity")
+    public R<RtuDataRainEntity> detail(RtuDataRainEntity entity) {
+        LambdaQueryWrapper<RtuDataRainEntity> wrapper = Wrappers.<RtuDataRainEntity>query().lambda();
+        wrapper.eq(RtuDataRainEntity::getIsDeleted, 0L);
+        wrapper.eq(RtuDataRainEntity::getRtuCode, entity.getRtuCode());
+        RtuDataRainEntity rainEntity = dataRainService.getOne(wrapper);
+        return R.data(rainEntity);
+    }
 }

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

@@ -69,24 +69,33 @@ public class RtuDataRiverController extends BladeController {
 	@ApiOperation(value = "分页")
 	public R<IPage<RtuDataRiverVO>> page(@ApiIgnore RtuDataRiverDTO rtuDataRiverDTO, Query query) {
 		BladeUser user = AuthUtil.getUser();
+		rtuDataRiverDTO.setExcludeCode(0);
 		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			if (rtuDataRiverDTO.getAdCode() == null) {
+			if (Func.isNull(rtuDataRiverDTO.getAdCode())) {
 				rtuDataRiverDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
 			}
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuDataRiverDTO.getAdCode());
+			if (Func.notNull(node)) {
+				rtuDataRiverDTO.setExcludeCode(node.getExclude());
+			}
 		} 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 (rtuDataRiverDTO.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);
-				rtuDataRiverDTO.setAdCode(deptRegionEntity.getAdcd());
+			if (Func.isNull(rtuDataRiverDTO.getAdCode())) {
+				LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+				wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+				DeptRegionEntity entity = deptRegionService.getOne(wrapper);
+				rtuDataRiverDTO.setAdCode(entity.getAdcd());
 			}
-		}
-		if (rtuDataRiverDTO.getAdCode() != null) {
 			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuDataRiverDTO.getAdCode());
-			if (null != node) {
+			if (Func.notNull(node)) {
 				rtuDataRiverDTO.setExcludeCode(node.getExclude());
 			}
+		} else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+			if (Func.isNull(rtuDataRiverDTO.getAdCode())) {
+				LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+				wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+				DeptRegionEntity entity = deptRegionService.getOne(wrapper);
+				rtuDataRiverDTO.setAdCode(entity.getAdcd());
+			}
 		}
 		IPage<RtuDataRiverVO> pages = dataRiverService.selectWaterPage(Condition.getPage(query),rtuDataRiverDTO);
 		List<RtuDataRiverVO> list = pages.getRecords();

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

@@ -66,24 +66,33 @@ public class RtuDataRsvrController extends BladeController {
 	@ApiOperation(value = "分页")
 	public R<IPage<RtuDataRsvrVO>> page(@ApiIgnore RtuDataRsvrDTO rtuDataRsvrDTO, Query query) {
 		BladeUser user = AuthUtil.getUser();
+		rtuDataRsvrDTO.setExcludeCode(0);
 		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			if (rtuDataRsvrDTO.getAdCode() == null) {
+			if (Func.isNull(rtuDataRsvrDTO.getAdCode())) {
 				rtuDataRsvrDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
 			}
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuDataRsvrDTO.getAdCode());
+			if (Func.notNull(node)) {
+				rtuDataRsvrDTO.setExcludeCode(node.getExclude());
+			}
 		} 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 (rtuDataRsvrDTO.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);
-				rtuDataRsvrDTO.setAdCode(deptRegionEntity.getAdcd());
+			if (Func.isNull(rtuDataRsvrDTO.getAdCode())) {
+				LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+				wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+				DeptRegionEntity entity = deptRegionService.getOne(wrapper);
+				rtuDataRsvrDTO.setAdCode(entity.getAdcd());
 			}
-		}
-		if (rtuDataRsvrDTO.getAdCode() != null) {
 			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuDataRsvrDTO.getAdCode());
-			if (null != node) {
+			if (Func.notNull(node)) {
 				rtuDataRsvrDTO.setExcludeCode(node.getExclude());
 			}
+		} else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+			if (Func.isNull(rtuDataRsvrDTO.getAdCode())) {
+				LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+				wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+				DeptRegionEntity entity = deptRegionService.getOne(wrapper);
+				rtuDataRsvrDTO.setAdCode(entity.getAdcd());
+			}
 		}
 		IPage<RtuDataRsvrVO> pages = dataRsvrService.selectPage(Condition.getPage(query),rtuDataRsvrDTO);
 		return R.data(pages);

+ 19 - 10
src/main/java/org/springblade/modules/business/data/controller/RtuDataWaterLevelController.java

@@ -70,24 +70,33 @@ public class RtuDataWaterLevelController extends BladeController {
 	@ApiOperation(value = "分页")
 	public R<IPage<RtuDataWaterLevelVO>> page(@ApiIgnore RtuDataWaterLevelDTO dto, Query query) {
 		BladeUser user = AuthUtil.getUser();
+		dto.setExcludeCode(0);
 		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			if (dto.getAdCode() == null) {
+			if (Func.isNull(dto.getAdCode())) {
 				dto.setAdCode(BusinessConstant.REGION_NM_ADCODE);
 			}
+			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), dto.getAdCode());
+			if (Func.notNull(node)) {
+				dto.setExcludeCode(node.getExclude());
+			}
 		} 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 (dto.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);
-				dto.setAdCode(deptRegionEntity.getAdcd());
+			if (Func.isNull(dto.getAdCode())) {
+				LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+				wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+				DeptRegionEntity entity = deptRegionService.getOne(wrapper);
+				dto.setAdCode(entity.getAdcd());
 			}
-		}
-		if (dto.getAdCode() != null) {
 			RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), dto.getAdCode());
-			if (null != node) {
+			if (Func.notNull(node)) {
 				dto.setExcludeCode(node.getExclude());
 			}
+		} else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+			if (Func.isNull(dto.getAdCode())) {
+				LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+				wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+				DeptRegionEntity entity = deptRegionService.getOne(wrapper);
+				dto.setAdCode(entity.getAdcd());
+			}
 		}
 		IPage<RtuDataWaterLevelVO> pages = waterLevelService.selectPage(Condition.getPage(query), dto);
 		List<RtuDataWaterLevelVO> list = pages.getRecords();

+ 781 - 774
src/main/java/org/springblade/modules/business/home/controller/HomeController.java

@@ -77,778 +77,785 @@ import java.util.*;
 @AllArgsConstructor
 @Api(value = "实时数据管理模块", tags = "实时数据管理模块")
 public class HomeController {
-	private final IRtuCheckOrderService checkOrderService;
-	private final INoticeService noticeService;
-	private final INoticeViewService noticeViewService;
-	private final IRtuBaseInfoService rtuBaseInfoService;
-	private final IRtuWarningService rtuWarningService;
-	private final IDeptRegionService deptRegionService;
-	private final IEquipmentInspectionReportService inspectionReportService;
-	private final ICheckOrderSettingService checkOrderSettingService;
-	private final IEquipmentInspectionPlanService planService;
-	private final IRtuOrderProcessService rtuOrderProcessService;
-	private final IEquipmentInspectionReportService equipmentInspectionReportService;
-	private final IDeptService deptService;
-	private final IRegionInfoService regionService;
-	private final IBaseInfoDictService dictService;
-	private final IRtuDataRainStoreService rainStoreService;
-	private final IRtuDataWaterLevelStoreService waterLevelStoreService;
-	private final IRtuDataGroundStoreService groundStoreService;
-
-	@GetMapping("/real/info")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情")
-	public R<HomeInfoVO> detail() {
-		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())) {
-			LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
-			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;
-				}
-			}
-		}
-		HomeInfoVO infoVO = new HomeInfoVO();
-		//测站数量
-		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();
-		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());
-		if (null != adCode) {
-			checkOrderInfoDTO.setAdCode(adCode);
-		}
-		checkOrderInfoDTO.setExcludeCode(excludeCode);
-		//任务总数
-		long count = checkOrderService.orderCount(checkOrderInfoDTO);
-		infoVO.setOrderCount(count);
-		//未确认任务
-		checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
-		count = checkOrderService.orderCount(checkOrderInfoDTO);
-		infoVO.setUnconfirmOrderCount(count);
-		//确认超时任务
-		checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
-		checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-		List<CheckOrderInfoVO> orderList = checkOrderService.allOrders(checkOrderInfoDTO);
-		if (null != orderList && orderList.size() > 0) {
-			long delayTime = 120;
-			LambdaQueryWrapper<CheckOrderSettingEntity> wrapper = Wrappers.<CheckOrderSettingEntity>query().lambda();
-			wrapper.eq(CheckOrderSettingEntity::getIsDeleted, 0);
-			List<CheckOrderSettingEntity> list = checkOrderSettingService.list(wrapper);
-			if (null != list && list.size() > 0) {
-				delayTime = list.get(0).getOrderComfireDelayTime();
-			}
-			long delayCount = 0;
-			Date dt = new Date();
-			for (CheckOrderInfoVO checkOrderInfoVO : orderList) {
-				Duration duration = Func.between(checkOrderInfoVO.getCreateTime(), dt);
-				long second = duration.getSeconds();
-				if (second > 0) {
-					second = second / 60L;
-					if (second > delayTime) {
-						delayCount += 1;
-					}
-				}
-			}
-			infoVO.setDelayComfireOrders(delayCount);
-		} else {
-			infoVO.setDelayComfireOrders(0L);
-		}
-		//处理中任务
-		checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-		checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-		DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
-		if (biz != null) {
-			checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-		}
-		Long unCloseOrderCount = checkOrderService.unCloseOrderCount(checkOrderInfoDTO);
-		infoVO.setProcessCheckOrderCount(unCloseOrderCount);
-		//已处理任务数
-		checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-		checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-		DictInfoEntity dictInfoEntity = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
-		if (dictInfoEntity != null) {
-			checkOrderInfoDTO.setOrderStatusKey(dictInfoEntity.getId());
-		}
-		Long reports = checkOrderService.reportCount(checkOrderInfoDTO);
-		infoVO.setReportOrder(reports);
-		//今天填报任务数量
-		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();
-		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);
-		if (null != adCode) {
-			inspectionReportDTO.setAdCode(adCode);
-		}
-		inspectionReportDTO.setExcludeCode(excludeCode);
-		count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
-		infoVO.setEquipmentInspectionBeforeRainReports(count);
-		inspectionReportDTO.setRainSeasonKind(2);
-		count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
-		infoVO.setEquipmentInspectionRainFirstReports(count);
-		inspectionReportDTO.setRainSeasonKind(3);
-		count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
-		infoVO.setEquipmentInspectionRainSecondReports(count);
-
-		//处理汛期类别
-		LambdaQueryWrapper<EquipmentInspectionPlanEntity> wrapper = Wrappers.<EquipmentInspectionPlanEntity>query().lambda();
-		wrapper.eq(EquipmentInspectionPlanEntity::getIsDeleted, 0);
-		wrapper.orderByDesc(EquipmentInspectionPlanEntity::getCreateTime);
-		List<EquipmentInspectionPlanEntity> list = planService.list(wrapper);
-		if (null != list && list.size() > 0) {
-			EquipmentInspectionPlanEntity entity = list.get(0);
-			Calendar dt = Calendar.getInstance();
-			dt.setTime(new Date());
-			Calendar calendarStart = Calendar.getInstance();
-			Calendar calendarEnd = Calendar.getInstance();
-			//汛前上报
-			calendarStart.setTime(entity.getBeforeRainSeasonStartTime());
-			calendarEnd.setTime(entity.getBeforeRainSeasonEndTime());
-			if ((dt.getTime().getTime() / 1000 == calendarStart.getTime().getTime() / 1000 || dt.after(calendarStart)) && dt.before(calendarEnd)) {
-				infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionBeforeRainReports());
-			}
-
-			//汛中第一次上报
-			calendarStart.setTime(entity.getRainSeasonFirstStartTime());
-			calendarEnd.setTime(entity.getRainSeasonFirstEndTime());
-			if ((dt.getTime().getTime() / 1000 == calendarStart.getTime().getTime() / 1000 || dt.after(calendarStart)) && dt.before(calendarEnd)) {
-				infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainFirstReports());
-			}
-
-			//汛中第二次上报
-			calendarStart.setTime(entity.getRainSeasonSecondStartTime());
-			calendarEnd.setTime(entity.getRainSeasonSecondEndTime());
-			if ((dt.getTime().getTime() / 1000 == calendarStart.getTime().getTime() / 1000 || dt.after(calendarStart)) && dt.before(calendarEnd)) {
-				infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainSecondReports());
-			}
-		} else {
-			Calendar dt = Calendar.getInstance();
-			dt.setTime(new Date());
-			//汛前上报
-			Calendar calendarStart = Calendar.getInstance();
-			calendarStart.setTime(dt.getTime());
-			calendarStart.set(Calendar.MONTH, 4 - 1);
-			calendarStart.set(Calendar.DAY_OF_MONTH, 1);
-			calendarStart.set(Calendar.HOUR_OF_DAY, 0);
-			calendarStart.set(Calendar.MINUTE, 0);
-			calendarStart.set(Calendar.SECOND, 0);
-			Calendar calendarEnd = Calendar.getInstance();
-			calendarEnd.setTime(dt.getTime());
-			calendarEnd.set(Calendar.MONTH, 6 - 1);
-			calendarEnd.set(Calendar.DAY_OF_MONTH, 1);
-			calendarEnd.set(Calendar.HOUR_OF_DAY, 0);
-			calendarEnd.set(Calendar.MINUTE, 0);
-			calendarEnd.set(Calendar.SECOND, 0);
-			if (dt.after(calendarStart) && dt.before(calendarEnd)) {
-				infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionBeforeRainReports());
-			}
-
-			//汛中第一次上报
-			calendarStart.setTime(dt.getTime());
-			calendarStart.set(Calendar.MONTH, 6 - 1);
-			calendarStart.set(Calendar.DAY_OF_MONTH, 1);
-			calendarStart.set(Calendar.HOUR_OF_DAY, 0);
-			calendarStart.set(Calendar.MINUTE, 0);
-			calendarStart.set(Calendar.SECOND, 0);
-			calendarEnd.setTime(dt.getTime());
-			calendarEnd.set(Calendar.MONTH, 8 - 1);
-			calendarEnd.set(Calendar.DAY_OF_MONTH, 15);
-			calendarEnd.set(Calendar.HOUR_OF_DAY, 0);
-			calendarEnd.set(Calendar.MINUTE, 0);
-			calendarEnd.set(Calendar.SECOND, 0);
-			if (dt.after(calendarStart) && dt.before(calendarEnd)) {
-				infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainFirstReports());
-			}
-
-			//汛中第二次上报
-			calendarStart.setTime(dt.getTime());
-			calendarStart.set(Calendar.MONTH, 8 - 1);
-			calendarStart.set(Calendar.DAY_OF_MONTH, 15);
-			calendarStart.set(Calendar.HOUR_OF_DAY, 0);
-			calendarStart.set(Calendar.MINUTE, 0);
-			calendarStart.set(Calendar.SECOND, 0);
-			calendarEnd.setTime(dt.getTime());
-			calendarEnd.set(Calendar.MONTH, 10 - 1);
-			calendarEnd.set(Calendar.DAY_OF_MONTH, 1);
-			calendarEnd.set(Calendar.HOUR_OF_DAY, 0);
-			calendarEnd.set(Calendar.MINUTE, 0);
-			calendarEnd.set(Calendar.SECOND, 0);
-			if (dt.after(calendarStart) && dt.before(calendarEnd)) {
-				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);
-		NoticeViewEntity entity = noticeViewService.getOne(noticewrapper);
-
-		NoticeDTO noticeDTO = new NoticeDTO();
-		if (null != entity) {
-			noticeDTO.setViewDate(entity.getViewTime());
-		}
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			noticeDTO.setCategory(0);
-		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
-			//盟市查看本部门通知,以及自治区公开的通知
-			noticeDTO.setCategory(1);
-		} else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
-			//运维公司查看本部门通知,以及盟市公开的通知
-			noticeDTO.setCategory(2);
-		}
-		count = noticeService.unviewNoticeCount(noticeDTO);
-		if (count > 0) {
-			infoVO.setHasNewNotice(true);
-			infoVO.setNewNoticeCount(count);
-		} else {
-			infoVO.setHasNewNotice(false);
-			infoVO.setNewNoticeCount(0L);
-		}
-
-		return R.data(infoVO);
-	}
-
-	@GetMapping("/rtu/status/count/info")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情")
-	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())) {
-			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) {
-			return R.status(false);
-		}
-		RtuStatusCountInfoVO infoVO = new RtuStatusCountInfoVO();
-		//测站数量
-		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);
-
-		return R.data(infoVO);
-	}
-
-	@GetMapping("/rtu/checkorder/count/info")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情")
-	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())) {
-			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) {
-			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);
-		//未确认任务
-		checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
-		count = checkOrderService.orderCount(checkOrderInfoDTO);
-		infoVO.setUnconfirmOrderCount(count);
-		//处理中任务
-		checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-		checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-		DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
-		if (biz != null) {
-			checkOrderInfoDTO.setOrderStatusKey(biz.getId());
-		}
-		Long unCloseOrderCount = checkOrderService.reportCount(checkOrderInfoDTO);
-		infoVO.setProcessCheckOrderCount(unCloseOrderCount);
-		//已处理任务数
-		checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
-		checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-		DictInfoEntity dictInfoEntity = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
-		if (dictInfoEntity != null) {
-			checkOrderInfoDTO.setOrderStatusKey(dictInfoEntity.getId());
-		}
-		Long reports = checkOrderService.reportCount(checkOrderInfoDTO);
-		infoVO.setReportOrder(reports);
-
-		checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
-		checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
-		List<CheckOrderInfoVO> orderList = checkOrderService.allOrders(checkOrderInfoDTO);
-		if (null != orderList && orderList.size() > 0) {
-			long delayTime = 120;
-			LambdaQueryWrapper<CheckOrderSettingEntity> wrapper = Wrappers.<CheckOrderSettingEntity>query().lambda();
-			wrapper.eq(CheckOrderSettingEntity::getIsDeleted, 0);
-			List<CheckOrderSettingEntity> list = checkOrderSettingService.list(wrapper);
-			if (null != list && list.size() > 0) {
-				delayTime = list.get(0).getOrderComfireDelayTime();
-			}
-			long delayCount = 0;
-			Date dt = new Date();
-			for (CheckOrderInfoVO checkOrderInfoVO : orderList) {
-				Duration duration = Func.between(checkOrderInfoVO.getCreateTime(), dt);
-				long second = duration.getSeconds();
-				if (second > 0) {
-					second = second / 60L;
-					if (second > delayTime) {
-						delayCount += 1;
-					}
-				}
-			}
-			infoVO.setDelayComfireOrders(delayCount);
-		} else {
-			infoVO.setDelayComfireOrders(0L);
-		}
-
-		//我的任务
-		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);
-		return R.data(infoVO);
-	}
-
-	@GetMapping("/rtu/inspectionreport/count/info")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情")
-	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())) {
-			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) {
-			return R.status(true);
-		}
-		RtuInfoDTO rtuInfoDTO = new RtuInfoDTO();
-		rtuInfoDTO.setAdCode(adCode);
-		rtuInfoDTO.setExcludeCode(excludeCode);
-
-		RtuInspectionReportCountInfoVO infoVO = new RtuInspectionReportCountInfoVO();
-		long count = rtuBaseInfoService.rtuCount(rtuInfoDTO);
-		infoVO.setEquipmentInspectionCount(count);
-		EquipmentInspectionReportDTO inspectionReportDTO = new EquipmentInspectionReportDTO();
-		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);
-		inspectionReportDTO.setInspectionYearStartDate(calendar.getTime());
-		calendar.add(Calendar.YEAR, 1);
-		inspectionReportDTO.setInspectionYearEndDate(calendar.getTime());
-		inspectionReportDTO.setRainSeasonKind(1);
-		inspectionReportDTO.setAdCode(adCode);
-		inspectionReportDTO.setExcludeCode(excludeCode);
-		count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
-		infoVO.setEquipmentInspectionBeforeRainReports(count);
-		inspectionReportDTO.setRainSeasonKind(2);
-		count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
-		infoVO.setEquipmentInspectionRainFirstReports(count);
-		inspectionReportDTO.setRainSeasonKind(3);
-		count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
-		infoVO.setEquipmentInspectionRainSecondReports(count);
-
-		//处理汛期类别
-		LambdaQueryWrapper<EquipmentInspectionPlanEntity> wrapper = Wrappers.<EquipmentInspectionPlanEntity>query().lambda();
-		wrapper.eq(EquipmentInspectionPlanEntity::getIsDeleted, 0);
-		wrapper.orderByDesc(EquipmentInspectionPlanEntity::getCreateTime);
-		List<EquipmentInspectionPlanEntity> list = planService.list(wrapper);
-		if (null != list && list.size() > 0) {
-			EquipmentInspectionPlanEntity entity = list.get(0);
-			Calendar dt = Calendar.getInstance();
-			dt.setTime(new Date());
-			Calendar calendarStart = Calendar.getInstance();
-			Calendar calendarEnd = Calendar.getInstance();
-			//汛前上报
-			calendarStart.setTime(entity.getBeforeRainSeasonStartTime());
-			calendarEnd.setTime(entity.getBeforeRainSeasonEndTime());
-			if ((dt.getTime().getTime() / 1000 == calendarStart.getTime().getTime() / 1000 || dt.after(calendarStart)) && dt.before(calendarEnd)) {
-				infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionBeforeRainReports());
-			}
-
-			//汛中第一次上报
-			calendarStart.setTime(entity.getRainSeasonFirstStartTime());
-			calendarEnd.setTime(entity.getRainSeasonFirstEndTime());
-			if ((dt.getTime().getTime() / 1000 == calendarStart.getTime().getTime() / 1000 || dt.after(calendarStart)) && dt.before(calendarEnd)) {
-				infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainFirstReports());
-			}
-
-			//汛中第二次上报
-			calendarStart.setTime(entity.getRainSeasonSecondStartTime());
-			calendarEnd.setTime(entity.getRainSeasonSecondEndTime());
-			if ((dt.getTime().getTime() / 1000 == calendarStart.getTime().getTime() / 1000 || dt.after(calendarStart)) && dt.before(calendarEnd)) {
-				infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainSecondReports());
-			}
-		} else {
-			Calendar dt = Calendar.getInstance();
-			dt.setTime(new Date());
-			//汛前上报
-			Calendar calendarStart = Calendar.getInstance();
-			calendarStart.setTime(dt.getTime());
-			calendarStart.set(Calendar.MONTH, 4 - 1);
-			calendarStart.set(Calendar.DAY_OF_MONTH, 1);
-			calendarStart.set(Calendar.HOUR_OF_DAY, 0);
-			calendarStart.set(Calendar.MINUTE, 0);
-			calendarStart.set(Calendar.SECOND, 0);
-			Calendar calendarEnd = Calendar.getInstance();
-			calendarEnd.setTime(dt.getTime());
-			calendarEnd.set(Calendar.MONTH, 6 - 1);
-			calendarEnd.set(Calendar.DAY_OF_MONTH, 1);
-			calendarEnd.set(Calendar.HOUR_OF_DAY, 0);
-			calendarEnd.set(Calendar.MINUTE, 0);
-			calendarEnd.set(Calendar.SECOND, 0);
-			if (dt.after(calendarStart) && dt.before(calendarEnd)) {
-				infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionBeforeRainReports());
-			}
-
-			//汛中第一次上报
-			calendarStart.setTime(dt.getTime());
-			calendarStart.set(Calendar.MONTH, 6 - 1);
-			calendarStart.set(Calendar.DAY_OF_MONTH, 1);
-			calendarStart.set(Calendar.HOUR_OF_DAY, 0);
-			calendarStart.set(Calendar.MINUTE, 0);
-			calendarStart.set(Calendar.SECOND, 0);
-			calendarEnd.setTime(dt.getTime());
-			calendarEnd.set(Calendar.MONTH, 8 - 1);
-			calendarEnd.set(Calendar.DAY_OF_MONTH, 15);
-			calendarEnd.set(Calendar.HOUR_OF_DAY, 0);
-			calendarEnd.set(Calendar.MINUTE, 0);
-			calendarEnd.set(Calendar.SECOND, 0);
-			if (dt.after(calendarStart) && dt.before(calendarEnd)) {
-				infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainFirstReports());
-			}
-
-			//汛中第二次上报
-			calendarStart.setTime(dt.getTime());
-			calendarStart.set(Calendar.MONTH, 8 - 1);
-			calendarStart.set(Calendar.DAY_OF_MONTH, 15);
-			calendarStart.set(Calendar.HOUR_OF_DAY, 0);
-			calendarStart.set(Calendar.MINUTE, 0);
-			calendarStart.set(Calendar.SECOND, 0);
-			calendarEnd.setTime(dt.getTime());
-			calendarEnd.set(Calendar.MONTH, 10 - 1);
-			calendarEnd.set(Calendar.DAY_OF_MONTH, 1);
-			calendarEnd.set(Calendar.HOUR_OF_DAY, 0);
-			calendarEnd.set(Calendar.MINUTE, 0);
-			calendarEnd.set(Calendar.SECOND, 0);
-			if (dt.after(calendarStart) && dt.before(calendarEnd)) {
-				infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainSecondReports());
-			}
-		}
-
-		return R.data(infoVO);
-	}
-
-
-	@GetMapping("/rtu/up/count/info")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情")
-	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())) {
-			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) {
-			return R.status(false);
-		}
-		RtuInfoDTO dto = new RtuInfoDTO();
-		dto.setAdCode(adCode);
-		dto.setExcludeCode(excludeCode);
-		RtuUpDataCountInfoVO infoVO = new RtuUpDataCountInfoVO();
-		long count = rtuBaseInfoService.rtuRainCount(dto);
-		infoVO.setRainRtuCount(count);
-		count = rtuBaseInfoService.rtuRiverCount(dto);
-		infoVO.setRiverRtuCount(count);
-		count = rtuBaseInfoService.rtuGroundCount(dto);
-		infoVO.setGroundRtuCount(count);
-		Calendar calendar = Calendar.getInstance();
-		calendar.set(Calendar.HOUR_OF_DAY, 0);
-		calendar.set(Calendar.MINUTE, 0);
-		calendar.set(Calendar.SECOND, 0);
-		calendar.set(Calendar.MILLISECOND,0);
-		Date endTime = calendar.getTime();
-		calendar.add(Calendar.DAY_OF_MONTH, -1);
-		Date beiganTime = calendar.getTime();
-		//测站上报统计
-		RtuDataRainDTO rainDTO = new RtuDataRainDTO();
-		rainDTO.setAdCode(adCode);
-		rainDTO.setBeginTime(beiganTime);
-		rainDTO.setEndTime(endTime);
-		rainDTO.setExcludeCode(excludeCode);
-		count = rainStoreService.rtuUpDataCount(rainDTO);
-		infoVO.setRainUpDataCount(count);
-		RtuDataWaterLevelDTO waterLevelDTO = new RtuDataWaterLevelDTO();
-		waterLevelDTO.setAdCode(adCode);
-		waterLevelDTO.setBeginTime(beiganTime);
-		waterLevelDTO.setEndTime(endTime);
-		waterLevelDTO.setExcludeCode(excludeCode);
-		count = waterLevelStoreService.rtuUpDataCount(waterLevelDTO);
-		infoVO.setRiverUpDataCount(count);
-		RtuDataGroundDTO groundDTO = new RtuDataGroundDTO();
-		groundDTO.setAdCode(adCode);
-		groundDTO.setBeginTime(beiganTime);
-		groundDTO.setEndTime(endTime);
-		groundDTO.setExcludeCode(excludeCode);
-		count = groundStoreService.rtuUpDataCount(groundDTO);
-		infoVO.setGroundUpDataCount(count);
-		return R.data(infoVO);
-	}
-
-	@GetMapping("/warn/count/list")
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "预警统计列表", notes = "")
-	public R<List<WarnCountInfoVO>> warnCountInfoList() {
-		BladeUser user = AuthUtil.getUser();
-		if (!BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			return R.data(null);
-		}
-		List<WarnCountInfoVO> list = new LinkedList<>();
-		//盟市统计
-		LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
-		wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
-		List<Dept> deptList = this.deptService.list(wrapper);
-		for (Dept dept : deptList) {
-			WarnCountInfoVO vo = new WarnCountInfoVO();
-			//盟市名称
-			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);
-			int excludeCode = 0;
-			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;
-			}
-			//测站数量
-			RtuInfoDTO rtuInfoDTO = new RtuInfoDTO();
-			rtuInfoDTO.setExcludeCode(excludeCode);
-			rtuInfoDTO.setAdCode(deptRegionEntity.getAdcd());
-			Long count = rtuBaseInfoService.rtuCount(rtuInfoDTO);
-			vo.setRtus(count.intValue());
-			//预警数量
-			RtuWarningInfoDTO dto = new RtuWarningInfoDTO();
-			dto.setExcludeCode(excludeCode);
-			dto.setAdCode(deptRegionEntity.getAdcd());
-			long warningRtuCount = rtuWarningService.warningRtuCount(dto);
-			//离线数量
-			count = rtuWarningService.warningOfflineRtuCount(dto);
-			vo.setOfflineRtus(count.intValue());
-			//其他异常
-			vo.setOtherWarnRtus((int)(warningRtuCount-count));
-			list.add(vo);
-		}
-		return R.data(list);
-	}
-
-	@GetMapping("/rtu/warn/kind/count/info")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情")
-	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())) {
-			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) {
-			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);
-		infoVO.setClockWarn(count.intValue());
-		//离线数量
-		count = rtuWarningService.warningOfflineRtuCount(dto);
-		infoVO.setOfflineRtus(count.intValue());
-		//雨量站小时漏报
-		count = rtuWarningService.warningRainHourMissOutRtuCount(dto);
-		infoVO.setRainUpMissOut(count.intValue());
-		//水位站小时漏报
-		count = rtuWarningService.warningRiverHourMissOutRtuCount(dto);
-		infoVO.setRiverUpMissOut(count.intValue());
-		//5分钟延时
-		count = rtuWarningService.warningMinUpDelayRtuCount(dto);
-		infoVO.setMinUpDelay(count.intValue());
-		//雨量站小时延时
-		count = rtuWarningService.warningRainHourUpDelayRtuCount(dto);
-		infoVO.setRainHourUpDelay(count.intValue());
-		//水位站小时延时
-		count = rtuWarningService.warningRiverHourUpDelayRtuCount(dto);
-		infoVO.setRiverHourUpDelay(count.intValue());
-		//异常值
-		count = rtuWarningService.warningOutlierValueRtuCount(dto);
-		infoVO.setOutlierValue(count.intValue());
-		return R.data(infoVO);
-	}
+    private final IRtuCheckOrderService checkOrderService;
+    private final INoticeService noticeService;
+    private final INoticeViewService noticeViewService;
+    private final IRtuBaseInfoService rtuBaseInfoService;
+    private final IRtuWarningService rtuWarningService;
+    private final IDeptRegionService deptRegionService;
+    private final IEquipmentInspectionReportService inspectionReportService;
+    private final ICheckOrderSettingService checkOrderSettingService;
+    private final IEquipmentInspectionPlanService planService;
+    private final IRtuOrderProcessService rtuOrderProcessService;
+    private final IEquipmentInspectionReportService equipmentInspectionReportService;
+    private final IDeptService deptService;
+    private final IRegionInfoService regionService;
+    private final IBaseInfoDictService dictService;
+    private final IRtuDataRainStoreService rainStoreService;
+    private final IRtuDataWaterLevelStoreService waterLevelStoreService;
+    private final IRtuDataGroundStoreService groundStoreService;
+
+    @GetMapping("/real/info")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情")
+    public R<HomeInfoVO> detail() {
+        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())) {
+            LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+            deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+            DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+            if (Func.notNull(deptRegionEntity)) {
+                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;
+                }
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+            wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+            DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+            if (Func.notNull(deptRegionEntity)) {
+                adCode = deptRegionEntity.getAdcd();
+            }
+        }
+        if (Func.isNull(adCode)) {
+            return R.fail("系统错误");
+        }
+        HomeInfoVO infoVO = new HomeInfoVO();
+        //测站数量
+        RtuInfoDTO rtuInfoDTO = new RtuInfoDTO();
+        rtuInfoDTO.setAdCode(adCode);
+        rtuInfoDTO.setExcludeCode(excludeCode);
+        long rtuCount = rtuBaseInfoService.rtuCount(rtuInfoDTO);
+        infoVO.setRtus(rtuCount);
+        //预警中的测站数量
+        RtuWarningInfoDTO warningInfoDTO = new RtuWarningInfoDTO();
+        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);
+        checkOrderInfoDTO.setExcludeCode(excludeCode);
+        //任务总数
+        long count = checkOrderService.orderCount(checkOrderInfoDTO);
+        infoVO.setOrderCount(count);
+        //未确认任务
+        checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
+        count = checkOrderService.orderCount(checkOrderInfoDTO);
+        infoVO.setUnconfirmOrderCount(count);
+        //确认超时任务
+        checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
+        checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+        List<CheckOrderInfoVO> orderList = checkOrderService.allOrders(checkOrderInfoDTO);
+        if (null != orderList && orderList.size() > 0) {
+            long delayTime = 120;
+            LambdaQueryWrapper<CheckOrderSettingEntity> wrapper = Wrappers.<CheckOrderSettingEntity>query().lambda();
+            wrapper.eq(CheckOrderSettingEntity::getIsDeleted, 0);
+            List<CheckOrderSettingEntity> list = checkOrderSettingService.list(wrapper);
+            if (null != list && list.size() > 0) {
+                delayTime = list.get(0).getOrderComfireDelayTime();
+            }
+            long delayCount = 0;
+            Date dt = new Date();
+            for (CheckOrderInfoVO checkOrderInfoVO : orderList) {
+                Duration duration = Func.between(checkOrderInfoVO.getCreateTime(), dt);
+                long second = duration.getSeconds();
+                if (second > 0) {
+                    second = second / 60L;
+                    if (second > delayTime) {
+                        delayCount += 1;
+                    }
+                }
+            }
+            infoVO.setDelayComfireOrders(delayCount);
+        } else {
+            infoVO.setDelayComfireOrders(0L);
+        }
+        //处理中任务
+        checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+        checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+        DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
+        if (biz != null) {
+            checkOrderInfoDTO.setOrderStatusKey(biz.getId());
+        }
+        Long unCloseOrderCount = checkOrderService.unCloseOrderCount(checkOrderInfoDTO);
+        infoVO.setProcessCheckOrderCount(unCloseOrderCount);
+        //已处理任务数
+        checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+        checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+        DictInfoEntity dictInfoEntity = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
+        if (dictInfoEntity != null) {
+            checkOrderInfoDTO.setOrderStatusKey(dictInfoEntity.getId());
+        }
+        Long reports = checkOrderService.reportCount(checkOrderInfoDTO);
+        infoVO.setReportOrder(reports);
+        //今天填报任务数量
+        OrderProcessInfoDTO processInfoDTO = new OrderProcessInfoDTO();
+        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();
+        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);
+        inspectionReportDTO.setAdCode(adCode);
+        inspectionReportDTO.setExcludeCode(excludeCode);
+        count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
+        infoVO.setEquipmentInspectionBeforeRainReports(count);
+        inspectionReportDTO.setRainSeasonKind(2);
+        count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
+        infoVO.setEquipmentInspectionRainFirstReports(count);
+        inspectionReportDTO.setRainSeasonKind(3);
+        count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
+        infoVO.setEquipmentInspectionRainSecondReports(count);
+        //处理汛期类别
+        LambdaQueryWrapper<EquipmentInspectionPlanEntity> wrapper = Wrappers.<EquipmentInspectionPlanEntity>query().lambda();
+        wrapper.eq(EquipmentInspectionPlanEntity::getIsDeleted, 0);
+        wrapper.orderByDesc(EquipmentInspectionPlanEntity::getCreateTime);
+        List<EquipmentInspectionPlanEntity> list = planService.list(wrapper);
+        if (null != list && list.size() > 0) {
+            EquipmentInspectionPlanEntity entity = list.get(0);
+            Calendar dt = Calendar.getInstance();
+            dt.setTime(new Date());
+            Calendar calendarStart = Calendar.getInstance();
+            Calendar calendarEnd = Calendar.getInstance();
+            //汛前上报
+            calendarStart.setTime(entity.getBeforeRainSeasonStartTime());
+            calendarEnd.setTime(entity.getBeforeRainSeasonEndTime());
+            if ((dt.getTime().getTime() / 1000 == calendarStart.getTime().getTime() / 1000 || dt.after(calendarStart)) && dt.before(calendarEnd)) {
+                infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionBeforeRainReports());
+            }
+            //汛中第一次上报
+            calendarStart.setTime(entity.getRainSeasonFirstStartTime());
+            calendarEnd.setTime(entity.getRainSeasonFirstEndTime());
+            if ((dt.getTime().getTime() / 1000 == calendarStart.getTime().getTime() / 1000 || dt.after(calendarStart)) && dt.before(calendarEnd)) {
+                infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainFirstReports());
+            }
+            //汛中第二次上报
+            calendarStart.setTime(entity.getRainSeasonSecondStartTime());
+            calendarEnd.setTime(entity.getRainSeasonSecondEndTime());
+            if ((dt.getTime().getTime() / 1000 == calendarStart.getTime().getTime() / 1000 || dt.after(calendarStart)) && dt.before(calendarEnd)) {
+                infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainSecondReports());
+            }
+        } else {
+            Calendar dt = Calendar.getInstance();
+            dt.setTime(new Date());
+            //汛前上报
+            Calendar calendarStart = Calendar.getInstance();
+            calendarStart.setTime(dt.getTime());
+            calendarStart.set(Calendar.MONTH, 4 - 1);
+            calendarStart.set(Calendar.DAY_OF_MONTH, 1);
+            calendarStart.set(Calendar.HOUR_OF_DAY, 0);
+            calendarStart.set(Calendar.MINUTE, 0);
+            calendarStart.set(Calendar.SECOND, 0);
+            Calendar calendarEnd = Calendar.getInstance();
+            calendarEnd.setTime(dt.getTime());
+            calendarEnd.set(Calendar.MONTH, 6 - 1);
+            calendarEnd.set(Calendar.DAY_OF_MONTH, 1);
+            calendarEnd.set(Calendar.HOUR_OF_DAY, 0);
+            calendarEnd.set(Calendar.MINUTE, 0);
+            calendarEnd.set(Calendar.SECOND, 0);
+            if (dt.after(calendarStart) && dt.before(calendarEnd)) {
+                infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionBeforeRainReports());
+            }
+            //汛中第一次上报
+            calendarStart.setTime(dt.getTime());
+            calendarStart.set(Calendar.MONTH, 6 - 1);
+            calendarStart.set(Calendar.DAY_OF_MONTH, 1);
+            calendarStart.set(Calendar.HOUR_OF_DAY, 0);
+            calendarStart.set(Calendar.MINUTE, 0);
+            calendarStart.set(Calendar.SECOND, 0);
+            calendarEnd.setTime(dt.getTime());
+            calendarEnd.set(Calendar.MONTH, 8 - 1);
+            calendarEnd.set(Calendar.DAY_OF_MONTH, 15);
+            calendarEnd.set(Calendar.HOUR_OF_DAY, 0);
+            calendarEnd.set(Calendar.MINUTE, 0);
+            calendarEnd.set(Calendar.SECOND, 0);
+            if (dt.after(calendarStart) && dt.before(calendarEnd)) {
+                infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainFirstReports());
+            }
+            //汛中第二次上报
+            calendarStart.setTime(dt.getTime());
+            calendarStart.set(Calendar.MONTH, 8 - 1);
+            calendarStart.set(Calendar.DAY_OF_MONTH, 15);
+            calendarStart.set(Calendar.HOUR_OF_DAY, 0);
+            calendarStart.set(Calendar.MINUTE, 0);
+            calendarStart.set(Calendar.SECOND, 0);
+            calendarEnd.setTime(dt.getTime());
+            calendarEnd.set(Calendar.MONTH, 10 - 1);
+            calendarEnd.set(Calendar.DAY_OF_MONTH, 1);
+            calendarEnd.set(Calendar.HOUR_OF_DAY, 0);
+            calendarEnd.set(Calendar.MINUTE, 0);
+            calendarEnd.set(Calendar.SECOND, 0);
+            if (dt.after(calendarStart) && dt.before(calendarEnd)) {
+                infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainSecondReports());
+            }
+        }
+        inspectionReportDTO = new EquipmentInspectionReportDTO();
+        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);
+        NoticeViewEntity entity = noticeViewService.getOne(noticewrapper);
+        NoticeDTO noticeDTO = new NoticeDTO();
+        if (null != entity) {
+            noticeDTO.setViewDate(entity.getViewTime());
+        }
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            noticeDTO.setCategory(0);
+        } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+            //盟市查看本部门通知,以及自治区公开的通知
+            noticeDTO.setCategory(1);
+        } else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+            //运维公司查看本部门通知,以及盟市公开的通知
+            noticeDTO.setCategory(2);
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            noticeDTO.setCategory(3);
+        }
+        count = noticeService.unviewNoticeCount(noticeDTO);
+        if (count > 0) {
+            infoVO.setHasNewNotice(true);
+            infoVO.setNewNoticeCount(count);
+        } else {
+            infoVO.setHasNewNotice(false);
+            infoVO.setNewNoticeCount(0L);
+        }
+        return R.data(infoVO);
+    }
+
+    @GetMapping("/rtu/status/count/info")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情")
+    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())) {
+            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;
+                }
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+            wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+            DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+            if (Func.notNull(deptRegionEntity)) {
+                adCode = deptRegionEntity.getAdcd();
+            }
+        }
+        if (Func.isNull(adCode)) {
+            return R.fail("系统错误");
+        }
+        RtuStatusCountInfoVO infoVO = new RtuStatusCountInfoVO();
+        //测站数量
+        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);
+        return R.data(infoVO);
+    }
+
+    @GetMapping("/rtu/checkorder/count/info")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情")
+    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())) {
+            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;
+                }
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+            wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+            DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+            if (Func.notNull(deptRegionEntity)) {
+                adCode = deptRegionEntity.getAdcd();
+            }
+        }
+        if (Func.isNull(adCode)) {
+            return R.fail("系统错误");
+        }
+        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);
+        //未确认任务
+        checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
+        count = checkOrderService.orderCount(checkOrderInfoDTO);
+        infoVO.setUnconfirmOrderCount(count);
+        //处理中任务
+        checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+        checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+        DictInfoEntity biz = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_CONFIRM.getCode());
+        if (biz != null) {
+            checkOrderInfoDTO.setOrderStatusKey(biz.getId());
+        }
+        Long unCloseOrderCount = checkOrderService.reportCount(checkOrderInfoDTO);
+        infoVO.setProcessCheckOrderCount(unCloseOrderCount);
+        //已处理任务数
+        checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+        checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+        DictInfoEntity dictInfoEntity = dictService.getDict(DictBusinessConstant.ORDER_STATUS_CODE, OrderStatusEnum.STATUS_PROCESS.getCode());
+        if (dictInfoEntity != null) {
+            checkOrderInfoDTO.setOrderStatusKey(dictInfoEntity.getId());
+        }
+        Long reports = checkOrderService.reportCount(checkOrderInfoDTO);
+        infoVO.setReportOrder(reports);
+        checkOrderInfoDTO.setOrderConfirm(OrderConfirmEnum.ACTIVE_CREATE.getCode());
+        checkOrderInfoDTO.setOrderClose(OrderCloseEnum.ACTIVE_OPEN.getCode());
+        List<CheckOrderInfoVO> orderList = checkOrderService.allOrders(checkOrderInfoDTO);
+        if (null != orderList && orderList.size() > 0) {
+            long delayTime = 120;
+            LambdaQueryWrapper<CheckOrderSettingEntity> wrapper = Wrappers.<CheckOrderSettingEntity>query().lambda();
+            wrapper.eq(CheckOrderSettingEntity::getIsDeleted, 0);
+            List<CheckOrderSettingEntity> list = checkOrderSettingService.list(wrapper);
+            if (null != list && list.size() > 0) {
+                delayTime = list.get(0).getOrderComfireDelayTime();
+            }
+            long delayCount = 0;
+            Date dt = new Date();
+            for (CheckOrderInfoVO checkOrderInfoVO : orderList) {
+                Duration duration = Func.between(checkOrderInfoVO.getCreateTime(), dt);
+                long second = duration.getSeconds();
+                if (second > 0) {
+                    second = second / 60L;
+                    if (second > delayTime) {
+                        delayCount += 1;
+                    }
+                }
+            }
+            infoVO.setDelayComfireOrders(delayCount);
+        } else {
+            infoVO.setDelayComfireOrders(0L);
+        }
+        //我的任务
+        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);
+        return R.data(infoVO);
+    }
+
+    @GetMapping("/rtu/inspectionreport/count/info")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情")
+    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())) {
+            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;
+                }
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+            wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+            DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+            if (Func.notNull(deptRegionEntity)) {
+                adCode = deptRegionEntity.getAdcd();
+            }
+        }
+        if (Func.isNull(adCode)) {
+            return R.fail("系统错误");
+        }
+        RtuInfoDTO rtuInfoDTO = new RtuInfoDTO();
+        rtuInfoDTO.setAdCode(adCode);
+        rtuInfoDTO.setExcludeCode(excludeCode);
+        RtuInspectionReportCountInfoVO infoVO = new RtuInspectionReportCountInfoVO();
+        long count = rtuBaseInfoService.rtuCount(rtuInfoDTO);
+        infoVO.setEquipmentInspectionCount(count);
+        EquipmentInspectionReportDTO inspectionReportDTO = new EquipmentInspectionReportDTO();
+        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);
+        inspectionReportDTO.setInspectionYearStartDate(calendar.getTime());
+        calendar.add(Calendar.YEAR, 1);
+        inspectionReportDTO.setInspectionYearEndDate(calendar.getTime());
+        inspectionReportDTO.setRainSeasonKind(1);
+        inspectionReportDTO.setAdCode(adCode);
+        inspectionReportDTO.setExcludeCode(excludeCode);
+        count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
+        infoVO.setEquipmentInspectionBeforeRainReports(count);
+        inspectionReportDTO.setRainSeasonKind(2);
+        count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
+        infoVO.setEquipmentInspectionRainFirstReports(count);
+        inspectionReportDTO.setRainSeasonKind(3);
+        count = inspectionReportService.equipmentInspectionReportCount(inspectionReportDTO);
+        infoVO.setEquipmentInspectionRainSecondReports(count);
+        //处理汛期类别
+        LambdaQueryWrapper<EquipmentInspectionPlanEntity> wrapper = Wrappers.<EquipmentInspectionPlanEntity>query().lambda();
+        wrapper.eq(EquipmentInspectionPlanEntity::getIsDeleted, 0);
+        wrapper.orderByDesc(EquipmentInspectionPlanEntity::getCreateTime);
+        List<EquipmentInspectionPlanEntity> list = planService.list(wrapper);
+        if (null != list && list.size() > 0) {
+            EquipmentInspectionPlanEntity entity = list.get(0);
+            Calendar dt = Calendar.getInstance();
+            dt.setTime(new Date());
+            Calendar calendarStart = Calendar.getInstance();
+            Calendar calendarEnd = Calendar.getInstance();
+            //汛前上报
+            calendarStart.setTime(entity.getBeforeRainSeasonStartTime());
+            calendarEnd.setTime(entity.getBeforeRainSeasonEndTime());
+            if ((dt.getTime().getTime() / 1000 == calendarStart.getTime().getTime() / 1000 || dt.after(calendarStart)) && dt.before(calendarEnd)) {
+                infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionBeforeRainReports());
+            }
+            //汛中第一次上报
+            calendarStart.setTime(entity.getRainSeasonFirstStartTime());
+            calendarEnd.setTime(entity.getRainSeasonFirstEndTime());
+            if ((dt.getTime().getTime() / 1000 == calendarStart.getTime().getTime() / 1000 || dt.after(calendarStart)) && dt.before(calendarEnd)) {
+                infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainFirstReports());
+            }
+            //汛中第二次上报
+            calendarStart.setTime(entity.getRainSeasonSecondStartTime());
+            calendarEnd.setTime(entity.getRainSeasonSecondEndTime());
+            if ((dt.getTime().getTime() / 1000 == calendarStart.getTime().getTime() / 1000 || dt.after(calendarStart)) && dt.before(calendarEnd)) {
+                infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainSecondReports());
+            }
+        } else {
+            Calendar dt = Calendar.getInstance();
+            dt.setTime(new Date());
+            //汛前上报
+            Calendar calendarStart = Calendar.getInstance();
+            calendarStart.setTime(dt.getTime());
+            calendarStart.set(Calendar.MONTH, 4 - 1);
+            calendarStart.set(Calendar.DAY_OF_MONTH, 1);
+            calendarStart.set(Calendar.HOUR_OF_DAY, 0);
+            calendarStart.set(Calendar.MINUTE, 0);
+            calendarStart.set(Calendar.SECOND, 0);
+            Calendar calendarEnd = Calendar.getInstance();
+            calendarEnd.setTime(dt.getTime());
+            calendarEnd.set(Calendar.MONTH, 6 - 1);
+            calendarEnd.set(Calendar.DAY_OF_MONTH, 1);
+            calendarEnd.set(Calendar.HOUR_OF_DAY, 0);
+            calendarEnd.set(Calendar.MINUTE, 0);
+            calendarEnd.set(Calendar.SECOND, 0);
+            if (dt.after(calendarStart) && dt.before(calendarEnd)) {
+                infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionBeforeRainReports());
+            }
+            //汛中第一次上报
+            calendarStart.setTime(dt.getTime());
+            calendarStart.set(Calendar.MONTH, 6 - 1);
+            calendarStart.set(Calendar.DAY_OF_MONTH, 1);
+            calendarStart.set(Calendar.HOUR_OF_DAY, 0);
+            calendarStart.set(Calendar.MINUTE, 0);
+            calendarStart.set(Calendar.SECOND, 0);
+            calendarEnd.setTime(dt.getTime());
+            calendarEnd.set(Calendar.MONTH, 8 - 1);
+            calendarEnd.set(Calendar.DAY_OF_MONTH, 15);
+            calendarEnd.set(Calendar.HOUR_OF_DAY, 0);
+            calendarEnd.set(Calendar.MINUTE, 0);
+            calendarEnd.set(Calendar.SECOND, 0);
+            if (dt.after(calendarStart) && dt.before(calendarEnd)) {
+                infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainFirstReports());
+            }
+            //汛中第二次上报
+            calendarStart.setTime(dt.getTime());
+            calendarStart.set(Calendar.MONTH, 8 - 1);
+            calendarStart.set(Calendar.DAY_OF_MONTH, 15);
+            calendarStart.set(Calendar.HOUR_OF_DAY, 0);
+            calendarStart.set(Calendar.MINUTE, 0);
+            calendarStart.set(Calendar.SECOND, 0);
+            calendarEnd.setTime(dt.getTime());
+            calendarEnd.set(Calendar.MONTH, 10 - 1);
+            calendarEnd.set(Calendar.DAY_OF_MONTH, 1);
+            calendarEnd.set(Calendar.HOUR_OF_DAY, 0);
+            calendarEnd.set(Calendar.MINUTE, 0);
+            calendarEnd.set(Calendar.SECOND, 0);
+            if (dt.after(calendarStart) && dt.before(calendarEnd)) {
+                infoVO.setEquipmentInspectionRainCount(infoVO.getEquipmentInspectionCount() - infoVO.getEquipmentInspectionRainSecondReports());
+            }
+        }
+        return R.data(infoVO);
+    }
+
+
+    @GetMapping("/rtu/up/count/info")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情")
+    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())) {
+            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;
+                }
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+            wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+            DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+            if (Func.notNull(deptRegionEntity)) {
+                adCode = deptRegionEntity.getAdcd();
+            }
+        }
+        if (Func.isNull(adCode)) {
+            return R.fail("系统错误");
+        }
+        RtuInfoDTO dto = new RtuInfoDTO();
+        dto.setAdCode(adCode);
+        dto.setExcludeCode(excludeCode);
+        RtuUpDataCountInfoVO infoVO = new RtuUpDataCountInfoVO();
+        long count = rtuBaseInfoService.rtuRainCount(dto);
+        infoVO.setRainRtuCount(count);
+        count = rtuBaseInfoService.rtuRiverCount(dto);
+        infoVO.setRiverRtuCount(count);
+        count = rtuBaseInfoService.rtuGroundCount(dto);
+        infoVO.setGroundRtuCount(count);
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
+        Date endTime = calendar.getTime();
+        calendar.add(Calendar.DAY_OF_MONTH, -1);
+        Date beiganTime = calendar.getTime();
+        //测站上报统计
+        RtuDataRainDTO rainDTO = new RtuDataRainDTO();
+        rainDTO.setAdCode(adCode);
+        rainDTO.setBeginTime(beiganTime);
+        rainDTO.setEndTime(endTime);
+        rainDTO.setExcludeCode(excludeCode);
+        count = rainStoreService.rtuUpDataCount(rainDTO);
+        infoVO.setRainUpDataCount(count);
+        RtuDataWaterLevelDTO waterLevelDTO = new RtuDataWaterLevelDTO();
+        waterLevelDTO.setAdCode(adCode);
+        waterLevelDTO.setBeginTime(beiganTime);
+        waterLevelDTO.setEndTime(endTime);
+        waterLevelDTO.setExcludeCode(excludeCode);
+        count = waterLevelStoreService.rtuUpDataCount(waterLevelDTO);
+        infoVO.setRiverUpDataCount(count);
+        RtuDataGroundDTO groundDTO = new RtuDataGroundDTO();
+        groundDTO.setAdCode(adCode);
+        groundDTO.setBeginTime(beiganTime);
+        groundDTO.setEndTime(endTime);
+        groundDTO.setExcludeCode(excludeCode);
+        count = groundStoreService.rtuUpDataCount(groundDTO);
+        infoVO.setGroundUpDataCount(count);
+        return R.data(infoVO);
+    }
+
+    @GetMapping("/warn/count/list")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "预警统计列表", notes = "")
+    public R<List<WarnCountInfoVO>> warnCountInfoList() {
+        BladeUser user = AuthUtil.getUser();
+        if (!BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            return R.data(null);
+        }
+        List<WarnCountInfoVO> list = new LinkedList<>();
+        //盟市统计
+        LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
+        wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
+        List<Dept> deptList = this.deptService.list(wrapper);
+        for (Dept dept : deptList) {
+            WarnCountInfoVO vo = new WarnCountInfoVO();
+            //盟市名称
+            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);
+            int excludeCode = 0;
+            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;
+            }
+            //测站数量
+            RtuInfoDTO rtuInfoDTO = new RtuInfoDTO();
+            rtuInfoDTO.setExcludeCode(excludeCode);
+            rtuInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            Long count = rtuBaseInfoService.rtuCount(rtuInfoDTO);
+            vo.setRtus(count.intValue());
+            //预警数量
+            RtuWarningInfoDTO dto = new RtuWarningInfoDTO();
+            dto.setExcludeCode(excludeCode);
+            dto.setAdCode(deptRegionEntity.getAdcd());
+            long warningRtuCount = rtuWarningService.warningRtuCount(dto);
+            //离线数量
+            count = rtuWarningService.warningOfflineRtuCount(dto);
+            vo.setOfflineRtus(count.intValue());
+            //其他异常
+            vo.setOtherWarnRtus((int) (warningRtuCount - count));
+            list.add(vo);
+        }
+        return R.data(list);
+    }
+
+    @GetMapping("/rtu/warn/kind/count/info")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情")
+    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())) {
+            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;
+                }
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+            wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+            DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+            if (Func.notNull(deptRegionEntity)) {
+                adCode = deptRegionEntity.getAdcd();
+            }
+        }
+        if (Func.isNull(adCode)) {
+            return R.fail("系统错误");
+        }
+        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);
+        infoVO.setClockWarn(count.intValue());
+        //离线数量
+        count = rtuWarningService.warningOfflineRtuCount(dto);
+        infoVO.setOfflineRtus(count.intValue());
+        //雨量站小时漏报
+        count = rtuWarningService.warningRainHourMissOutRtuCount(dto);
+        infoVO.setRainUpMissOut(count.intValue());
+        //水位站小时漏报
+        count = rtuWarningService.warningRiverHourMissOutRtuCount(dto);
+        infoVO.setRiverUpMissOut(count.intValue());
+        //5分钟延时
+        count = rtuWarningService.warningMinUpDelayRtuCount(dto);
+        infoVO.setMinUpDelay(count.intValue());
+        //雨量站小时延时
+        count = rtuWarningService.warningRainHourUpDelayRtuCount(dto);
+        infoVO.setRainHourUpDelay(count.intValue());
+        //水位站小时延时
+        count = rtuWarningService.warningRiverHourUpDelayRtuCount(dto);
+        infoVO.setRiverHourUpDelay(count.intValue());
+        //异常值
+        count = rtuWarningService.warningOutlierValueRtuCount(dto);
+        infoVO.setOutlierValue(count.intValue());
+        return R.data(infoVO);
+    }
 }

+ 259 - 249
src/main/java/org/springblade/modules/business/notice/controller/NoticeController.java

@@ -66,267 +66,277 @@ import java.util.Map;
 @Api(value = "通知公告", tags = "通知公告")
 public class NoticeController extends BladeController {
 
-	private final INoticeService noticeService;
-	private final INoticeViewService noticeViewService;
-	private final INoticeAttachService noticeAttachService;
-	private final IAttachService attachService;
-	private final OssBuilder ossBuilder;
+    private final INoticeService noticeService;
+    private final INoticeViewService noticeViewService;
+    private final INoticeAttachService noticeAttachService;
+    private final IAttachService attachService;
+    private final OssBuilder ossBuilder;
 
-	@PostMapping("/test")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "修改", notes = "传入notice")
-	public R update(@RequestBody Map<String, Object> data) {
-		log.info(data.toString());
-		return R.success("ok");
-	}
+    @PostMapping("/test")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "修改", notes = "传入notice")
+    public R update(@RequestBody Map<String, Object> data) {
+        log.info(data.toString());
+        return R.success("ok");
+    }
 
-	/**
-	 * 列表
-	 */
-	@GetMapping("/list")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "title", value = "公告标题", paramType = "query", dataType = "string")
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页", notes = "传入notice")
-	public R<List<NoticeVO>> list(@ApiIgnore NoticeDTO notice) {
-		BladeUser user = AuthUtil.getUser();
-		notice.setCreateDept(Func.toLong(user.getDeptId()));
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			notice.setCategory(0);
-		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
-			//盟市查看本部门通知,以及自治区公开的通知
-			notice.setCategory(1);
-		} else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
-			//运维公司查看本部门通知,以及盟市公开的通知
-			notice.setCategory(2);
-		}
-		List<NoticeVO> pages = noticeService.selectList(notice);
-		for (NoticeVO vo:pages){
-			NoticeWrapper.build().entityVO(vo);
-		}
-		return R.data(pages);
-	}
+    /**
+     * 列表
+     */
+    @GetMapping("/list")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "title", value = "公告标题", paramType = "query", dataType = "string")
+    })
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "分页", notes = "传入notice")
+    public R<List<NoticeVO>> list(@ApiIgnore NoticeDTO notice) {
+        BladeUser user = AuthUtil.getUser();
+        notice.setCreateDept(Func.toLong(user.getDeptId()));
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            notice.setCategory(0);
+        } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+            //盟市查看本部门通知,以及自治区公开的通知
+            notice.setCategory(1);
+        } else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+            //运维公司查看本部门通知,以及盟市公开的通知
+            notice.setCategory(2);
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            notice.setCategory(3);
+        }
+        List<NoticeVO> pages = noticeService.selectList(notice);
+        for (NoticeVO vo : pages) {
+            NoticeWrapper.build().entityVO(vo);
+        }
+        return R.data(pages);
+    }
 
-	/**
-	 * 多表联合查询自定义分页
-	 */
-	@GetMapping("/page")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "title", value = "公告标题", paramType = "query", dataType = "string")
-	})
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "分页", notes = "传入实体类NoticeDTO")
-	public R<IPage<NoticeVO>> page(@ApiIgnore NoticeDTO notice, Query query) {
-		BladeUser user = AuthUtil.getUser();
-		notice.setCreateDept(Func.toLong(user.getDeptId()));
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			notice.setCategory(0);
-		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
-			//盟市查看本部门通知,以及自治区公开的通知
-			notice.setCategory(1);
-		} else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
-			//运维公司查看本部门通知,以及盟市公开的通知
-			notice.setCategory(2);
-		}
-		IPage<NoticeVO> pages = noticeService.selectPage(Condition.getPage(query), notice);
-		List<NoticeVO> list = pages.getRecords();
-		for (NoticeVO vo:list){
-			NoticeWrapper.build().entityVO(vo);
-		}
-		return R.data(pages);
-	}
+    /**
+     * 多表联合查询自定义分页
+     */
+    @GetMapping("/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "title", value = "公告标题", paramType = "query", dataType = "string")
+    })
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "分页", notes = "传入实体类NoticeDTO")
+    public R<IPage<NoticeVO>> page(@ApiIgnore NoticeDTO notice, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        notice.setCreateDept(Func.toLong(user.getDeptId()));
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            notice.setCategory(0);
+        } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+            //盟市查看本部门通知,以及自治区公开的通知
+            notice.setCategory(1);
+        } else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+            //运维公司查看本部门通知,以及盟市公开的通知
+            notice.setCategory(2);
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            notice.setCategory(3);
+        }
+        IPage<NoticeVO> pages = noticeService.selectPage(Condition.getPage(query), notice);
+        List<NoticeVO> list = pages.getRecords();
+        for (NoticeVO vo : list) {
+            NoticeWrapper.build().entityVO(vo);
+        }
+        return R.data(pages);
+    }
 
-	@GetMapping("/attach/page")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "groupId", value = "公告ID", paramType = "query", dataType = "long"),
-	})
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "分页", notes = "传入notice")
-	public R<IPage<NoticeAttachVO>> attachPage(@ApiIgnore NoticeAttachEntity notice, Query query) {
-		IPage<NoticeAttachVO> pages = noticeAttachService.selectPage(Condition.getPage(query), notice);
-		return R.data(pages);
-	}
+    @GetMapping("/attach/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "groupId", value = "公告ID", paramType = "query", dataType = "long"),
+    })
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "分页", notes = "传入notice")
+    public R<IPage<NoticeAttachVO>> attachPage(@ApiIgnore NoticeAttachEntity notice, Query query) {
+        IPage<NoticeAttachVO> pages = noticeAttachService.selectPage(Condition.getPage(query), notice);
+        return R.data(pages);
+    }
 
-	/**
-	 * 详情
-	 */
-	@GetMapping("/detail")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情", notes = "传入notice")
-	public R<NoticeVO> detail(NoticeDTO noticeEntity) {
-		if (null == noticeEntity.getId()){
-			return R.fail("参数错误!");
-		}
-		NoticeEntity detail = noticeService.getById(noticeEntity.getId());
-		return R.data(NoticeWrapper.build().entityVO(detail));
-	}
+    /**
+     * 详情
+     */
+    @GetMapping("/detail")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情", notes = "传入notice")
+    public R<NoticeVO> detail(NoticeDTO noticeEntity) {
+        if (null == noticeEntity.getId()) {
+            return R.fail("参数错误!");
+        }
+        NoticeEntity detail = noticeService.getById(noticeEntity.getId());
+        return R.data(NoticeWrapper.build().entityVO(detail));
+    }
 
-	/**
-	 * 新增
-	 */
-	@PostMapping("/save")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "新增", notes = "传入notice")
-	public R save(@RequestBody NoticeDTO noticeEntity) {
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			noticeEntity.setCategory(0);
-		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
-			//盟市查看本部门通知,以及自治区公开的通知
-			noticeEntity.setCategory(1);
-		} else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
-			//运维公司查看本部门通知,以及盟市公开的通知
-			noticeEntity.setCategory(2);
-			noticeEntity.setPublicState(0);
-		}
-		if (noticeService.save(noticeEntity)) {
-			if (noticeEntity.getAttach() != null && noticeEntity.getAttach().size() > 0) {
-				for (Map<String, Object> att : noticeEntity.getAttach()) {
-					Attach attach = new Attach();
-					attach.setName((String) att.get("url"));
-					attach.setOriginalName((String) att.get("name"));
-					attachService.save(attach);
-					NoticeAttachEntity attachEntity = new NoticeAttachEntity();
-					attachEntity.setAttachId(attach.getId());
-					attachEntity.setGroupId(noticeEntity.getId());
-					noticeAttachService.save(attachEntity);
-				}
-			}
-		}
-		return R.status(true);
-	}
+    /**
+     * 新增
+     */
+    @PostMapping("/save")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "新增", notes = "传入notice")
+    public R save(@RequestBody NoticeDTO noticeEntity) {
+        BladeUser user = AuthUtil.getUser();
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            noticeEntity.setCategory(0);
+        } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+            //盟市查看本部门通知,以及自治区公开的通知
+            noticeEntity.setCategory(1);
+        } else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+            //运维公司查看本部门通知,以及盟市公开的通知
+            noticeEntity.setCategory(2);
+            noticeEntity.setPublicState(0);
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            noticeEntity.setCategory(3);
+            noticeEntity.setPublicState(0);
+        }
+        if (noticeService.save(noticeEntity)) {
+            if (noticeEntity.getAttach() != null && noticeEntity.getAttach().size() > 0) {
+                for (Map<String, Object> att : noticeEntity.getAttach()) {
+                    Attach attach = new Attach();
+                    attach.setName((String) att.get("url"));
+                    attach.setOriginalName((String) att.get("name"));
+                    attachService.save(attach);
+                    NoticeAttachEntity attachEntity = new NoticeAttachEntity();
+                    attachEntity.setAttachId(attach.getId());
+                    attachEntity.setGroupId(noticeEntity.getId());
+                    noticeAttachService.save(attachEntity);
+                }
+            }
+        }
+        return R.status(true);
+    }
 
-	/**
-	 * 修改
-	 */
-	@PostMapping("/update")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "修改", notes = "传入notice")
-	public R update(@RequestBody NoticeEntity noticeEntity) {
-		return R.status(noticeService.updateById(noticeEntity));
-	}
+    /**
+     * 修改
+     */
+    @PostMapping("/update")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "修改", notes = "传入notice")
+    public R update(@RequestBody NoticeEntity noticeEntity) {
+        return R.status(noticeService.updateById(noticeEntity));
+    }
 
 
-	@PostMapping("/view")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "查阅")
-	public R userView() {
-		BladeUser user = AuthUtil.getUser();
-		LambdaQueryWrapper<NoticeViewEntity> wrapper = Wrappers.<NoticeViewEntity>query().lambda();
-		wrapper.eq(NoticeViewEntity::getCreateUser, user.getUserId());
-		wrapper.eq(NoticeViewEntity::getIsDeleted, 0);
-		NoticeViewEntity entity = noticeViewService.getOne(wrapper);
-		if (null != entity) {
-			entity.setViewTime(new Date());
-		} else {
-			entity = new NoticeViewEntity();
-			entity.setViewTime(new Date());
-		}
-		noticeViewService.saveOrUpdate(entity);
-		return R.success("OK");
-	}
+    @PostMapping("/view")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "查阅")
+    public R userView() {
+        BladeUser user = AuthUtil.getUser();
+        LambdaQueryWrapper<NoticeViewEntity> wrapper = Wrappers.<NoticeViewEntity>query().lambda();
+        wrapper.eq(NoticeViewEntity::getCreateUser, user.getUserId());
+        wrapper.eq(NoticeViewEntity::getIsDeleted, 0);
+        NoticeViewEntity entity = noticeViewService.getOne(wrapper);
+        if (null != entity) {
+            entity.setViewTime(new Date());
+        } else {
+            entity = new NoticeViewEntity();
+            entity.setViewTime(new Date());
+        }
+        noticeViewService.saveOrUpdate(entity);
+        return R.success("OK");
+    }
 
-	/**
-	 * 新增或修改
-	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "新增或修改", notes = "传入notice")
-	public R submit(@RequestBody NoticeEntity noticeEntity) {
-		return R.status(noticeService.saveOrUpdate(noticeEntity));
-	}
+    /**
+     * 新增或修改
+     */
+    @PostMapping("/submit")
+    @ApiOperationSupport(order = 6)
+    @ApiOperation(value = "新增或修改", notes = "传入notice")
+    public R submit(@RequestBody NoticeEntity noticeEntity) {
+        return R.status(noticeService.saveOrUpdate(noticeEntity));
+    }
 
-	/**
-	 * 删除
-	 */
-	@PostMapping("/remove")
-	@ApiOperationSupport(order = 7)
-	@ApiOperation(value = "逻辑删除", notes = "传入notice")
-	public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
-		BladeUser user = AuthUtil.getUser();
-		List<Long> list =Func.toLongList(ids);
-		for(Long id : list){
-			NoticeEntity noticeEntity=noticeService.getById(id);
-			if (noticeEntity.getCreateDept() != Func.toLong(user.getDeptId())){
-				return R.fail("只支持删除本部门创建的通知公告信息!");
-			}
-		}
-		boolean temp = noticeService.deleteLogic(Func.toLongList(ids));
-		return R.status(temp);
-	}
+    /**
+     * 删除
+     */
+    @PostMapping("/remove")
+    @ApiOperationSupport(order = 7)
+    @ApiOperation(value = "逻辑删除", notes = "传入notice")
+    public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+        BladeUser user = AuthUtil.getUser();
+        List<Long> list = Func.toLongList(ids);
+        for (Long id : list) {
+            NoticeEntity noticeEntity = noticeService.getById(id);
+            if (noticeEntity.getCreateDept() != Func.toLong(user.getDeptId())) {
+                return R.fail("只支持删除本部门创建的通知公告信息!");
+            }
+        }
+        boolean temp = noticeService.deleteLogic(Func.toLongList(ids));
+        return R.status(temp);
+    }
 
-	/**
-	 * 查询最新的数据
-	 */
-	@GetMapping("/last/list")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页")
-	public R<List<NoticeVO>> lastList(@RequestParam String limit) {
-		BladeUser user = AuthUtil.getUser();
-		NoticeDTO noticeDTO = new NoticeDTO();
-		noticeDTO.setCreateDept(Func.toLong(user.getDeptId()));
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			noticeDTO.setCategory(0);
-		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
-			//盟市查看本部门通知,以及自治区公开的通知
-			noticeDTO.setCategory(1);
-		} else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
-			//运维公司查看本部门通知,以及盟市公开的通知
-			noticeDTO.setCategory(2);
-		}
-		List<NoticeVO> pages = noticeService.selectList(noticeDTO);
-		if (Func.toLong(limit)>pages.size()){
-			for (NoticeVO vo:pages){
-				NoticeWrapper.build().entityVO(vo);
-			}
-			return R.data(pages);
-		}else{
-			List<NoticeVO> list = new LinkedList<>();
-			for(int i=0;i<Func.toInt(limit);i++){
-				NoticeVO entity=pages.get(i);
-				list.add(entity);
-				NoticeWrapper.build().entityVO(entity);
-			}
-			return R.data(list);
-		}
-	}
+    /**
+     * 查询最新的数据
+     */
+    @GetMapping("/last/list")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "分页")
+    public R<List<NoticeVO>> lastList(@RequestParam String limit) {
+        BladeUser user = AuthUtil.getUser();
+        NoticeDTO noticeDTO = new NoticeDTO();
+        noticeDTO.setCreateDept(Func.toLong(user.getDeptId()));
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            noticeDTO.setCategory(0);
+        } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+            //盟市查看本部门通知,以及自治区公开的通知
+            noticeDTO.setCategory(1);
+        } else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+            //运维公司查看本部门通知,以及盟市公开的通知
+            noticeDTO.setCategory(2);
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            noticeDTO.setCategory(3);
+        }
+        List<NoticeVO> pages = noticeService.selectList(noticeDTO);
+        if (Func.toLong(limit) > pages.size()) {
+            for (NoticeVO vo : pages) {
+                NoticeWrapper.build().entityVO(vo);
+            }
+            return R.data(pages);
+        } else {
+            List<NoticeVO> list = new LinkedList<>();
+            for (int i = 0; i < Func.toInt(limit); i++) {
+                NoticeVO entity = pages.get(i);
+                list.add(entity);
+                NoticeWrapper.build().entityVO(entity);
+            }
+            return R.data(list);
+        }
+    }
 
-	/**
-	 * 查询最新的数据
-	 */
-	@GetMapping("/today/list")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "当天通知公告")
-	public R<List<NoticeVO>> todayList() {
-		BladeUser user = AuthUtil.getUser();
-		NoticeDTO noticeDTO = new NoticeDTO();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			noticeDTO.setCategory(0);
-		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
-			//盟市查看本部门通知,以及自治区公开的通知
-			noticeDTO.setCategory(1);
-		} else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
-			//运维公司查看本部门通知,以及盟市公开的通知
-			noticeDTO.setCategory(2);
+    /**
+     * 查询最新的数据
+     */
+    @GetMapping("/today/list")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "当天通知公告")
+    public R<List<NoticeVO>> todayList() {
+        BladeUser user = AuthUtil.getUser();
+        NoticeDTO noticeDTO = new NoticeDTO();
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            noticeDTO.setCategory(0);
+        } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+            //盟市查看本部门通知,以及自治区公开的通知
+            noticeDTO.setCategory(1);
+        } else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+            //运维公司查看本部门通知,以及盟市公开的通知
+            noticeDTO.setCategory(2);
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            noticeDTO.setCategory(3);
+        }
+        Date date = new Date();
+        String dt = Func.formatDateTime(date);
+        noticeDTO.setViewDate(Func.parse(dt, ConcurrentDateFormat.of("yyyy-MM-dd")));
+        List<NoticeVO> pages = noticeService.selectList(noticeDTO);
+        for (NoticeVO vo : pages) {
+            NoticeWrapper.build().entityVO(vo);
+        }
+        return R.data(pages);
+    }
 
-		}
-		Date date = new Date();
-		String dt = Func.formatDateTime(date);
-		noticeDTO.setViewDate(Func.parse(dt, ConcurrentDateFormat.of("yyyy-MM-dd")));
-		List<NoticeVO> pages = noticeService.selectList(noticeDTO);
-		for (NoticeVO vo:pages){
-			NoticeWrapper.build().entityVO(vo);
-		}
-		return R.data(pages);
-	}
-
-	@ApiLog("附件上传")
-	@PostMapping(value = "/putFile")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "附件上传", notes = "")
-	public R putFile(MultipartFile file) {
-		BladeFile bladeFile = ossBuilder.template().putFile(file);
+    @ApiLog("附件上传")
+    @PostMapping(value = "/putFile")
+    @ApiOperationSupport(order = 6)
+    @ApiOperation(value = "附件上传", notes = "")
+    public R putFile(MultipartFile file) {
+        BladeFile bladeFile = ossBuilder.template().putFile(file);
 //		Attach attach = new Attach();
 //		attach.setName(bladeFile.getName());
 //		attach.setAttachSize(file.getSize());
@@ -338,6 +348,6 @@ public class NoticeController extends BladeController {
 //		attach.setOriginalName(bladeFile.getOriginalName());
 //		attachService.save(attach);
 //		bladeFile.setAttachId(attach.getId());
-		return R.data(bladeFile);
-	}
+        return R.data(bladeFile);
+    }
 }

+ 9 - 0
src/main/java/org/springblade/modules/business/notice/mapper/NoticeMapper.xml

@@ -40,6 +40,9 @@
         <if test="noticeDTO.category!=null and noticeDTO.category==2">
             and ((n.create_dept = #{noticeDTO.createDept} or (n.category = 1 and n.public_state=1)) or n.sys_msg=1)
         </if>
+        <if test="noticeDTO.category!=null and noticeDTO.category==3">
+            and ( (n.category = 1 and n.public_state=1) or n.sys_msg=1)
+        </if>
         <if test="noticeDTO.title!=null">
             and n.title like concat(concat('%', #{noticeDTO.title}), '%')
         </if>
@@ -66,6 +69,9 @@
         <if test="noticeDTO.category!=null and noticeDTO.category==2">
             and ((n.create_dept = #{noticeDTO.createDept} or (n.category = 1 and n.public_state=1)) or n.sys_msg=1)
         </if>
+        <if test="noticeDTO.category!=null and noticeDTO.category==3">
+            and ( (n.category = 1 and n.public_state=1) or n.sys_msg=1)
+        </if>
         <if test="noticeDTO.title!=null">
             and n.title like concat(concat('%', #{noticeDTO.title}), '%')
         </if>
@@ -91,6 +97,9 @@
         <if test="noticeDTO.category!=null and noticeDTO.category==2">
             and ((n.create_dept = #{noticeDTO.createDept} or (n.category = 1 and n.public_state=1)) or n.sys_msg=1)
         </if>
+        <if test="noticeDTO.category!=null and noticeDTO.category==3">
+            and ((n.create_dept = #{noticeDTO.createDept} or (n.category = 1 and n.public_state=1)) or n.sys_msg=1)
+        </if>
         <if test="noticeDTO.viewDate!=null">
             and n.release_time > #{noticeDTO.viewDate}
         </if>

+ 897 - 885
src/main/java/org/springblade/modules/business/rtumanage/controller/RtuManageController.java

@@ -84,889 +84,901 @@ import java.util.*;
 @Api(value = "测站设备管理工作台", tags = "测站设备管理工作台")
 public class RtuManageController extends BladeController {
 
-	private final IRtuManageService rtuManageService;
-	private final IRtuBaseInfoService rtuBaseInfoService;
-	private final IDictBizService dictBizService;
-	private final IDeptRegionService deptRegionService;
-	private final IRtuWarningService rtuWarningService;
-	private final IRtuCheckOrderService rtuCheckOrderService;
-	private final IRtuOrderProcessService rtuOrderProcessService;
-	private final IEquipmentInspectionReportService equipmentInspectionReportService;
-	private final IRegionInfoService regionService;
-	private final IDeptService deptService;
-
-
-	@Resource
-	private OssBuilder ossBuilder;
-
-	@Value("${export-config.workdir}")
-	private String exportConfigWorkDir;
-
-	@Value("${export-config.equipment-info-template}")
-	private String exportConfigTemplate;
-
-
-	/**
-	 * 分页
-	 */
-	@GetMapping("/list")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页")
-	public R<IPage<RtuStatusVO>> list(Query query) {
-		IPage<RtuStatusEntity> pages = rtuManageService.page(Condition.getPage(query));
-		return R.data(RtuManageWrapper.build().pageVO(pages));
-	}
-
-	/**
-	 * 多表联合查询自定义分页
-	 */
-	@GetMapping("/page")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "rtuKind", value = "测站类型", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "warnKind", value = "异常类型", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "分页", notes = "传入RtuInfoEntity")
-	public R<IPage<RtuStatusVO>> page(@ApiIgnore RtuInfoDTO rtuInfoDTO, Query query) {
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			if (rtuInfoDTO.getAdCode() == null) {
-				rtuInfoDTO.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 (rtuInfoDTO.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);
-				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())) {
-			rtuInfoDTO.setIsRiver(1);
-			//rtuInfoDTO.setIsRes(1);
-		} else if (rtuInfoDTO.getRtuKind() != null && "3".equals(rtuInfoDTO.getRtuKind())) {
-			rtuInfoDTO.setIsGround(1);
-		} else if (rtuInfoDTO.getRtuKind() != null && "4".equals(rtuInfoDTO.getRtuKind())) {
-			rtuInfoDTO.setIsVideo(1);
-		}
-		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 {
-			IPage<RtuStatusVO> pages = rtuManageService.selectPage(Condition.getPage(query), rtuInfoDTO);
-			List<RtuStatusVO> list = pages.getRecords();
-			for (RtuStatusVO vo : list) {
-				RtuManageWrapper.build().entityVO(vo);
-			}
-			return R.data(pages);
-		}
-	}
-
-	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) {
-				entity.setAdCity(rtuInfoEntity.getAdCity());
-			} else {
-				entity.setAdCity("");
-			}
-			if (rtuInfoEntity.getAdDist() != null) {
-				entity.setAdDist(rtuInfoEntity.getAdDist());
-			} else {
-				entity.setAdDist("");
-			}
-			if (rtuInfoEntity.getRtuName() != null) {
-				entity.setRtuName(rtuInfoEntity.getRtuName());
-			} else {
-				entity.setRtuName("");
-			}
-			entity.setRtuCode(rtuInfoEntity.getRtuCode());
-			String rtuKindDesc = null;
-			if (rtuInfoEntity.getIsRain() != null && rtuInfoEntity.getIsRes() != null && rtuInfoEntity.getIsRiver() != null && rtuInfoEntity.getIsGround() != null) {
-				if (rtuInfoEntity.getIsRain() == 1 && (rtuInfoEntity.getIsRes() == 1 || rtuInfoEntity.getIsRiver() == 1)) {
-					rtuKindDesc = "水位雨量一体站";
-				} else if (rtuInfoEntity.getIsRain() == 1 && rtuInfoEntity.getIsGround() == 1) {
-					rtuKindDesc = "雨量墒情一体站";
-				} else if (rtuInfoEntity.getIsRain() == 1) {
-					rtuKindDesc = "雨量站";
-				} else if (rtuInfoEntity.getIsRes() == 1 || rtuInfoEntity.getIsRiver() == 1) {
-					rtuKindDesc = "水位站";
-				} else if (rtuInfoEntity.getIsGround() == 1) {
-					rtuKindDesc = "墒情站";
-				}
-			}
-			if (rtuKindDesc != null) {
-				entity.setRtuKindDesc(rtuKindDesc);
-			} else {
-				entity.setRtuKindDesc("");
-			}
-			if (rtuInfoEntity.getLocationDesc() != null) {
-				entity.setLocationDesc(rtuInfoEntity.getLocationDesc());
-			} else {
-				entity.setLocationDesc("");
-			}
-			if (rtuInfoEntity.getLng() != null) {
-				entity.setLng(rtuInfoEntity.getLng());
-			} else {
-				entity.setLng("");
-			}
-			if (rtuInfoEntity.getLat() != null) {
-				entity.setLat(rtuInfoEntity.getLat());
-			} else {
-				entity.setLat("");
-			}
-			if (rtuInfoEntity.getManageCompany() != null) {
-				entity.setManageCompany(rtuInfoEntity.getManageCompany());
-			} else {
-				entity.setManageCompany("");
-			}
-			if (rtuInfoEntity.getRtuBrand() != null) {
-				entity.setRtuBrand(rtuInfoEntity.getRtuBrand());
-			} else {
-				entity.setRtuBrand("");
-			}
-			if (rtuInfoEntity.getRtuModel() != null) {
-				entity.setRtuModel(rtuInfoEntity.getRtuModel());
-			} else {
-				entity.setRtuModel("");
-			}
-			if (rtuInfoEntity.getRtuReplaceDate() != null) {
-				entity.setRtuReplaceDate(Func.formatDate(rtuInfoEntity.getRtuReplaceDate()));
-			} else {
-				entity.setRtuReplaceDate("");
-			}
-			if (rtuInfoEntity.getRtuName() != null) {
-				entity.setRtuName(rtuInfoEntity.getRtuName());
-			} else {
-				entity.setRtuName("");
-			}
-			if (rtuInfoEntity.getDatagramToSheng() != null) {
-				if (rtuInfoEntity.getDatagramToSheng() == 1) {
-					entity.setDatagramToSheng("是");
-				} else {
-					entity.setDatagramToSheng("否");
-				}
-			} else {
-				entity.setDatagramToSheng("");
-			}
-			if (rtuInfoEntity.getDatagramToShi() != null) {
-				if (rtuInfoEntity.getDatagramToShi() == 1) {
-					entity.setDatagramToShi("是");
-				} else {
-					entity.setDatagramToShi("否");
-				}
-			} else {
-				entity.setDatagramToShi("");
-			}
-			if (rtuInfoEntity.getDatagramToQu() != null) {
-				if (rtuInfoEntity.getDatagramToQu() == 1) {
-					entity.setDatagramToQu("是");
-				} else {
-					entity.setDatagramToQu("否");
-				}
-			} else {
-				entity.setDatagramToQu("");
-			}
-			if (rtuInfoEntity.getRainSensorBrand() != null) {
-				entity.setRainSensorBrand(rtuInfoEntity.getRainSensorBrand());
-			} else {
-				entity.setRainSensorBrand("");
-			}
-			if (rtuInfoEntity.getRainSensorModel() != null) {
-				entity.setRainSensorModel(rtuInfoEntity.getRainSensorModel());
-			} else {
-				entity.setRainSensorModel("");
-			}
-			if (rtuInfoEntity.getRainSensorReplaceDate() != null) {
-				entity.setRainSensorReplaceDate(Func.formatDate(rtuInfoEntity.getRainSensorReplaceDate()));
-			} else {
-				entity.setRainSensorReplaceDate("");
-			}
-			if (rtuInfoEntity.getWaterSensorType() != null) {
-				DictBiz dictBiz = dictBizService.getById(rtuInfoEntity.getWaterSensorType());
-				if (null != dictBiz) {
-					entity.setWaterSensorType(dictBiz.getDictValue());
-				}
-			} else {
-				entity.setWaterSensorType("");
-			}
-			if (rtuInfoEntity.getWaterSensorBrand() != null) {
-				entity.setWaterSensorBrand(rtuInfoEntity.getWaterSensorBrand());
-			} else {
-				entity.setWaterSensorBrand("");
-			}
-			if (rtuInfoEntity.getWaterSensorModel() != null) {
-				entity.setWaterSensorModel(rtuInfoEntity.getWaterSensorModel());
-			} else {
-				entity.setWaterSensorModel("");
-			}
-			if (rtuInfoEntity.getWaterSensorReplaceDate() != null) {
-				entity.setWaterSensorReplaceDate(Func.formatDate(rtuInfoEntity.getWaterSensorReplaceDate()));
-			} else {
-				entity.setWaterSensorReplaceDate("");
-			}
-			if (rtuInfoEntity.getGroundSensorType() != null) {
-				DictBiz dictBiz = dictBizService.getById(rtuInfoEntity.getGroundSensorType());
-				if (null != dictBiz) {
-					entity.setGroundSensorType(dictBiz.getDictValue());
-				}
-			} else {
-				entity.setGroundSensorType("");
-			}
-			if (rtuInfoEntity.getGroundSensorBrand() != null) {
-				entity.setGroundSensorBrand(rtuInfoEntity.getGroundSensorBrand());
-			} else {
-				entity.setGroundSensorBrand("");
-			}
-			if (rtuInfoEntity.getGroundSensorModel() != null) {
-				entity.setGroundSensorModel(rtuInfoEntity.getGroundSensorModel());
-			} else {
-				entity.setGroundSensorModel("");
-			}
-			if (rtuInfoEntity.getGroundSensorReplaceDate() != null) {
-				entity.setGroundSensorReplaceDate(Func.formatDate(rtuInfoEntity.getGroundSensorReplaceDate()));
-			} else {
-				entity.setGroundSensorReplaceDate("");
-			}
-			if (rtuInfoEntity.getBatteryModel() != null) {
-				entity.setBatteryModel(rtuInfoEntity.getBatteryModel());
-			} else {
-				entity.setBatteryModel("");
-			}
-			if (rtuInfoEntity.getBatteryReplaceDate() != null) {
-				entity.setBatteryReplaceDate(Func.formatDate(rtuInfoEntity.getBatteryReplaceDate()));
-			} else {
-				entity.setBatteryReplaceDate("");
-			}
-			if (rtuInfoEntity.getSunPowerModel() != null) {
-				entity.setSunPowerModel(rtuInfoEntity.getSunPowerModel());
-			} else {
-				entity.setSunPowerModel("");
-			}
-			if (rtuInfoEntity.getNetworkSimId() != null) {
-				entity.setNetworkSimId(rtuInfoEntity.getNetworkSimId());
-			} else {
-				entity.setNetworkSimId("");
-			}
-			if (rtuInfoEntity.getNetworkPayer() != null) {
-				entity.setNetworkPayer(rtuInfoEntity.getNetworkPayer());
-			} else {
-				entity.setNetworkPayer("");
-			}
-			if (rtuInfoEntity.getNetworkPayEndDate() != null) {
-				entity.setNetworkPayEndDate(Func.formatDate(rtuInfoEntity.getNetworkPayEndDate()));
-			} else {
-				entity.setNetworkPayEndDate("");
-			}
-			if (rtuInfoEntity.getIsSatellite() != null) {
-				if (rtuInfoEntity.getIsSatellite() == 1) {
-					entity.setIsSatellite("是");
-				} else {
-					entity.setIsSatellite("否");
-				}
-			} else {
-				entity.setIsSatellite("");
-			}
-			if (rtuInfoEntity.getSatelliteModel() != null) {
-				DictBiz dictBiz = dictBizService.getById(rtuInfoEntity.getSatelliteModel());
-				if (dictBiz != null) {
-					entity.setSatelliteModel(dictBiz.getDictValue());
-				}
-			} else {
-				entity.setSatelliteModel("");
-			}
-			if (rtuInfoEntity.getRemark() != null) {
-				entity.setRemark(rtuInfoEntity.getRemark());
-			} else {
-				entity.setRemark("");
-			}
-			targetList.add(entity);
-			index += 1;
-		}
-	}
-
-	@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();
-		excelWriter.write(list, writeSheet);
-		excelWriter.finish();
-		try {
-			FileInputStream fileInputStream = new FileInputStream(new File(outpath));
-			BladeFile bladeFile = ossBuilder.template().putFile(outFileName, fileInputStream);
-			String ossPath = bladeFile.getName();
-			String p = bladeFile.getDomain();
-			log.info(ossPath);
-			log.info(p);
-			data.put("name", ossPath);
-			data.put("url", ossPath);
-			data.put("filename", rtuInfoDTO.getAdName());
-			data.put("status", 1);
-		} catch (FileNotFoundException e) {
-			e.printStackTrace();
-		}
-		return R.data(data);
-	}
-
-	/**
-	 * 分页
-	 */
-	@GetMapping("/count")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "按行政区划统计测站信息")
-	public R<Map<String, Object>> countInfo(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
-		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);
-		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);
-	}
-
-
-	/**
-	 * 测站RTU更换历史
-	 */
-	@GetMapping("/rtu/replace/list")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "不分页")
-	public R<List<RtuReplaceInfoVO>> rtuReplacelist(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
-		List<RtuReplaceInfoVO> replaceInfoVOList = new LinkedList<>();
-		LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
-		wrapper.eq(RtuInfoEntity::getIsDeleted, 0);
-		wrapper.eq(RtuInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
-		RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(wrapper);
-		if (null != rtuInfoEntity) {
-			LambdaQueryWrapper<CheckOrderInfoEntity> orderwrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
-			orderwrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
-			orderwrapper.eq(CheckOrderInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
-
-			List<CheckOrderInfoEntity> checkOrderInfoEntityList = rtuCheckOrderService.list(orderwrapper);
-			for (CheckOrderInfoEntity checkOrderInfoEntity : checkOrderInfoEntityList) {
-
-				CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
-				checkOrderInfoDTO.setIsDeleted(0);
-				checkOrderInfoDTO.setId(checkOrderInfoEntity.getId());
-
-				List<OrderProcessInfoVO> orderProcessInfoEntityList = rtuOrderProcessService.selectList(checkOrderInfoDTO);
-				for (OrderProcessInfoVO orderProcessInfoEntity : orderProcessInfoEntityList) {
-					DictBiz biz = dictBizService.getById(orderProcessInfoEntity.getOrderStatusKey());
-					if (biz.getDictKey().equals(OrderStatusEnum.STATUS_PROCESS.getCode())) {
-						if (orderProcessInfoEntity.getRtuReplace() != null && orderProcessInfoEntity.getRtuReplace() == 1) {
-							RtuReplaceInfoVO vo = new RtuReplaceInfoVO();
-							vo.setOrderId(checkOrderInfoEntity.getId());
-							vo.setRtuCode(rtuInfoDTO.getRtuCode());
-							vo.setRtuBrand(orderProcessInfoEntity.getRtuBrand());
-							vo.setRtuModel(orderProcessInfoEntity.getRtuModel());
-							vo.setReplaceKind(1);
-							vo.setReplaceDate(orderProcessInfoEntity.getCreateTime());
-							vo.setReplaceDesc(orderProcessInfoEntity.getRtuDesc());
-							replaceInfoVOList.add(vo);
-						}
-					}
-				}
-			}
-
-
-			EquipmentInspectionReportDTO equipmentInspectionReportDTO = new EquipmentInspectionReportDTO();
-			equipmentInspectionReportDTO.setIsDeleted(0);
-			equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
-
-			List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
-			for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
-				if (inspectionReportEntity.getRtuReplace() != null && inspectionReportEntity.getRtuReplace() == 1) {
-					RtuReplaceInfoVO vo = new RtuReplaceInfoVO();
-					vo.setInspectionId(inspectionReportEntity.getId());
-					vo.setRtuCode(rtuInfoDTO.getRtuCode());
-					vo.setRtuBrand(inspectionReportEntity.getRtuModelRemark());
-					vo.setRtuModel(inspectionReportEntity.getRtuModelRemark());
-					vo.setReplaceKind(2);
-					vo.setReplaceDate(inspectionReportEntity.getCreateTime());
-					//vo.setReplaceDesc(inspectionReportEntity.getRtuModelRemark());
-					replaceInfoVOList.add(vo);
-				}
-			}
-			replaceInfoVOList.sort(new Comparator<RtuReplaceInfoVO>() {
-				@Override
-				public int compare(RtuReplaceInfoVO o1, RtuReplaceInfoVO o2) {
-					if (o1.getReplaceDate().after(o2.getReplaceDate())) {
-						return 1;
-					} else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
-						return -1;
-					}
-					return 0;
-				}
-			});
-			if (replaceInfoVOList.size() == 0) {
-				RtuReplaceInfoVO vo = new RtuReplaceInfoVO();
-				vo.setRtuCode(rtuInfoDTO.getRtuCode());
-				vo.setRtuBrand(rtuInfoEntity.getRtuBrand());
-				vo.setRtuModel(rtuInfoEntity.getRtuModel());
-				vo.setReplaceKind(0);
-				vo.setReplaceDate(rtuInfoEntity.getRtuReplaceDate());
-				replaceInfoVOList.add(vo);
-			}
-		}
-		return R.data(replaceInfoVOList);
-	}
-
-
-	/**
-	 * 测站雨量计更换历史
-	 */
-	@GetMapping("/rainsensor/replace/list")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "不分页")
-	public R<List<RainSensorReplaceInfoVO>> rainSensorReplacelist(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
-		List<RainSensorReplaceInfoVO> replaceInfoVOList = new LinkedList<>();
-		LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
-		wrapper.eq(RtuInfoEntity::getIsDeleted, 0);
-		wrapper.eq(RtuInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
-		RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(wrapper);
-		if (null != rtuInfoEntity) {
-			LambdaQueryWrapper<CheckOrderInfoEntity> orderwrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
-			orderwrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
-			orderwrapper.eq(CheckOrderInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
-
-			List<CheckOrderInfoEntity> checkOrderInfoEntityList = rtuCheckOrderService.list(orderwrapper);
-			for (CheckOrderInfoEntity checkOrderInfoEntity : checkOrderInfoEntityList) {
-
-				CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
-				checkOrderInfoDTO.setIsDeleted(0);
-				checkOrderInfoDTO.setId(checkOrderInfoEntity.getId());
-
-				List<OrderProcessInfoVO> orderProcessInfoEntityList = rtuOrderProcessService.selectList(checkOrderInfoDTO);
-				for (OrderProcessInfoVO orderProcessInfoEntity : orderProcessInfoEntityList) {
-					DictBiz biz = dictBizService.getById(orderProcessInfoEntity.getOrderStatusKey());
-					if (biz.getDictKey().equals(OrderStatusEnum.STATUS_PROCESS.getCode())) {
-						if (orderProcessInfoEntity.getRainSensorReplace() != null && orderProcessInfoEntity.getRainSensorReplace() == 1) {
-							RainSensorReplaceInfoVO vo = new RainSensorReplaceInfoVO();
-							vo.setRtuCode(rtuInfoDTO.getRtuCode());
-							vo.setOrderId(checkOrderInfoEntity.getId());
-							vo.setRainSensorBrand(orderProcessInfoEntity.getRainSensorBrand());
-							vo.setRainSensorModel(orderProcessInfoEntity.getRainSensorModel());
-							vo.setReplaceKind(1);
-							vo.setReplaceDate(orderProcessInfoEntity.getCreateTime());
-							vo.setReplaceDesc(orderProcessInfoEntity.getRainSensorDesc());
-							replaceInfoVOList.add(vo);
-						}
-					}
-				}
-			}
-
-
-			EquipmentInspectionReportDTO equipmentInspectionReportDTO = new EquipmentInspectionReportDTO();
-			equipmentInspectionReportDTO.setIsDeleted(0);
-			equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
-
-			List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
-			for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
-				if (inspectionReportEntity.getRainSensorReplace() != null && inspectionReportEntity.getRainSensorReplace() == 1) {
-					RainSensorReplaceInfoVO vo = new RainSensorReplaceInfoVO();
-					vo.setRtuCode(rtuInfoDTO.getRtuCode());
-					vo.setInspectionId(inspectionReportEntity.getId());
-					vo.setRainSensorBrand(inspectionReportEntity.getRainSensorModelRemark());
-					vo.setRainSensorModel(inspectionReportEntity.getRainSensorModelRemark());
-					vo.setReplaceKind(2);
-					vo.setReplaceDate(inspectionReportEntity.getCreateTime());
-					//	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())) {
-						return 1;
-					} else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
-						return -1;
-					}
-					return 0;
-				}
-			});
-			if (replaceInfoVOList.size() == 0) {
-				RainSensorReplaceInfoVO vo = new RainSensorReplaceInfoVO();
-				vo.setRtuCode(rtuInfoDTO.getRtuCode());
-				vo.setRainSensorBrand(rtuInfoEntity.getRainSensorBrand());
-				vo.setRainSensorModel(rtuInfoEntity.getRainSensorModel());
-				vo.setReplaceKind(0);
-				vo.setReplaceDate(rtuInfoEntity.getRainSensorReplaceDate());
-				replaceInfoVOList.add(vo);
-			}
-		}
-		return R.data(replaceInfoVOList);
-	}
-
-
-	/**
-	 * 测站水位计更换历史
-	 */
-	@GetMapping("/watersensor/replace/list")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "不分页")
-	public R<List<WaterSensorReplaceInfoVO>> waterSensorReplacelist(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
-		List<WaterSensorReplaceInfoVO> replaceInfoVOList = new LinkedList<>();
-		LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
-		wrapper.eq(RtuInfoEntity::getIsDeleted, 0);
-		wrapper.eq(RtuInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
-		RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(wrapper);
-		if (null != rtuInfoEntity) {
-			LambdaQueryWrapper<CheckOrderInfoEntity> orderwrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
-			orderwrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
-			orderwrapper.eq(CheckOrderInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
-
-			List<CheckOrderInfoEntity> checkOrderInfoEntityList = rtuCheckOrderService.list(orderwrapper);
-			for (CheckOrderInfoEntity checkOrderInfoEntity : checkOrderInfoEntityList) {
-
-				CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
-				checkOrderInfoDTO.setIsDeleted(0);
-				checkOrderInfoDTO.setId(checkOrderInfoEntity.getId());
-
-				List<OrderProcessInfoVO> orderProcessInfoEntityList = rtuOrderProcessService.selectList(checkOrderInfoDTO);
-				for (OrderProcessInfoVO orderProcessInfoEntity : orderProcessInfoEntityList) {
-					DictBiz biz = dictBizService.getById(orderProcessInfoEntity.getOrderStatusKey());
-					if (biz.getDictKey().equals(OrderStatusEnum.STATUS_PROCESS.getCode())) {
-						if (orderProcessInfoEntity.getWaterSensorReplace() != null && orderProcessInfoEntity.getWaterSensorReplace() == 1) {
-							WaterSensorReplaceInfoVO vo = new WaterSensorReplaceInfoVO();
-							vo.setRtuCode(rtuInfoDTO.getRtuCode());
-							vo.setOrderId(checkOrderInfoEntity.getId());
-							vo.setWaterSensorBrand(orderProcessInfoEntity.getWaterSensorBrand());
-							vo.setWaterSensorModel(orderProcessInfoEntity.getWaterSensorModel());
-							vo.setReplaceKind(1);
-							vo.setReplaceDate(orderProcessInfoEntity.getCreateTime());
-							vo.setReplaceDesc(orderProcessInfoEntity.getWaterSensorDesc());
-							replaceInfoVOList.add(vo);
-						}
-					}
-				}
-			}
-
-
-			EquipmentInspectionReportDTO equipmentInspectionReportDTO = new EquipmentInspectionReportDTO();
-			equipmentInspectionReportDTO.setIsDeleted(0);
-			equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
-
-			List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
-			for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
-				if (inspectionReportEntity.getWaterSensorReplace() != null && inspectionReportEntity.getWaterSensorReplace() == 1) {
-					WaterSensorReplaceInfoVO vo = new WaterSensorReplaceInfoVO();
-					vo.setRtuCode(rtuInfoDTO.getRtuCode());
-					vo.setInspectionId(inspectionReportEntity.getId());
-					vo.setWaterSensorBrand(inspectionReportEntity.getWaterSensorModelRemark());
-					vo.setWaterSensorModel(inspectionReportEntity.getWaterSensorModelRemark());
-					vo.setReplaceKind(2);
-					vo.setReplaceDate(inspectionReportEntity.getCreateTime());
-					//	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())) {
-						return 1;
-					} else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
-						return -1;
-					}
-					return 0;
-				}
-			});
-			if (replaceInfoVOList.size() == 0) {
-				WaterSensorReplaceInfoVO vo = new WaterSensorReplaceInfoVO();
-				vo.setRtuCode(rtuInfoDTO.getRtuCode());
-				vo.setWaterSensorBrand(rtuInfoEntity.getWaterSensorBrand());
-				vo.setWaterSensorModel(rtuInfoEntity.getWaterSensorModel());
-				vo.setReplaceKind(0);
-				vo.setReplaceDate(rtuInfoEntity.getWaterSensorReplaceDate());
-				replaceInfoVOList.add(vo);
-			}
-		}
-		return R.data(replaceInfoVOList);
-	}
-
-
-	/**
-	 * 测站墒情计更换历史
-	 */
-	@GetMapping("/groundsensor/replace/list")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "不分页")
-	public R<List<GroundSensorReplaceInfoVO>> groundSensorReplacelist(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
-		List<GroundSensorReplaceInfoVO> replaceInfoVOList = new LinkedList<>();
-		LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
-		wrapper.eq(RtuInfoEntity::getIsDeleted, 0);
-		wrapper.eq(RtuInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
-		RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(wrapper);
-		if (null != rtuInfoEntity) {
-			LambdaQueryWrapper<CheckOrderInfoEntity> orderwrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
-			orderwrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
-			orderwrapper.eq(CheckOrderInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
-
-			List<CheckOrderInfoEntity> checkOrderInfoEntityList = rtuCheckOrderService.list(orderwrapper);
-			for (CheckOrderInfoEntity checkOrderInfoEntity : checkOrderInfoEntityList) {
-
-				CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
-				checkOrderInfoDTO.setIsDeleted(0);
-				checkOrderInfoDTO.setId(checkOrderInfoEntity.getId());
-
-				List<OrderProcessInfoVO> orderProcessInfoEntityList = rtuOrderProcessService.selectList(checkOrderInfoDTO);
-				for (OrderProcessInfoVO orderProcessInfoEntity : orderProcessInfoEntityList) {
-					DictBiz biz = dictBizService.getById(orderProcessInfoEntity.getOrderStatusKey());
-					if (biz.getDictKey().equals(OrderStatusEnum.STATUS_PROCESS.getCode())) {
-						if (orderProcessInfoEntity.getGroundSensorReplace() != null && orderProcessInfoEntity.getGroundSensorReplace() == 1) {
-							GroundSensorReplaceInfoVO vo = new GroundSensorReplaceInfoVO();
-							vo.setRtuCode(rtuInfoDTO.getRtuCode());
-							vo.setOrderId(checkOrderInfoEntity.getId());
-							vo.setGroundSensorBrand(orderProcessInfoEntity.getGroundSensorBrand());
-							vo.setGroundSensorModel(orderProcessInfoEntity.getGroundSensorModel());
-							vo.setReplaceKind(1);
-							vo.setReplaceDate(orderProcessInfoEntity.getCreateTime());
-							vo.setReplaceDesc(orderProcessInfoEntity.getGroundSensorDesc());
-							replaceInfoVOList.add(vo);
-						}
-					}
-				}
-			}
-
-
-			EquipmentInspectionReportDTO equipmentInspectionReportDTO = new EquipmentInspectionReportDTO();
-			equipmentInspectionReportDTO.setIsDeleted(0);
-			equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
-
-			List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
-			for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
-				if (inspectionReportEntity.getGroundSensorReplace() != null && inspectionReportEntity.getGroundSensorReplace() == 1) {
-					GroundSensorReplaceInfoVO vo = new GroundSensorReplaceInfoVO();
-					vo.setRtuCode(rtuInfoDTO.getRtuCode());
-					vo.setInspectionId(inspectionReportEntity.getId());
-					vo.setGroundSensorBrand(inspectionReportEntity.getGroundSensorModelRemark());
-					vo.setGroundSensorModel(inspectionReportEntity.getGroundSensorModelRemark());
-					vo.setReplaceKind(2);
-					vo.setReplaceDate(inspectionReportEntity.getCreateTime());
-					//vo.setReplaceDesc(inspectionReportEntity.getGroundSensorModelRemark());
-					replaceInfoVOList.add(vo);
-				}
-			}
-			replaceInfoVOList.sort(new Comparator<GroundSensorReplaceInfoVO>() {
-				@Override
-				public int compare(GroundSensorReplaceInfoVO o1, GroundSensorReplaceInfoVO o2) {
-					if (o1.getReplaceDate().after(o2.getReplaceDate())) {
-						return 1;
-					} else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
-						return -1;
-					}
-					return 0;
-				}
-			});
-			if (replaceInfoVOList.size() == 0) {
-				GroundSensorReplaceInfoVO vo = new GroundSensorReplaceInfoVO();
-				vo.setRtuCode(rtuInfoDTO.getRtuCode());
-				vo.setGroundSensorBrand(rtuInfoEntity.getGroundSensorBrand());
-				vo.setGroundSensorModel(rtuInfoEntity.getGroundSensorModel());
-				vo.setReplaceKind(0);
-				vo.setReplaceDate(rtuInfoEntity.getRtuReplaceDate());
-				replaceInfoVOList.add(vo);
-			}
-		}
-		return R.data(replaceInfoVOList);
-	}
-
-	/**
-	 * 测站蓄电池更换历史
-	 */
-	@GetMapping("/battery/replace/list")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "不分页")
-	public R<List<BatteryReplaceInfoVO>> batteryReplacelist(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
-		List<BatteryReplaceInfoVO> replaceInfoVOList = new LinkedList<>();
-		LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
-		wrapper.eq(RtuInfoEntity::getIsDeleted, 0);
-		wrapper.eq(RtuInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
-		RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(wrapper);
-		if (null != rtuInfoEntity) {
-			LambdaQueryWrapper<CheckOrderInfoEntity> orderwrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
-			orderwrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
-			orderwrapper.eq(CheckOrderInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
-
-			List<CheckOrderInfoEntity> checkOrderInfoEntityList = rtuCheckOrderService.list(orderwrapper);
-			for (CheckOrderInfoEntity checkOrderInfoEntity : checkOrderInfoEntityList) {
-
-				CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
-				checkOrderInfoDTO.setIsDeleted(0);
-				checkOrderInfoDTO.setId(checkOrderInfoEntity.getId());
-
-				List<OrderProcessInfoVO> orderProcessInfoEntityList = rtuOrderProcessService.selectList(checkOrderInfoDTO);
-				for (OrderProcessInfoVO orderProcessInfoEntity : orderProcessInfoEntityList) {
-					DictBiz biz = dictBizService.getById(orderProcessInfoEntity.getOrderStatusKey());
-					if (biz.getDictKey().equals(OrderStatusEnum.STATUS_PROCESS.getCode())) {
-						if (orderProcessInfoEntity.getBatteryReplace() != null && orderProcessInfoEntity.getBatteryReplace() == 1) {
-							BatteryReplaceInfoVO vo = new BatteryReplaceInfoVO();
-							vo.setRtuCode(rtuInfoDTO.getRtuCode());
-							vo.setOrderId(checkOrderInfoEntity.getId());
-							//vo.setBatteryModel(orderProcessInfoEntity.getb());
-							vo.setReplaceKind(1);
-							vo.setReplaceDate(orderProcessInfoEntity.getCreateTime());
-							vo.setReplaceDesc(orderProcessInfoEntity.getPowerDesc());
-							replaceInfoVOList.add(vo);
-						}
-					}
-				}
-			}
-
-
-			EquipmentInspectionReportDTO equipmentInspectionReportDTO = new EquipmentInspectionReportDTO();
-			equipmentInspectionReportDTO.setIsDeleted(0);
-			equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
-
-			List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
-			for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
-				if (inspectionReportEntity.getBatteryReplace() != null && inspectionReportEntity.getBatteryReplace() == 1) {
-					BatteryReplaceInfoVO vo = new BatteryReplaceInfoVO();
-					vo.setInspectionId(inspectionReportEntity.getId());
-					vo.setRtuCode(rtuInfoDTO.getRtuCode());
-					vo.setBatteryModel(inspectionReportEntity.getBatteryModelRemark());
-					vo.setReplaceKind(2);
-					vo.setReplaceDate(inspectionReportEntity.getCreateTime());
-					//vo.setReplaceDesc(inspectionReportEntity.getBatteryModelRemark());
-					replaceInfoVOList.add(vo);
-				}
-			}
-			replaceInfoVOList.sort(new Comparator<BatteryReplaceInfoVO>() {
-				@Override
-				public int compare(BatteryReplaceInfoVO o1, BatteryReplaceInfoVO o2) {
-					if (o1.getReplaceDate().after(o2.getReplaceDate())) {
-						return 1;
-					} else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
-						return -1;
-					}
-					return 0;
-				}
-			});
-			if (replaceInfoVOList.size() == 0) {
-				BatteryReplaceInfoVO vo = new BatteryReplaceInfoVO();
-				vo.setRtuCode(rtuInfoDTO.getRtuCode());
-				vo.setBatteryModel(rtuInfoEntity.getBatteryModel());
-				vo.setReplaceKind(0);
-				vo.setReplaceDate(rtuInfoEntity.getRtuReplaceDate());
-				replaceInfoVOList.add(vo);
-			}
-		}
-		return R.data(replaceInfoVOList);
-	}
+    private final IRtuManageService rtuManageService;
+    private final IRtuBaseInfoService rtuBaseInfoService;
+    private final IDictBizService dictBizService;
+    private final IDeptRegionService deptRegionService;
+    private final IRtuWarningService rtuWarningService;
+    private final IRtuCheckOrderService rtuCheckOrderService;
+    private final IRtuOrderProcessService rtuOrderProcessService;
+    private final IEquipmentInspectionReportService equipmentInspectionReportService;
+    private final IRegionInfoService regionService;
+    private final IDeptService deptService;
+
+
+    @Resource
+    private OssBuilder ossBuilder;
+
+    @Value("${export-config.workdir}")
+    private String exportConfigWorkDir;
+
+    @Value("${export-config.equipment-info-template}")
+    private String exportConfigTemplate;
+
+
+    /**
+     * 分页
+     */
+    @GetMapping("/list")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "分页")
+    public R<IPage<RtuStatusVO>> list(Query query) {
+        IPage<RtuStatusEntity> pages = rtuManageService.page(Condition.getPage(query));
+        return R.data(RtuManageWrapper.build().pageVO(pages));
+    }
+
+    /**
+     * 多表联合查询自定义分页
+     */
+    @GetMapping("/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuKind", value = "测站类型", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "warnKind", value = "异常类型", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "分页", notes = "传入RtuInfoEntity")
+    public R<IPage<RtuStatusVO>> page(@ApiIgnore RtuInfoDTO rtuInfoDTO, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(rtuInfoDTO.getAdCode())) {
+                rtuInfoDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
+            }
+            RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuInfoDTO.getAdCode());
+            if (Func.notNull(node)) {
+                rtuInfoDTO.setExcludeCode(node.getExclude());
+            }
+        } 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 (Func.isNull(rtuInfoDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                rtuInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            }
+            RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuInfoDTO.getAdCode());
+            if (Func.notNull(node)) {
+                rtuInfoDTO.setExcludeCode(node.getExclude());
+            }
+        } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(rtuInfoDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                rtuInfoDTO.setAdCode(deptRegionEntity.getAdcd());
+            }
+            rtuInfoDTO.setExcludeCode(0);
+        }
+        if (Func.isNull(rtuInfoDTO.getAdCode())) {
+            return R.fail("系统错误");
+        }
+        if (rtuInfoDTO.getRtuKind() != null && "1".equals(rtuInfoDTO.getRtuKind())) {
+            rtuInfoDTO.setIsRain(1);
+        } else if (rtuInfoDTO.getRtuKind() != null && "2".equals(rtuInfoDTO.getRtuKind())) {
+            rtuInfoDTO.setIsRiver(1);
+            //rtuInfoDTO.setIsRes(1);
+        } else if (rtuInfoDTO.getRtuKind() != null && "3".equals(rtuInfoDTO.getRtuKind())) {
+            rtuInfoDTO.setIsGround(1);
+        } else if (rtuInfoDTO.getRtuKind() != null && "4".equals(rtuInfoDTO.getRtuKind())) {
+            rtuInfoDTO.setIsVideo(1);
+        }
+        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 {
+            IPage<RtuStatusVO> pages = rtuManageService.selectPage(Condition.getPage(query), rtuInfoDTO);
+            List<RtuStatusVO> list = pages.getRecords();
+            for (RtuStatusVO vo : list) {
+                RtuManageWrapper.build().entityVO(vo);
+            }
+            return R.data(pages);
+        }
+    }
+
+    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) {
+                entity.setAdCity(rtuInfoEntity.getAdCity());
+            } else {
+                entity.setAdCity("");
+            }
+            if (rtuInfoEntity.getAdDist() != null) {
+                entity.setAdDist(rtuInfoEntity.getAdDist());
+            } else {
+                entity.setAdDist("");
+            }
+            if (rtuInfoEntity.getRtuName() != null) {
+                entity.setRtuName(rtuInfoEntity.getRtuName());
+            } else {
+                entity.setRtuName("");
+            }
+            entity.setRtuCode(rtuInfoEntity.getRtuCode());
+            String rtuKindDesc = null;
+            if (rtuInfoEntity.getIsRain() != null && rtuInfoEntity.getIsRes() != null && rtuInfoEntity.getIsRiver() != null && rtuInfoEntity.getIsGround() != null) {
+                if (rtuInfoEntity.getIsRain() == 1 && (rtuInfoEntity.getIsRes() == 1 || rtuInfoEntity.getIsRiver() == 1)) {
+                    rtuKindDesc = "水位雨量一体站";
+                } else if (rtuInfoEntity.getIsRain() == 1 && rtuInfoEntity.getIsGround() == 1) {
+                    rtuKindDesc = "雨量墒情一体站";
+                } else if (rtuInfoEntity.getIsRain() == 1) {
+                    rtuKindDesc = "雨量站";
+                } else if (rtuInfoEntity.getIsRes() == 1 || rtuInfoEntity.getIsRiver() == 1) {
+                    rtuKindDesc = "水位站";
+                } else if (rtuInfoEntity.getIsGround() == 1) {
+                    rtuKindDesc = "墒情站";
+                }
+            }
+            if (rtuKindDesc != null) {
+                entity.setRtuKindDesc(rtuKindDesc);
+            } else {
+                entity.setRtuKindDesc("");
+            }
+            if (rtuInfoEntity.getLocationDesc() != null) {
+                entity.setLocationDesc(rtuInfoEntity.getLocationDesc());
+            } else {
+                entity.setLocationDesc("");
+            }
+            if (rtuInfoEntity.getLng() != null) {
+                entity.setLng(rtuInfoEntity.getLng());
+            } else {
+                entity.setLng("");
+            }
+            if (rtuInfoEntity.getLat() != null) {
+                entity.setLat(rtuInfoEntity.getLat());
+            } else {
+                entity.setLat("");
+            }
+            if (rtuInfoEntity.getManageCompany() != null) {
+                entity.setManageCompany(rtuInfoEntity.getManageCompany());
+            } else {
+                entity.setManageCompany("");
+            }
+            if (rtuInfoEntity.getRtuBrand() != null) {
+                entity.setRtuBrand(rtuInfoEntity.getRtuBrand());
+            } else {
+                entity.setRtuBrand("");
+            }
+            if (rtuInfoEntity.getRtuModel() != null) {
+                entity.setRtuModel(rtuInfoEntity.getRtuModel());
+            } else {
+                entity.setRtuModel("");
+            }
+            if (rtuInfoEntity.getRtuReplaceDate() != null) {
+                entity.setRtuReplaceDate(Func.formatDate(rtuInfoEntity.getRtuReplaceDate()));
+            } else {
+                entity.setRtuReplaceDate("");
+            }
+            if (rtuInfoEntity.getRtuName() != null) {
+                entity.setRtuName(rtuInfoEntity.getRtuName());
+            } else {
+                entity.setRtuName("");
+            }
+            if (rtuInfoEntity.getDatagramToSheng() != null) {
+                if (rtuInfoEntity.getDatagramToSheng() == 1) {
+                    entity.setDatagramToSheng("是");
+                } else {
+                    entity.setDatagramToSheng("否");
+                }
+            } else {
+                entity.setDatagramToSheng("");
+            }
+            if (rtuInfoEntity.getDatagramToShi() != null) {
+                if (rtuInfoEntity.getDatagramToShi() == 1) {
+                    entity.setDatagramToShi("是");
+                } else {
+                    entity.setDatagramToShi("否");
+                }
+            } else {
+                entity.setDatagramToShi("");
+            }
+            if (rtuInfoEntity.getDatagramToQu() != null) {
+                if (rtuInfoEntity.getDatagramToQu() == 1) {
+                    entity.setDatagramToQu("是");
+                } else {
+                    entity.setDatagramToQu("否");
+                }
+            } else {
+                entity.setDatagramToQu("");
+            }
+            if (rtuInfoEntity.getRainSensorBrand() != null) {
+                entity.setRainSensorBrand(rtuInfoEntity.getRainSensorBrand());
+            } else {
+                entity.setRainSensorBrand("");
+            }
+            if (rtuInfoEntity.getRainSensorModel() != null) {
+                entity.setRainSensorModel(rtuInfoEntity.getRainSensorModel());
+            } else {
+                entity.setRainSensorModel("");
+            }
+            if (rtuInfoEntity.getRainSensorReplaceDate() != null) {
+                entity.setRainSensorReplaceDate(Func.formatDate(rtuInfoEntity.getRainSensorReplaceDate()));
+            } else {
+                entity.setRainSensorReplaceDate("");
+            }
+            if (rtuInfoEntity.getWaterSensorType() != null) {
+                DictBiz dictBiz = dictBizService.getById(rtuInfoEntity.getWaterSensorType());
+                if (null != dictBiz) {
+                    entity.setWaterSensorType(dictBiz.getDictValue());
+                }
+            } else {
+                entity.setWaterSensorType("");
+            }
+            if (rtuInfoEntity.getWaterSensorBrand() != null) {
+                entity.setWaterSensorBrand(rtuInfoEntity.getWaterSensorBrand());
+            } else {
+                entity.setWaterSensorBrand("");
+            }
+            if (rtuInfoEntity.getWaterSensorModel() != null) {
+                entity.setWaterSensorModel(rtuInfoEntity.getWaterSensorModel());
+            } else {
+                entity.setWaterSensorModel("");
+            }
+            if (rtuInfoEntity.getWaterSensorReplaceDate() != null) {
+                entity.setWaterSensorReplaceDate(Func.formatDate(rtuInfoEntity.getWaterSensorReplaceDate()));
+            } else {
+                entity.setWaterSensorReplaceDate("");
+            }
+            if (rtuInfoEntity.getGroundSensorType() != null) {
+                DictBiz dictBiz = dictBizService.getById(rtuInfoEntity.getGroundSensorType());
+                if (null != dictBiz) {
+                    entity.setGroundSensorType(dictBiz.getDictValue());
+                }
+            } else {
+                entity.setGroundSensorType("");
+            }
+            if (rtuInfoEntity.getGroundSensorBrand() != null) {
+                entity.setGroundSensorBrand(rtuInfoEntity.getGroundSensorBrand());
+            } else {
+                entity.setGroundSensorBrand("");
+            }
+            if (rtuInfoEntity.getGroundSensorModel() != null) {
+                entity.setGroundSensorModel(rtuInfoEntity.getGroundSensorModel());
+            } else {
+                entity.setGroundSensorModel("");
+            }
+            if (rtuInfoEntity.getGroundSensorReplaceDate() != null) {
+                entity.setGroundSensorReplaceDate(Func.formatDate(rtuInfoEntity.getGroundSensorReplaceDate()));
+            } else {
+                entity.setGroundSensorReplaceDate("");
+            }
+            if (rtuInfoEntity.getBatteryModel() != null) {
+                entity.setBatteryModel(rtuInfoEntity.getBatteryModel());
+            } else {
+                entity.setBatteryModel("");
+            }
+            if (rtuInfoEntity.getBatteryReplaceDate() != null) {
+                entity.setBatteryReplaceDate(Func.formatDate(rtuInfoEntity.getBatteryReplaceDate()));
+            } else {
+                entity.setBatteryReplaceDate("");
+            }
+            if (rtuInfoEntity.getSunPowerModel() != null) {
+                entity.setSunPowerModel(rtuInfoEntity.getSunPowerModel());
+            } else {
+                entity.setSunPowerModel("");
+            }
+            if (rtuInfoEntity.getNetworkSimId() != null) {
+                entity.setNetworkSimId(rtuInfoEntity.getNetworkSimId());
+            } else {
+                entity.setNetworkSimId("");
+            }
+            if (rtuInfoEntity.getNetworkPayer() != null) {
+                entity.setNetworkPayer(rtuInfoEntity.getNetworkPayer());
+            } else {
+                entity.setNetworkPayer("");
+            }
+            if (rtuInfoEntity.getNetworkPayEndDate() != null) {
+                entity.setNetworkPayEndDate(Func.formatDate(rtuInfoEntity.getNetworkPayEndDate()));
+            } else {
+                entity.setNetworkPayEndDate("");
+            }
+            if (rtuInfoEntity.getIsSatellite() != null) {
+                if (rtuInfoEntity.getIsSatellite() == 1) {
+                    entity.setIsSatellite("是");
+                } else {
+                    entity.setIsSatellite("否");
+                }
+            } else {
+                entity.setIsSatellite("");
+            }
+            if (rtuInfoEntity.getSatelliteModel() != null) {
+                DictBiz dictBiz = dictBizService.getById(rtuInfoEntity.getSatelliteModel());
+                if (dictBiz != null) {
+                    entity.setSatelliteModel(dictBiz.getDictValue());
+                }
+            } else {
+                entity.setSatelliteModel("");
+            }
+            if (rtuInfoEntity.getRemark() != null) {
+                entity.setRemark(rtuInfoEntity.getRemark());
+            } else {
+                entity.setRemark("");
+            }
+            targetList.add(entity);
+            index += 1;
+        }
+    }
+
+    @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();
+        excelWriter.write(list, writeSheet);
+        excelWriter.finish();
+        try {
+            FileInputStream fileInputStream = new FileInputStream(new File(outpath));
+            BladeFile bladeFile = ossBuilder.template().putFile(outFileName, fileInputStream);
+            String ossPath = bladeFile.getName();
+            String p = bladeFile.getDomain();
+            log.info(ossPath);
+            log.info(p);
+            data.put("name", ossPath);
+            data.put("url", ossPath);
+            data.put("filename", rtuInfoDTO.getAdName());
+            data.put("status", 1);
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+        return R.data(data);
+    }
+
+    /**
+     * 分页
+     */
+    @GetMapping("/count")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "按行政区划统计测站信息")
+    public R<Map<String, Object>> countInfo(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
+        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);
+        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);
+    }
+
+
+    /**
+     * 测站RTU更换历史
+     */
+    @GetMapping("/rtu/replace/list")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "不分页")
+    public R<List<RtuReplaceInfoVO>> rtuReplacelist(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
+        List<RtuReplaceInfoVO> replaceInfoVOList = new LinkedList<>();
+        LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
+        wrapper.eq(RtuInfoEntity::getIsDeleted, 0);
+        wrapper.eq(RtuInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
+        RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(wrapper);
+        if (null != rtuInfoEntity) {
+            LambdaQueryWrapper<CheckOrderInfoEntity> orderwrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
+            orderwrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
+            orderwrapper.eq(CheckOrderInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
+
+            List<CheckOrderInfoEntity> checkOrderInfoEntityList = rtuCheckOrderService.list(orderwrapper);
+            for (CheckOrderInfoEntity checkOrderInfoEntity : checkOrderInfoEntityList) {
+
+                CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
+                checkOrderInfoDTO.setIsDeleted(0);
+                checkOrderInfoDTO.setId(checkOrderInfoEntity.getId());
+
+                List<OrderProcessInfoVO> orderProcessInfoEntityList = rtuOrderProcessService.selectList(checkOrderInfoDTO);
+                for (OrderProcessInfoVO orderProcessInfoEntity : orderProcessInfoEntityList) {
+                    DictBiz biz = dictBizService.getById(orderProcessInfoEntity.getOrderStatusKey());
+                    if (biz.getDictKey().equals(OrderStatusEnum.STATUS_PROCESS.getCode())) {
+                        if (orderProcessInfoEntity.getRtuReplace() != null && orderProcessInfoEntity.getRtuReplace() == 1) {
+                            RtuReplaceInfoVO vo = new RtuReplaceInfoVO();
+                            vo.setOrderId(checkOrderInfoEntity.getId());
+                            vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                            vo.setRtuBrand(orderProcessInfoEntity.getRtuBrand());
+                            vo.setRtuModel(orderProcessInfoEntity.getRtuModel());
+                            vo.setReplaceKind(1);
+                            vo.setReplaceDate(orderProcessInfoEntity.getCreateTime());
+                            vo.setReplaceDesc(orderProcessInfoEntity.getRtuDesc());
+                            replaceInfoVOList.add(vo);
+                        }
+                    }
+                }
+            }
+
+
+            EquipmentInspectionReportDTO equipmentInspectionReportDTO = new EquipmentInspectionReportDTO();
+            equipmentInspectionReportDTO.setIsDeleted(0);
+            equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
+
+            List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
+            for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
+                if (inspectionReportEntity.getRtuReplace() != null && inspectionReportEntity.getRtuReplace() == 1) {
+                    RtuReplaceInfoVO vo = new RtuReplaceInfoVO();
+                    vo.setInspectionId(inspectionReportEntity.getId());
+                    vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                    vo.setRtuBrand(inspectionReportEntity.getRtuModelRemark());
+                    vo.setRtuModel(inspectionReportEntity.getRtuModelRemark());
+                    vo.setReplaceKind(2);
+                    vo.setReplaceDate(inspectionReportEntity.getCreateTime());
+                    //vo.setReplaceDesc(inspectionReportEntity.getRtuModelRemark());
+                    replaceInfoVOList.add(vo);
+                }
+            }
+            replaceInfoVOList.sort(new Comparator<RtuReplaceInfoVO>() {
+                @Override
+                public int compare(RtuReplaceInfoVO o1, RtuReplaceInfoVO o2) {
+                    if (o1.getReplaceDate().after(o2.getReplaceDate())) {
+                        return 1;
+                    } else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
+                        return -1;
+                    }
+                    return 0;
+                }
+            });
+            if (replaceInfoVOList.size() == 0) {
+                RtuReplaceInfoVO vo = new RtuReplaceInfoVO();
+                vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                vo.setRtuBrand(rtuInfoEntity.getRtuBrand());
+                vo.setRtuModel(rtuInfoEntity.getRtuModel());
+                vo.setReplaceKind(0);
+                vo.setReplaceDate(rtuInfoEntity.getRtuReplaceDate());
+                replaceInfoVOList.add(vo);
+            }
+        }
+        return R.data(replaceInfoVOList);
+    }
+
+
+    /**
+     * 测站雨量计更换历史
+     */
+    @GetMapping("/rainsensor/replace/list")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "不分页")
+    public R<List<RainSensorReplaceInfoVO>> rainSensorReplacelist(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
+        List<RainSensorReplaceInfoVO> replaceInfoVOList = new LinkedList<>();
+        LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
+        wrapper.eq(RtuInfoEntity::getIsDeleted, 0);
+        wrapper.eq(RtuInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
+        RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(wrapper);
+        if (null != rtuInfoEntity) {
+            LambdaQueryWrapper<CheckOrderInfoEntity> orderwrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
+            orderwrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
+            orderwrapper.eq(CheckOrderInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
+
+            List<CheckOrderInfoEntity> checkOrderInfoEntityList = rtuCheckOrderService.list(orderwrapper);
+            for (CheckOrderInfoEntity checkOrderInfoEntity : checkOrderInfoEntityList) {
+
+                CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
+                checkOrderInfoDTO.setIsDeleted(0);
+                checkOrderInfoDTO.setId(checkOrderInfoEntity.getId());
+
+                List<OrderProcessInfoVO> orderProcessInfoEntityList = rtuOrderProcessService.selectList(checkOrderInfoDTO);
+                for (OrderProcessInfoVO orderProcessInfoEntity : orderProcessInfoEntityList) {
+                    DictBiz biz = dictBizService.getById(orderProcessInfoEntity.getOrderStatusKey());
+                    if (biz.getDictKey().equals(OrderStatusEnum.STATUS_PROCESS.getCode())) {
+                        if (orderProcessInfoEntity.getRainSensorReplace() != null && orderProcessInfoEntity.getRainSensorReplace() == 1) {
+                            RainSensorReplaceInfoVO vo = new RainSensorReplaceInfoVO();
+                            vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                            vo.setOrderId(checkOrderInfoEntity.getId());
+                            vo.setRainSensorBrand(orderProcessInfoEntity.getRainSensorBrand());
+                            vo.setRainSensorModel(orderProcessInfoEntity.getRainSensorModel());
+                            vo.setReplaceKind(1);
+                            vo.setReplaceDate(orderProcessInfoEntity.getCreateTime());
+                            vo.setReplaceDesc(orderProcessInfoEntity.getRainSensorDesc());
+                            replaceInfoVOList.add(vo);
+                        }
+                    }
+                }
+            }
+
+
+            EquipmentInspectionReportDTO equipmentInspectionReportDTO = new EquipmentInspectionReportDTO();
+            equipmentInspectionReportDTO.setIsDeleted(0);
+            equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
+
+            List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
+            for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
+                if (inspectionReportEntity.getRainSensorReplace() != null && inspectionReportEntity.getRainSensorReplace() == 1) {
+                    RainSensorReplaceInfoVO vo = new RainSensorReplaceInfoVO();
+                    vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                    vo.setInspectionId(inspectionReportEntity.getId());
+                    vo.setRainSensorBrand(inspectionReportEntity.getRainSensorModelRemark());
+                    vo.setRainSensorModel(inspectionReportEntity.getRainSensorModelRemark());
+                    vo.setReplaceKind(2);
+                    vo.setReplaceDate(inspectionReportEntity.getCreateTime());
+                    //	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())) {
+                        return 1;
+                    } else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
+                        return -1;
+                    }
+                    return 0;
+                }
+            });
+            if (replaceInfoVOList.size() == 0) {
+                RainSensorReplaceInfoVO vo = new RainSensorReplaceInfoVO();
+                vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                vo.setRainSensorBrand(rtuInfoEntity.getRainSensorBrand());
+                vo.setRainSensorModel(rtuInfoEntity.getRainSensorModel());
+                vo.setReplaceKind(0);
+                vo.setReplaceDate(rtuInfoEntity.getRainSensorReplaceDate());
+                replaceInfoVOList.add(vo);
+            }
+        }
+        return R.data(replaceInfoVOList);
+    }
+
+
+    /**
+     * 测站水位计更换历史
+     */
+    @GetMapping("/watersensor/replace/list")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "不分页")
+    public R<List<WaterSensorReplaceInfoVO>> waterSensorReplacelist(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
+        List<WaterSensorReplaceInfoVO> replaceInfoVOList = new LinkedList<>();
+        LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
+        wrapper.eq(RtuInfoEntity::getIsDeleted, 0);
+        wrapper.eq(RtuInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
+        RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(wrapper);
+        if (null != rtuInfoEntity) {
+            LambdaQueryWrapper<CheckOrderInfoEntity> orderwrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
+            orderwrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
+            orderwrapper.eq(CheckOrderInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
+
+            List<CheckOrderInfoEntity> checkOrderInfoEntityList = rtuCheckOrderService.list(orderwrapper);
+            for (CheckOrderInfoEntity checkOrderInfoEntity : checkOrderInfoEntityList) {
+
+                CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
+                checkOrderInfoDTO.setIsDeleted(0);
+                checkOrderInfoDTO.setId(checkOrderInfoEntity.getId());
+
+                List<OrderProcessInfoVO> orderProcessInfoEntityList = rtuOrderProcessService.selectList(checkOrderInfoDTO);
+                for (OrderProcessInfoVO orderProcessInfoEntity : orderProcessInfoEntityList) {
+                    DictBiz biz = dictBizService.getById(orderProcessInfoEntity.getOrderStatusKey());
+                    if (biz.getDictKey().equals(OrderStatusEnum.STATUS_PROCESS.getCode())) {
+                        if (orderProcessInfoEntity.getWaterSensorReplace() != null && orderProcessInfoEntity.getWaterSensorReplace() == 1) {
+                            WaterSensorReplaceInfoVO vo = new WaterSensorReplaceInfoVO();
+                            vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                            vo.setOrderId(checkOrderInfoEntity.getId());
+                            vo.setWaterSensorBrand(orderProcessInfoEntity.getWaterSensorBrand());
+                            vo.setWaterSensorModel(orderProcessInfoEntity.getWaterSensorModel());
+                            vo.setReplaceKind(1);
+                            vo.setReplaceDate(orderProcessInfoEntity.getCreateTime());
+                            vo.setReplaceDesc(orderProcessInfoEntity.getWaterSensorDesc());
+                            replaceInfoVOList.add(vo);
+                        }
+                    }
+                }
+            }
+
+
+            EquipmentInspectionReportDTO equipmentInspectionReportDTO = new EquipmentInspectionReportDTO();
+            equipmentInspectionReportDTO.setIsDeleted(0);
+            equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
+
+            List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
+            for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
+                if (inspectionReportEntity.getWaterSensorReplace() != null && inspectionReportEntity.getWaterSensorReplace() == 1) {
+                    WaterSensorReplaceInfoVO vo = new WaterSensorReplaceInfoVO();
+                    vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                    vo.setInspectionId(inspectionReportEntity.getId());
+                    vo.setWaterSensorBrand(inspectionReportEntity.getWaterSensorModelRemark());
+                    vo.setWaterSensorModel(inspectionReportEntity.getWaterSensorModelRemark());
+                    vo.setReplaceKind(2);
+                    vo.setReplaceDate(inspectionReportEntity.getCreateTime());
+                    //	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())) {
+                        return 1;
+                    } else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
+                        return -1;
+                    }
+                    return 0;
+                }
+            });
+            if (replaceInfoVOList.size() == 0) {
+                WaterSensorReplaceInfoVO vo = new WaterSensorReplaceInfoVO();
+                vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                vo.setWaterSensorBrand(rtuInfoEntity.getWaterSensorBrand());
+                vo.setWaterSensorModel(rtuInfoEntity.getWaterSensorModel());
+                vo.setReplaceKind(0);
+                vo.setReplaceDate(rtuInfoEntity.getWaterSensorReplaceDate());
+                replaceInfoVOList.add(vo);
+            }
+        }
+        return R.data(replaceInfoVOList);
+    }
+
+
+    /**
+     * 测站墒情计更换历史
+     */
+    @GetMapping("/groundsensor/replace/list")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "不分页")
+    public R<List<GroundSensorReplaceInfoVO>> groundSensorReplacelist(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
+        List<GroundSensorReplaceInfoVO> replaceInfoVOList = new LinkedList<>();
+        LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
+        wrapper.eq(RtuInfoEntity::getIsDeleted, 0);
+        wrapper.eq(RtuInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
+        RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(wrapper);
+        if (null != rtuInfoEntity) {
+            LambdaQueryWrapper<CheckOrderInfoEntity> orderwrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
+            orderwrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
+            orderwrapper.eq(CheckOrderInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
+
+            List<CheckOrderInfoEntity> checkOrderInfoEntityList = rtuCheckOrderService.list(orderwrapper);
+            for (CheckOrderInfoEntity checkOrderInfoEntity : checkOrderInfoEntityList) {
+
+                CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
+                checkOrderInfoDTO.setIsDeleted(0);
+                checkOrderInfoDTO.setId(checkOrderInfoEntity.getId());
+
+                List<OrderProcessInfoVO> orderProcessInfoEntityList = rtuOrderProcessService.selectList(checkOrderInfoDTO);
+                for (OrderProcessInfoVO orderProcessInfoEntity : orderProcessInfoEntityList) {
+                    DictBiz biz = dictBizService.getById(orderProcessInfoEntity.getOrderStatusKey());
+                    if (biz.getDictKey().equals(OrderStatusEnum.STATUS_PROCESS.getCode())) {
+                        if (orderProcessInfoEntity.getGroundSensorReplace() != null && orderProcessInfoEntity.getGroundSensorReplace() == 1) {
+                            GroundSensorReplaceInfoVO vo = new GroundSensorReplaceInfoVO();
+                            vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                            vo.setOrderId(checkOrderInfoEntity.getId());
+                            vo.setGroundSensorBrand(orderProcessInfoEntity.getGroundSensorBrand());
+                            vo.setGroundSensorModel(orderProcessInfoEntity.getGroundSensorModel());
+                            vo.setReplaceKind(1);
+                            vo.setReplaceDate(orderProcessInfoEntity.getCreateTime());
+                            vo.setReplaceDesc(orderProcessInfoEntity.getGroundSensorDesc());
+                            replaceInfoVOList.add(vo);
+                        }
+                    }
+                }
+            }
+
+
+            EquipmentInspectionReportDTO equipmentInspectionReportDTO = new EquipmentInspectionReportDTO();
+            equipmentInspectionReportDTO.setIsDeleted(0);
+            equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
+
+            List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
+            for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
+                if (inspectionReportEntity.getGroundSensorReplace() != null && inspectionReportEntity.getGroundSensorReplace() == 1) {
+                    GroundSensorReplaceInfoVO vo = new GroundSensorReplaceInfoVO();
+                    vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                    vo.setInspectionId(inspectionReportEntity.getId());
+                    vo.setGroundSensorBrand(inspectionReportEntity.getGroundSensorModelRemark());
+                    vo.setGroundSensorModel(inspectionReportEntity.getGroundSensorModelRemark());
+                    vo.setReplaceKind(2);
+                    vo.setReplaceDate(inspectionReportEntity.getCreateTime());
+                    //vo.setReplaceDesc(inspectionReportEntity.getGroundSensorModelRemark());
+                    replaceInfoVOList.add(vo);
+                }
+            }
+            replaceInfoVOList.sort(new Comparator<GroundSensorReplaceInfoVO>() {
+                @Override
+                public int compare(GroundSensorReplaceInfoVO o1, GroundSensorReplaceInfoVO o2) {
+                    if (o1.getReplaceDate().after(o2.getReplaceDate())) {
+                        return 1;
+                    } else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
+                        return -1;
+                    }
+                    return 0;
+                }
+            });
+            if (replaceInfoVOList.size() == 0) {
+                GroundSensorReplaceInfoVO vo = new GroundSensorReplaceInfoVO();
+                vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                vo.setGroundSensorBrand(rtuInfoEntity.getGroundSensorBrand());
+                vo.setGroundSensorModel(rtuInfoEntity.getGroundSensorModel());
+                vo.setReplaceKind(0);
+                vo.setReplaceDate(rtuInfoEntity.getRtuReplaceDate());
+                replaceInfoVOList.add(vo);
+            }
+        }
+        return R.data(replaceInfoVOList);
+    }
+
+    /**
+     * 测站蓄电池更换历史
+     */
+    @GetMapping("/battery/replace/list")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "不分页")
+    public R<List<BatteryReplaceInfoVO>> batteryReplacelist(@ApiIgnore RtuInfoDTO rtuInfoDTO) {
+        List<BatteryReplaceInfoVO> replaceInfoVOList = new LinkedList<>();
+        LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
+        wrapper.eq(RtuInfoEntity::getIsDeleted, 0);
+        wrapper.eq(RtuInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
+        RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(wrapper);
+        if (null != rtuInfoEntity) {
+            LambdaQueryWrapper<CheckOrderInfoEntity> orderwrapper = Wrappers.<CheckOrderInfoEntity>query().lambda();
+            orderwrapper.eq(CheckOrderInfoEntity::getIsDeleted, 0);
+            orderwrapper.eq(CheckOrderInfoEntity::getRtuCode, rtuInfoDTO.getRtuCode());
+
+            List<CheckOrderInfoEntity> checkOrderInfoEntityList = rtuCheckOrderService.list(orderwrapper);
+            for (CheckOrderInfoEntity checkOrderInfoEntity : checkOrderInfoEntityList) {
+
+                CheckOrderInfoDTO checkOrderInfoDTO = new CheckOrderInfoDTO();
+                checkOrderInfoDTO.setIsDeleted(0);
+                checkOrderInfoDTO.setId(checkOrderInfoEntity.getId());
+
+                List<OrderProcessInfoVO> orderProcessInfoEntityList = rtuOrderProcessService.selectList(checkOrderInfoDTO);
+                for (OrderProcessInfoVO orderProcessInfoEntity : orderProcessInfoEntityList) {
+                    DictBiz biz = dictBizService.getById(orderProcessInfoEntity.getOrderStatusKey());
+                    if (biz.getDictKey().equals(OrderStatusEnum.STATUS_PROCESS.getCode())) {
+                        if (orderProcessInfoEntity.getBatteryReplace() != null && orderProcessInfoEntity.getBatteryReplace() == 1) {
+                            BatteryReplaceInfoVO vo = new BatteryReplaceInfoVO();
+                            vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                            vo.setOrderId(checkOrderInfoEntity.getId());
+                            //vo.setBatteryModel(orderProcessInfoEntity.getb());
+                            vo.setReplaceKind(1);
+                            vo.setReplaceDate(orderProcessInfoEntity.getCreateTime());
+                            vo.setReplaceDesc(orderProcessInfoEntity.getPowerDesc());
+                            replaceInfoVOList.add(vo);
+                        }
+                    }
+                }
+            }
+
+
+            EquipmentInspectionReportDTO equipmentInspectionReportDTO = new EquipmentInspectionReportDTO();
+            equipmentInspectionReportDTO.setIsDeleted(0);
+            equipmentInspectionReportDTO.setRtuCode(rtuInfoDTO.getRtuCode());
+
+            List<EquipmentInspectionReportVO> inspectionReportEntityList = equipmentInspectionReportService.selectList(equipmentInspectionReportDTO);
+            for (EquipmentInspectionReportVO inspectionReportEntity : inspectionReportEntityList) {
+                if (inspectionReportEntity.getBatteryReplace() != null && inspectionReportEntity.getBatteryReplace() == 1) {
+                    BatteryReplaceInfoVO vo = new BatteryReplaceInfoVO();
+                    vo.setInspectionId(inspectionReportEntity.getId());
+                    vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                    vo.setBatteryModel(inspectionReportEntity.getBatteryModelRemark());
+                    vo.setReplaceKind(2);
+                    vo.setReplaceDate(inspectionReportEntity.getCreateTime());
+                    //vo.setReplaceDesc(inspectionReportEntity.getBatteryModelRemark());
+                    replaceInfoVOList.add(vo);
+                }
+            }
+            replaceInfoVOList.sort(new Comparator<BatteryReplaceInfoVO>() {
+                @Override
+                public int compare(BatteryReplaceInfoVO o1, BatteryReplaceInfoVO o2) {
+                    if (o1.getReplaceDate().after(o2.getReplaceDate())) {
+                        return 1;
+                    } else if (o1.getReplaceDate().before(o2.getReplaceDate())) {
+                        return -1;
+                    }
+                    return 0;
+                }
+            });
+            if (replaceInfoVOList.size() == 0) {
+                BatteryReplaceInfoVO vo = new BatteryReplaceInfoVO();
+                vo.setRtuCode(rtuInfoDTO.getRtuCode());
+                vo.setBatteryModel(rtuInfoEntity.getBatteryModel());
+                vo.setReplaceKind(0);
+                vo.setReplaceDate(rtuInfoEntity.getRtuReplaceDate());
+                replaceInfoVOList.add(vo);
+            }
+        }
+        return R.data(replaceInfoVOList);
+    }
 }

+ 6 - 0
src/main/java/org/springblade/modules/yjxt/base/map/vo/DangerAreaVO.java

@@ -76,4 +76,10 @@ public class DangerAreaVO extends DangerAreaEntity {
 	 */
 	@ApiModelProperty(value = "家庭户")
 	private List<DangerAreaResidentInfoEntity> familyPoints;
+
+	/**
+	 * 行政区划全名
+	 */
+	@ApiModelProperty(value = "行政区划全名")
+	private String fullAadName;
 }

+ 39 - 23
src/main/java/org/springblade/modules/yjxt/base/map/wrapper/DangerAreaWrapper.java

@@ -12,6 +12,8 @@ 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.region.whole.entity.BaseRegionInfoEntity;
+import org.springblade.modules.baseinfo.region.whole.service.IBaseRegionInfoService;
 import org.springblade.modules.baseinfo.stbase.entity.MvAttStBaseEntity;
 import org.springblade.modules.baseinfo.stbase.service.IMvAttStBaseService;
 import org.springblade.modules.yjxt.base.map.dto.DangerAreaLeaveLineDTO;
@@ -42,7 +44,7 @@ public class DangerAreaWrapper extends BaseEntityWrapper<DangerAreaEntity, Dange
         return new DangerAreaWrapper();
     }
 
-//    private static IRtuBaseInfoService rtuBaseInfoService;
+    //    private static IRtuBaseInfoService rtuBaseInfoService;
 //
 //    private static IRtuBaseInfoService getRtuBaseInfoService() {
 //        if (rtuBaseInfoService == null) {
@@ -51,17 +53,15 @@ public class DangerAreaWrapper extends BaseEntityWrapper<DangerAreaEntity, Dange
 //        return rtuBaseInfoService;
 //    }
 //
-//    private static IRegionInfoService regionService;
-//
-//    private static IRegionInfoService getRegionService() {
-//        if (regionService == null) {
-//            regionService = SpringUtil.getBean(IRegionInfoService.class);
-//        }
-//        return regionService;
-//    }
+    private static IBaseRegionInfoService baseRegionInfoService;
+    private static IBaseRegionInfoService getBaseRegionInfoService() {
+        if (baseRegionInfoService == null) {
+            baseRegionInfoService = SpringUtil.getBean(IBaseRegionInfoService.class);
+        }
+        return baseRegionInfoService;
+    }
 
     private static IDangerAreaLeaveLineService dangerAreaLeaveLineService;
-
     private static IDangerAreaLeaveLineService getDangerAreaLeaveLineService() {
         if (dangerAreaLeaveLineService == null) {
             dangerAreaLeaveLineService = SpringUtil.getBean(IDangerAreaLeaveLineService.class);
@@ -70,7 +70,6 @@ public class DangerAreaWrapper extends BaseEntityWrapper<DangerAreaEntity, Dange
     }
 
     private static IMvAttStBaseService mvAttStBaseService;
-
     private static IMvAttStBaseService getMvAttStBaseService() {
         if (mvAttStBaseService == null) {
             mvAttStBaseService = SpringUtil.getBean(IMvAttStBaseService.class);
@@ -78,9 +77,7 @@ public class DangerAreaWrapper extends BaseEntityWrapper<DangerAreaEntity, Dange
         return mvAttStBaseService;
     }
 
-
     private static IDangerAreaPointService dangerAreaPointService;
-
     private static IDangerAreaPointService getDangerAreaPointService() {
         if (dangerAreaPointService == null) {
             dangerAreaPointService = SpringUtil.getBean(IDangerAreaPointService.class);
@@ -89,7 +86,6 @@ public class DangerAreaWrapper extends BaseEntityWrapper<DangerAreaEntity, Dange
     }
 
     private static IDangerAreaResidentService dangerAreaResidentService;
-
     private static IDangerAreaResidentService getDangerAreaResidentService() {
         if (dangerAreaResidentService == null) {
             dangerAreaResidentService = SpringUtil.getBean(IDangerAreaResidentService.class);
@@ -141,7 +137,6 @@ public class DangerAreaWrapper extends BaseEntityWrapper<DangerAreaEntity, Dange
         }
 
 
-
 //        String stCode = vo.getStCode();
 //        if (Func.notNull(stCode)) {
 //            String[] stCodeArr = stCode.split(",");
@@ -159,14 +154,35 @@ public class DangerAreaWrapper extends BaseEntityWrapper<DangerAreaEntity, Dange
 //            vo.setRtus(rtus);
 //        }
 //
-//        if (Func.notNull(vo.getAdcd())) {
-//            DangerAreaLeaveLineDTO lineDTO = new DangerAreaLeaveLineDTO();
-//            lineDTO.setAdcd(vo.getAdcd());
-//            List<DangerAreaLeaveLineVO> lineVOList = getDangerAreaLeaveLineService().selectAdDangerArea(lineDTO);
-//            if (Func.notNull(lineVOList)) {
-//                vo.setLeaveLines(lineVOList);
-//            }
-//        }
+        if (Func.notNull(vo.getAdcd())) {
+            LambdaQueryWrapper<BaseRegionInfoEntity> queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+            queryWrapper.eq(BaseRegionInfoEntity::getAdcd, vo.getAdcd());
+            queryWrapper.last("limit 1");
+            BaseRegionInfoEntity entity = getBaseRegionInfoService().getOne(queryWrapper);
+            if (Func.notNull(entity)) {
+                String ancestores = entity.getAncestors();
+                StringBuilder fullCode = new StringBuilder();
+                String[] codes = ancestores.split(",");
+                for (int i = 2; i < codes.length; i++) {
+                    if (fullCode.length() > 0) {
+                        fullCode.append("/");
+                    }
+                    queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+                    queryWrapper.eq(BaseRegionInfoEntity::getAdcd, codes[i]);
+                    queryWrapper.last("limit 1");
+                    BaseRegionInfoEntity region = getBaseRegionInfoService().getOne(queryWrapper);
+                    fullCode.append(region.getAdnm());
+                }
+                if (fullCode.length() > 0) {
+                    fullCode.append("/");
+                }
+                if (Func.notNull(vo.getAdnm())) {
+                    fullCode.append(vo.getAdnm());
+                }
+                vo.setFullAadName(fullCode.toString());
+            }
+
+        }
 
         return vo;
     }

+ 47 - 4
src/main/java/org/springblade/modules/yjxt/base/servicePerson/controller/YjxtServicePersonController.java

@@ -22,6 +22,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DigestUtil;
 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.system.entity.Post;
 import org.springblade.modules.system.entity.Role;
 import org.springblade.modules.system.entity.User;
@@ -59,6 +60,7 @@ public class YjxtServicePersonController extends BladeController {
     private final IUserService userService;
     private final IRoleService roleService;
     private final IPostService postService;
+    private final IDeptRegionService deptRegionService;
 
 
     @GetMapping("/page")
@@ -69,9 +71,44 @@ public class YjxtServicePersonController extends BladeController {
     @ApiOperation(value = "分页")
     public R<IPage<YjxtServicePersonVO>> page(@ApiIgnore YjxtServicePersonDTO dto, Query query) {
         BladeUser user = AuthUtil.getUser();
-        if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
-            dto.setDeptId(user.getDeptId());
+       if (Func.isNull(dto.getAdCode())) {
+            if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+                dto.setAdCode(BusinessConstant.REGION_NM_ADCODE);
+            } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)) {
+                    return R.fail("查询失败");
+                }
+                dto.setAdCode(deptRegionEntity.getAdcd());
+            } else if (BusinessConstant.ROLE_YJ_SERVICE_PERSON.equals(user.getRoleName())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)) {
+                    return R.fail("查询失败");
+                }
+                dto.setAdCode(deptRegionEntity.getAdcd());
+            } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)) {
+                    return R.fail("查询失败");
+                }
+                dto.setAdCode(deptRegionEntity.getAdcd());
+            } else {
+                return R.fail("查询失败");
+            }
         }
+
+//        if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+//            dto.setDeptId(user.getDeptId());
+//        }
         IPage<YjxtServicePersonVO> pages = yjxtServicePersonServcie.selectPage(Condition.getPage(query), dto);
         return R.data(pages);
     }
@@ -94,7 +131,6 @@ public class YjxtServicePersonController extends BladeController {
     @ApiOperationSupport(order = 4)
     @ApiOperation(value = "新增", notes = "传入 User")
     public R save(@RequestBody YjxtServicePersonDTO dto) {
-
         BladeUser user = AuthUtil.getUser();
         LambdaQueryWrapper<User> wrapper = Wrappers.<User>query().lambda();
         wrapper.eq(User::getAccount, dto.getUserAccount());
@@ -104,6 +140,13 @@ public class YjxtServicePersonController extends BladeController {
         if (Func.notNull(detail)) {
             return R.fail("帐号已经存在");
         }
+        LambdaQueryWrapper<DeptRegionEntity> regionWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+        regionWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+        regionWrapper.last("limit 1");
+        DeptRegionEntity deptRegionEntity = deptRegionService.getOne(regionWrapper);
+        if (Func.isNull(deptRegionEntity)) {
+            return R.fail("系统错误");
+        }
         User userEntity = new User();
         userEntity.setAccount(dto.getUserAccount());
         userEntity.setRealName(dto.getUserName());
@@ -127,7 +170,7 @@ public class YjxtServicePersonController extends BladeController {
         if (userService.save(userEntity)) {
             YjxtServicePersonEntity yjxtServicePersonEntity = new YjxtServicePersonEntity();
             yjxtServicePersonEntity.setUserId(userEntity.getId());
-            yjxtServicePersonEntity.setAdCode(dto.getAdCode());
+            yjxtServicePersonEntity.setAdCode(deptRegionEntity.getAdcd());
             yjxtServicePersonServcie.save(yjxtServicePersonEntity);
         }
         return R.status(true);

+ 4 - 0
src/main/java/org/springblade/modules/yjxt/base/servicePerson/mapper/YjxtServicePersonMapper.xml

@@ -23,6 +23,7 @@
         FROM
         yjxt_base_service_person p
         LEFT JOIN blade_user u ON u.id = p.user_id and u.is_deleted = 0
+        LEFT JOIN base_data_ad_cd a ON a.adcd = p.ad_code and a.is_deleted=0
         WHERE
         p.is_deleted = 0
         <if test="dto.userName!=null">
@@ -31,6 +32,9 @@
         <if test="dto.deptId!=null">
             and (u.dept_id =#{dto.deptId} or  FIND_IN_SET(#{dto.deptId} ,u.dept_id) >0 )
         </if>
+        <if test="dto.adCode!=null and dto.adCode!=''">
+            and (a.adcd =#{dto.adCode} or  FIND_IN_SET(#{dto.adCode} ,a.ancestors) >0 )
+        </if>
         ORDER BY
         u.real_name
     </select>

+ 26 - 14
src/main/java/org/springblade/modules/yjxt/business/check/controller/DangerAreaCheckController.java

@@ -64,7 +64,7 @@ public class DangerAreaCheckController extends BladeController {
     @ApiOperation(value = "分页")
     public R<IPage<DangerAreaCheckInfoVO>> page(@ApiIgnore DangerAreaCheckInfoDTO dto, Query query) {
         BladeUser user = AuthUtil.getUser();
-        if(Func.isNull(dto.getAdcd())){
+        if (Func.isNull(dto.getAdcd())) {
             if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
                 dto.setAdcd(BusinessConstant.REGION_NM_ADCODE);
             } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
@@ -72,20 +72,29 @@ public class DangerAreaCheckController extends BladeController {
                 wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
                 wrapper.last("limit 1");
                 DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
-                if (Func.isNull(deptRegionEntity)){
+                if (Func.isNull(deptRegionEntity)) {
                     return R.fail("查询失败");
                 }
                 dto.setAdcd(deptRegionEntity.getAdcd());
-            }else if(BusinessConstant.ROLE_YJ_SERVICE_PERSON.equals(user.getRoleName())){
+            } else if (BusinessConstant.ROLE_YJ_SERVICE_PERSON.equals(user.getRoleName())) {
                 LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
                 wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
                 wrapper.last("limit 1");
                 DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
-                if (Func.isNull(deptRegionEntity)){
+                if (Func.isNull(deptRegionEntity)) {
                     return R.fail("查询失败");
                 }
                 dto.setAdcd(deptRegionEntity.getAdcd());
-            }else{
+            } else if (BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)) {
+                    return R.fail("查询失败");
+                }
+                dto.setAdcd(deptRegionEntity.getAdcd());
+            } else {
                 return R.fail("查询失败");
             }
         }
@@ -105,6 +114,9 @@ public class DangerAreaCheckController extends BladeController {
     @ApiOperationSupport(order = 4)
     @ApiOperation(value = "新增", notes = "传入 User")
     public R report(@RequestBody DangerAreaCheckInfoEntity entity) {
+        if (Func.isNull(entity.getAdcd())){
+            return R.fail("参数错误");
+        }
         if (Func.isNull(entity.getCheckType())) {
             return R.fail("参数错误");
         }
@@ -113,15 +125,15 @@ public class DangerAreaCheckController extends BladeController {
                 return R.fail("参数错误");
             }
         }
-        if (Func.notNull(entity.getWarnId())) {
-            LambdaQueryWrapper<OriginalWarningInfoEntity> wrapper = Wrappers.<OriginalWarningInfoEntity>query().lambda();
-            wrapper.eq(OriginalWarningInfoEntity::getWarnId, entity.getWarnId());
-            wrapper.last("limit 1");
-            OriginalWarningInfoEntity warningInfoEntity = originalWarningService.getOne(wrapper);
-            if (Func.notNull(warningInfoEntity)) {
-                entity.setAdcd(warningInfoEntity.getWarnAdcd());
-            }
-        }
+//        if (Func.notNull(entity.getWarnId())) {
+//            LambdaQueryWrapper<OriginalWarningInfoEntity> wrapper = Wrappers.<OriginalWarningInfoEntity>query().lambda();
+//            wrapper.eq(OriginalWarningInfoEntity::getWarnId, entity.getWarnId());
+//            wrapper.last("limit 1");
+//            OriginalWarningInfoEntity warningInfoEntity = originalWarningService.getOne(wrapper);
+//            if (Func.notNull(warningInfoEntity)) {
+//                entity.setAdcd(warningInfoEntity.getWarnAdcd());
+//            }
+//        }
         danagerAreaCheckService.save(entity);
         return R.status(true);
     }

+ 6 - 0
src/main/java/org/springblade/modules/yjxt/business/check/vo/DangerAreaCheckInfoVO.java

@@ -29,4 +29,10 @@ public class DangerAreaCheckInfoVO extends DangerAreaCheckInfoEntity {
 
     @ApiModelProperty("危险区名称")
     private String dangerAreaName;
+
+    /**
+     * 行政区划全名
+     */
+    @ApiModelProperty(value = "行政区划全名")
+    private String fullAadName;
 }

+ 33 - 4
src/main/java/org/springblade/modules/yjxt/business/check/wrapper/DanagerAreaCheckWrapper.java

@@ -63,17 +63,46 @@ public class DanagerAreaCheckWrapper extends BaseEntityWrapper<DangerAreaCheckIn
     }
 
     public DangerAreaCheckInfoVO entityVO(DangerAreaCheckInfoVO vo) {
-        if (Func.notNull(vo.getAdcd())) {
+
+        if (Func.isNull(vo.getAdName())) {
             LambdaQueryWrapper<BaseRegionInfoEntity> wrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
             wrapper.eq(BaseRegionInfoEntity::getAdcd, vo.getAdcd());
             wrapper.last("limit 1");
             BaseRegionInfoEntity entity = getBaseRegionInfoService().getOne(wrapper);
+            vo.setAdName(entity.getAdnm());
+        }
+
+        if (Func.notNull(vo.getAdcd())) {
+            LambdaQueryWrapper<BaseRegionInfoEntity> queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+            queryWrapper.eq(BaseRegionInfoEntity::getAdcd, vo.getAdcd());
+            queryWrapper.last("limit 1");
+            BaseRegionInfoEntity entity = getBaseRegionInfoService().getOne(queryWrapper);
             if (Func.notNull(entity)) {
-                vo.setAdName(entity.getAdnm());
+                String ancestores = entity.getAncestors();
+                StringBuilder fullCode = new StringBuilder();
+                String[] codes = ancestores.split(",");
+                for (int i = 2; i < codes.length; i++) {
+                    if (fullCode.length() > 0) {
+                        fullCode.append("/");
+                    }
+                    queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+                    queryWrapper.eq(BaseRegionInfoEntity::getAdcd, codes[i]);
+                    queryWrapper.last("limit 1");
+                    BaseRegionInfoEntity region = getBaseRegionInfoService().getOne(queryWrapper);
+                    fullCode.append(region.getAdnm());
+                }
+                if (fullCode.length() > 0) {
+                    fullCode.append("/");
+                }
+                if (Func.notNull(vo.getAdName())) {
+
+                    fullCode.append(vo.getAdName());
+                }
+                vo.setFullAadName(fullCode.toString());
             }
-        } else {
-            vo.setAdName("");
+
         }
+
         if (Func.notNull(vo.getDangerAreaPid())) {
             LambdaQueryWrapper<DangerAreaEntity> wrapper = Wrappers.<DangerAreaEntity>query().lambda();
             wrapper.eq(DangerAreaEntity::getDangerAreaPid, vo.getDangerAreaPid());

+ 14 - 1
src/main/java/org/springblade/modules/yjxt/business/resident/controller/DangerAreaResidentController.java

@@ -73,17 +73,30 @@ public class DangerAreaResidentController extends BladeController {
                     return R.fail("查询失败");
                 }
                 dto.setDangerAreaCode(deptRegionEntity.getAdcd());
+            }else if(BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())){
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)){
+                    return R.fail("查询失败");
+                }
+                dto.setDangerAreaCode(deptRegionEntity.getAdcd());
             }else{
                 return R.fail("查询失败");
             }
         }
         IPage<DangerAreaResidentInfoVO> pages = dangerAreaResidentService.selectPage(Condition.getPage(query), dto);
+        List<DangerAreaResidentInfoVO> list = pages.getRecords();
+        for (DangerAreaResidentInfoVO vo:list){
+            DanagerAreaResidentWrapper.build().entityVO(vo);
+        }
         return R.data(pages);
     }
 
     @GetMapping("/family/list")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "personId", value = "户主身份证号", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "personId", value = "手机号", paramType = "query", dataType = "string"),
     })
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "分页")

+ 2 - 1
src/main/java/org/springblade/modules/yjxt/business/resident/mapper/DangerAreaResidentInfoMapper.xml

@@ -26,13 +26,14 @@
         <result column="address" property="address"/>
         <result column="danger_area_name" property="dangerAreaName"/>
         <result column="adnm" property="adName"/>
+        <result column="adcd" property="adCode"/>
         <result column="register_type" property="registerType"/>
     </resultMap>
 
     <select id="selectPage" resultMap="residentVOResultMap">
 
         SELECT
-        n.*,a.adnm,d.danger_area_name
+        n.*,a.adcd,a.adnm,d.danger_area_name
         FROM
         yjxt_danger_area_resident_info n
         LEFT JOIN map_danger_area_info d ON d.danger_area_pid = n.danger_area_pid and d.is_deleted=0

+ 12 - 0
src/main/java/org/springblade/modules/yjxt/business/resident/vo/DangerAreaResidentInfoVO.java

@@ -10,6 +10,12 @@ import org.springblade.modules.yjxt.business.resident.entity.DangerAreaResidentI
 @EqualsAndHashCode(callSuper = true)
 public class DangerAreaResidentInfoVO extends DangerAreaResidentInfoEntity {
 
+    /**
+     * 行政区划
+     */
+    @ApiModelProperty("行政区划")
+    private String adCode;
+
     /**
      * 行政区划名称
      */
@@ -21,4 +27,10 @@ public class DangerAreaResidentInfoVO extends DangerAreaResidentInfoEntity {
      */
     @ApiModelProperty(value = "危险区名称")
     private String dangerAreaName;
+
+    /**
+     * 行政区划全名
+     */
+    @ApiModelProperty(value = "行政区划全名")
+    private String fullAadName;
 }

+ 48 - 0
src/main/java/org/springblade/modules/yjxt/business/resident/wrapper/DanagerAreaResidentWrapper.java

@@ -6,12 +6,19 @@
  */
 package org.springblade.modules.yjxt.business.resident.wrapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 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.region.whole.entity.BaseRegionInfoEntity;
+import org.springblade.modules.baseinfo.region.whole.service.IBaseRegionInfoService;
 import org.springblade.modules.yjxt.business.resident.entity.DangerAreaResidentInfoEntity;
 import org.springblade.modules.yjxt.business.resident.vo.DangerAreaResidentInfoVO;
 
+
 import java.util.Objects;
 
 /***
@@ -27,9 +34,50 @@ public class DanagerAreaResidentWrapper extends BaseEntityWrapper<DangerAreaResi
         return new DanagerAreaResidentWrapper();
     }
 
+    private static IBaseRegionInfoService baseRegionInfoService;
+
+    private static IBaseRegionInfoService getBaseRegionInfoService() {
+        if (baseRegionInfoService == null) {
+            baseRegionInfoService = SpringUtil.getBean(IBaseRegionInfoService.class);
+        }
+        return baseRegionInfoService;
+    }
+
     @Override
     public DangerAreaResidentInfoVO entityVO(DangerAreaResidentInfoEntity entity) {
         DangerAreaResidentInfoVO vo = Objects.requireNonNull(BeanUtil.copy(entity, DangerAreaResidentInfoVO.class));
+        return entityVO(vo);
+    }
+
+    public DangerAreaResidentInfoVO entityVO(DangerAreaResidentInfoVO vo) {
+        if (Func.notNull(vo.getAdCode())) {
+            LambdaQueryWrapper<BaseRegionInfoEntity> queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+            queryWrapper.eq(BaseRegionInfoEntity::getAdcd, vo.getAdCode());
+            queryWrapper.last("limit 1");
+            BaseRegionInfoEntity entity = getBaseRegionInfoService().getOne(queryWrapper);
+            if (Func.notNull(entity)) {
+                String ancestores = entity.getAncestors();
+                StringBuilder fullCode = new StringBuilder();
+                String[] codes = ancestores.split(",");
+                for (int i = 2; i < codes.length; i++) {
+                    if (fullCode.length() > 0) {
+                        fullCode.append("/");
+                    }
+                    queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+                    queryWrapper.eq(BaseRegionInfoEntity::getAdcd, codes[i]);
+                    queryWrapper.last("limit 1");
+                    BaseRegionInfoEntity region = getBaseRegionInfoService().getOne(queryWrapper);
+                    fullCode.append(region.getAdnm());
+                }
+                if (fullCode.length() > 0) {
+                    fullCode.append("/");
+                }
+                if (Func.notNull(vo.getAdName())) {
+                    fullCode.append(vo.getAdName());
+                }
+                vo.setFullAadName(fullCode.toString());
+            }
+        }
         return vo;
     }
 }

+ 9 - 0
src/main/java/org/springblade/modules/yjxt/business/warn/controller/YjWarnController.java

@@ -101,6 +101,15 @@ public class YjWarnController extends BladeController {
                     return R.fail("查询失败");
                 }
                 entity.setWarnAdcd(deptRegionEntity.getAdcd());
+            }else if(BusinessConstant.ROLE_QI_ADMIN.equals(user.getRoleName())){
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)){
+                    return R.fail("查询失败");
+                }
+                entity.setWarnAdcd(deptRegionEntity.getAdcd());
             } else {
                 return R.fail("查询失败");
             }

+ 5 - 2
src/main/java/org/springblade/modules/yjxt/business/warn/mapper/OriginalWarningMapper.xml

@@ -65,8 +65,11 @@
         LEFT JOIN map_danger_area_info a on a.adcd = w.warn_adcd and a.is_deleted = 0
         WHERE
         w.is_deleted = 0
-        <if test="dto.startTime!=null and dto.endTime!=null">
-        and w.warn_time &gt;=  #{dto.startTime} and w.warn_time  &lt;  #{dto.endTime}
+        <if test="dto.startTime!=null">
+            and w.warn_time &gt;=  #{dto.startTime}
+        </if>
+        <if test="dto.endTime!=null">
+            and w.warn_time  &lt;  #{dto.endTime}
         </if>
         <if test="dto.warnLevelCode!=null">
             and w.warn_level_code =#{dto.warnLevelCode}

+ 7 - 0
src/main/java/org/springblade/modules/yjxt/business/warn/vo/OriginalWarningInfoVO.java

@@ -66,4 +66,11 @@ public class OriginalWarningInfoVO extends OriginalWarningInfoEntity {
 	 */
 	@ApiModelProperty("政区名称")
 	private String adName;
+
+
+	/**
+	 * 行政区划全名
+	 */
+	@ApiModelProperty(value = "行政区划全名")
+	private String fullAadName;
 }

+ 23 - 0
src/main/java/org/springblade/modules/yjxt/business/warn/wrapper/YjWarnInfoWrapper.java

@@ -103,7 +103,30 @@ public class YjWarnInfoWrapper extends BaseEntityWrapper<OriginalWarningInfoEnti
             BaseRegionInfoEntity entity = getBaseRegionInfoService().getOne(queryWrapper);
             if (Func.notNull(entity)) {
                 vo.setAdName(entity.getAdnm());
+
+                String ancestores = entity.getAncestors();
+                StringBuilder fullCode = new StringBuilder();
+                String[] codes = ancestores.split(",");
+                for (int i = 2; i < codes.length; i++) {
+                    if (fullCode.length() > 0) {
+                        fullCode.append("/");
+                    }
+                    queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+                    queryWrapper.eq(BaseRegionInfoEntity::getAdcd, codes[i]);
+                    queryWrapper.last("limit 1");
+                    BaseRegionInfoEntity region = getBaseRegionInfoService().getOne(queryWrapper);
+                    fullCode.append(region.getAdnm());
+                }
+                if (fullCode.length() > 0) {
+                    fullCode.append("/");
+                }
+                if (Func.notNull(vo.getAdName())) {
+
+                    fullCode.append(vo.getAdName());
+                }
+                vo.setFullAadName(fullCode.toString());
             }
+
         }
 
         if (Func.isNull(vo.getWarnQrUrl())) {

+ 45 - 36
src/main/java/org/springblade/share/DataShareController.java

@@ -79,7 +79,7 @@ public class DataShareController extends BladeController {
         if (Func.isNull(dto.getWarnId())) {
             return R.fail("参数错误");
         }
-        if (dto.getWarnId().length() ==0){
+        if (dto.getWarnId().length() == 0) {
             return R.fail("参数错误");
         }
         LambdaQueryWrapper<DangerAreaCheckInfoEntity> wrapper = Wrappers.<DangerAreaCheckInfoEntity>query().lambda();
@@ -144,47 +144,55 @@ public class DataShareController extends BladeController {
         if (Func.isNull(dto.getDangerAreaPid())) {
             return R.fail("危险区ID参数错误");
         }
-        if (Func.isNull(dto.getStartTime()) || Func.isNull(dto.getEndTime())) {
-            return R.fail("查询时间参数错误");
-        }
-        if (Func.isNull(dto.getWarnLevelCode())) {
-            return R.fail("预警等级参数错误");
-        }
+//        if (Func.isNull(dto.getStartTime()) || Func.isNull(dto.getEndTime())) {
+//            return R.fail("查询时间参数错误");
+//        }
+//        if (Func.isNull(dto.getWarnLevelCode())) {
+//            return R.fail("预警等级参数错误");
+//        }
         List<JSONObject> datas = new ArrayList<>();
         OriginalWarningInfoDTO originalWarningInfoDTO = new OriginalWarningInfoDTO();
         originalWarningInfoDTO.setDangerAreaPid(dto.getDangerAreaPid());
-        originalWarningInfoDTO.setWarnLevelCode(dto.getWarnLevelCode());
-        LocalDateTime startDateTime = LocalDateTime.parse(dto.getStartTime(), DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
-        originalWarningInfoDTO.setStartTime(Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant()));
-        LocalDateTime endDateTime = LocalDateTime.parse(dto.getEndTime(), DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
-        originalWarningInfoDTO.setEndTime(Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant()));
-        List<OriginalWarningInfoEntity> originalWarningInfoEntityList= originalWarningService.selectDangerAreaList(originalWarningInfoDTO);
-        if (Func.notNull(originalWarningInfoEntityList)){
-            for (OriginalWarningInfoEntity entity:originalWarningInfoEntityList){
+        if (Func.notNull(dto.getWarnLevelCode())) {
+            originalWarningInfoDTO.setWarnLevelCode(dto.getWarnLevelCode());
+        }
+        if (Func.notNull(dto.getStartTime()) && Func.notNull(dto.getEndTime())) {
+            LocalDateTime startDateTime = LocalDateTime.parse(dto.getStartTime(), DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+            originalWarningInfoDTO.setStartTime(Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant()));
+            LocalDateTime endDateTime = LocalDateTime.parse(dto.getEndTime(), DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+            originalWarningInfoDTO.setEndTime(Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant()));
+        } else if (Func.notNull(dto.getStartTime())) {
+            LocalDateTime startDateTime = LocalDateTime.parse(dto.getStartTime(), DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+            originalWarningInfoDTO.setStartTime(Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant()));
+        }
+        List<OriginalWarningInfoEntity> originalWarningInfoEntityList = originalWarningService.selectDangerAreaList(originalWarningInfoDTO);
+        if (Func.notNull(originalWarningInfoEntityList)) {
+            for (OriginalWarningInfoEntity entity : originalWarningInfoEntityList) {
                 JSONObject vo = new JSONObject();
-                vo.put("warnId",entity.getWarnId());
-                vo.put("warnTime",entity.getWarnTime().getTime());
-                DangerAreaResidentInfoDTO residentInfoDTO=new DangerAreaResidentInfoDTO();
+                vo.put("warnId", entity.getWarnId());
+                vo.put("warnTime", entity.getWarnTime().getTime());
+                vo.put("warnLevelCode",entity.getWarnLevelCode());
+                DangerAreaResidentInfoDTO residentInfoDTO = new DangerAreaResidentInfoDTO();
                 residentInfoDTO.setDangerAreaCode(entity.getWarnAdcd());
-                long totalTransferPerson =dangerAreaResidentService.residentCount(residentInfoDTO);
+                long totalTransferPerson = dangerAreaResidentService.residentCount(residentInfoDTO);
                 DamageTransferPersonInfoDTO transferPersonInfoDTO = new DamageTransferPersonInfoDTO();
                 transferPersonInfoDTO.setWarnId(entity.getWarnId());
                 long safetyTransferPerson = damageTransferPersonService.transferPersonCount(transferPersonInfoDTO);
-                vo.put("totalTransferPerson",totalTransferPerson);
-                vo.put("safetyTransferPerson",safetyTransferPerson);
+                vo.put("totalTransferPerson", totalTransferPerson);
+                vo.put("safetyTransferPerson", safetyTransferPerson);
                 JSONArray personList = new JSONArray();
                 LambdaQueryWrapper<DamageTransferPersonInfoEntity> wrapper2 = Wrappers.<DamageTransferPersonInfoEntity>query().lambda();
                 wrapper2.eq(DamageTransferPersonInfoEntity::getWarnId, entity.getWarnId());
                 List<DamageTransferPersonInfoEntity> transferPersonInfoEntityList = damageTransferPersonService.list(wrapper2);
-                if (Func.notNull(transferPersonInfoEntityList)){
-                    for (DamageTransferPersonInfoEntity transferPersonInfoEntity:transferPersonInfoEntityList){
+                if (Func.notNull(transferPersonInfoEntityList)) {
+                    for (DamageTransferPersonInfoEntity transferPersonInfoEntity : transferPersonInfoEntityList) {
                         JSONObject person = new JSONObject();
-                        person.put("personName",transferPersonInfoEntity.getPersonName());
-                        person.put("recordTime",transferPersonInfoEntity.getCreateTime().getTime());
+                        person.put("personName", transferPersonInfoEntity.getPersonName());
+                        person.put("recordTime", transferPersonInfoEntity.getCreateTime().getTime());
                         personList.add(person);
                     }
                 }
-                vo.put("transferPersonList",personList);
+                vo.put("transferPersonList", personList);
                 datas.add(vo);
             }
         }
@@ -194,6 +202,7 @@ public class DataShareController extends BladeController {
     /**
      * 灾害转移统计查询
      * 根据预警ID查询
+     *
      * @param dto
      * @return
      */
@@ -210,33 +219,33 @@ public class DataShareController extends BladeController {
         LambdaQueryWrapper<OriginalWarningInfoEntity> wrapper = Wrappers.<OriginalWarningInfoEntity>query().lambda();
         wrapper.eq(OriginalWarningInfoEntity::getWarnId, dto.getWarnId());
         OriginalWarningInfoEntity warningInfoEntity = warningService.getOne(wrapper);
-        if (Func.isNull(warningInfoEntity)){
+        if (Func.isNull(warningInfoEntity)) {
             return R.fail("预警数据空");
         }
         List<JSONObject> datas = new ArrayList<>(1);
         JSONObject vo = new JSONObject();
-        DangerAreaResidentInfoDTO residentInfoDTO=new DangerAreaResidentInfoDTO();
+        DangerAreaResidentInfoDTO residentInfoDTO = new DangerAreaResidentInfoDTO();
         residentInfoDTO.setDangerAreaCode(warningInfoEntity.getWarnAdcd());
-        long totalTransferPerson =dangerAreaResidentService.residentCount(residentInfoDTO);
+        long totalTransferPerson = dangerAreaResidentService.residentCount(residentInfoDTO);
         DamageTransferPersonInfoDTO transferPersonInfoDTO = new DamageTransferPersonInfoDTO();
         transferPersonInfoDTO.setWarnId(dto.getWarnId());
         long safetyTransferPerson = damageTransferPersonService.transferPersonCount(transferPersonInfoDTO);
-        vo.put("totalTransferPerson",totalTransferPerson);
-        vo.put("safetyTransferPerson",safetyTransferPerson);
+        vo.put("totalTransferPerson", totalTransferPerson);
+        vo.put("safetyTransferPerson", safetyTransferPerson);
         JSONArray personList = new JSONArray();
         LambdaQueryWrapper<DamageTransferPersonInfoEntity> wrapper2 = Wrappers.<DamageTransferPersonInfoEntity>query().lambda();
         wrapper2.eq(DamageTransferPersonInfoEntity::getIsDeleted, 0);
         wrapper2.eq(DamageTransferPersonInfoEntity::getWarnId, dto.getWarnId());
         List<DamageTransferPersonInfoEntity> transferPersonInfoEntityList = damageTransferPersonService.list(wrapper2);
-        if (!Func.isNull(transferPersonInfoEntityList)){
-            for (DamageTransferPersonInfoEntity transferPersonInfoEntity:transferPersonInfoEntityList){
+        if (!Func.isNull(transferPersonInfoEntityList)) {
+            for (DamageTransferPersonInfoEntity transferPersonInfoEntity : transferPersonInfoEntityList) {
                 JSONObject person = new JSONObject();
-                person.put("personName",transferPersonInfoEntity.getPersonName());
-                person.put("recordTime",transferPersonInfoEntity.getCreateTime().getTime());
+                person.put("personName", transferPersonInfoEntity.getPersonName());
+                person.put("recordTime", transferPersonInfoEntity.getCreateTime().getTime());
                 personList.add(person);
             }
         }
-        vo.put("transferPersonList",personList);
+        vo.put("transferPersonList", personList);
         datas.add(vo);
         return R.data(datas);
     }