Преглед изворни кода

内蒙山洪运维系统-应急系统功能模块开发

dylan пре 2 година
родитељ
комит
20ae528b81
100 измењених фајлова са 2271 додато и 1111 уклоњено
  1. 4 0
      pom.xml
  2. 11 0
      src/main/java/org/springblade/constant/BusinessConstant.java
  3. 3 5
      src/main/java/org/springblade/etl/EtlRegionDataTask.java
  4. 2 2
      src/main/java/org/springblade/jobtask/ReportCountProcessor.java
  5. 1 1
      src/main/java/org/springblade/modules/baseinfo/org/controller/BaseInfoOrgController.java
  6. 2 2
      src/main/java/org/springblade/modules/baseinfo/org/wrapper/OrgInfoWrapper.java
  7. 0 603
      src/main/java/org/springblade/modules/baseinfo/region/controller/RegionInfoController.java
  8. 1 1
      src/main/java/org/springblade/modules/baseinfo/region/tree/entity/RegionTreeNodeEntity.java
  9. 4 4
      src/main/java/org/springblade/modules/baseinfo/region/tree/wrapper/RegionInfoNodeWrapper.java
  10. 182 0
      src/main/java/org/springblade/modules/baseinfo/region/whole/controller/BaseRegionController.java
  11. 1 1
      src/main/java/org/springblade/modules/baseinfo/region/whole/entity/BaseRegionInfoEntity.java
  12. 3 2
      src/main/java/org/springblade/modules/baseinfo/region/whole/mapper/BaseRegionInfoMapper.java
  13. 2 2
      src/main/java/org/springblade/modules/baseinfo/region/whole/mapper/BaseRegionInfoMapper.xml
  14. 3 2
      src/main/java/org/springblade/modules/baseinfo/region/whole/service/IBaseRegionInfoService.java
  15. 5 4
      src/main/java/org/springblade/modules/baseinfo/region/whole/service/impl/BaseRegionInfoServiceImpl.java
  16. 547 0
      src/main/java/org/springblade/modules/baseinfo/region/yw/controller/RegionInfoController.java
  17. 2 2
      src/main/java/org/springblade/modules/baseinfo/region/yw/dto/RegionInfoDTO.java
  18. 1 1
      src/main/java/org/springblade/modules/baseinfo/region/yw/entity/RegionInfoEntity.java
  19. 2 2
      src/main/java/org/springblade/modules/baseinfo/region/yw/mapper/RegionInfoMapper.java
  20. 2 2
      src/main/java/org/springblade/modules/baseinfo/region/yw/mapper/RegionInfoMapper.xml
  21. 4 4
      src/main/java/org/springblade/modules/baseinfo/region/yw/service/IRegionInfoService.java
  22. 6 6
      src/main/java/org/springblade/modules/baseinfo/region/yw/service/impl/RegionInfoServiceImpl.java
  23. 2 2
      src/main/java/org/springblade/modules/baseinfo/region/yw/vo/RegionInfoVO.java
  24. 4 4
      src/main/java/org/springblade/modules/baseinfo/region/yw/wrapper/RegionInfoWrapper.java
  25. 3 3
      src/main/java/org/springblade/modules/baseinfo/rtu/controller/RtuBaseInfoController.java
  26. 1 1
      src/main/java/org/springblade/modules/baseinfo/rtu/service/IRtuBaseInfoService.java
  27. 5 6
      src/main/java/org/springblade/modules/baseinfo/rtu/service/impl/RtuBaseInfoServiceImpl.java
  28. 2 2
      src/main/java/org/springblade/modules/baseinfo/rtu/wrapper/RtuInfoWrapper.java
  29. 3 3
      src/main/java/org/springblade/modules/business/check/order/controller/RtuCheckOrderController.java
  30. 2 2
      src/main/java/org/springblade/modules/business/check/order/service/impl/RtuCheckOrderServiceImpl.java
  31. 2 2
      src/main/java/org/springblade/modules/business/check/order/wrapper/RtuCheckOrderWrapper.java
  32. 3 3
      src/main/java/org/springblade/modules/business/check/process/controller/RtuOrderProcessController.java
  33. 2 2
      src/main/java/org/springblade/modules/business/data/controller/RtuDataGroundController.java
  34. 78 2
      src/main/java/org/springblade/modules/business/data/controller/RtuDataRainController.java
  35. 2 2
      src/main/java/org/springblade/modules/business/data/controller/RtuDataRiverController.java
  36. 2 2
      src/main/java/org/springblade/modules/business/data/controller/RtuDataRsvrController.java
  37. 2 2
      src/main/java/org/springblade/modules/business/data/controller/RtuDataWaterLevelController.java
  38. 1 0
      src/main/java/org/springblade/modules/business/data/dto/RtuDataRainDTO.java
  39. 2 0
      src/main/java/org/springblade/modules/business/data/mapper/RtuDataRainMapper.java
  40. 97 4
      src/main/java/org/springblade/modules/business/data/mapper/RtuDataRainMapper.xml
  41. 2 0
      src/main/java/org/springblade/modules/business/data/service/IRtuDataRainService.java
  42. 5 0
      src/main/java/org/springblade/modules/business/data/service/impl/RtuDataRainServiceImpl.java
  43. 11 0
      src/main/java/org/springblade/modules/business/data/vo/RtuDataRainVO.java
  44. 3 3
      src/main/java/org/springblade/modules/business/equipment/inspection/base/controller/EquipmentInspectionController.java
  45. 3 3
      src/main/java/org/springblade/modules/business/equipment/inspection/report/controller/EquipmentInspectionReportController.java
  46. 2 2
      src/main/java/org/springblade/modules/business/equipment/inspection/report/wrapper/EquipmentInspectionReportWrapper.java
  47. 2 2
      src/main/java/org/springblade/modules/business/home/controller/HomeController.java
  48. 3 3
      src/main/java/org/springblade/modules/business/rtumanage/controller/RtuManageController.java
  49. 5 6
      src/main/java/org/springblade/modules/business/version/controller/VersionManageController.java
  50. 1 1
      src/main/java/org/springblade/modules/business/version/entity/VersionInfoEntity.java
  51. 2 2
      src/main/java/org/springblade/modules/business/version/mapper/VersionInfoMapper.java
  52. 2 2
      src/main/java/org/springblade/modules/business/version/mapper/VersionInfoMapper.xml
  53. 2 4
      src/main/java/org/springblade/modules/business/version/service/IVersionManageService.java
  54. 4 4
      src/main/java/org/springblade/modules/business/version/service/impl/VersionManageServiceImpl.java
  55. 2 2
      src/main/java/org/springblade/modules/business/version/vo/VersionInfoVO.java
  56. 3 3
      src/main/java/org/springblade/modules/business/version/wrapper/VersionInfoWrapper.java
  57. 2 2
      src/main/java/org/springblade/modules/business/warning/controller/RtuWarningController.java
  58. 2 2
      src/main/java/org/springblade/modules/business/warning/wrapper/RtuWarningWrapper.java
  59. 2 1
      src/main/java/org/springblade/modules/manage/controller/DataManageController.java
  60. 3 3
      src/main/java/org/springblade/modules/manage/task/RtuImportTask.java
  61. 1 1
      src/main/java/org/springblade/modules/report/WeekOrgReportBean.java
  62. 216 146
      src/main/java/org/springblade/modules/yjxt/base/map/controller/MapDangerAreaController.java
  63. 4 0
      src/main/java/org/springblade/modules/yjxt/base/map/controller/MapDangerAreaLeaveLineController.java
  64. 6 0
      src/main/java/org/springblade/modules/yjxt/base/map/dto/DangerAreaDTO.java
  65. 12 0
      src/main/java/org/springblade/modules/yjxt/base/map/entity/DangerAreaEntity.java
  66. 3 0
      src/main/java/org/springblade/modules/yjxt/base/map/mapper/DangerAreaLeaveLineMapper.xml
  67. 7 0
      src/main/java/org/springblade/modules/yjxt/base/map/mapper/DangerAreaMapper.xml
  68. 25 0
      src/main/java/org/springblade/modules/yjxt/base/map/service/IDangerAreaService.java
  69. 69 9
      src/main/java/org/springblade/modules/yjxt/base/map/service/impl/DangerAreaServiceImpl.java
  70. 19 1
      src/main/java/org/springblade/modules/yjxt/base/map/vo/DangerAreaVO.java
  71. 1 1
      src/main/java/org/springblade/modules/yjxt/base/map/wrapper/DangerAreaLeaveLineWrapper.java
  72. 65 43
      src/main/java/org/springblade/modules/yjxt/base/map/wrapper/DangerAreaWrapper.java
  73. 52 32
      src/main/java/org/springblade/modules/yjxt/base/servicePerson/controller/YjxtServicePersonController.java
  74. 12 0
      src/main/java/org/springblade/modules/yjxt/base/servicePerson/dto/YjxtServicePersonDTO.java
  75. 5 6
      src/main/java/org/springblade/modules/yjxt/base/servicePerson/mapper/YjxtServicePersonMapper.xml
  76. 5 0
      src/main/java/org/springblade/modules/yjxt/base/servicePerson/vo/YjxtServicePersonVO.java
  77. 17 13
      src/main/java/org/springblade/modules/yjxt/base/servicePerson/wrapper/YjxtServicePersonWrapper.java
  78. 25 0
      src/main/java/org/springblade/modules/yjxt/business/check/controller/DangerAreaCheckController.java
  79. 3 6
      src/main/java/org/springblade/modules/yjxt/business/check/mapper/DangerAreaCheckInfoMapper.xml
  80. 5 0
      src/main/java/org/springblade/modules/yjxt/business/check/vo/DangerAreaCheckInfoVO.java
  81. 15 0
      src/main/java/org/springblade/modules/yjxt/business/check/wrapper/DanagerAreaCheckWrapper.java
  82. 101 14
      src/main/java/org/springblade/modules/yjxt/business/resident/controller/DangerAreaResidentController.java
  83. 18 0
      src/main/java/org/springblade/modules/yjxt/business/resident/dto/DangerAreaResidentInfoDTO.java
  84. 22 3
      src/main/java/org/springblade/modules/yjxt/business/resident/entity/DangerAreaResidentInfoEntity.java
  85. 31 14
      src/main/java/org/springblade/modules/yjxt/business/resident/mapper/DangerAreaResidentInfoMapper.xml
  86. 13 0
      src/main/java/org/springblade/modules/yjxt/business/resident/vo/DangerAreaResidentInfoVO.java
  87. 46 1
      src/main/java/org/springblade/modules/yjxt/business/transfer/controller/DamageTransferController.java
  88. 6 6
      src/main/java/org/springblade/modules/yjxt/business/transfer/mapper/DamageTransferPersonInfoMapper.xml
  89. 37 1
      src/main/java/org/springblade/modules/yjxt/business/warn/controller/YjWarnController.java
  90. 30 0
      src/main/java/org/springblade/modules/yjxt/business/warn/dto/OriginalWarningInfoDTO.java
  91. 12 0
      src/main/java/org/springblade/modules/yjxt/business/warn/entity/OriginalWarningInfoEntity.java
  92. 12 1
      src/main/java/org/springblade/modules/yjxt/business/warn/mapper/OriginalWarningMapper.xml
  93. 2 0
      src/main/java/org/springblade/modules/yjxt/business/warn/service/IOriginalWarningService.java
  94. 41 0
      src/main/java/org/springblade/modules/yjxt/business/warn/service/impl/OriginalWarningServiceImpl.java
  95. 6 0
      src/main/java/org/springblade/modules/yjxt/business/warn/vo/OriginalWarningInfoVO.java
  96. 73 65
      src/main/java/org/springblade/modules/yjxt/business/warn/wrapper/OriginalWarningWrapper.java
  97. 53 15
      src/main/java/org/springblade/modules/yjxt/business/warn/wrapper/YjWarnInfoWrapper.java
  98. 6 0
      src/main/java/org/springblade/mq/kafka/handler/MessageHandler.java
  99. 129 0
      src/main/java/org/springblade/share/yjxt/YjxtPublicDataController.java
  100. 4 0
      src/main/resources/application-dev.yml

+ 4 - 0
pom.xml

@@ -142,6 +142,10 @@
             <groupId>org.springblade</groupId>
             <artifactId>blade-starter-oss</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.minio</groupId>
+            <artifactId>minio</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.springblade</groupId>
             <artifactId>blade-starter-report</artifactId>

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

@@ -36,6 +36,11 @@ public class BusinessConstant {
 	 * 运维公司技术人员角色
 	 */
 	public static final  String ROLE_COMPANY_SERVICE_PERSON ="company_servcie_person";
+
+	/**
+	 * 应急人员角色
+	 */
+	public static final  String ROLE_YJ_SERVICE_PERSON ="org_yj_service_person";
 	/**
 	 * 盟市机构管理员角色ID
 	 */
@@ -48,6 +53,7 @@ public class BusinessConstant {
 	 * 公司运维人员角色ID
 	 */
 	public static final  String ROLE_COMPANY_SERVICE_PERSON_ID ="1641334272017199106";
+
 	/**
 	 * 管理岗位
 	 */
@@ -56,6 +62,11 @@ public class BusinessConstant {
 	 * 技术员岗位
 	 */
 	public static final  String POST_SERVICE_PERSON_ID ="1562994107637354498";
+
+	/**
+	 * 应急工作人员岗位
+	 */
+	public static final  String POST_YJ_SERVICE_PERSON_CODE ="yj_service_person";
 	/**
 	 * 系统管理员用户ID
 	 */

+ 3 - 5
src/main/java/org/springblade/etl/EtlRegionDataTask.java

@@ -10,10 +10,8 @@ package org.springblade.etl;
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.etl.entity.EtlAdCdEntity;
 import org.springblade.etl.service.IEtlAdCdService;
-import org.springblade.modules.baseinfo.region.entity.BaseRegionInfoEntity;
-import org.springblade.modules.baseinfo.region.service.IBaseRegionInfoService;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
-import org.springframework.data.redis.core.RedisTemplate;
+import org.springblade.modules.baseinfo.region.whole.entity.BaseRegionInfoEntity;
+import org.springblade.modules.baseinfo.region.whole.service.IBaseRegionInfoService;
 
 import java.util.List;
 import java.util.concurrent.Callable;
@@ -39,7 +37,7 @@ public class EtlRegionDataTask implements Callable<Integer> {
 		this.baseRegionInfoService = baseRegionInfoService;
 	}
 
-	private void crateChildRegion(BaseRegionInfoEntity root,String ancestors){
+	private void crateChildRegion(BaseRegionInfoEntity root, String ancestors){
 		EtlAdCdEntity etlAdCdEntity = new EtlAdCdEntity();
 		etlAdCdEntity.setSuperioradcd(root.getAdcd());
 		List<EtlAdCdEntity> list =etlAdCdService.selectList(etlAdCdEntity);

+ 2 - 2
src/main/java/org/springblade/jobtask/ReportCountProcessor.java

@@ -21,8 +21,8 @@ import org.springblade.modules.baseinfo.dict.entity.DictInfoEntity;
 import org.springblade.modules.baseinfo.dict.service.IBaseInfoDictService;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.dto.RtuInfoDTO;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.check.order.dto.CheckOrderInfoDTO;

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

@@ -26,7 +26,7 @@ import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
 import org.springblade.modules.baseinfo.org.vo.OrgInfoVO;
 import org.springblade.modules.baseinfo.org.wrapper.OrgInfoWrapper;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.service.IDeptService;
 import org.springframework.transaction.annotation.Transactional;

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

@@ -15,8 +15,8 @@ import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
 import org.springblade.modules.baseinfo.org.vo.OrgInfoVO;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.system.entity.Dept;
 
 import java.util.Objects;

+ 0 - 603
src/main/java/org/springblade/modules/baseinfo/region/controller/RegionInfoController.java

@@ -1,603 +0,0 @@
-/**
- * Copyright 2019 DH
- * All right reserved.
- * 项目名称: 运维系统
- * 创建日期:2022/8/22
- */
-package org.springblade.modules.baseinfo.region.controller;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.TypeReference;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import io.swagger.annotations.*;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springblade.constant.BusinessConstant;
-import org.springblade.core.boot.ctrl.BladeController;
-import org.springblade.core.mp.support.Condition;
-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.Func;
-import org.springblade.etl.EtlRegionDataTask;
-import org.springblade.etl.entity.EtlAdCdEntity;
-import org.springblade.etl.service.IEtlAdCdService;
-import org.springblade.jobtask.ReportCountProcessor;
-import org.springblade.jobtask.TaskManager;
-import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
-import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.dto.RegionInfoDTO;
-import org.springblade.modules.baseinfo.region.entity.BaseRegionInfoEntity;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IBaseRegionInfoService;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
-import org.springblade.modules.baseinfo.region.vo.RegionInfoVO;
-import org.springblade.modules.baseinfo.region.wrapper.RegionInfoWrapper;
-import org.springblade.modules.system.entity.Dept;
-import org.springblade.modules.system.service.IDeptService;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.core.ValueOperations;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.concurrent.FutureTask;
-
-
-/***
- * Date:2022/8/22
- * Title:行政区划管理
- * Description:对本文件的详细描述,原则上不能少于30字
- * @author dylan
- * @version 1.0
- * Remark:认为有必要的其他信息
- */
-@RestController
-@Slf4j
-@RequestMapping("galaxy-business/baseinfo/region")
-@RequiredArgsConstructor
-@Api(value = "行政区划管理", tags = "行政区划管理")
-public class RegionInfoController extends BladeController {
-	private final IRegionInfoService baseInfoRegionService;
-	private final IDeptService deptService;
-	private final IEtlAdCdService etlAdCdService;
-	private final IDeptRegionService deptRegionService;
-	private final IBaseRegionInfoService baseRegionInfoService;
-
-	@Resource
-	private TaskManager taskManager;
-
-	@Value("${region-ver-config.ver}")
-	private String regionVer;
-
-	@Value("${region-ver-config.original-ver}")
-	private String originalRgionVer;
-
-	@Resource
-	private RedisTemplate redisTemplate;
-
-	/**
-	 * 排除行政区划
-	 *
-	 * @param dto
-	 * @return
-	 */
-	@PostMapping("/exclude")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "修改", notes = "传入 RegionInfoDTO")
-	public R excludeRegion(@RequestBody RegionInfoDTO dto) {
-		this.baseInfoRegionService.excludeRegion(dto);
-		this.baseInfoRegionService.updateAdminRegionCache();
-		this.baseInfoRegionService.updateDeptRegionCache(dto.getDeptId());
-		return R.status(true);
-	}
-
-	/**
-	 * 重置行政区划
-	 *
-	 * @param dto
-	 * @return
-	 */
-	@PostMapping("/reset")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "修改", notes = "传入 RegionInfoDTO")
-	public R resetRegion(@RequestBody RegionInfoDTO dto) {
-		this.baseInfoRegionService.resetRegion(dto);
-		this.baseInfoRegionService.updateAdminRegionCache();
-		this.baseInfoRegionService.updateDeptRegionCache(dto.getDeptId());
-		return R.status(true);
-	}
-
-
-	@GetMapping("/children/list")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "分页")
-	public R<List<RegionInfoEntity>> childrenList() {
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
-			wrapper.eq(RegionInfoEntity::getIsDeleted, 0);
-			wrapper.eq(RegionInfoEntity::getParentCode, BusinessConstant.REGION_NM_ADCODE);
-			List<RegionInfoEntity> list = baseInfoRegionService.list(wrapper);
-			return R.data(list);
-		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName())) {
-			LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
-			deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
-			deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
-			DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
-			LambdaQueryWrapper<RegionInfoEntity> regionInfoEntityLambdaQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-			regionInfoEntityLambdaQueryWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
-			regionInfoEntityLambdaQueryWrapper.eq(RegionInfoEntity::getParentCode, deptRegionEntity.getAdcd());
-			List<RegionInfoEntity> list = baseInfoRegionService.list(regionInfoEntityLambdaQueryWrapper);
-			return R.data(list);
-		}
-		return R.data(null);
-	}
-
-	@GetMapping("/children/list/{parentCode}")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "分页")
-	public R<List<RegionInfoEntity>> childrenList(@PathVariable(name = "parentCode") String parentCode) {
-		LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
-		wrapper.eq(RegionInfoEntity::getIsDeleted, 0);
-		wrapper.eq(RegionInfoEntity::getParentCode, parentCode);
-		List<RegionInfoEntity> list = baseInfoRegionService.list(wrapper);
-		return R.data(list);
-	}
-
-	@GetMapping("/original/tree")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "树")
-	public R<List<RegionTreeNodeEntity>> regionTree() {
-		ValueOperations<String, String> opsHash = redisTemplate.opsForValue();
-		List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			boolean updateRegion = false;
-			String redisRegionVer = opsHash.get("region.original.ver.admin");
-			if (null == redisRegionVer || redisRegionVer.length() == 0 || !redisRegionVer.equals(this.originalRgionVer)) {
-				updateRegion = true;
-			} else {
-				String regionJson = opsHash.get("region.original.admin");
-				if (null != regionJson) {
-					nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
-					});
-				} else {
-					updateRegion = true;
-				}
-			}
-			if (updateRegion) {
-				LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-				queryWrapper.eq(RegionInfoEntity::getParentCode, BusinessConstant.REGION_ROOT_ADCODE);
-				List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
-				for (RegionInfoEntity entity : list) {
-					RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
-					nodeEntity.setId(entity.getAdcd());
-					nodeEntity.setValue(entity.getAdcd());
-					nodeEntity.setTitle(entity.getAdnm());
-					nodeEntity.setText(entity.getAdnm());
-					nodeEntity.setKey(entity.getAdcd());
-					nodeEntity.setParentId(entity.getParentCode());
-					if (getOriginalTreeChildren(nodeEntity, entity)) {
-						if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
-							nodeEntity.setHasChildren(true);
-						} else {
-							nodeEntity.setHasChildren(false);
-						}
-					}
-					nodeEntities.add(nodeEntity);
-				}
-				opsHash.set("region.original.admin", JSON.toJSONString(nodeEntities));
-				opsHash.set("region.original.ver.admin", this.originalRgionVer);
-			}
-		} else {
-			boolean updateRegion = false;
-			String redisRegionVer = opsHash.get("region.original.ver." + user.getDeptId());
-			if (null == redisRegionVer || redisRegionVer.length() == 0 || !redisRegionVer.equals(this.originalRgionVer)) {
-				updateRegion = true;
-			} else {
-				String regionJson = opsHash.get("region.original." + user.getDeptId());
-				if (null != regionJson) {
-					nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
-					});
-				} else {
-					updateRegion = true;
-				}
-			}
-			if (updateRegion) {
-				LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
-				deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
-				DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
-				LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-				queryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
-				List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
-				for (RegionInfoEntity entity : list) {
-					RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
-					nodeEntity.setId(entity.getAdcd());
-					nodeEntity.setValue(entity.getAdcd());
-					nodeEntity.setTitle(entity.getAdnm());
-					nodeEntity.setText(entity.getAdnm());
-					nodeEntity.setKey(entity.getAdcd());
-					nodeEntity.setParentId(entity.getParentCode());
-					if (getOriginalTreeChildren(nodeEntity, entity)) {
-						if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
-							nodeEntity.setHasChildren(true);
-						} else {
-							nodeEntity.setHasChildren(false);
-						}
-					}
-					nodeEntities.add(nodeEntity);
-				}
-				opsHash.set("region.original." + user.getDeptId(), JSON.toJSONString(nodeEntities));
-				opsHash.set("region.original.ver." + user.getDeptId(), this.originalRgionVer);
-			}
-		}
-		return R.data(nodeEntities);
-	}
-
-
-	@GetMapping("/original/tree/{adcd}")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "树")
-	public R<List<RegionTreeNodeEntity>> regionTree(@PathVariable(name = "adcd") String adcd) {
-		List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
-		LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-		queryWrapper.eq(RegionInfoEntity::getAdcd, adcd);
-		List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
-		for (RegionInfoEntity entity : list) {
-			RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
-			nodeEntity.setId(entity.getAdcd());
-			nodeEntity.setValue(entity.getAdcd());
-			nodeEntity.setTitle(entity.getAdnm());
-			nodeEntity.setText(entity.getAdnm());
-			nodeEntity.setKey(entity.getAdcd());
-			nodeEntity.setParentId(entity.getParentCode());
-			if (getOriginalTreeChildren(nodeEntity, entity)) {
-				if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
-					nodeEntity.setHasChildren(true);
-				} else {
-					nodeEntity.setHasChildren(false);
-				}
-			}
-			nodeEntities.add(nodeEntity);
-		}
-		return R.data(nodeEntities);
-	}
-
-	private boolean getOriginalTreeChildren(RegionTreeNodeEntity nodeEntity, RegionInfoEntity regionInfoEntity) {
-		LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-		queryWrapper.eq(RegionInfoEntity::getParentCode, regionInfoEntity.getAdcd());
-		List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
-		if (null != list && list.size() > 0) {
-			List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
-			for (RegionInfoEntity entity : list) {
-				RegionTreeNodeEntity node = new RegionTreeNodeEntity();
-				node.setId(entity.getAdcd());
-				node.setValue(entity.getAdcd());
-				node.setTitle(entity.getAdnm());
-				node.setText(entity.getAdnm());
-				node.setKey(entity.getAdcd());
-				node.setParentId(entity.getParentCode());
-				if (getOriginalTreeChildren(node, entity)) {
-					if (node.getChildren() != null && node.getChildren().size() > 0) {
-						node.setHasChildren(true);
-					} else {
-						node.setHasChildren(false);
-					}
-				}
-				nodeEntities.add(node);
-			}
-			nodeEntity.setChildren(nodeEntities);
-		}
-		return true;
-	}
-
-	@GetMapping("/tree")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "树")
-	public R<List<RegionTreeNodeEntity>> virtuallyRegionTree() {
-		ValueOperations<String, String> opsHash = redisTemplate.opsForValue();
-		List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
-		BladeUser user = AuthUtil.getUser();
-		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-			String redisRegionVer = opsHash.get("region.ver.admin");
-			boolean updateRegion = false;
-			if (null == redisRegionVer || redisRegionVer.length() == 0 || !redisRegionVer.equals(this.regionVer)) {
-				updateRegion = true;
-			} else {
-				String regionJson = opsHash.get("region.admin");
-				if (null != regionJson) {
-					nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
-					});
-				} else {
-					updateRegion = true;
-				}
-			}
-			if (updateRegion) {
-				//根节点
-				LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-				queryWrapper.eq(RegionInfoEntity::getAdcd, BusinessConstant.REGION_NM_ADCODE);
-				RegionInfoEntity nmRegion = baseInfoRegionService.getOne(queryWrapper);
-				RegionTreeNodeEntity nmEntity = new RegionTreeNodeEntity();
-				nmEntity.setId(nmRegion.getAdcd());
-				nmEntity.setValue(nmRegion.getAdcd());
-				nmEntity.setTitle(nmRegion.getAdnm());
-				nmEntity.setText(nmRegion.getAdnm());
-				nmEntity.setKey(nmRegion.getAdcd());
-				nmEntity.setExclude(0);
-				nmEntity.setParentId(nmRegion.getParentCode());
-				//查找子节点
-				LambdaQueryWrapper<Dept> deptqueryWrapper = Wrappers.<Dept>query().lambda();
-				deptqueryWrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
-				List<Dept> deptList = deptService.list(deptqueryWrapper);
-				if (null != deptList) {
-					List<RegionTreeNodeEntity> subNodeEntities = new LinkedList<>();
-					for (Dept dept : deptList) {
-						LambdaQueryWrapper<DeptRegionEntity> deptRegionQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
-						deptRegionQueryWrapper.eq(DeptRegionEntity::getDeptId, dept.getId());
-						DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionQueryWrapper);
-						if (null != deptRegionEntity) {
-							LambdaQueryWrapper<RegionInfoEntity> nodeQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-							nodeQueryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
-							RegionInfoEntity nodeRegion = baseInfoRegionService.getOne(nodeQueryWrapper);
-							if (null != nodeRegion) {
-								RegionTreeNodeEntity node = new RegionTreeNodeEntity();
-								node.setId(nodeRegion.getAdcd());
-								node.setValue(nodeRegion.getAdcd());
-								node.setTitle(nodeRegion.getAdnm());
-								node.setText(nodeRegion.getAdnm());
-								node.setKey(nodeRegion.getAdcd());
-								int excludeCode = 0;
-								if (nodeRegion.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)) {
-									excludeCode = 1;
-								}
-								node.setExclude(excludeCode);
-								node.setParentId(nodeRegion.getParentCode());
-								if (getChildren(node, nodeRegion, excludeCode)) {
-									if (node.getChildren() != null && node.getChildren().size() > 0) {
-										node.setHasChildren(true);
-									} else {
-										node.setHasChildren(false);
-									}
-								}
-								subNodeEntities.add(node);
-							}
-						}
-					}
-					nmEntity.setChildren(subNodeEntities);
-				}
-				if (nmEntity.getChildren() != null && nmEntity.getChildren().size() > 0) {
-					nmEntity.setHasChildren(true);
-				} else {
-					nmEntity.setHasChildren(false);
-				}
-				nodeEntities.add(nmEntity);
-				//更新缓存
-				opsHash.set("region.admin", JSON.toJSONString(nodeEntities));
-				opsHash.set("region.ver.admin", this.regionVer);
-			}
-		} else {
-			String redisRegionVer = opsHash.get("region.ver." + user.getDeptId());
-			boolean updateRegion = false;
-			if (null == redisRegionVer || redisRegionVer.length() == 0 || !redisRegionVer.equals(this.regionVer)) {
-				updateRegion = true;
-			} else {
-				String regionJson = opsHash.get("region." + user.getDeptId());
-				if (null != regionJson) {
-					nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
-					});
-				} else {
-					updateRegion = true;
-				}
-			}
-			if (updateRegion) {
-				//根节点
-				LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
-				deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
-				DeptRegionEntity rootDeptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
-				if (null != rootDeptRegionEntity) {
-					LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-					queryWrapper.eq(RegionInfoEntity::getAdcd, rootDeptRegionEntity.getAdcd());
-					RegionInfoEntity orgRegion = baseInfoRegionService.getOne(queryWrapper);
-					int excludeCode = 0;
-					if (orgRegion.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)) {
-						excludeCode = 1;
-					}
-					RegionTreeNodeEntity orgEntity = new RegionTreeNodeEntity();
-					orgEntity.setId(orgRegion.getAdcd());
-					orgEntity.setValue(orgRegion.getAdcd());
-					orgEntity.setTitle(orgRegion.getAdnm());
-					orgEntity.setText(orgRegion.getAdnm());
-					orgEntity.setKey(orgRegion.getAdcd());
-					orgEntity.setExclude(excludeCode);
-					orgEntity.setParentId(orgRegion.getParentCode());
-					//查找子节点
-					if (getChildren(orgEntity, orgRegion, excludeCode)) {
-						if (orgEntity.getChildren() != null && orgEntity.getChildren().size() > 0) {
-							orgEntity.setHasChildren(true);
-						} else {
-							orgEntity.setHasChildren(false);
-						}
-					}
-					nodeEntities.add(orgEntity);
-					opsHash.set("region." + user.getDeptId(), JSON.toJSONString(nodeEntities));
-					opsHash.set("region.ver." + user.getDeptId(), this.regionVer);
-				}
-			}
-		}
-		return R.data(nodeEntities);
-	}
-
-	private boolean getChildren(RegionTreeNodeEntity nodeEntity, RegionInfoEntity regionInfoEntity, int exclude) {
-		LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-		queryWrapper.eq(RegionInfoEntity::getParentCode, regionInfoEntity.getAdcd());
-		if (exclude == 1) {
-			queryWrapper.eq(RegionInfoEntity::getExcludeAd, 0);
-		}
-		List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
-		if (null != list && list.size() > 0) {
-			List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
-			for (RegionInfoEntity entity : list) {
-				RegionTreeNodeEntity node = new RegionTreeNodeEntity();
-				node.setId(entity.getAdcd());
-				node.setValue(entity.getAdcd());
-				node.setTitle(entity.getAdnm());
-				node.setText(entity.getAdnm());
-				node.setKey(entity.getAdcd());
-				node.setExclude(exclude);
-				node.setParentId(entity.getParentCode());
-				if (getChildren(node, entity, exclude)) {
-					if (node.getChildren() != null && node.getChildren().size() > 0) {
-						node.setHasChildren(true);
-					} else {
-						node.setHasChildren(false);
-					}
-				}
-				nodeEntities.add(node);
-			}
-			nodeEntity.setChildren(nodeEntities);
-		}
-		return true;
-	}
-
-	/**
-	 * 详情
-	 */
-	@GetMapping("/detail")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情", notes = "传入RegionInfoEntity")
-	public R<RegionInfoVO> detail(RegionInfoDTO regionInfoDTO) {
-		regionInfoDTO.setAdcd(regionInfoDTO.getCode());
-		regionInfoDTO.setIsDeleted(0);
-		RegionInfoEntity detail = baseInfoRegionService.getOne(Condition.getQueryWrapper(regionInfoDTO));
-		return R.data(RegionInfoWrapper.build().entityVO(detail));
-	}
-
-	/**
-	 * 从宏图数据导入
-	 */
-	@PostMapping("/import")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "regionLevel", value = "行政区划层级", paramType = "query", dataType = "int"),
-		@ApiImplicitParam(name = "isCovered", value = "是否覆盖", paramType = "query", dataType = "int"),
-	})
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "导入", notes = "传入RegionInfoDTO")
-	public R importSubmit(@RequestBody RegionInfoDTO regionInfoDTO) {
-		if (regionInfoDTO.getIsCovered() == 1) {
-			LambdaUpdateWrapper<RegionInfoEntity> updateWrapper = Wrappers.<RegionInfoEntity>update().lambda();
-			updateWrapper.ne(RegionInfoEntity::getAdcd, "00");
-			updateWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
-			baseInfoRegionService.remove(updateWrapper);
-		}
-		EtlAdCdEntity dto = new EtlAdCdEntity();
-		dto.setSuperioradcd("0");
-		List<EtlAdCdEntity> list = etlAdCdService.selectList(dto);
-		if (null != list && list.size() == 1) {
-			String code = list.get(0).getAdcd();
-			LambdaQueryWrapper<RegionInfoEntity> requestWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-			requestWrapper.eq(RegionInfoEntity::getAdcd, code);
-			requestWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
-			RegionInfoEntity regionInfoEntity = baseInfoRegionService.getOne(requestWrapper);
-			if (null != regionInfoEntity) {
-				regionInfoEntity.setAdnm(list.get(0).getAdnm());
-				baseInfoRegionService.updateById(regionInfoEntity);
-			} else {
-				regionInfoEntity = new RegionInfoEntity();
-				regionInfoEntity.setAdcd(code);
-				regionInfoEntity.setAdnm(list.get(0).getAdnm());
-				regionInfoEntity.setParentCode("00");
-				regionInfoEntity.setAncestors("00");
-				regionInfoEntity.setStatus(1);
-				regionInfoEntity.setIsDeleted(0);
-				baseInfoRegionService.save(regionInfoEntity);
-			}
-			this.importAdcd(regionInfoDTO.getRegionLevel(), 2, code, "00," + code);
-		}
-		return R.status(true);
-	}
-
-	@GetMapping("/create/region")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "", notes = "")
-	public R createRegion() {
-		EtlRegionDataTask  task = new EtlRegionDataTask(etlAdCdService,baseRegionInfoService);
-		FutureTask<Integer> futureTask = new FutureTask<>(task);
-		taskManager.submitTask(futureTask);
-
-//		EtlAdCdEntity etlAdCdEntity = new EtlAdCdEntity();
-//		etlAdCdEntity.setAdcd("150000000000000");
-//		List<EtlAdCdEntity> list =etlAdCdService.selectList(etlAdCdEntity);
-//		for (EtlAdCdEntity entity:list){
-//			BaseRegionInfoEntity baseRegionInfoEntity= new BaseRegionInfoEntity();
-//			baseRegionInfoEntity.setAdcd(entity.getAdcd());
-//			baseRegionInfoEntity.setAdnm(entity.getAdnm());
-//			baseRegionInfoEntity.setParentCode("00");
-//			baseRegionInfoEntity.setAncestors("00");
-//			baseRegionInfoEntity.setAddType(entity.getAddtype());
-//			baseRegionInfoEntity.setLgtd(entity.getLgtd());
-//			baseRegionInfoEntity.setLttd(entity.getLttd());
-//			baseRegionInfoService.save(baseRegionInfoEntity);
-//			crateChildRegion(baseRegionInfoEntity,baseRegionInfoEntity.getAncestors());
-//		}
-		return R.success("ok");
-	}
-
-	private void crateChildRegion(BaseRegionInfoEntity root,String ancestors){
-		EtlAdCdEntity etlAdCdEntity = new EtlAdCdEntity();
-		etlAdCdEntity.setSuperioradcd(root.getAdcd());
-		List<EtlAdCdEntity> list =etlAdCdService.selectList(etlAdCdEntity);
-		for (EtlAdCdEntity entity:list){
-			BaseRegionInfoEntity baseRegionInfoEntity= new BaseRegionInfoEntity();
-			baseRegionInfoEntity.setAdcd(entity.getAdcd());
-			baseRegionInfoEntity.setAdnm(entity.getAdnm());
-			baseRegionInfoEntity.setParentCode(root.getAdcd());
-			baseRegionInfoEntity.setAncestors(ancestors+","+root.getAdcd());
-			baseRegionInfoEntity.setAddType(entity.getAddtype());
-			baseRegionInfoEntity.setLgtd(entity.getLgtd());
-			baseRegionInfoEntity.setLttd(entity.getLttd());
-			baseRegionInfoService.save(baseRegionInfoEntity);
-			crateChildRegion(baseRegionInfoEntity,baseRegionInfoEntity.getAncestors());
-		}
-	}
-
-
-	private boolean importAdcd(int level, int currLevel, String parentCode, String ancestors) {
-		if (currLevel > level) {
-			return true;
-		}
-		EtlAdCdEntity dto = new EtlAdCdEntity();
-		dto.setSuperioradcd(parentCode);
-		List<EtlAdCdEntity> list = etlAdCdService.selectList(dto);
-		if (null != list && list.size() > 0) {
-			for (EtlAdCdEntity adCdEntity : list) {
-				LambdaQueryWrapper<RegionInfoEntity> requestWrapper = Wrappers.<RegionInfoEntity>query().lambda();
-				requestWrapper.eq(RegionInfoEntity::getAdcd, adCdEntity.getAdcd());
-				requestWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
-				RegionInfoEntity regionInfoEntity = baseInfoRegionService.getOne(requestWrapper);
-				if (null != regionInfoEntity) {
-					regionInfoEntity.setAdnm(adCdEntity.getAdnm());
-					baseInfoRegionService.updateById(regionInfoEntity);
-				} else {
-					regionInfoEntity = new RegionInfoEntity();
-					regionInfoEntity.setAdcd(adCdEntity.getAdcd());
-					regionInfoEntity.setAdnm(adCdEntity.getAdnm());
-					regionInfoEntity.setParentCode(parentCode);
-					regionInfoEntity.setAncestors(ancestors);
-					regionInfoEntity.setStatus(1);
-					regionInfoEntity.setIsDeleted(0);
-					baseInfoRegionService.save(regionInfoEntity);
-				}
-				importAdcd(level, currLevel + 1, adCdEntity.getAdcd(), ancestors + "," + adCdEntity.getAdcd());
-			}
-		}
-		return true;
-	}
-
-}

+ 1 - 1
src/main/java/org/springblade/modules/baseinfo/region/entity/RegionTreeNodeEntity.java → src/main/java/org/springblade/modules/baseinfo/region/tree/entity/RegionTreeNodeEntity.java

@@ -4,7 +4,7 @@
  * 项目名称: 运维系统
  * 创建日期:2022/9/6
  */
-package org.springblade.modules.baseinfo.region.entity;
+package org.springblade.modules.baseinfo.region.tree.entity;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 4 - 4
src/main/java/org/springblade/modules/baseinfo/region/wrapper/RegionInfoNodeWrapper.java → src/main/java/org/springblade/modules/baseinfo/region/tree/wrapper/RegionInfoNodeWrapper.java

@@ -4,16 +4,16 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.baseinfo.region.wrapper;
+package org.springblade.modules.baseinfo.region.tree.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.SpringUtil;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 
 /***
  * Date:2022/8/22

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

@@ -0,0 +1,182 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 运维系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.region.whole.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.constant.BusinessConstant;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.etl.EtlRegionDataTask;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.service.IEtlAdCdService;
+import org.springblade.jobtask.TaskManager;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.whole.entity.BaseRegionInfoEntity;
+import org.springblade.modules.baseinfo.region.whole.service.IBaseRegionInfoService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.concurrent.FutureTask;
+
+
+/***
+ * Date:2022/8/22
+ * Title:行政区划管理
+ * Description:包括内蒙所有行政区划
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@RestController
+@Slf4j
+@RequestMapping("galaxy-business/baseinfo/region/whole")
+@RequiredArgsConstructor
+@Api(value = "行政区划管理", tags = "行政区划管理")
+public class BaseRegionController extends BladeController {
+    private final IEtlAdCdService etlAdCdService;
+    private final IBaseRegionInfoService baseRegionInfoService;
+
+    @Resource
+    private TaskManager taskManager;
+
+    /**
+     * 懒加载
+     *
+     * @param entity
+     * @return
+     */
+    @GetMapping("/lazy-tree")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "树")
+    public R<List<RegionTreeNodeEntity>> lazyTree(BaseRegionInfoEntity entity) {
+        if (Func.isNull(entity.getParentCode())) {
+            return R.fail("参数错误");
+        }
+        List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+        LambdaQueryWrapper<BaseRegionInfoEntity> queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+        queryWrapper.eq(BaseRegionInfoEntity::getParentCode, entity.getParentCode());
+        List<BaseRegionInfoEntity> list = baseRegionInfoService.list(queryWrapper);
+        for (BaseRegionInfoEntity regionInfoEntity : list) {
+            RegionTreeNodeEntity node = new RegionTreeNodeEntity();
+            node.setId(regionInfoEntity.getAdcd());
+            node.setValue(regionInfoEntity.getAdcd());
+            node.setTitle(regionInfoEntity.getAdnm());
+            node.setText(regionInfoEntity.getAdnm());
+            node.setKey(regionInfoEntity.getAdcd());
+            node.setParentId(regionInfoEntity.getParentCode());
+            LambdaQueryWrapper<BaseRegionInfoEntity> queryWrapper2 = Wrappers.<BaseRegionInfoEntity>query().lambda();
+            queryWrapper2.eq(BaseRegionInfoEntity::getParentCode, regionInfoEntity.getAdcd());
+            long count = baseRegionInfoService.count(queryWrapper2);
+            if (count > 0) {
+                node.setHasChildren(true);
+            } else {
+                node.setHasChildren(false);
+            }
+            nodeEntities.add(node);
+        }
+        return R.data(nodeEntities);
+    }
+
+    /**
+     * 加载树
+     *
+     * @return
+     */
+    @GetMapping("/tree")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "树")
+    public R<List<RegionTreeNodeEntity>> tree() {
+        List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+        //根节点
+        LambdaQueryWrapper<BaseRegionInfoEntity> queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+        queryWrapper.eq(BaseRegionInfoEntity::getAdcd, BusinessConstant.REGION_NM_ADCODE);
+        BaseRegionInfoEntity nmRegion = baseRegionInfoService.getOne(queryWrapper);
+        RegionTreeNodeEntity nmEntity = new RegionTreeNodeEntity();
+        nmEntity.setId(nmRegion.getAdcd());
+        nmEntity.setValue(nmRegion.getAdcd());
+        nmEntity.setTitle(nmRegion.getAdnm());
+        nmEntity.setText(nmRegion.getAdnm());
+        nmEntity.setKey(nmRegion.getAdcd());
+        nmEntity.setParentId(nmRegion.getParentCode());
+        //查找子节点
+        if (getChildren(nmEntity, nmRegion)) {
+            if (nmEntity.getChildren() != null && nmEntity.getChildren().size() > 0) {
+                nmEntity.setHasChildren(true);
+            } else {
+                nmEntity.setHasChildren(false);
+            }
+        }
+        nodeEntities.add(nmEntity);
+        return R.data(nodeEntities);
+    }
+
+    private boolean getChildren(RegionTreeNodeEntity nodeEntity, BaseRegionInfoEntity regionInfoEntity) {
+        LambdaQueryWrapper<BaseRegionInfoEntity> queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+        queryWrapper.eq(BaseRegionInfoEntity::getParentCode, regionInfoEntity.getAdcd());
+        List<BaseRegionInfoEntity> list = baseRegionInfoService.list(queryWrapper);
+        if (null != list && list.size() > 0) {
+            List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+            for (BaseRegionInfoEntity entity : list) {
+                RegionTreeNodeEntity node = new RegionTreeNodeEntity();
+                node.setId(entity.getAdcd());
+                node.setValue(entity.getAdcd());
+                node.setTitle(entity.getAdnm());
+                node.setText(entity.getAdnm());
+                node.setKey(entity.getAdcd());
+                node.setParentId(entity.getParentCode());
+                if (getChildren(node, entity)) {
+                    if (node.getChildren() != null && node.getChildren().size() > 0) {
+                        node.setHasChildren(true);
+                    } else {
+                        node.setHasChildren(false);
+                    }
+                }
+                nodeEntities.add(node);
+            }
+            nodeEntity.setChildren(nodeEntities);
+        }
+        return true;
+    }
+
+    @GetMapping("/create/region")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "", notes = "")
+    public R createRegion() {
+        EtlRegionDataTask task = new EtlRegionDataTask(etlAdCdService, baseRegionInfoService);
+        FutureTask<Integer> futureTask = new FutureTask<>(task);
+        taskManager.submitTask(futureTask);
+        return R.success("ok");
+    }
+
+    private void crateChildRegion(BaseRegionInfoEntity root, String ancestors) {
+        EtlAdCdEntity etlAdCdEntity = new EtlAdCdEntity();
+        etlAdCdEntity.setSuperioradcd(root.getAdcd());
+        List<EtlAdCdEntity> list = etlAdCdService.selectList(etlAdCdEntity);
+        for (EtlAdCdEntity entity : list) {
+            BaseRegionInfoEntity baseRegionInfoEntity = new BaseRegionInfoEntity();
+            baseRegionInfoEntity.setAdcd(entity.getAdcd());
+            baseRegionInfoEntity.setAdnm(entity.getAdnm());
+            baseRegionInfoEntity.setParentCode(root.getAdcd());
+            baseRegionInfoEntity.setAncestors(ancestors + "," + root.getAdcd());
+            baseRegionInfoEntity.setAddType(entity.getAddtype());
+            baseRegionInfoEntity.setLgtd(entity.getLgtd());
+            baseRegionInfoEntity.setLttd(entity.getLttd());
+            baseRegionInfoService.save(baseRegionInfoEntity);
+            crateChildRegion(baseRegionInfoEntity, baseRegionInfoEntity.getAncestors());
+        }
+    }
+
+}

+ 1 - 1
src/main/java/org/springblade/modules/baseinfo/region/entity/BaseRegionInfoEntity.java → src/main/java/org/springblade/modules/baseinfo/region/whole/entity/BaseRegionInfoEntity.java

@@ -4,7 +4,7 @@
  * 项目名称: 运维系统
  * 创建日期:2022/3/9
  */
-package org.springblade.modules.baseinfo.region.entity;
+package org.springblade.modules.baseinfo.region.whole.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModelProperty;

+ 3 - 2
src/main/java/org/springblade/modules/baseinfo/region/mapper/BaseRegionInfoMapper.java → src/main/java/org/springblade/modules/baseinfo/region/whole/mapper/BaseRegionInfoMapper.java

@@ -4,10 +4,11 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.baseinfo.region.mapper;
+package org.springblade.modules.baseinfo.region.whole.mapper;
+
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.springblade.modules.baseinfo.region.entity.BaseRegionInfoEntity;
+import org.springblade.modules.baseinfo.region.whole.entity.BaseRegionInfoEntity;
 
 /***
  * Date:2022/8/22

+ 2 - 2
src/main/java/org/springblade/modules/baseinfo/region/mapper/BaseRegionInfoMapper.xml → src/main/java/org/springblade/modules/baseinfo/region/whole/mapper/BaseRegionInfoMapper.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.springblade.modules.baseinfo.region.mapper.BaseRegionInfoMapper">
+<mapper namespace="org.springblade.modules.baseinfo.region.whole.mapper.BaseRegionInfoMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="orgRegionResultMap" type="org.springblade.modules.baseinfo.region.entity.BaseRegionInfoEntity">
+    <resultMap id="orgRegionResultMap" type="org.springblade.modules.baseinfo.region.whole.entity.BaseRegionInfoEntity">
         <result column="adcd" property="adcd"/>
         <result column="adnm" property="adnm"/>
         <result column="parent_code" property="parentCode"/>

+ 3 - 2
src/main/java/org/springblade/modules/baseinfo/region/service/IBaseRegionInfoService.java → src/main/java/org/springblade/modules/baseinfo/region/whole/service/IBaseRegionInfoService.java

@@ -4,10 +4,11 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.baseinfo.region.service;
+package org.springblade.modules.baseinfo.region.whole.service;
+
 
 import org.springblade.core.mp.base.BaseService;
-import org.springblade.modules.baseinfo.region.entity.BaseRegionInfoEntity;
+import org.springblade.modules.baseinfo.region.whole.entity.BaseRegionInfoEntity;
 
 /***
  * Date:2022/8/22

+ 5 - 4
src/main/java/org/springblade/modules/baseinfo/region/service/impl/BaseRegionInfoServiceImpl.java → src/main/java/org/springblade/modules/baseinfo/region/whole/service/impl/BaseRegionInfoServiceImpl.java

@@ -4,12 +4,13 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.baseinfo.region.service.impl;
+package org.springblade.modules.baseinfo.region.whole.service.impl;
+
 
 import org.springblade.core.mp.base.BaseServiceImpl;
-import org.springblade.modules.baseinfo.region.entity.BaseRegionInfoEntity;
-import org.springblade.modules.baseinfo.region.mapper.BaseRegionInfoMapper;
-import org.springblade.modules.baseinfo.region.service.IBaseRegionInfoService;
+import org.springblade.modules.baseinfo.region.whole.entity.BaseRegionInfoEntity;
+import org.springblade.modules.baseinfo.region.whole.mapper.BaseRegionInfoMapper;
+import org.springblade.modules.baseinfo.region.whole.service.IBaseRegionInfoService;
 import org.springframework.stereotype.Service;
 
 /***

+ 547 - 0
src/main/java/org/springblade/modules/baseinfo/region/yw/controller/RegionInfoController.java

@@ -0,0 +1,547 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 运维系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.region.yw.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.constant.BusinessConstant;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+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.Func;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.service.IEtlAdCdService;
+import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
+import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.yw.dto.RegionInfoDTO;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.vo.RegionInfoVO;
+import org.springblade.modules.baseinfo.region.yw.wrapper.RegionInfoWrapper;
+import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.service.IDeptService;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.LinkedList;
+import java.util.List;
+
+
+/***
+ * Date:2022/8/22
+ * Title:行政区划管理
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@RestController
+@Slf4j
+@RequestMapping("galaxy-business/baseinfo/region")
+@RequiredArgsConstructor
+@Api(value = "行政区划管理", tags = "行政区划管理")
+public class RegionInfoController extends BladeController {
+    private final IRegionInfoService baseInfoRegionService;
+    private final IDeptService deptService;
+    private final IEtlAdCdService etlAdCdService;
+    private final IDeptRegionService deptRegionService;
+
+    @Value("${region-ver-config.ver}")
+    private String regionVer;
+
+    @Value("${region-ver-config.original-ver}")
+    private String originalRgionVer;
+
+    @Resource
+    private RedisTemplate redisTemplate;
+
+    /**
+     * 排除行政区划
+     *
+     * @param dto
+     * @return
+     */
+    @PostMapping("/exclude")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "修改", notes = "传入 RegionInfoDTO")
+    public R excludeRegion(@RequestBody RegionInfoDTO dto) {
+        this.baseInfoRegionService.excludeRegion(dto);
+        this.baseInfoRegionService.updateAdminRegionCache();
+        this.baseInfoRegionService.updateDeptRegionCache(dto.getDeptId());
+        return R.status(true);
+    }
+
+    /**
+     * 重置行政区划
+     *
+     * @param dto
+     * @return
+     */
+    @PostMapping("/reset")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "修改", notes = "传入 RegionInfoDTO")
+    public R resetRegion(@RequestBody RegionInfoDTO dto) {
+        this.baseInfoRegionService.resetRegion(dto);
+        this.baseInfoRegionService.updateAdminRegionCache();
+        this.baseInfoRegionService.updateDeptRegionCache(dto.getDeptId());
+        return R.status(true);
+    }
+
+
+    @GetMapping("/children/list")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "分页")
+    public R<List<RegionInfoEntity>> childrenList() {
+        BladeUser user = AuthUtil.getUser();
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
+            wrapper.eq(RegionInfoEntity::getIsDeleted, 0);
+            wrapper.eq(RegionInfoEntity::getParentCode, BusinessConstant.REGION_NM_ADCODE);
+            List<RegionInfoEntity> list = baseInfoRegionService.list(wrapper);
+            return R.data(list);
+        } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName())) {
+            LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+            deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
+            deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+            DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+            LambdaQueryWrapper<RegionInfoEntity> regionInfoEntityLambdaQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+            regionInfoEntityLambdaQueryWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
+            regionInfoEntityLambdaQueryWrapper.eq(RegionInfoEntity::getParentCode, deptRegionEntity.getAdcd());
+            List<RegionInfoEntity> list = baseInfoRegionService.list(regionInfoEntityLambdaQueryWrapper);
+            return R.data(list);
+        }
+        return R.data(null);
+    }
+
+    @GetMapping("/children/list/{parentCode}")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "分页")
+    public R<List<RegionInfoEntity>> childrenList(@PathVariable(name = "parentCode") String parentCode) {
+        LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
+        wrapper.eq(RegionInfoEntity::getIsDeleted, 0);
+        wrapper.eq(RegionInfoEntity::getParentCode, parentCode);
+        List<RegionInfoEntity> list = baseInfoRegionService.list(wrapper);
+        return R.data(list);
+    }
+
+    @GetMapping("/original/tree")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "树")
+    public R<List<RegionTreeNodeEntity>> regionTree() {
+        ValueOperations<String, String> opsHash = redisTemplate.opsForValue();
+        List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+        BladeUser user = AuthUtil.getUser();
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            boolean updateRegion = false;
+            String redisRegionVer = opsHash.get("region.original.ver.admin");
+            if (null == redisRegionVer || redisRegionVer.length() == 0 || !redisRegionVer.equals(this.originalRgionVer)) {
+                updateRegion = true;
+            } else {
+                String regionJson = opsHash.get("region.original.admin");
+                if (null != regionJson) {
+                    nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
+                    });
+                } else {
+                    updateRegion = true;
+                }
+            }
+            if (updateRegion) {
+                LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+                queryWrapper.eq(RegionInfoEntity::getParentCode, BusinessConstant.REGION_ROOT_ADCODE);
+                List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
+                for (RegionInfoEntity entity : list) {
+                    RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
+                    nodeEntity.setId(entity.getAdcd());
+                    nodeEntity.setValue(entity.getAdcd());
+                    nodeEntity.setTitle(entity.getAdnm());
+                    nodeEntity.setText(entity.getAdnm());
+                    nodeEntity.setKey(entity.getAdcd());
+                    nodeEntity.setParentId(entity.getParentCode());
+                    if (getOriginalTreeChildren(nodeEntity, entity)) {
+                        if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
+                            nodeEntity.setHasChildren(true);
+                        } else {
+                            nodeEntity.setHasChildren(false);
+                        }
+                    }
+                    nodeEntities.add(nodeEntity);
+                }
+                opsHash.set("region.original.admin", JSON.toJSONString(nodeEntities));
+                opsHash.set("region.original.ver.admin", this.originalRgionVer);
+            }
+        } else {
+            boolean updateRegion = false;
+            String redisRegionVer = opsHash.get("region.original.ver." + user.getDeptId());
+            if (null == redisRegionVer || redisRegionVer.length() == 0 || !redisRegionVer.equals(this.originalRgionVer)) {
+                updateRegion = true;
+            } else {
+                String regionJson = opsHash.get("region.original." + user.getDeptId());
+                if (null != regionJson) {
+                    nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
+                    });
+                } else {
+                    updateRegion = true;
+                }
+            }
+            if (updateRegion) {
+                LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+                queryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+                List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
+                for (RegionInfoEntity entity : list) {
+                    RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
+                    nodeEntity.setId(entity.getAdcd());
+                    nodeEntity.setValue(entity.getAdcd());
+                    nodeEntity.setTitle(entity.getAdnm());
+                    nodeEntity.setText(entity.getAdnm());
+                    nodeEntity.setKey(entity.getAdcd());
+                    nodeEntity.setParentId(entity.getParentCode());
+                    if (getOriginalTreeChildren(nodeEntity, entity)) {
+                        if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
+                            nodeEntity.setHasChildren(true);
+                        } else {
+                            nodeEntity.setHasChildren(false);
+                        }
+                    }
+                    nodeEntities.add(nodeEntity);
+                }
+                opsHash.set("region.original." + user.getDeptId(), JSON.toJSONString(nodeEntities));
+                opsHash.set("region.original.ver." + user.getDeptId(), this.originalRgionVer);
+            }
+        }
+        return R.data(nodeEntities);
+    }
+
+
+    @GetMapping("/original/tree/{adcd}")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "树")
+    public R<List<RegionTreeNodeEntity>> regionTree(@PathVariable(name = "adcd") String adcd) {
+        List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+        LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+        queryWrapper.eq(RegionInfoEntity::getAdcd, adcd);
+        List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
+        for (RegionInfoEntity entity : list) {
+            RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
+            nodeEntity.setId(entity.getAdcd());
+            nodeEntity.setValue(entity.getAdcd());
+            nodeEntity.setTitle(entity.getAdnm());
+            nodeEntity.setText(entity.getAdnm());
+            nodeEntity.setKey(entity.getAdcd());
+            nodeEntity.setParentId(entity.getParentCode());
+            if (getOriginalTreeChildren(nodeEntity, entity)) {
+                if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
+                    nodeEntity.setHasChildren(true);
+                } else {
+                    nodeEntity.setHasChildren(false);
+                }
+            }
+            nodeEntities.add(nodeEntity);
+        }
+        return R.data(nodeEntities);
+    }
+
+    private boolean getOriginalTreeChildren(RegionTreeNodeEntity nodeEntity, RegionInfoEntity regionInfoEntity) {
+        LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+        queryWrapper.eq(RegionInfoEntity::getParentCode, regionInfoEntity.getAdcd());
+        List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
+        if (null != list && list.size() > 0) {
+            List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+            for (RegionInfoEntity entity : list) {
+                RegionTreeNodeEntity node = new RegionTreeNodeEntity();
+                node.setId(entity.getAdcd());
+                node.setValue(entity.getAdcd());
+                node.setTitle(entity.getAdnm());
+                node.setText(entity.getAdnm());
+                node.setKey(entity.getAdcd());
+                node.setParentId(entity.getParentCode());
+                if (getOriginalTreeChildren(node, entity)) {
+                    if (node.getChildren() != null && node.getChildren().size() > 0) {
+                        node.setHasChildren(true);
+                    } else {
+                        node.setHasChildren(false);
+                    }
+                }
+                nodeEntities.add(node);
+            }
+            nodeEntity.setChildren(nodeEntities);
+        }
+        return true;
+    }
+
+    @GetMapping("/tree")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "树")
+    public R<List<RegionTreeNodeEntity>> virtuallyRegionTree() {
+        ValueOperations<String, String> opsHash = redisTemplate.opsForValue();
+        List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+        BladeUser user = AuthUtil.getUser();
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            String redisRegionVer = opsHash.get("region.ver.admin");
+            boolean updateRegion = false;
+            if (null == redisRegionVer || redisRegionVer.length() == 0 || !redisRegionVer.equals(this.regionVer)) {
+                updateRegion = true;
+            } else {
+                String regionJson = opsHash.get("region.admin");
+                if (null != regionJson) {
+                    nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
+                    });
+                } else {
+                    updateRegion = true;
+                }
+            }
+            if (updateRegion) {
+                //根节点
+                LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+                queryWrapper.eq(RegionInfoEntity::getAdcd, BusinessConstant.REGION_NM_ADCODE);
+                RegionInfoEntity nmRegion = baseInfoRegionService.getOne(queryWrapper);
+                RegionTreeNodeEntity nmEntity = new RegionTreeNodeEntity();
+                nmEntity.setId(nmRegion.getAdcd());
+                nmEntity.setValue(nmRegion.getAdcd());
+                nmEntity.setTitle(nmRegion.getAdnm());
+                nmEntity.setText(nmRegion.getAdnm());
+                nmEntity.setKey(nmRegion.getAdcd());
+                nmEntity.setExclude(0);
+                nmEntity.setParentId(nmRegion.getParentCode());
+                //查找子节点
+                LambdaQueryWrapper<Dept> deptqueryWrapper = Wrappers.<Dept>query().lambda();
+                deptqueryWrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
+                List<Dept> deptList = deptService.list(deptqueryWrapper);
+                if (null != deptList) {
+                    List<RegionTreeNodeEntity> subNodeEntities = new LinkedList<>();
+                    for (Dept dept : deptList) {
+                        LambdaQueryWrapper<DeptRegionEntity> deptRegionQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                        deptRegionQueryWrapper.eq(DeptRegionEntity::getDeptId, dept.getId());
+                        DeptRegionEntity deptRegionEntity = deptRegionService.getOne(deptRegionQueryWrapper);
+                        if (null != deptRegionEntity) {
+                            LambdaQueryWrapper<RegionInfoEntity> nodeQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+                            nodeQueryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+                            RegionInfoEntity nodeRegion = baseInfoRegionService.getOne(nodeQueryWrapper);
+                            if (null != nodeRegion) {
+                                RegionTreeNodeEntity node = new RegionTreeNodeEntity();
+                                node.setId(nodeRegion.getAdcd());
+                                node.setValue(nodeRegion.getAdcd());
+                                node.setTitle(nodeRegion.getAdnm());
+                                node.setText(nodeRegion.getAdnm());
+                                node.setKey(nodeRegion.getAdcd());
+                                int excludeCode = 0;
+                                if (nodeRegion.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)) {
+                                    excludeCode = 1;
+                                }
+                                node.setExclude(excludeCode);
+                                node.setParentId(nodeRegion.getParentCode());
+                                if (getChildren(node, nodeRegion, excludeCode)) {
+                                    if (node.getChildren() != null && node.getChildren().size() > 0) {
+                                        node.setHasChildren(true);
+                                    } else {
+                                        node.setHasChildren(false);
+                                    }
+                                }
+                                subNodeEntities.add(node);
+                            }
+                        }
+                    }
+                    nmEntity.setChildren(subNodeEntities);
+                }
+                if (nmEntity.getChildren() != null && nmEntity.getChildren().size() > 0) {
+                    nmEntity.setHasChildren(true);
+                } else {
+                    nmEntity.setHasChildren(false);
+                }
+                nodeEntities.add(nmEntity);
+                //更新缓存
+                opsHash.set("region.admin", JSON.toJSONString(nodeEntities));
+                opsHash.set("region.ver.admin", this.regionVer);
+            }
+        } else {
+            String redisRegionVer = opsHash.get("region.ver." + user.getDeptId());
+            boolean updateRegion = false;
+            if (null == redisRegionVer || redisRegionVer.length() == 0 || !redisRegionVer.equals(this.regionVer)) {
+                updateRegion = true;
+            } else {
+                String regionJson = opsHash.get("region." + user.getDeptId());
+                if (null != regionJson) {
+                    nodeEntities = JSON.parseObject(regionJson, new TypeReference<List<RegionTreeNodeEntity>>() {
+                    });
+                } else {
+                    updateRegion = true;
+                }
+            }
+            if (updateRegion) {
+                //根节点
+                LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                DeptRegionEntity rootDeptRegionEntity = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+                if (null != rootDeptRegionEntity) {
+                    LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+                    queryWrapper.eq(RegionInfoEntity::getAdcd, rootDeptRegionEntity.getAdcd());
+                    RegionInfoEntity orgRegion = baseInfoRegionService.getOne(queryWrapper);
+                    int excludeCode = 0;
+                    if (orgRegion.getParentCode().equals(BusinessConstant.REGION_NM_ADCODE)) {
+                        excludeCode = 1;
+                    }
+                    RegionTreeNodeEntity orgEntity = new RegionTreeNodeEntity();
+                    orgEntity.setId(orgRegion.getAdcd());
+                    orgEntity.setValue(orgRegion.getAdcd());
+                    orgEntity.setTitle(orgRegion.getAdnm());
+                    orgEntity.setText(orgRegion.getAdnm());
+                    orgEntity.setKey(orgRegion.getAdcd());
+                    orgEntity.setExclude(excludeCode);
+                    orgEntity.setParentId(orgRegion.getParentCode());
+                    //查找子节点
+                    if (getChildren(orgEntity, orgRegion, excludeCode)) {
+                        if (orgEntity.getChildren() != null && orgEntity.getChildren().size() > 0) {
+                            orgEntity.setHasChildren(true);
+                        } else {
+                            orgEntity.setHasChildren(false);
+                        }
+                    }
+                    nodeEntities.add(orgEntity);
+                    opsHash.set("region." + user.getDeptId(), JSON.toJSONString(nodeEntities));
+                    opsHash.set("region.ver." + user.getDeptId(), this.regionVer);
+                }
+            }
+        }
+        return R.data(nodeEntities);
+    }
+
+    private boolean getChildren(RegionTreeNodeEntity nodeEntity, RegionInfoEntity regionInfoEntity, int exclude) {
+        LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+        queryWrapper.eq(RegionInfoEntity::getParentCode, regionInfoEntity.getAdcd());
+        if (exclude == 1) {
+            queryWrapper.eq(RegionInfoEntity::getExcludeAd, 0);
+        }
+        List<RegionInfoEntity> list = baseInfoRegionService.list(queryWrapper);
+        if (null != list && list.size() > 0) {
+            List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+            for (RegionInfoEntity entity : list) {
+                RegionTreeNodeEntity node = new RegionTreeNodeEntity();
+                node.setId(entity.getAdcd());
+                node.setValue(entity.getAdcd());
+                node.setTitle(entity.getAdnm());
+                node.setText(entity.getAdnm());
+                node.setKey(entity.getAdcd());
+                node.setExclude(exclude);
+                node.setParentId(entity.getParentCode());
+                if (getChildren(node, entity, exclude)) {
+                    if (node.getChildren() != null && node.getChildren().size() > 0) {
+                        node.setHasChildren(true);
+                    } else {
+                        node.setHasChildren(false);
+                    }
+                }
+                nodeEntities.add(node);
+            }
+            nodeEntity.setChildren(nodeEntities);
+        }
+        return true;
+    }
+
+    /**
+     * 详情
+     */
+    @GetMapping("/detail")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情", notes = "传入RegionInfoEntity")
+    public R<RegionInfoVO> detail(RegionInfoDTO regionInfoDTO) {
+        regionInfoDTO.setAdcd(regionInfoDTO.getCode());
+        regionInfoDTO.setIsDeleted(0);
+        RegionInfoEntity detail = baseInfoRegionService.getOne(Condition.getQueryWrapper(regionInfoDTO));
+        return R.data(RegionInfoWrapper.build().entityVO(detail));
+    }
+
+    /**
+     * 从宏图数据导入
+     */
+    @PostMapping("/import")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "regionLevel", value = "行政区划层级", paramType = "query", dataType = "int"),
+            @ApiImplicitParam(name = "isCovered", value = "是否覆盖", paramType = "query", dataType = "int"),
+    })
+    @ApiOperationSupport(order = 6)
+    @ApiOperation(value = "导入", notes = "传入RegionInfoDTO")
+    public R importSubmit(@RequestBody RegionInfoDTO regionInfoDTO) {
+        if (regionInfoDTO.getIsCovered() == 1) {
+            LambdaUpdateWrapper<RegionInfoEntity> updateWrapper = Wrappers.<RegionInfoEntity>update().lambda();
+            updateWrapper.ne(RegionInfoEntity::getAdcd, "00");
+            updateWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
+            baseInfoRegionService.remove(updateWrapper);
+        }
+        EtlAdCdEntity dto = new EtlAdCdEntity();
+        dto.setSuperioradcd("0");
+        List<EtlAdCdEntity> list = etlAdCdService.selectList(dto);
+        if (null != list && list.size() == 1) {
+            String code = list.get(0).getAdcd();
+            LambdaQueryWrapper<RegionInfoEntity> requestWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+            requestWrapper.eq(RegionInfoEntity::getAdcd, code);
+            requestWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
+            RegionInfoEntity regionInfoEntity = baseInfoRegionService.getOne(requestWrapper);
+            if (null != regionInfoEntity) {
+                regionInfoEntity.setAdnm(list.get(0).getAdnm());
+                baseInfoRegionService.updateById(regionInfoEntity);
+            } else {
+                regionInfoEntity = new RegionInfoEntity();
+                regionInfoEntity.setAdcd(code);
+                regionInfoEntity.setAdnm(list.get(0).getAdnm());
+                regionInfoEntity.setParentCode("00");
+                regionInfoEntity.setAncestors("00");
+                regionInfoEntity.setStatus(1);
+                regionInfoEntity.setIsDeleted(0);
+                baseInfoRegionService.save(regionInfoEntity);
+            }
+            this.importAdcd(regionInfoDTO.getRegionLevel(), 2, code, "00," + code);
+        }
+        return R.status(true);
+    }
+
+    private boolean importAdcd(int level, int currLevel, String parentCode, String ancestors) {
+        if (currLevel > level) {
+            return true;
+        }
+        EtlAdCdEntity dto = new EtlAdCdEntity();
+        dto.setSuperioradcd(parentCode);
+        List<EtlAdCdEntity> list = etlAdCdService.selectList(dto);
+        if (null != list && list.size() > 0) {
+            for (EtlAdCdEntity adCdEntity : list) {
+                LambdaQueryWrapper<RegionInfoEntity> requestWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+                requestWrapper.eq(RegionInfoEntity::getAdcd, adCdEntity.getAdcd());
+                requestWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
+                RegionInfoEntity regionInfoEntity = baseInfoRegionService.getOne(requestWrapper);
+                if (null != regionInfoEntity) {
+                    regionInfoEntity.setAdnm(adCdEntity.getAdnm());
+                    baseInfoRegionService.updateById(regionInfoEntity);
+                } else {
+                    regionInfoEntity = new RegionInfoEntity();
+                    regionInfoEntity.setAdcd(adCdEntity.getAdcd());
+                    regionInfoEntity.setAdnm(adCdEntity.getAdnm());
+                    regionInfoEntity.setParentCode(parentCode);
+                    regionInfoEntity.setAncestors(ancestors);
+                    regionInfoEntity.setStatus(1);
+                    regionInfoEntity.setIsDeleted(0);
+                    baseInfoRegionService.save(regionInfoEntity);
+                }
+                importAdcd(level, currLevel + 1, adCdEntity.getAdcd(), ancestors + "," + adCdEntity.getAdcd());
+            }
+        }
+        return true;
+    }
+}

+ 2 - 2
src/main/java/org/springblade/modules/baseinfo/region/dto/RegionInfoDTO.java → src/main/java/org/springblade/modules/baseinfo/region/yw/dto/RegionInfoDTO.java

@@ -4,12 +4,12 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.baseinfo.region.dto;
+package org.springblade.modules.baseinfo.region.yw.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
 
 
 /***

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

@@ -4,7 +4,7 @@
  * 项目名称: 运维系统
  * 创建日期:2022/3/9
  */
-package org.springblade.modules.baseinfo.region.entity;
+package org.springblade.modules.baseinfo.region.yw.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModelProperty;

+ 2 - 2
src/main/java/org/springblade/modules/baseinfo/region/mapper/RegionInfoMapper.java → src/main/java/org/springblade/modules/baseinfo/region/yw/mapper/RegionInfoMapper.java

@@ -4,10 +4,10 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.baseinfo.region.mapper;
+package org.springblade.modules.baseinfo.region.yw.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
 
 
 /***

+ 2 - 2
src/main/java/org/springblade/modules/baseinfo/region/mapper/RegionInfoMapper.xml → src/main/java/org/springblade/modules/baseinfo/region/yw/mapper/RegionInfoMapper.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.springblade.modules.baseinfo.region.mapper.RegionInfoMapper">
+<mapper namespace="org.springblade.modules.baseinfo.region.yw.mapper.RegionInfoMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="baseinfoRegionResultMap" type="org.springblade.modules.baseinfo.region.entity.RegionInfoEntity">
+    <resultMap id="baseinfoRegionResultMap" type="org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity">
         <result column="adcd" property="adcd"/>
         <result column="adnm" property="adnm"/>
         <result column="parent_code" property="parentCode"/>

+ 4 - 4
src/main/java/org/springblade/modules/baseinfo/region/service/IRegionInfoService.java → src/main/java/org/springblade/modules/baseinfo/region/yw/service/IRegionInfoService.java

@@ -4,13 +4,13 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.baseinfo.region.service;
+package org.springblade.modules.baseinfo.region.yw.service;
 
 
 import org.springblade.core.mp.base.BaseService;
-import org.springblade.modules.baseinfo.region.dto.RegionInfoDTO;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.dto.RegionInfoDTO;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
 
 
 

+ 6 - 6
src/main/java/org/springblade/modules/baseinfo/region/service/impl/RegionInfoServiceImpl.java → src/main/java/org/springblade/modules/baseinfo/region/yw/service/impl/RegionInfoServiceImpl.java

@@ -4,7 +4,7 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.baseinfo.region.service.impl;
+package org.springblade.modules.baseinfo.region.yw.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.TypeReference;
@@ -13,11 +13,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.springblade.constant.BusinessConstant;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.modules.baseinfo.region.dto.RegionInfoDTO;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.mapper.RegionInfoMapper;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.dto.RegionInfoDTO;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.mapper.RegionInfoMapper;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.stereotype.Service;

+ 2 - 2
src/main/java/org/springblade/modules/baseinfo/region/vo/RegionInfoVO.java → src/main/java/org/springblade/modules/baseinfo/region/yw/vo/RegionInfoVO.java

@@ -4,12 +4,12 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.baseinfo.region.vo;
+package org.springblade.modules.baseinfo.region.yw.vo;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
 
 /***
  * Date:2022/8/22

+ 4 - 4
src/main/java/org/springblade/modules/baseinfo/region/wrapper/RegionInfoWrapper.java → src/main/java/org/springblade/modules/baseinfo/region/yw/wrapper/RegionInfoWrapper.java

@@ -4,7 +4,7 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.baseinfo.region.wrapper;
+package org.springblade.modules.baseinfo.region.yw.wrapper;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -12,9 +12,9 @@ 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.SpringUtil;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
-import org.springblade.modules.baseinfo.region.vo.RegionInfoVO;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.vo.RegionInfoVO;
 
 
 import java.util.Objects;

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

@@ -25,9 +25,9 @@ import org.springblade.core.tool.utils.Func;
 
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.dto.RtuInfoDTO;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;

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

@@ -31,7 +31,7 @@ public interface IRtuBaseInfoService extends BaseService<RtuInfoEntity> {
 	 */
 	IPage<RtuInfoVO> selectPage(IPage<RtuInfoVO> page, RtuInfoDTO rtuInfoDTO);
 
-	RtuInfoEntity rtuInfoByRtuCode(String rtuCode);
+	RtuInfoEntity rtuInfoByCode(String rtuCode);
 
 	Long rtuCount(RtuInfoDTO rtuInfoDTO);
 

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

@@ -10,8 +10,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.springblade.core.mp.base.BaseServiceImpl;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.dto.RtuInfoDTO;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.mapper.RtuInfoMapper;
@@ -41,13 +41,12 @@ public class RtuBaseInfoServiceImpl extends BaseServiceImpl<RtuInfoMapper, RtuIn
 	}
 
 	@Override
-	public RtuInfoEntity rtuInfoByRtuCode(String rtuCode) {
+	public RtuInfoEntity rtuInfoByCode(String rtuCode) {
 		LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
 		wrapper.eq(RtuInfoEntity::getRtuCode, rtuCode);
 		wrapper.eq(RtuInfoEntity::getIsDeleted,0);
-
-		RtuInfoEntity rtuInfoEntity =  this.getOne(wrapper);
-		return rtuInfoEntity;
+        wrapper.last("limit 1");
+		return this.getOne(wrapper);
 	}
 
 

+ 2 - 2
src/main/java/org/springblade/modules/baseinfo/rtu/wrapper/RtuInfoWrapper.java

@@ -12,8 +12,8 @@ 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.SpringUtil;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.vo.RtuInfoVO;
 import org.springblade.modules.system.service.IDictBizService;

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

@@ -26,9 +26,9 @@ import org.springblade.modules.baseinfo.dict.entity.DictInfoEntity;
 import org.springblade.modules.baseinfo.dict.service.IBaseInfoDictService;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.dto.RtuInfoDTO;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;

+ 2 - 2
src/main/java/org/springblade/modules/business/check/order/service/impl/RtuCheckOrderServiceImpl.java

@@ -18,8 +18,8 @@ import org.springblade.modules.baseinfo.dict.entity.DictInfoEntity;
 import org.springblade.modules.baseinfo.dict.service.IBaseInfoDictService;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.check.order.dto.CheckOrderInfoDTO;

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

@@ -18,8 +18,8 @@ import org.springblade.enums.WarnKindEnum;
 import org.springblade.modules.baseinfo.dict.service.IBaseInfoDictService;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.check.order.entity.CheckOrderInfoEntity;

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

@@ -29,9 +29,9 @@ import org.springblade.modules.baseinfo.dict.entity.DictInfoEntity;
 import org.springblade.modules.baseinfo.dict.service.IBaseInfoDictService;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.check.order.dto.CheckOrderInfoDTO;

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

@@ -26,8 +26,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.business.data.dto.RtuDataGroundDTO;
 import org.springblade.modules.business.data.entity.RtuDataGroundEntity;
 import org.springblade.modules.business.data.service.IRtuDataGroundService;

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

@@ -25,8 +25,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.business.data.dto.RtuDataRainDTO;
 import org.springblade.modules.business.data.entity.RtuDataRainEntity;
 import org.springblade.modules.business.data.service.IRtuDataRainService;
@@ -131,6 +131,82 @@ public class RtuDataRainController extends BladeController {
 	}
 
 
+	/**
+	 * 分页
+	 */
+	@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);
+	}
+
+
 	/**
 	 * 详情
 	 */

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

@@ -25,8 +25,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.business.data.dto.RtuDataRiverDTO;
 import org.springblade.modules.business.data.entity.RtuDataRiverEntity;
 import org.springblade.modules.business.data.service.IRtuDataRiverService;

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

@@ -25,8 +25,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.business.data.dto.RtuDataRsvrDTO;
 import org.springblade.modules.business.data.entity.RtuDataRsvrEntity;
 import org.springblade.modules.business.data.service.IRtuDataRsvrService;

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

@@ -25,8 +25,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.business.data.dto.RtuDataWaterLevelDTO;
 import org.springblade.modules.business.data.entity.RtuDataWaterLevelEntity;
 import org.springblade.modules.business.data.service.IRtuDataWaterLevelService;

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

@@ -87,4 +87,5 @@ public class RtuDataRainDTO extends RtuDataRainEntity {
 
 	@ApiModelProperty(value = "雨量统计类型")
 	private Integer rainCountType;
+
 }

+ 2 - 0
src/main/java/org/springblade/modules/business/data/mapper/RtuDataRainMapper.java

@@ -31,4 +31,6 @@ public interface RtuDataRainMapper extends BaseMapper<RtuDataRainEntity> {
 	 * @return List<RtuInfoVO>
 	 */
 	List<RtuDataRainVO> selectPage(IPage page, @Param("rtuDataRainDTO") RtuDataRainDTO rtuDataRainDTO);
+
+	List<RtuDataRainVO> selectYjPage(IPage page, @Param("rtuDataRainDTO") RtuDataRainDTO rtuDataRainDTO);
 }

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

@@ -29,13 +29,16 @@
         <result column="h12drp" property="h12drp"/>
         <result column="h24tm" property="h24tm"/>
         <result column="h24drp" property="h24drp"/>
+        <result column="lng" property="lng"/>
+        <result column="lat" property="lat"/>
     </resultMap>
 
 
     <select id="selectPage" resultMap="rtuRainDataVOResultMap">
         SELECT
-        n.*,h1.tm AS h1tm,h1.drp AS h1drp,h3.tm AS h3tm,h3.drp AS h3drp,h6.tm AS h6tm,h6.drp AS h6drp,h12.tm AS h12tm,h12.drp AS h12drp,h24.tm AS h24tm,h24.drp AS h24drp,
-        r.rtu_name,r.ad_city,r.ad_dist
+        n.*,h1.tm AS h1tm,h1.drp AS h1drp,h3.tm AS h3tm,h3.drp AS h3drp,h6.tm AS h6tm,h6.drp AS h6drp,h12.tm AS
+        h12tm,h12.drp AS h12drp,h24.tm AS h24tm,h24.drp AS h24drp,
+        r.rtu_name,r.ad_city,r.ad_dist,r.lng,r.lat
         FROM
         data_att_st_prec_cache n
         LEFT JOIN data_att_st_prec_h1_cache h1 ON h1.rtu_code = n.rtu_code and h1.is_deleted=0
@@ -57,9 +60,99 @@
             and a.exclude_ad = 0
         </if>
         <if test="rtuDataRainDTO.adCode!=null">
-            and (a.adcd =#{rtuDataRainDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted =0 and ancestors
+            and (a.adcd =#{rtuDataRainDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted
+            =0 and ancestors
             like concat(concat('%', #{rtuDataRainDTO.adCode}), '%')))
         </if>
+
+        <choose>
+            <when test="rtuDataRainDTO.order!=null and rtuDataRainDTO.order=='ascending'">
+                <if test="rtuDataRainDTO.prop!=null and rtuDataRainDTO.prop=='tm'">
+                    order by n.tm
+                </if>
+                <if test="rtuDataRainDTO.prop!=null and rtuDataRainDTO.prop=='drp'">
+                    order by n.drp
+                </if>
+            </when>
+            <when test="rtuDataRainDTO.order!=null and rtuDataRainDTO.order=='descending'">
+                <if test="rtuDataRainDTO.prop!=null and rtuDataRainDTO.prop=='tm'">
+                    order by n.tm desc
+                </if>
+                <if test="rtuDataRainDTO.prop!=null and rtuDataRainDTO.prop=='drp'">
+                    order by n.drp desc
+                </if>
+            </when>
+            <when test="rtuDataRainDTO.rainCountType!=null">
+                <if test="rtuDataRainDTO.rainCountType == 1">
+                    order by h1.drp desc
+                </if>
+                <if test="rtuDataRainDTO.rainCountType == 3">
+                    order by h3.drp desc
+                </if>
+                <if test="rtuDataRainDTO.rainCountType == 6">
+                    order by h6.drp desc
+                </if>
+                <if test="rtuDataRainDTO.rainCountType == 12">
+                    order by h12.drp desc
+                </if>
+                <if test="rtuDataRainDTO.rainCountType == 24">
+                    order by h24.drp desc
+                </if>
+            </when>
+            <otherwise>
+                order by n.drp desc,n.tm desc
+            </otherwise>
+        </choose>
+    </select>
+
+    <select id="selectYjPage" resultMap="rtuRainDataVOResultMap">
+        SELECT
+        n.*,h1.tm AS h1tm,h1.drp AS h1drp,h3.tm AS h3tm,h3.drp AS h3drp,h6.tm AS h6tm,h6.drp AS h6drp,h12.tm AS
+        h12tm,h12.drp AS h12drp,h24.tm AS h24tm,h24.drp AS h24drp,
+        r.rtu_name,r.ad_city,r.ad_dist,r.lng,r.lat
+        FROM
+        data_att_st_prec_cache n
+        LEFT JOIN data_att_st_prec_h1_cache h1 ON h1.rtu_code = n.rtu_code and h1.is_deleted=0
+        LEFT JOIN data_att_st_prec_h3_cache h3 ON h3.rtu_code = n.rtu_code and h3.is_deleted=0
+        LEFT JOIN data_att_st_prec_h6_cache h6 ON h6.rtu_code = n.rtu_code and h6.is_deleted=0
+        LEFT JOIN data_att_st_prec_h12_cache h12 ON h12.rtu_code = n.rtu_code and h12.is_deleted=0
+        LEFT JOIN data_att_st_prec_h24_cache h24 ON h24.rtu_code = n.rtu_code and h24.is_deleted=0
+        LEFT JOIN rtu_info r ON n.rtu_code = r.rtu_code and r.is_deleted=0
+        LEFT JOIN data_ad_cd_b a ON a.adcd = r.ad_code and a.is_deleted=0
+        WHERE
+        n.is_deleted = 0
+        <if test="rtuDataRainDTO.rtuName!=null ">
+            and r.rtu_name LIKE concat(concat('%', #{rtuDataRainDTO.rtuName}), '%')
+        </if>
+        <if test="rtuDataRainDTO.rtuCode!=null">
+            and n.rtu_code like concat(concat('%', #{rtuDataRainDTO.rtuCode}), '%')
+        </if>
+        <if test="rtuDataRainDTO.excludeCode!=null and rtuDataRainDTO.excludeCode==1">
+            and a.exclude_ad = 0
+        </if>
+        <if test="rtuDataRainDTO.adCode!=null">
+            and (a.adcd =#{rtuDataRainDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE is_deleted
+            =0 and ancestors
+            like concat(concat('%', #{rtuDataRainDTO.adCode}), '%')))
+        </if>
+        <if test="rtuDataRainDTO.rainCountType!=null and rtuDataRainDTO.rainCountType == 0">
+            and n.drp >0
+        </if>
+        <if test="rtuDataRainDTO.rainCountType!=null and rtuDataRainDTO.rainCountType == 1">
+            and h1.drp >0
+        </if>
+        <if test="rtuDataRainDTO.rainCountType!=null and rtuDataRainDTO.rainCountType == 3">
+            and h3.drp >0
+        </if>
+        <if test="rtuDataRainDTO.rainCountType!=null and rtuDataRainDTO.rainCountType == 6">
+            and h6.drp >0
+        </if>
+        <if test="rtuDataRainDTO.rainCountType!=null and rtuDataRainDTO.rainCountType == 12">
+            and h12.drp >0
+        </if>
+        <if test="rtuDataRainDTO.rainCountType!=null and rtuDataRainDTO.rainCountType == 24">
+            and h24.drp >0
+        </if>
         <choose>
             <when test="rtuDataRainDTO.order!=null and rtuDataRainDTO.order=='ascending'">
                 <if test="rtuDataRainDTO.prop!=null and rtuDataRainDTO.prop=='tm'">
@@ -95,7 +188,7 @@
                 </if>
             </when>
             <otherwise>
-                order by  n.drp desc,n.tm desc
+                order by n.drp desc,n.tm desc
             </otherwise>
         </choose>
     </select>

+ 2 - 0
src/main/java/org/springblade/modules/business/data/service/IRtuDataRainService.java

@@ -36,4 +36,6 @@ public interface IRtuDataRainService extends BaseService<RtuDataRainEntity> {
 	 * @return
 	 */
 	boolean updateRainInfo(EtlRainDataEntity etlRainDataEntity);
+
+	IPage<RtuDataRainVO> selectYjPage(IPage<RtuDataRainVO> page, RtuDataRainDTO rtuDataRainDTO);
 }

+ 5 - 0
src/main/java/org/springblade/modules/business/data/service/impl/RtuDataRainServiceImpl.java

@@ -57,4 +57,9 @@ public class RtuDataRainServiceImpl extends BaseServiceImpl<RtuDataRainMapper, R
 		return this.saveOrUpdate(rainEntity);
 	}
 
+	@Override
+	public IPage<RtuDataRainVO> selectYjPage(IPage<RtuDataRainVO> page, RtuDataRainDTO rtuDataRainDTO) {
+		return page.setRecords(baseMapper.selectYjPage(page, rtuDataRainDTO));
+	}
+
 }

+ 11 - 0
src/main/java/org/springblade/modules/business/data/vo/RtuDataRainVO.java

@@ -168,4 +168,15 @@ public class RtuDataRainVO extends RtuDataRainEntity {
 	@ApiModelProperty(value = "降雨时段")
 	private String intvLable;
 
+	/**
+	 * 经度
+	 */
+	@ApiModelProperty(value = "经度")
+	private String lng;
+
+	/**
+	 * 纬度
+	 */
+	@ApiModelProperty(value = "纬度")
+	private String lat;
 }

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

@@ -28,9 +28,9 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.dto.RtuInfoDTO;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.equipment.inspection.base.dto.EquipmentInspectionInfoDTO;

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

@@ -31,9 +31,9 @@ import org.springblade.core.tool.utils.Func;
 
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.equipment.inspection.base.entity.EquipmentInspectionInfoEntity;

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

@@ -13,8 +13,8 @@ import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.equipment.inspection.report.entity.EquipmentInspectionReportEntity;

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

@@ -27,8 +27,8 @@ import org.springblade.modules.baseinfo.dict.entity.DictInfoEntity;
 import org.springblade.modules.baseinfo.dict.service.IBaseInfoDictService;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.dto.RtuInfoDTO;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.check.order.dto.CheckOrderInfoDTO;

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

@@ -32,9 +32,9 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.enums.OrderStatusEnum;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.dto.RtuInfoDTO;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;

+ 5 - 6
src/main/java/org/springblade/modules/manage/version/controller/VersionManageController.java → src/main/java/org/springblade/modules/business/version/controller/VersionManageController.java

@@ -4,7 +4,7 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/31
  */
-package org.springblade.modules.manage.version.controller;
+package org.springblade.modules.business.version.controller;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -26,17 +26,16 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.business.notice.entity.NoticeEntity;
 import org.springblade.modules.business.notice.service.INoticeService;
-import org.springblade.modules.manage.version.entity.VersionInfoEntity;
-import org.springblade.modules.manage.version.service.IVersionManageService;
-import org.springblade.modules.manage.version.vo.VersionInfoVO;
-import org.springblade.modules.manage.version.wrapper.VersionInfoWrapper;
+import org.springblade.modules.business.version.entity.VersionInfoEntity;
+import org.springblade.modules.business.version.service.IVersionManageService;
+import org.springblade.modules.business.version.vo.VersionInfoVO;
+import org.springblade.modules.business.version.wrapper.VersionInfoWrapper;
 import org.springblade.utils.QRCodeUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import springfox.documentation.annotations.ApiIgnore;
 
-import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.util.*;
 

+ 1 - 1
src/main/java/org/springblade/modules/manage/version/entity/VersionInfoEntity.java → src/main/java/org/springblade/modules/business/version/entity/VersionInfoEntity.java

@@ -4,7 +4,7 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.manage.version.entity;
+package org.springblade.modules.business.version.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModelProperty;

+ 2 - 2
src/main/java/org/springblade/modules/manage/version/mapper/VersionInfoMapper.java → src/main/java/org/springblade/modules/business/version/mapper/VersionInfoMapper.java

@@ -4,11 +4,11 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.manage.version.mapper;
+package org.springblade.modules.business.version.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springblade.modules.manage.version.entity.VersionInfoEntity;
+import org.springblade.modules.business.version.entity.VersionInfoEntity;
 
 
 /***

+ 2 - 2
src/main/java/org/springblade/modules/manage/version/mapper/VersionInfoMapper.xml → src/main/java/org/springblade/modules/business/version/mapper/VersionInfoMapper.xml

@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.springblade.modules.manage.version.mapper.VersionInfoMapper">
+<mapper namespace="org.springblade.modules.business.version.mapper.VersionInfoMapper">
 
     <!-- 通用查询映射结果 -->
     <resultMap id="versionInfoResultMap"
-               type="org.springblade.modules.manage.version.entity.VersionInfoEntity">
+               type="org.springblade.modules.business.version.entity.VersionInfoEntity">
         <result column="app_id" property="appId"/>
         <result column="version" property="version"/>
         <result column="app_path" property="appPath"/>

+ 2 - 4
src/main/java/org/springblade/modules/manage/version/service/IVersionManageService.java → src/main/java/org/springblade/modules/business/version/service/IVersionManageService.java

@@ -4,13 +4,11 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.manage.version.service;
+package org.springblade.modules.business.version.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseService;
-import org.springblade.modules.business.check.order.dto.CheckOrderInfoDTO;
-import org.springblade.modules.business.check.order.vo.CheckOrderInfoVO;
-import org.springblade.modules.manage.version.entity.VersionInfoEntity;
+import org.springblade.modules.business.version.entity.VersionInfoEntity;
 
 
 /***

+ 4 - 4
src/main/java/org/springblade/modules/manage/version/service/impl/VersionManageServiceImpl.java → src/main/java/org/springblade/modules/business/version/service/impl/VersionManageServiceImpl.java

@@ -4,13 +4,13 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.manage.version.service.impl;
+package org.springblade.modules.business.version.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseServiceImpl;
-import org.springblade.modules.manage.version.entity.VersionInfoEntity;
-import org.springblade.modules.manage.version.mapper.VersionInfoMapper;
-import org.springblade.modules.manage.version.service.IVersionManageService;
+import org.springblade.modules.business.version.entity.VersionInfoEntity;
+import org.springblade.modules.business.version.mapper.VersionInfoMapper;
+import org.springblade.modules.business.version.service.IVersionManageService;
 import org.springframework.stereotype.Service;
 ;
 

+ 2 - 2
src/main/java/org/springblade/modules/manage/version/vo/VersionInfoVO.java → src/main/java/org/springblade/modules/business/version/vo/VersionInfoVO.java

@@ -4,12 +4,12 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.manage.version.vo;
+package org.springblade.modules.business.version.vo;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.springblade.modules.manage.version.entity.VersionInfoEntity;
+import org.springblade.modules.business.version.entity.VersionInfoEntity;
 
 
 /***

+ 3 - 3
src/main/java/org/springblade/modules/manage/version/wrapper/VersionInfoWrapper.java → src/main/java/org/springblade/modules/business/version/wrapper/VersionInfoWrapper.java

@@ -4,12 +4,12 @@
  * 项目名称: 运维系统
  * 创建日期:2022/8/22
  */
-package org.springblade.modules.manage.version.wrapper;
+package org.springblade.modules.business.version.wrapper;
 
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
-import org.springblade.modules.manage.version.entity.VersionInfoEntity;
-import org.springblade.modules.manage.version.vo.VersionInfoVO;
+import org.springblade.modules.business.version.entity.VersionInfoEntity;
+import org.springblade.modules.business.version.vo.VersionInfoVO;
 
 import java.util.Objects;
 

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

@@ -22,8 +22,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.business.warning.dto.RtuWarningInfoDTO;
 import org.springblade.modules.business.warning.entity.RtuWarnSettingEntity;
 import org.springblade.modules.business.warning.entity.RtuWarningInfoEntity;

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

@@ -13,8 +13,8 @@ import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.business.warning.entity.RtuWarningInfoEntity;

+ 2 - 1
src/main/java/org/springblade/modules/manage/controller/DataManageController.java

@@ -72,7 +72,8 @@ public class DataManageController extends BladeController {
 	final IMvAttStBaseService mvAttStBaseService;
 	final IDictBizService dictBizService;
 
-	private final OssBuilder ossBuilder;
+	@Resource
+	private  OssBuilder ossBuilder;
 
 	@Resource
 	private TaskManager taskManager;

+ 3 - 3
src/main/java/org/springblade/modules/manage/task/RtuImportTask.java

@@ -694,7 +694,7 @@ public class RtuImportTask implements Callable<Integer> {
 				System.out.println("save record********************");
 				if (recordEntity.getSaveType() == 0) {
 					//新增
-					RtuInfoEntity entity = rtuBaseInfoService.rtuInfoByRtuCode(rtuInfoEntity.getRtuCode());
+					RtuInfoEntity entity = rtuBaseInfoService.rtuInfoByCode(rtuInfoEntity.getRtuCode());
 					if (null == entity) {
 						rtuBaseInfoService.save(rtuInfoEntity);
 						RtuImportRecordDetailEntity detailEntity = new RtuImportRecordDetailEntity();
@@ -706,7 +706,7 @@ public class RtuImportTask implements Callable<Integer> {
 					}
 				} else if (recordEntity.getSaveType() == 1) {
 					//覆盖
-					RtuInfoEntity entity = rtuBaseInfoService.rtuInfoByRtuCode(rtuInfoEntity.getRtuCode());
+					RtuInfoEntity entity = rtuBaseInfoService.rtuInfoByCode(rtuInfoEntity.getRtuCode());
 					if (null != entity) {
 						//更新列
 						copyEntity(entity, rtuInfoEntity);
@@ -725,7 +725,7 @@ public class RtuImportTask implements Callable<Integer> {
 					detailEntity.setRecordId(recordEntity.getId());
 					detailEntity.setRtuCode(rtuInfoEntity.getRtuCode());
 					detailEntity.setRtuName(rtuInfoEntity.getRtuName());
-					RtuInfoEntity entity = rtuBaseInfoService.rtuInfoByRtuCode(rtuInfoEntity.getRtuCode());
+					RtuInfoEntity entity = rtuBaseInfoService.rtuInfoByCode(rtuInfoEntity.getRtuCode());
 					if (null != entity) {
 						detailEntity.setSaveType(1);
 						//更新列

+ 1 - 1
src/main/java/org/springblade/modules/report/WeekOrgReportBean.java

@@ -13,7 +13,7 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.modules.baseinfo.dict.service.IBaseInfoDictService;
 import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.business.check.order.service.IRtuCheckOrderService;
 import org.springblade.modules.report.entity.*;
 import org.springblade.modules.report.service.*;

+ 216 - 146
src/main/java/org/springblade/modules/yjxt/base/map/controller/MapDangerAreaController.java

@@ -9,9 +9,9 @@ package org.springblade.modules.yjxt.base.map.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 lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.log.annotation.ApiLog;
 import org.springblade.core.mp.support.Condition;
@@ -22,17 +22,20 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.jobtask.TaskManager;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
+import org.springblade.modules.resource.builder.oss.OssBuilder;
 import org.springblade.modules.yjxt.base.map.dto.DangerAreaImportRecordDTO;
 import org.springblade.modules.yjxt.base.map.dto.DangerAreaDTO;
+import org.springblade.modules.yjxt.base.map.dto.DangerAreaLeaveLineDTO;
 import org.springblade.modules.yjxt.base.map.entity.DangerAreaImportRecordEntity;
 import org.springblade.modules.yjxt.base.map.entity.DangerAreaEntity;
 import org.springblade.modules.yjxt.base.map.entity.DangerAreaPointEntity;
 import org.springblade.modules.yjxt.base.map.service.IDangerAreaImportServcie;
+import org.springblade.modules.yjxt.base.map.service.IDangerAreaLeaveLineService;
 import org.springblade.modules.yjxt.base.map.task.DangerAreaImportTask;
 import org.springblade.modules.yjxt.base.map.vo.DangerAreaImportRecordVO;
+import org.springblade.modules.yjxt.base.map.vo.DangerAreaLeaveLineVO;
 import org.springblade.modules.yjxt.base.map.vo.DangerAreaVO;
 import org.springblade.modules.yjxt.base.map.wrapper.DangerAreaWrapper;
-import org.springblade.modules.resource.builder.oss.OssBuilder;
 import org.springblade.modules.yjxt.base.map.service.IDangerAreaPointService;
 import org.springblade.modules.yjxt.base.map.service.IDangerAreaService;
 import org.springframework.web.bind.annotation.*;
@@ -53,153 +56,220 @@ import java.util.concurrent.FutureTask;
  * @version 1.0
  * Remark:认为有必要的其他信息
  */
+@Slf4j
 @RestController
 @RequestMapping("galaxy-business/map/dangerarea")
-@AllArgsConstructor
+@RequiredArgsConstructor
 @Api(value = "危险区地图数据管理模块", tags = "危险区")
 public class MapDangerAreaController extends BladeController {
 
-	private final IDangerAreaService dangerAreaService;
-
-	private final IDangerAreaPointService pointService;
-
-	private final IDangerAreaImportServcie danagerAreaImportServcie;
-
-	private final IRtuBaseInfoService rtuBaseInfoService;
-
-	@Resource
-	private OssBuilder ossBuilder;
-
-	@Resource
-	private TaskManager taskManager;
-
-	@GetMapping("/page")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页")
-	public R<IPage<DangerAreaVO>> getPage(@ApiIgnore DangerAreaDTO dto, Query query) {
-		IPage<DangerAreaVO> pages = dangerAreaService.selectPage(Condition.getPage(query), dto);
-		List<DangerAreaVO> voList = pages.getRecords();
-		for (DangerAreaVO vo : voList) {
-			DangerAreaWrapper.build().entityVO(vo);
-		}
-		return R.data(pages);
-	}
-
-	/**
-	 * 根据行政区查询危险区
-	 * @param dto
-	 * @return
-	 */
-	@GetMapping("/list")
-	@ApiImplicitParams({
-			@ApiImplicitParam(name = "adcd", value = "行政区编码", paramType = "query", dataType = "string"),
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页")
-	public R<List<DangerAreaVO>> list(@ApiIgnore DangerAreaDTO dto) {
-		List<DangerAreaVO> voList = dangerAreaService.selectAdDangerArea(dto);
-		for (DangerAreaVO vo : voList) {
-			DangerAreaWrapper.build().entityVO(vo);
-		}
-		return R.data(voList);
-	}
-
-	@GetMapping("/import/page")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页")
-	public R<IPage<DangerAreaImportRecordVO>> getImportPage(Query query) {
-		return R.data(danagerAreaImportServcie.selectPage(Condition.getPage(query)));
-	}
-
-	/**
-	 * 查询危险区多边形地理信息
-	 * @param entity
-	 * @return
-	 */
-	@GetMapping("/polygon")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "列表")
-	public R<List<DangerAreaPointEntity>> getPolygon(DangerAreaEntity entity) {
-		LambdaQueryWrapper<DangerAreaPointEntity> wrapper = Wrappers.<DangerAreaPointEntity>query().lambda();
-		wrapper.eq(DangerAreaPointEntity::getDangerAreaId, entity.getId());
-		List<DangerAreaPointEntity> points = pointService.list(wrapper);
-		return R.data(points);
-	}
-
-
-	/**
-	 * 详情
-	 */
-	@GetMapping("/detail")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情", notes = "传入DangerAreaEntity")
-	public R<DangerAreaVO> detail(DangerAreaEntity entity) {
-		DangerAreaEntity detail = dangerAreaService.getOne(Condition.getQueryWrapper(entity));
-		DangerAreaVO vo = DangerAreaWrapper.build().entityVO(detail);
-		List<RtuInfoEntity> rtus = new ArrayList<>();
-		String stCode = vo.getStCode();
-		if (null != stCode) {
-			String rtuName = "";
-			String[] stCodeArr = stCode.split(",");
-			for (String st : stCodeArr) {
-				LambdaQueryWrapper<RtuInfoEntity> rtuwrapper = Wrappers.<RtuInfoEntity>query().lambda();
-				rtuwrapper.eq(RtuInfoEntity::getRtuCode, st);
-				RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(rtuwrapper);
-				rtus.add(rtuInfoEntity);
-			}
-			vo.setRtus(rtus);
-		}
-		LambdaQueryWrapper<DangerAreaPointEntity> wrapper = Wrappers.<DangerAreaPointEntity>query().lambda();
-		wrapper.eq(DangerAreaPointEntity::getDangerAreaId, detail.getId());
-		List<DangerAreaPointEntity> list =pointService.list(wrapper);
-		vo.setPoints(list);
-		return R.data(vo);
-	}
-
-	/**
-	 * 删除
-	 */
-	@PostMapping("/remove")
-	@ApiOperationSupport(order = 7)
-	@ApiOperation(value = "逻辑删除", notes = "传入ID数组")
-	public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
-		boolean temp = dangerAreaService.deleteLogic(Func.toLongList(ids));
-		return R.status(temp);
-	}
-
-
-	@ApiLog("危险区信息-导入")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "remark", value = "导入说明", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "saveType", value = "操作类型", paramType = "query", dataType = "int"),
-	})
-	@PostMapping(value = "/import/json")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "导入测站信息", notes = "")
-	public R importDangerAreaTable(@ApiIgnore DangerAreaImportRecordDTO dto, MultipartFile file) {
-		try {
-			BladeFile bladeFile = ossBuilder.template().putFile(file);
-			if (null == bladeFile) {
-				return R.fail("导入失败");
-			}
-
-			DangerAreaImportRecordEntity recordEntity = new DangerAreaImportRecordEntity();
-			recordEntity.setImportStatus(0L);
-			recordEntity.setRemark(dto.getRemark());
-			recordEntity.setSaveType(dto.getSaveType());
-			recordEntity.setImportTime(Func.formatDateTime(new Date()));
-			recordEntity.setFileName(file.getOriginalFilename());
-			danagerAreaImportServcie.save(recordEntity);
-
-			DangerAreaImportTask task = new DangerAreaImportTask(bladeFile, recordEntity, dangerAreaService, pointService,danagerAreaImportServcie);
-			FutureTask<Integer> futureTask = new FutureTask<>(task);
-			taskManager.submitTask(futureTask);
-
-			return R.success("导入任务提交成功");
-		} catch (Exception e) {
-			e.printStackTrace();
-			return R.fail("导入错误 " + e.getMessage());
-		}
-	}
+    private final IDangerAreaService dangerAreaService;
+
+    private final IDangerAreaPointService pointService;
+
+    private final IDangerAreaImportServcie danagerAreaImportServcie;
+
+    private final IRtuBaseInfoService rtuBaseInfoService;
+
+    private final IDangerAreaLeaveLineService leaveLineService;
+
+    @Resource
+    private OssBuilder ossBuilder;
+
+    @Resource
+    private TaskManager taskManager;
+
+    @GetMapping("/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "adName", value = "行政区名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "dangerAreaName", value = "危险区名称", paramType = "query", dataType = "string"),
+    })
+    @ApiOperation(value = "分页")
+    public R<IPage<DangerAreaVO>> getPage(@ApiIgnore DangerAreaDTO dto, Query query) {
+        IPage<DangerAreaVO> pages = dangerAreaService.selectPage(Condition.getPage(query), dto);
+        List<DangerAreaVO> voList = pages.getRecords();
+        for (DangerAreaVO vo : voList) {
+            DangerAreaWrapper.build().entityVO(vo);
+        }
+        return R.data(pages);
+    }
+
+    /**
+     * 不分页查询危险区,根据行政区或危险区名称查询
+     *
+     * @param dto
+     * @return
+     */
+    @GetMapping("/list")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "adcd", value = "行政区编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "dangerAreaName", value = "危险区名称", paramType = "query", dataType = "string"),
+    })
+    @ApiOperation(value = "分页")
+    public R<List<DangerAreaVO>> list(@ApiIgnore DangerAreaDTO dto) {
+        List<DangerAreaVO> voList = dangerAreaService.selectAdDangerArea(dto);
+        for (DangerAreaVO vo : voList) {
+            DangerAreaWrapper.build().entityVO(vo);
+        }
+        return R.data(voList);
+    }
+
+    @GetMapping("/import/page")
+    @ApiOperation(value = "分页")
+    public R<IPage<DangerAreaImportRecordVO>> getImportPage(Query query) {
+        return R.data(danagerAreaImportServcie.selectPage(Condition.getPage(query)));
+    }
+
+    /**
+     * 查询危险区多边形地理信息
+     *
+     * @param entity
+     * @return
+     */
+    @GetMapping("/polygon")
+    @ApiOperation(value = "列表")
+    public R<List<DangerAreaPointEntity>> getPolygon(DangerAreaEntity entity) {
+        LambdaQueryWrapper<DangerAreaPointEntity> wrapper = Wrappers.<DangerAreaPointEntity>query().lambda();
+        wrapper.eq(DangerAreaPointEntity::getDangerAreaId, entity.getId());
+        List<DangerAreaPointEntity> points = pointService.list(wrapper);
+        return R.data(points);
+    }
+
+    /**
+     * 详情
+     */
+    @GetMapping("/detail")
+    @ApiOperation(value = "详情", notes = "传入DangerAreaEntity")
+    public R<DangerAreaVO> detail(DangerAreaEntity entity) {
+        DangerAreaEntity detail = dangerAreaService.getOne(Condition.getQueryWrapper(entity));
+        DangerAreaVO vo = DangerAreaWrapper.build().entityVO(detail);
+        List<RtuInfoEntity> rtus = new ArrayList<>();
+        String stCode = vo.getStCode();
+        if (null != stCode) {
+            String[] stCodeArr = stCode.split(",");
+            for (String st : stCodeArr) {
+                LambdaQueryWrapper<RtuInfoEntity> rtuwrapper = Wrappers.<RtuInfoEntity>query().lambda();
+                rtuwrapper.eq(RtuInfoEntity::getRtuCode, st);
+                RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(rtuwrapper);
+                rtus.add(rtuInfoEntity);
+            }
+            vo.setRtus(rtus);
+        }
+        if (Func.notNull(detail.getAdcd())) {
+            DangerAreaLeaveLineDTO lineDTO = new DangerAreaLeaveLineDTO();
+            lineDTO.setAdcd(detail.getAdcd());
+            List<DangerAreaLeaveLineVO> lineVOList = leaveLineService.selectAdDangerArea(lineDTO);
+            if (Func.notNull(lineVOList)) {
+                vo.setLeaveLines(lineVOList);
+            }
+        }
+        LambdaQueryWrapper<DangerAreaPointEntity> wrapper = Wrappers.<DangerAreaPointEntity>query().lambda();
+        wrapper.eq(DangerAreaPointEntity::getDangerAreaId, detail.getId());
+        List<DangerAreaPointEntity> list = pointService.list(wrapper);
+        vo.setPoints(list);
+        return R.data(vo);
+    }
+
+    /**
+     * 危险区二维码
+     */
+    @GetMapping("/qr")
+    @ApiOperation(value = "二维码", notes = "")
+    public R<DangerAreaVO> getDangerAreaQr(DangerAreaEntity entity) {
+        if (Func.isNull(entity.getDangerAreaPid())) {
+            return R.fail("参数错误");
+        }
+        DangerAreaVO vo = new DangerAreaVO();
+        LambdaQueryWrapper<DangerAreaEntity> wrapper = Wrappers.<DangerAreaEntity>query().lambda();
+        wrapper.eq(DangerAreaEntity::getDangerAreaPid, entity.getDangerAreaPid());
+        wrapper.last("limit 1");
+        DangerAreaEntity detail = dangerAreaService.getOne(wrapper);
+        if (Func.notNull(detail)) {
+            vo.setDangerAreaName(detail.getDangerAreaName());
+            if (Func.notNull(detail.getQrUrl())) {
+                vo.setQrUrl(detail.getQrUrl());
+            } else {
+                String qr = dangerAreaService.createDangerAreaQr(entity.getDangerAreaPid());
+                if (Func.notNull(qr)) {
+                    vo.setQrUrl(qr);
+                    detail.setQrUrl(qr);
+                    dangerAreaService.updateById(detail);
+                }
+            }
+        }
+        return R.data(vo);
+    }
+
+    /**
+     * 群众注册二维码
+     * @param entity
+     * @return
+     */
+    @GetMapping("/resident/reg/qr")
+    @ApiOperation(value = "二维码", notes = "")
+    public R<DangerAreaVO> getDangerAreaResidentQr(DangerAreaEntity entity) {
+        if (Func.isNull(entity.getDangerAreaPid())) {
+            return R.fail("参数错误");
+        }
+        DangerAreaVO vo = new DangerAreaVO();
+        LambdaQueryWrapper<DangerAreaEntity> wrapper = Wrappers.<DangerAreaEntity>query().lambda();
+        wrapper.eq(DangerAreaEntity::getDangerAreaPid, entity.getDangerAreaPid());
+        wrapper.last("limit 1");
+        DangerAreaEntity detail = dangerAreaService.getOne(wrapper);
+        if (Func.notNull(detail)) {
+            vo.setDangerAreaName(detail.getDangerAreaName());
+            if (Func.notNull(detail.getResidentRegQrUrl())) {
+                vo.setResidentRegQrUrl(detail.getResidentRegQrUrl());
+            } else {
+                String qr = dangerAreaService.createResidentRegQr(entity.getDangerAreaPid());
+                if (Func.notNull(qr)) {
+                    vo.setResidentRegQrUrl(qr);
+                    detail.setResidentRegQrUrl(qr);
+                    dangerAreaService.updateById(detail);
+                }
+            }
+        }
+        return R.data(vo);
+    }
+
+    /**
+     * 删除
+     */
+    @PostMapping("/remove")
+    @ApiOperation(value = "逻辑删除", notes = "传入ID数组")
+    public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+        boolean temp = dangerAreaService.deleteLogic(Func.toLongList(ids));
+        return R.status(temp);
+    }
+
+    @ApiLog("危险区信息-导入")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "remark", value = "导入说明", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "saveType", value = "操作类型", paramType = "query", dataType = "int"),
+    })
+    @PostMapping(value = "/import/json")
+    @ApiOperation(value = "导入测站信息", notes = "")
+    public R importDangerAreaTable(@ApiIgnore DangerAreaImportRecordDTO dto, MultipartFile file) {
+        try {
+            BladeFile bladeFile = ossBuilder.template().putFile(file);
+            if (null == bladeFile) {
+                return R.fail("导入失败");
+            }
+            DangerAreaImportRecordEntity recordEntity = new DangerAreaImportRecordEntity();
+            recordEntity.setImportStatus(0L);
+            recordEntity.setRemark(dto.getRemark());
+            recordEntity.setSaveType(dto.getSaveType());
+            recordEntity.setImportTime(Func.formatDateTime(new Date()));
+            recordEntity.setFileName(file.getOriginalFilename());
+            danagerAreaImportServcie.save(recordEntity);
+            DangerAreaImportTask task = new DangerAreaImportTask(bladeFile, recordEntity, dangerAreaService, pointService, danagerAreaImportServcie);
+            FutureTask<Integer> futureTask = new FutureTask<>(task);
+            taskManager.submitTask(futureTask);
+            return R.success("导入任务提交成功");
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail("导入错误 " + e.getMessage());
+        }
+    }
 
 }

+ 4 - 0
src/main/java/org/springblade/modules/yjxt/base/map/controller/MapDangerAreaLeaveLineController.java

@@ -70,6 +70,10 @@ public class MapDangerAreaLeaveLineController extends BladeController {
 	private TaskManager taskManager;
 
 	@GetMapping("/page")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "adName", value = "行政区名称", paramType = "query", dataType = "string"),
+			@ApiImplicitParam(name = "leaveLineName", value = "转移路线名称", paramType = "query", dataType = "string"),
+	})
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页")
 	public R<IPage<DangerAreaLeaveLineVO>> getPage(@ApiIgnore DangerAreaLeaveLineDTO dto, Query query) {

+ 6 - 0
src/main/java/org/springblade/modules/yjxt/base/map/dto/DangerAreaDTO.java

@@ -6,6 +6,7 @@
  */
 package org.springblade.modules.yjxt.base.map.dto;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.modules.yjxt.base.map.entity.DangerAreaEntity;
@@ -21,5 +22,10 @@ import org.springblade.modules.yjxt.base.map.entity.DangerAreaEntity;
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class DangerAreaDTO extends DangerAreaEntity {
+    /**
+     * 行政区划名称
+     */
+    @ApiModelProperty(value = "行政区划名称")
+    private String adName;
 
 }

+ 12 - 0
src/main/java/org/springblade/modules/yjxt/base/map/entity/DangerAreaEntity.java

@@ -72,4 +72,16 @@ public class DangerAreaEntity extends BaseEntity {
 	 */
 	@ApiModelProperty(value = "等级")
 	private String dangerStatus;
+
+	/**
+	 * 二维码
+	 */
+	@ApiModelProperty(value = "二维码")
+	private String qrUrl;
+
+	/**
+	 * 群众注册二维码
+	 */
+	@ApiModelProperty(value = "群众注册二维码")
+	private String residentRegQrUrl;
 }

+ 3 - 0
src/main/java/org/springblade/modules/yjxt/base/map/mapper/DangerAreaLeaveLineMapper.xml

@@ -36,6 +36,9 @@
         LEFT JOIN base_data_ad_cd a ON a.adcd = d.adcd
         WHERE
         d.is_deleted = 0
+        <if test="dto.adnm!=null">
+            and a.adnm like concat(concat('%', #{dto.adnm}), '%')
+        </if>
         <if test="dto.leaveLineName!=null">
             and d.leave_line_name like concat(concat('%', #{dto.leaveLineName}), '%')
         </if>

+ 7 - 0
src/main/java/org/springblade/modules/yjxt/base/map/mapper/DangerAreaMapper.xml

@@ -12,6 +12,8 @@
         <result column="center_point_lng" property="centerPointLng"/>
         <result column="center_point_lat" property="centerPointLat"/>
         <result column="danger_status" property="dangerStatus"/>
+        <result column="qr_url" property="qrUrl"/>
+        <result column="resident_reg_qr_url" property="residentRegQrUrl"/>
     </resultMap>
 
 
@@ -24,6 +26,8 @@
         <result column="center_point_lng" property="centerPointLng"/>
         <result column="center_point_lat" property="centerPointLat"/>
         <result column="danger_status" property="dangerStatus"/>
+        <result column="qr_url" property="qrUrl"/>
+        <result column="resident_reg_qr_url" property="residentRegQrUrl"/>
         <result column="adnm" property="adnm"/>
     </resultMap>
 
@@ -36,6 +40,9 @@
         LEFT JOIN base_data_ad_cd a ON a.adcd = d.adcd
         WHERE
         d.is_deleted = 0
+        <if test="dto.adName!=null">
+            and a.adnm like concat(concat('%', #{dto.adName}), '%')
+        </if>
         <if test="dto.dangerAreaName!=null">
             and d.danger_area_name like concat(concat('%', #{dto.dangerAreaName}), '%')
         </if>

+ 25 - 0
src/main/java/org/springblade/modules/yjxt/base/map/service/IDangerAreaService.java

@@ -24,7 +24,32 @@ import java.util.List;
  * Remark:认为有必要的其他信息
  */
 public interface IDangerAreaService extends BaseService<DangerAreaEntity> {
+	/**
+	 * 按页查询
+	 * @param page
+	 * @param dto
+	 * @return
+	 */
 	IPage<DangerAreaVO> selectPage(IPage<DangerAreaVO> page, DangerAreaDTO dto);
 
+	/**
+	 * 查询行政区下的危险区
+	 * @param dto
+	 * @return
+	 */
 	List<DangerAreaVO> selectAdDangerArea(@Param("dto") DangerAreaDTO dto);
+
+	/**
+	 * 创建危险区二维码
+	 * @param dangerAreaPid
+	 * @return
+	 */
+	String createDangerAreaQr(String dangerAreaPid);
+
+	/**
+	 * 创建危险区群众注册二维码
+	 * @param warnId
+	 * @return
+	 */
+	String createResidentRegQr(String warnId);
 }

+ 69 - 9
src/main/java/org/springblade/modules/yjxt/base/map/service/impl/DangerAreaServiceImpl.java

@@ -7,14 +7,22 @@
 package org.springblade.modules.yjxt.base.map.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.oss.model.BladeFile;
+import org.springblade.modules.resource.builder.oss.OssBuilder;
 import org.springblade.modules.yjxt.base.map.dto.DangerAreaDTO;
 import org.springblade.modules.yjxt.base.map.entity.DangerAreaEntity;
 import org.springblade.modules.yjxt.base.map.mapper.DangerAreaMapper;
 import org.springblade.modules.yjxt.base.map.service.IDangerAreaService;
 import org.springblade.modules.yjxt.base.map.vo.DangerAreaVO;
+import org.springblade.utils.QRCodeUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
 import java.util.List;
 
 /***
@@ -26,14 +34,66 @@ import java.util.List;
  * Remark:认为有必要的其他信息
  */
 @Service
+@Slf4j
 public class DangerAreaServiceImpl extends BaseServiceImpl<DangerAreaMapper, DangerAreaEntity> implements IDangerAreaService {
-	@Override
-	public IPage<DangerAreaVO> selectPage(IPage<DangerAreaVO> page, DangerAreaDTO dto) {
-		return page.setRecords(baseMapper.selectPage(page,dto));
-	}
-
-	@Override
-	public List<DangerAreaVO> selectAdDangerArea(DangerAreaDTO dto) {
-		return baseMapper.selectAdDangerArea(dto);
-	}
+    @Resource
+    private OssBuilder ossBuilder;
+
+    @Value("${spring.yjxt.qrdir}")
+    private String qrDir;
+
+    @Value("${spring.yjxt.dangerarea-resident-reg-qr}")
+    private String dangerAreaResidentRegQr;
+
+
+    @Override
+    public IPage<DangerAreaVO> selectPage(IPage<DangerAreaVO> page, DangerAreaDTO dto) {
+        return page.setRecords(baseMapper.selectPage(page, dto));
+    }
+
+    @Override
+    public List<DangerAreaVO> selectAdDangerArea(DangerAreaDTO dto) {
+        return baseMapper.selectAdDangerArea(dto);
+    }
+
+    @Override
+    public String createDangerAreaQr(String dangerAreaPid) {
+        try {
+            String qrFileName = "da-qr-" + dangerAreaPid + ".jpg";
+            File file = new File(qrDir + File.separator + qrFileName);
+            if (file.exists()) {
+                if (!file.delete()) {
+                    return null;
+                }
+            }
+            QRCodeUtils.encode2(dangerAreaPid, "da-qr-" + dangerAreaPid, qrDir);
+            FileInputStream fileInputStream = new FileInputStream(new File(qrDir + File.separator + "da-qr-" + dangerAreaPid + ".jpg"));
+            BladeFile bladeFile = ossBuilder.template().putFile(qrFileName, fileInputStream);
+            return bladeFile.getName();
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+        return null;
+    }
+
+    @Override
+    public String createResidentRegQr(String dangerAreaPid) {
+        try {
+            String qrFileName = "resident-reg-qr-" + dangerAreaPid + ".jpg";
+            File file = new File(qrDir + File.separator + qrFileName);
+            if (file.exists()) {
+                if (!file.delete()) {
+                    return null;
+                }
+            }
+            String content = dangerAreaResidentRegQr + "?dangerAreaPid=" + dangerAreaPid;
+            QRCodeUtils.encode2(content, "resident-reg-qr-" + dangerAreaPid, qrDir);
+            FileInputStream fileInputStream = new FileInputStream(new File(qrDir + File.separator + "resident-reg-qr-" + dangerAreaPid + ".jpg"));
+            BladeFile bladeFile = ossBuilder.template().putFile(qrFileName, fileInputStream);
+            return bladeFile.getName();
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+        return null;
+    }
 }

+ 19 - 1
src/main/java/org/springblade/modules/yjxt/base/map/vo/DangerAreaVO.java

@@ -39,10 +39,28 @@ public class DangerAreaVO extends DangerAreaEntity {
 	@ApiModelProperty(value = "测站名称")
 	private String rtuName;
 
+	/**
+	 * 多边形
+	 */
 	@ApiModelProperty(value = "多边形")
 	private List<DangerAreaPointEntity> points;
 
-
+	/**
+	 * 测站
+	 */
 	@ApiModelProperty(value = "测站")
 	private List<RtuInfoEntity> rtus;
+
+	/**
+	 * 转移路线
+	 */
+	@ApiModelProperty(value = "转移路线")
+	private List<DangerAreaLeaveLineVO> leaveLines;
+
+	/**
+	 * 二维码地址
+	 */
+	@ApiModelProperty(value = "二维码")
+	private String qrUrl;
+
 }

+ 1 - 1
src/main/java/org/springblade/modules/yjxt/base/map/wrapper/DangerAreaLeaveLineWrapper.java

@@ -9,7 +9,7 @@ package org.springblade.modules.yjxt.base.map.wrapper;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.SpringUtil;
-import org.springblade.modules.baseinfo.region.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.yjxt.base.map.entity.DangerAreaLeaveLineEntity;
 import org.springblade.modules.yjxt.base.map.vo.DangerAreaLeaveLineVO;

+ 65 - 43
src/main/java/org/springblade/modules/yjxt/base/map/wrapper/DangerAreaWrapper.java

@@ -9,14 +9,23 @@ package org.springblade.modules.yjxt.base.map.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.mp.support.Condition;
 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.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
 import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
+import org.springblade.modules.yjxt.base.map.dto.DangerAreaLeaveLineDTO;
 import org.springblade.modules.yjxt.base.map.entity.DangerAreaEntity;
+import org.springblade.modules.yjxt.base.map.entity.DangerAreaLeaveLineEntity;
+import org.springblade.modules.yjxt.base.map.entity.DangerAreaLeaveLinePointEntity;
+import org.springblade.modules.yjxt.base.map.service.IDangerAreaLeaveLineService;
+import org.springblade.modules.yjxt.base.map.vo.DangerAreaLeaveLineVO;
 import org.springblade.modules.yjxt.base.map.vo.DangerAreaVO;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Objects;
 
 /***
@@ -28,53 +37,66 @@ import java.util.Objects;
  * Remark:认为有必要的其他信息
  */
 public class DangerAreaWrapper extends BaseEntityWrapper<DangerAreaEntity, DangerAreaVO> {
-	public static DangerAreaWrapper build() {
-		return new DangerAreaWrapper();
-	}
+    public static DangerAreaWrapper build() {
+        return new DangerAreaWrapper();
+    }
 
-	private static IRtuBaseInfoService rtuBaseInfoService;
+    private static IRtuBaseInfoService rtuBaseInfoService;
 
-	private static IRtuBaseInfoService getRtuBaseInfoService() {
-		if (rtuBaseInfoService == null) {
-			rtuBaseInfoService = SpringUtil.getBean(IRtuBaseInfoService.class);
-		}
-		return rtuBaseInfoService;
-	}
+    private static IRtuBaseInfoService getRtuBaseInfoService() {
+        if (rtuBaseInfoService == null) {
+            rtuBaseInfoService = SpringUtil.getBean(IRtuBaseInfoService.class);
+        }
+        return rtuBaseInfoService;
+    }
 
-	private static IRegionInfoService regionService;
+    private static IRegionInfoService regionService;
 
-	private static IRegionInfoService getRegionService() {
-		if (regionService == null) {
-			regionService = SpringUtil.getBean(IRegionInfoService.class);
-		}
-		return regionService;
-	}
+    private static IRegionInfoService getRegionService() {
+        if (regionService == null) {
+            regionService = SpringUtil.getBean(IRegionInfoService.class);
+        }
+        return regionService;
+    }
 
-	@Override
-	public DangerAreaVO entityVO(DangerAreaEntity entity) {
-		DangerAreaVO vo = Objects.requireNonNull(BeanUtil.copy(entity, DangerAreaVO.class));
-		return this.entityVO(vo);
-	}
+    private static IDangerAreaLeaveLineService dangerAreaLeaveLineService;
 
-	public DangerAreaVO entityVO(DangerAreaVO vo) {
-		String stCode = vo.getStCode();
-		if (null != stCode) {
-			String rtuName = "";
-			String[] stCodeArr = stCode.split(",");
-			for (String st : stCodeArr) {
-				LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
-				wrapper.eq(RtuInfoEntity::getRtuCode, st);
-				RtuInfoEntity rtuInfoEntity = getRtuBaseInfoService().getOne(wrapper);
-				if (null != rtuInfoEntity) {
-					if (rtuName.length() > 0) {
-						rtuName += ",";
-					}
-					rtuName += rtuInfoEntity.getRtuName();
-				}
-			}
-			vo.setRtuName(rtuName);
-		}
+    private static IDangerAreaLeaveLineService getDangerAreaLeaveLineService() {
+        if (dangerAreaLeaveLineService == null) {
+            dangerAreaLeaveLineService = SpringUtil.getBean(IDangerAreaLeaveLineService.class);
+        }
+        return dangerAreaLeaveLineService;
+    }
 
-		return vo;
-	}
+    @Override
+    public DangerAreaVO entityVO(DangerAreaEntity entity) {
+        DangerAreaVO vo = Objects.requireNonNull(BeanUtil.copy(entity, DangerAreaVO.class));
+        return this.entityVO(vo);
+    }
+
+    public DangerAreaVO entityVO(DangerAreaVO vo) {
+        String stCode = vo.getStCode();
+        if (Func.notNull(stCode)) {
+            String[] stCodeArr = stCode.split(",");
+            List<RtuInfoEntity> rtus = new ArrayList<>(stCodeArr.length);
+            for (String st : stCodeArr) {
+                RtuInfoEntity rtuInfoEntity = getRtuBaseInfoService().rtuInfoByCode(st);
+                if (Func.notNull(rtuInfoEntity)) {
+                    rtus.add(rtuInfoEntity);
+                }
+            }
+            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);
+            }
+        }
+
+        return vo;
+    }
 }

+ 52 - 32
src/main/java/org/springblade/modules/yjxt/base/servicePerson/controller/YjxtServicePersonController.java

@@ -19,14 +19,21 @@ 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.entity.DeptRegionEntity;
+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.yjxt.base.servicePerson.dto.YjxtServicePersonDTO;
 import org.springblade.modules.yjxt.base.servicePerson.entity.YjxtServicePersonEntity;
 import org.springblade.modules.yjxt.base.servicePerson.service.IYjxtServicePersonServcie;
 import org.springblade.modules.yjxt.base.servicePerson.vo.YjxtServicePersonVO;
+import org.springblade.modules.yjxt.base.servicePerson.wrapper.YjxtServicePersonWrapper;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
@@ -50,7 +57,8 @@ public class YjxtServicePersonController extends BladeController {
 
     private final IYjxtServicePersonServcie yjxtServicePersonServcie;
     private final IUserService userService;
-    private final IDeptService deptService;
+    private final IRoleService roleService;
+    private final IPostService postService;
 
 
     @GetMapping("/page")
@@ -61,6 +69,9 @@ 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());
+        }
         IPage<YjxtServicePersonVO> pages = yjxtServicePersonServcie.selectPage(Condition.getPage(query), dto);
         return R.data(pages);
     }
@@ -71,9 +82,9 @@ public class YjxtServicePersonController extends BladeController {
     @GetMapping("/detail")
     @ApiOperationSupport(order = 3)
     @ApiOperation(value = "详情", notes = "传入 User")
-    public R<YjxtServicePersonEntity> detail(YjxtServicePersonEntity user) {
-        YjxtServicePersonEntity detail = yjxtServicePersonServcie.getById(user.getId());
-        return R.data(detail);
+    public R<YjxtServicePersonVO> detail(YjxtServicePersonEntity entity) {
+        YjxtServicePersonEntity detail = yjxtServicePersonServcie.getById(entity.getId());
+        return R.data(YjxtServicePersonWrapper.build().entityVO(detail));
     }
 
     /**
@@ -83,36 +94,41 @@ public class YjxtServicePersonController extends BladeController {
     @ApiOperationSupport(order = 4)
     @ApiOperation(value = "新增", notes = "传入 User")
     public R save(@RequestBody YjxtServicePersonDTO dto) {
-//        LambdaQueryWrapper<User> wrapper = Wrappers.<User>query().lambda();
-//        wrapper.eq(User::getAccount, userEntity.getAccount());
-//        wrapper.eq(User::getIsDeleted, 0);
-//        List<User> list = userService.list(wrapper);
-//        if (null != list && list.size() > 0) {
-//            return R.fail("帐号已经存在");
-//        }
-//        userEntity.setName(userEntity.getRealName());
-//        userEntity.setPassword(DigestUtil.encrypt(userEntity.getAccount() + BusinessConstant.ACCOUNT_PW_SUFFIX));
-//        BladeUser user = AuthUtil.getUser();
-//        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
-//            userEntity.setRoleId(BusinessConstant.ROLE_ORG_ADMIN_ID);
-//            userEntity.setPostId(BusinessConstant.POST_ADMIN_ID);
-//        } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
-//            userEntity.setRoleId(BusinessConstant.ROLE_COMPANY_ADMIN_ID);
-//            userEntity.setPostId(BusinessConstant.POST_ADMIN_ID);
-//        } else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName())) {
-//            userEntity.setRoleId(BusinessConstant.ROLE_COMPANY_SERVICE_PERSON_ID);
-//            userEntity.setPostId(BusinessConstant.POST_SERVICE_PERSON_ID);
-//            userEntity.setDeptId(user.getDeptId());
-//        } else {
-//            return R.fail("用户创建错误!");
-//        }
-//        userEntity.setUserType(1);
+
+        BladeUser user = AuthUtil.getUser();
+        LambdaQueryWrapper<User> wrapper = Wrappers.<User>query().lambda();
+        wrapper.eq(User::getAccount, dto.getUserAccount());
+        wrapper.eq(User::getIsDeleted, 0);
+        wrapper.last("limit 1");
+        User detail = userService.getOne(wrapper);
+        if (Func.notNull(detail)) {
+            return R.fail("帐号已经存在");
+        }
         User userEntity = new User();
         userEntity.setAccount(dto.getUserAccount());
+        userEntity.setRealName(dto.getUserName());
         userEntity.setName(dto.getUserName());
+        userEntity.setPhone(dto.getPhone());
+        userEntity.setPassword(DigestUtil.encrypt(userEntity.getAccount() + BusinessConstant.ACCOUNT_PW_SUFFIX));
+        LambdaQueryWrapper<Role> roleWrapper = Wrappers.<Role>query().lambda();
+        roleWrapper.eq(Role::getRoleAlias, BusinessConstant.ROLE_YJ_SERVICE_PERSON);
+        roleWrapper.eq(Role::getIsDeleted, 0);
+        roleWrapper.last("limit 1");
+        Role role = roleService.getOne(roleWrapper);
+        userEntity.setRoleId(Func.toStr(role.getId()));
+        LambdaQueryWrapper<Post> postWrapper = Wrappers.<Post>query().lambda();
+        postWrapper.eq(Post::getPostCode, BusinessConstant.POST_YJ_SERVICE_PERSON_CODE);
+        postWrapper.eq(Post::getIsDeleted, 0);
+        postWrapper.last("limit 1");
+        Post post = postService.getOne(postWrapper);
+        userEntity.setPostId(Func.toStr(post.getId()));
+        userEntity.setDeptId(user.getDeptId());
+        userEntity.setUserType(2);
         if (userService.save(userEntity)) {
-            dto.setUserId(userEntity.getId());
-            yjxtServicePersonServcie.save(dto);
+            YjxtServicePersonEntity yjxtServicePersonEntity = new YjxtServicePersonEntity();
+            yjxtServicePersonEntity.setUserId(userEntity.getId());
+            yjxtServicePersonEntity.setAdCode(dto.getAdCode());
+            yjxtServicePersonServcie.save(yjxtServicePersonEntity);
         }
         return R.status(true);
     }
@@ -128,9 +144,13 @@ public class YjxtServicePersonController extends BladeController {
             return R.fail("用户ID不能为空!");
         }
         YjxtServicePersonEntity entity = yjxtServicePersonServcie.getById(dto.getId());
-        User user = new User();
-        user.setId(entity.getUserId());
+        entity.setAdCode(dto.getAdCode());
+        yjxtServicePersonServcie.updateById(entity);
+
+        User user = userService.getById(dto.getUserId());
         user.setName(dto.getUserName());
+        user.setRealName(dto.getUserName());
+        user.setPhone(dto.getPhone());
         return R.status(userService.updateById(user));
     }
 

+ 12 - 0
src/main/java/org/springblade/modules/yjxt/base/servicePerson/dto/YjxtServicePersonDTO.java

@@ -33,4 +33,16 @@ public class YjxtServicePersonDTO extends YjxtServicePersonEntity {
      */
     @ApiModelProperty(value = "用户名称")
     private String userName;
+
+    /**
+     * 部门ID
+     */
+    @ApiModelProperty(value = "部门ID")
+    private String deptId;
+
+    /**
+     * 电话
+     */
+    @ApiModelProperty(value = "电话")
+    private String phone;
 }

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

@@ -4,26 +4,22 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="servicePersonResultMap" type="org.springblade.modules.yjxt.base.servicePerson.entity.YjxtServicePersonEntity">
-
         <result column="user_id" property="userId"/>
         <result column="ad_code" property="adCode"/>
-
     </resultMap>
 
     <resultMap id="servicePersonVOResultMap" type="org.springblade.modules.yjxt.base.servicePerson.vo.YjxtServicePersonVO">
-
         <result column="user_id" property="userId"/>
         <result column="ad_code" property="adCode"/>
         <result column="real_name" property="userName"/>
         <result column="account" property="userAccount"/>
-
+        <result column="phone" property="phone"/>
     </resultMap>
 
     <select id="selectPage" resultMap="servicePersonVOResultMap">
-
         SELECT
         p.*,
-        u.real_name,u.account
+        u.real_name,u.account,u.phone
         FROM
         yjxt_base_service_person p
         LEFT JOIN blade_user u ON u.id = p.user_id and u.is_deleted = 0
@@ -32,6 +28,9 @@
         <if test="dto.userName!=null">
             and u.real_name like concat(concat('%', #{dto.userName}), '%')
         </if>
+        <if test="dto.deptId!=null">
+            and (u.dept_id =#{dto.deptId} or  FIND_IN_SET(#{dto.deptId} ,u.dept_id) >0 )
+        </if>
         ORDER BY
         u.real_name
     </select>

+ 5 - 0
src/main/java/org/springblade/modules/yjxt/base/servicePerson/vo/YjxtServicePersonVO.java

@@ -34,4 +34,9 @@ public class YjxtServicePersonVO extends YjxtServicePersonEntity {
     @ApiModelProperty(value = "用户名称")
     private String userName;
 
+    /**
+     * 电话
+     */
+    @ApiModelProperty(value = "电话")
+    private String phone;
 }

+ 17 - 13
src/main/java/org/springblade/modules/yjxt/base/servicePerson/wrapper/YjxtServicePersonWrapper.java

@@ -8,6 +8,10 @@ package org.springblade.modules.yjxt.base.servicePerson.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.User;
+import org.springblade.modules.system.service.IUserService;
 import org.springblade.modules.yjxt.base.servicePerson.entity.YjxtServicePersonEntity;
 import org.springblade.modules.yjxt.base.servicePerson.vo.YjxtServicePersonVO;
 
@@ -25,23 +29,23 @@ public class YjxtServicePersonWrapper extends BaseEntityWrapper<YjxtServicePerso
 	public static YjxtServicePersonWrapper build() {
 		return new YjxtServicePersonWrapper();
 	}
-//
-//	private static IDeptService deptService;
-//
-//	private static IDeptService getDeptService() {
-//		if (deptService == null) {
-//			deptService = SpringUtil.getBean(IDeptService.class);
-//		}
-//		return deptService;
-//	}
+
+	private static IUserService userService;
+
+	private static IUserService getUserService() {
+		if (userService == null) {
+			userService = SpringUtil.getBean(IUserService.class);
+		}
+		return userService;
+	}
 
 	@Override
 	public YjxtServicePersonVO entityVO(YjxtServicePersonEntity entity) {
 		YjxtServicePersonVO servicePersonVO = Objects.requireNonNull(BeanUtil.copy(entity, YjxtServicePersonVO.class));
-//		Dept dept = getDeptService().getById(Func.toLong(entity.getDeptId()));
-//		if (null != dept) {
-//			servicePersonVO.setDeptName(dept.getDeptName());
-//		}
+		User user = getUserService().getById(entity.getUserId());
+		servicePersonVO.setUserAccount(user.getAccount());
+		servicePersonVO.setUserName(user.getRealName());
+		servicePersonVO.setPhone(user.getPhone());
 		return servicePersonVO;
 	}
 }

+ 25 - 0
src/main/java/org/springblade/modules/yjxt/business/check/controller/DangerAreaCheckController.java

@@ -27,9 +27,15 @@ import org.springblade.modules.yjxt.business.check.dto.DangerAreaCheckInfoDTO;
 import org.springblade.modules.yjxt.business.check.entity.DangerAreaCheckInfoEntity;
 import org.springblade.modules.yjxt.business.check.service.IDangerAreaCheckService;
 import org.springblade.modules.yjxt.business.check.vo.DangerAreaCheckInfoVO;
+import org.springblade.modules.yjxt.business.check.wrapper.DanagerAreaCheckWrapper;
+import org.springblade.modules.yjxt.business.warn.entity.OriginalWarningInfoEntity;
+import org.springblade.modules.yjxt.business.warn.vo.OriginalWarningInfoVO;
+import org.springblade.modules.yjxt.business.warn.wrapper.OriginalWarningWrapper;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.util.List;
+
 /***
  * Date:2023/11/9
  * Title:文件所属模块(必须填写)
@@ -55,6 +61,10 @@ public class DangerAreaCheckController extends BladeController {
     public R<IPage<DangerAreaCheckInfoVO>> page(@ApiIgnore DangerAreaCheckInfoDTO dto, Query query) {
         BladeUser user = AuthUtil.getUser();
         IPage<DangerAreaCheckInfoVO> pages = danagerAreaCheckService.selectPage(Condition.getPage(query), dto);
+        List<DangerAreaCheckInfoVO> list = pages.getRecords();
+        for (DangerAreaCheckInfoVO vo : list){
+            DanagerAreaCheckWrapper.build().entityVO(vo);
+        }
         return R.data(pages);
     }
 
@@ -77,4 +87,19 @@ public class DangerAreaCheckController extends BladeController {
         danagerAreaCheckService.save(entity);
         return R.status(true);
     }
+
+
+    /**
+     * 详情
+     */
+    @GetMapping("/detail")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情", notes = "")
+    public R<DangerAreaCheckInfoVO> detail(DangerAreaCheckInfoDTO entity) {
+        if (entity.getId() == null) {
+            return R.fail("参数错误");
+        }
+        DangerAreaCheckInfoEntity detail = danagerAreaCheckService.getById(entity.getId());
+        return R.data(DanagerAreaCheckWrapper.build().entityVO(detail));
+    }
 }

+ 3 - 6
src/main/java/org/springblade/modules/yjxt/business/check/mapper/DangerAreaCheckInfoMapper.xml

@@ -4,7 +4,6 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="checkResultMap" type="org.springblade.modules.yjxt.business.check.entity.DangerAreaCheckInfoEntity">
-
         <result column="check_type" property="checkType"/>
         <result column="warn_id" property="warnId"/>
         <result column="latitude" property="latitude"/>
@@ -14,11 +13,9 @@
         <result column="is_damage" property="isDamage"/>
         <result column="remark" property="remark"/>
         <result column="check_photos" property="checkPhotos"/>
-
     </resultMap>
 
     <resultMap id="checkVOResultMap" type="org.springblade.modules.yjxt.business.check.vo.DangerAreaCheckInfoVO">
-
         <result column="check_type" property="checkType"/>
         <result column="warn_id" property="warnId"/>
         <result column="latitude" property="latitude"/>
@@ -28,18 +25,18 @@
         <result column="is_damage" property="isDamage"/>
         <result column="remark" property="remark"/>
         <result column="check_photos" property="checkPhotos"/>
-
     </resultMap>
 
     <select id="selectPage" resultMap="checkVOResultMap">
-
         SELECT
         p.*
         FROM
         yjxt_danger_area_check_info p
         WHERE
         p.is_deleted = 0
-
+        <if test="dto.warnId!=null">
+            and p.warn_id = #{dto.warnId}
+        </if>
     </select>
 
 </mapper>

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

@@ -6,10 +6,13 @@
  */
 package org.springblade.modules.yjxt.business.check.vo;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.modules.yjxt.business.check.entity.DangerAreaCheckInfoEntity;
 
+import java.util.List;
+
 /***
  * Date:2023/11/9
  * Title:文件所属模块(必须填写)
@@ -21,4 +24,6 @@ import org.springblade.modules.yjxt.business.check.entity.DangerAreaCheckInfoEnt
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class DangerAreaCheckInfoVO extends DangerAreaCheckInfoEntity {
+//    @ApiModelProperty("巡查图片")
+//    private List<String> photos;
 }

+ 15 - 0
src/main/java/org/springblade/modules/yjxt/business/check/wrapper/DanagerAreaCheckWrapper.java

@@ -8,9 +8,12 @@ package org.springblade.modules.yjxt.business.check.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.modules.yjxt.business.check.entity.DangerAreaCheckInfoEntity;
 import org.springblade.modules.yjxt.business.check.vo.DangerAreaCheckInfoVO;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Objects;
 
 /***
@@ -31,4 +34,16 @@ public class DanagerAreaCheckWrapper extends BaseEntityWrapper<DangerAreaCheckIn
         DangerAreaCheckInfoVO vo = Objects.requireNonNull(BeanUtil.copy(entity, DangerAreaCheckInfoVO.class));
         return vo;
     }
+
+    public DangerAreaCheckInfoVO entityVO(DangerAreaCheckInfoVO vo) {
+//        if (Func.notNull(vo.getCheckPhotos())){
+//            String[] photos = vo.getCheckPhotos().split(",");
+//            List<String> photoList=new ArrayList<>(photos.length);
+//            for (String p:photos){
+//                photoList.add(p);
+//            }
+//            vo.setPhotos(photoList);
+//        }
+        return vo;
+    }
 }

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

@@ -17,14 +17,21 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 
 import org.springblade.core.tool.utils.Func;
-import org.springblade.enums.DanagerAreaCehckTypeEnum;
 import org.springblade.enums.DangerAreaResidentHouseHolderEnum;
-import org.springblade.modules.yjxt.business.check.entity.DangerAreaCheckInfoEntity;
+import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
+import org.springblade.modules.baseinfo.rtu.vo.RtuInfoVO;
+import org.springblade.modules.baseinfo.rtu.wrapper.RtuInfoWrapper;
+import org.springblade.modules.business.data.entity.RtuDataRainEntity;
+import org.springblade.modules.business.data.entity.RtuDataRiverEntity;
+import org.springblade.modules.business.data.entity.RtuDataRsvrEntity;
+import org.springblade.modules.business.rtumanage.entity.RtuStatusEntity;
+import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.entity.DictBiz;
 import org.springblade.modules.yjxt.business.resident.dto.DangerAreaResidentInfoDTO;
 import org.springblade.modules.yjxt.business.resident.entity.DangerAreaResidentInfoEntity;
 import org.springblade.modules.yjxt.business.resident.service.IDangerAreaResidentService;
 import org.springblade.modules.yjxt.business.resident.vo.DangerAreaResidentInfoVO;
-import org.springblade.modules.yjxt.business.transfer.entity.DamageTransferPersonInfoEntity;
+import org.springblade.modules.yjxt.business.resident.wrapper.DanagerAreaResidentWrapper;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
@@ -41,44 +48,70 @@ public class DangerAreaResidentController extends BladeController {
 
     @GetMapping("/page")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "adCode", value = "行政区", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "dangerAreaCode", value = "行政区", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "adName", value = "行政区名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "dangerAreaName", value = "危险区名称", paramType = "query", dataType = "string"),
     })
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "分页")
     public R<IPage<DangerAreaResidentInfoVO>> page(@ApiIgnore DangerAreaResidentInfoDTO dto, Query query) {
-        BladeUser user = AuthUtil.getUser();
         IPage<DangerAreaResidentInfoVO> pages = dangerAreaResidentService.selectPage(Condition.getPage(query), dto);
         return R.data(pages);
     }
 
+    @GetMapping("/family/list")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "personId", value = "户主身份证号", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "分页")
+    public R<List<DangerAreaResidentInfoEntity>> getFamilyMembers(@ApiIgnore DangerAreaResidentInfoDTO dto) {
+        if (Func.isNull(dto.getPersonId())){
+            return R.fail("参数错误");
+        }
+        List<DangerAreaResidentInfoEntity> list = dangerAreaResidentService.getFamilyMembers(dto);
+        return R.data(list);
+    }
+
+    @GetMapping("/detail")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情", notes = "传入rtuInfoEntity")
+    public R<DangerAreaResidentInfoVO> detail(DangerAreaResidentInfoEntity entity) {
+        DangerAreaResidentInfoEntity detail = dangerAreaResidentService.getById(entity.getId());
+
+        return R.data(DanagerAreaResidentWrapper.build().entityVO(detail));
+    }
+
 
     /**
-     * 注册
+     * 工作人员注册
      */
     @PostMapping("/record")
     @ApiOperationSupport(order = 4)
     @ApiOperation(value = "新增", notes = "")
     public R report(@RequestBody DangerAreaResidentInfoDTO dto) {
-        if (Func.isNull(dto.getPersonId())) {
+        if (Func.isNull(dto.getPersonId()) || Func.isNull(dto.getPersonName())) {
             return R.fail("参数错误");
         }
         LambdaQueryWrapper<DangerAreaResidentInfoEntity> wrapper = Wrappers.<DangerAreaResidentInfoEntity>query().lambda();
         wrapper.eq(DangerAreaResidentInfoEntity::getIsDeleted, 0);
         wrapper.eq(DangerAreaResidentInfoEntity::getPersonId, dto.getPersonId());
         long count = dangerAreaResidentService.count(wrapper);
-        if(count >0){
+        if (count > 0) {
             return R.fail("此人员已注册");
         }
+        dto.setRegisterType(1);
         dangerAreaResidentService.save(dto);
-        if (!Func.isNull(dto.getIsHouseholder())){
-            if (dto.getIsHouseholder().intValue() == DangerAreaResidentHouseHolderEnum.TYPE_YES.getCode().intValue()){
+        if (!Func.isNull(dto.getIsHouseholder())) {
+            if (dto.getIsHouseholder().intValue() == DangerAreaResidentHouseHolderEnum.TYPE_YES.getCode().intValue()) {
                 //户主
-                List<DangerAreaResidentInfoEntity>familyMembers = dto.getFamilyMembers();
-                if (!Func.isNull(familyMembers)){
-                    for (DangerAreaResidentInfoEntity residentInfoEntity:familyMembers){
-                        residentInfoEntity.setDangerAreaCode(dto.getDangerAreaCode());
+                List<DangerAreaResidentInfoEntity> familyMembers = dto.getFamilyMembers();
+                if (Func.notNull(familyMembers)) {
+                    for (DangerAreaResidentInfoEntity residentInfoEntity : familyMembers) {
+                        residentInfoEntity.setDangerAreaPid(dto.getDangerAreaPid());
                         residentInfoEntity.setIsHouseholder(DangerAreaResidentHouseHolderEnum.TYPE_NO.getCode());
                         residentInfoEntity.setHouseholderId(dto.getPersonId());
+                        residentInfoEntity.setRegisterType(1);
                         dangerAreaResidentService.save(residentInfoEntity);
                     }
                 }
@@ -86,4 +119,58 @@ public class DangerAreaResidentController extends BladeController {
         }
         return R.status(true);
     }
+
+
+    /**
+     * 群众注册
+     */
+    @PostMapping("/register")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "新增", notes = "")
+    public R register(@RequestBody DangerAreaResidentInfoDTO dto) {
+        if (Func.isNull(dto.getPersonId()) || Func.isNull(dto.getPersonName())) {
+            return R.fail("参数错误");
+        }
+        LambdaQueryWrapper<DangerAreaResidentInfoEntity> wrapper = Wrappers.<DangerAreaResidentInfoEntity>query().lambda();
+        wrapper.eq(DangerAreaResidentInfoEntity::getIsDeleted, 0);
+        wrapper.eq(DangerAreaResidentInfoEntity::getPersonId, dto.getPersonId());
+        long count = dangerAreaResidentService.count(wrapper);
+        if (count > 0) {
+            return R.fail("此人员已注册");
+        }
+        dto.setRegisterType(2);
+        dangerAreaResidentService.save(dto);
+        if (!Func.isNull(dto.getIsHouseholder())) {
+            if (dto.getIsHouseholder().intValue() == DangerAreaResidentHouseHolderEnum.TYPE_YES.getCode().intValue()) {
+                //户主
+                List<DangerAreaResidentInfoEntity> familyMembers = dto.getFamilyMembers();
+                if (Func.notNull(familyMembers)) {
+                    for (DangerAreaResidentInfoEntity residentInfoEntity : familyMembers) {
+                        residentInfoEntity.setDangerAreaPid(dto.getDangerAreaPid());
+                        residentInfoEntity.setIsHouseholder(DangerAreaResidentHouseHolderEnum.TYPE_NO.getCode());
+                        residentInfoEntity.setHouseholderId(dto.getPersonId());
+                        residentInfoEntity.setRegisterType(2);
+                        dangerAreaResidentService.save(residentInfoEntity);
+                    }
+                }
+            }
+        }
+        return R.status(true);
+    }
+
+    @PostMapping("/location/add")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "新增", notes = "")
+    public R addLocation(@RequestBody DangerAreaResidentInfoEntity entity) {
+        if (Func.isNull(entity.getId()) || Func.isNull(entity.getLatitude()) || Func.isNull(entity.getLongitude())) {
+            return R.fail("参数错误");
+        }
+        DangerAreaResidentInfoEntity detail = dangerAreaResidentService.getById(entity.getId());
+        if (Func.notNull(detail)) {
+            detail.setLongitude(entity.getLongitude());
+            detail.setLatitude(entity.getLatitude());
+        }
+        dangerAreaResidentService.updateById(detail);
+        return R.status(true);
+    }
 }

+ 18 - 0
src/main/java/org/springblade/modules/yjxt/business/resident/dto/DangerAreaResidentInfoDTO.java

@@ -13,4 +13,22 @@ public class DangerAreaResidentInfoDTO extends DangerAreaResidentInfoEntity {
 
     @ApiModelProperty("租户ID")
     private List<DangerAreaResidentInfoEntity> familyMembers;
+
+    /**
+     * 行政区划名称
+     */
+    @ApiModelProperty(value = "行政区划名称")
+    private String adName;
+
+    /**
+     * 危险区名称
+     */
+    @ApiModelProperty(value = "危险区名称")
+    private String dangerAreaName;
+
+    /**
+     * 危险区行政区划
+     */
+    @ApiModelProperty("危险区行政区划")
+    private String dangerAreaCode;
 }

+ 22 - 3
src/main/java/org/springblade/modules/yjxt/business/resident/entity/DangerAreaResidentInfoEntity.java

@@ -44,8 +44,27 @@ public class DangerAreaResidentInfoEntity extends BaseEntity {
     private String householderId;
 
     /**
-     * 危险区编码
+     * 危险区ID
      */
-    @ApiModelProperty("危险区编码")
-    private String dangerAreaCode;
+    @ApiModelProperty("危险区ID")
+    private String dangerAreaPid;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty("纬度")
+    private String latitude;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty("经度")
+    private String longitude;
+
+    /**
+     * 注册类型,1 工作人员注册 2 群众注册
+     */
+    @ApiModelProperty("注册类型")
+    private Integer registerType;
+
 }

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

@@ -4,43 +4,59 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="desidentResultMap" type="org.springblade.modules.yjxt.business.resident.entity.DangerAreaResidentInfoEntity">
-
         <result column="person_id" property="personId"/>
         <result column="person_name" property="personName"/>
         <result column="is_householder" property="isHouseholder"/>
         <result column="householder_id" property="householderId"/>
-        <result column="danger_area_code" property="dangerAreaCode"/>
-
-
+        <result column="danger_area_pid" property="dangerAreaPid"/>
+        <result column="longitude" property="longitude"/>
+        <result column="latitude" property="latitude"/>
+        <result column="register_type" property="registerType"/>
     </resultMap>
 
     <resultMap id="residentVOResultMap" type="org.springblade.modules.yjxt.business.resident.vo.DangerAreaResidentInfoVO">
-
         <result column="person_id" property="personId"/>
         <result column="person_name" property="personName"/>
         <result column="is_householder" property="isHouseholder"/>
         <result column="householder_id" property="householderId"/>
-        <result column="danger_area_code" property="dangerAreaCode"/>
-
-
+        <result column="danger_area_pid" property="dangerAreaPid"/>
+        <result column="longitude" property="longitude"/>
+        <result column="latitude" property="latitude"/>
+        <result column="danger_area_name" property="dangerAreaName"/>
+        <result column="adnm" property="adName"/>
+        <result column="register_type" property="registerType"/>
     </resultMap>
 
     <select id="selectPage" resultMap="residentVOResultMap">
 
         SELECT
-        n.*
+        n.*,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
+        LEFT JOIN base_data_ad_cd a ON a.adcd = d.adcd and a.is_deleted=0
         WHERE
         n.is_deleted = 0
+        <if test="dto.isHouseholder!=null">
+            and n.is_householder = #{dto.isHouseholder}
+        </if>
         <if test="dto.householderId!=null">
-            and (n.householder_id = #{dto.householderId} || n.person_id = #{dto.householderId})
+            and (n.householder_id = #{dto.householderId} or n.person_id = #{dto.householderId})
         </if>
-        <if test="dto.dangerAreaCode!=null">
-            and n.danger_area_code = #{dto.dangerAreaCode}
+        <if test="dto.personName!=null">
+            and n.person_name like concat(concat('%', #{dto.personName}), '%')
+        </if>
+        <if test="dto.dangerAreaName!=null">
+            and d.danger_area_name like concat(concat('%', #{dto.dangerAreaName}), '%')
+        </if>
+        <if test="dto.adName!=null">
+            and a.adnm like concat(concat('%', #{dto.adName}), '%')
+        </if>
+        <if test="dto.dangerAreaCode!=null and dto.dangerAreaCode!=''">
+            and (a.adcd =#{dto.dangerAreaCode} or  FIND_IN_SET(#{dto.dangerAreaCode} ,a.ancestors) >0 )
         </if>
         ORDER BY
-        n.person_id
+        n.is_householder desc
     </select>
 
     <select id="residentCount" resultType="java.lang.Long">
@@ -48,13 +64,14 @@
         count(n.person_id)
         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
         WHERE
         n.is_deleted = 0
         <if test="dto.householderId != null">
             and (n.householder_id = #{dto.householderId} || n.person_id = #{dto.householderId})
         </if>
         <if test="dto.dangerAreaCode!=null">
-            and n.danger_area_code = #{dto.dangerAreaCode}
+            and d.adcd = #{dto.dangerAreaCode}
         </if>
     </select>
 

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

@@ -1,6 +1,7 @@
 package org.springblade.modules.yjxt.business.resident.vo;
 
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.modules.yjxt.business.resident.entity.DangerAreaResidentInfoEntity;
@@ -8,4 +9,16 @@ import org.springblade.modules.yjxt.business.resident.entity.DangerAreaResidentI
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class DangerAreaResidentInfoVO extends DangerAreaResidentInfoEntity {
+
+    /**
+     * 行政区划名称
+     */
+    @ApiModelProperty(value = "行政区划名称")
+    private String adName;
+
+    /**
+     * 危险区名称
+     */
+    @ApiModelProperty(value = "危险区名称")
+    private String dangerAreaName;
 }

+ 46 - 1
src/main/java/org/springblade/modules/yjxt/business/transfer/controller/DamageTransferController.java

@@ -73,7 +73,7 @@ public class DamageTransferController extends BladeController {
         if (Func.isNull(detail)){
             return R.fail("系统错误");
         }
-        dto.setDangerAreaCode(detail.getWarnAdcd());
+     //   dto.setDangerAreaCode(detail.getWarnAdcd());
         IPage<DamageTransferPersonInfoVO> pages = damageTransferPersonService.selectPage(Condition.getPage(query), dto);
         return R.data(pages);
     }
@@ -126,4 +126,49 @@ public class DamageTransferController extends BladeController {
         }
         return R.status(true);
     }
+
+    @PostMapping("/resident/register")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "新增", notes = "")
+    public R residentRegister(@RequestBody DamageTransferPersonInfoDTO dto) {
+        if (Func.isNull(dto.getWarnId()) || Func.isNull(dto.getPersonId()) || Func.isNull(dto.getPersonName())) {
+            return R.fail("参数错误");
+        }
+        LambdaQueryWrapper<DamageTransferPersonInfoEntity> wrapper = Wrappers.<DamageTransferPersonInfoEntity>query().lambda();
+        wrapper.eq(DamageTransferPersonInfoEntity::getIsDeleted, 0);
+        wrapper.eq(DamageTransferPersonInfoEntity::getWarnId, dto.getWarnId());
+        wrapper.eq(DamageTransferPersonInfoEntity::getPersonId, dto.getPersonId());
+        long count = damageTransferPersonService.count(wrapper);
+        if (count > 0) {
+            return R.fail("该人员已经登记");
+        }
+        damageTransferPersonService.save(dto);
+        if (Func.notNull(dto.getFamilyMembersTransferStatus())) {
+            if (dto.getFamilyMembersTransferStatus() == 1) {
+                DangerAreaResidentInfoDTO residentInfoDTO = new DangerAreaResidentInfoDTO();
+                residentInfoDTO.setPersonId(dto.getPersonId());
+                List<DangerAreaResidentInfoEntity> residentInfoEntityList = dangerAreaResidentService.getFamilyMembers(residentInfoDTO);
+                if (Func.notNull(residentInfoEntityList)) {
+                    for (DangerAreaResidentInfoEntity entity : residentInfoEntityList) {
+                        if (!dto.getPersonId().equals(entity.getPersonId())) {
+                            wrapper = Wrappers.<DamageTransferPersonInfoEntity>query().lambda();
+                            wrapper.eq(DamageTransferPersonInfoEntity::getIsDeleted, 0);
+                            wrapper.eq(DamageTransferPersonInfoEntity::getWarnId, dto.getWarnId());
+                            wrapper.eq(DamageTransferPersonInfoEntity::getPersonId, entity.getPersonId());
+                            DamageTransferPersonInfoEntity detail = damageTransferPersonService.getOne(wrapper);
+                            if (Func.isNull(detail)) {
+                                detail = new DamageTransferPersonInfoEntity();
+                            }
+                            detail.setWarnId(dto.getWarnId());
+                            detail.setPersonId(entity.getPersonId());
+                            detail.setPersonName(entity.getPersonName());
+                            detail.setRemark(dto.getRemark());
+                            damageTransferPersonService.saveOrUpdate(detail);
+                        }
+                    }
+                }
+            }
+        }
+        return R.status(true);
+    }
 }

+ 6 - 6
src/main/java/org/springblade/modules/yjxt/business/transfer/mapper/DamageTransferPersonInfoMapper.xml

@@ -25,17 +25,17 @@
 
     <select id="selectPage" resultMap="transferPersonVOResultMap">
         SELECT
-        r.*,p.warn_id,p.person_name as record_person_name,p.remark,p.keep_photos,p.create_time as record_time
+        p.id,p.warn_id,p.person_name as record_person_name,p.remark,p.keep_photos,p.create_time as record_time,r.person_name,r.person_id
         FROM
-        yjxt_danger_area_resident_info r
-        LEFT JOIN yjxt_damage_transfer_person_info p on r.person_id = p.person_id and p.is_deleted = 0
+        yjxt_damage_transfer_person_info p
+        LEFT JOIN yjxt_danger_area_resident_info r on r.person_id = p.person_id and r.is_deleted = 0
         WHERE
-        r.is_deleted = 0
+        p.is_deleted = 0
         <if test="dto.warnId!=null">
-            and (p.warn_id is  null or p.warn_id =  #{dto.warnId})
+            and p.warn_id =  #{dto.warnId}
         </if>
         <if test="dto.dangerAreaCode!=null">
-            and r.danger_area_code =  #{dto.dangerAreaCode}
+            and r.danger_area_pid =  #{dto.dangerAreaCode}
         </if>
         ORDER BY
         p.warn_id desc, r.person_id

+ 37 - 1
src/main/java/org/springblade/modules/yjxt/business/warn/controller/YjWarnController.java

@@ -6,7 +6,9 @@
  */
 package org.springblade.modules.yjxt.business.warn.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.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -16,18 +18,36 @@ import lombok.AllArgsConstructor;
 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.oss.model.BladeFile;
 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.Func;
+import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
+import org.springblade.modules.business.check.order.entity.CheckOrderInfoEntity;
+import org.springblade.modules.business.check.order.vo.CheckOrderInfoVO;
+import org.springblade.modules.business.check.order.wrapper.RtuCheckOrderWrapper;
+import org.springblade.modules.business.data.entity.RtuDataRainEntity;
+import org.springblade.modules.business.data.entity.RtuDataRiverEntity;
+import org.springblade.modules.business.data.entity.RtuDataRsvrEntity;
+import org.springblade.modules.business.rtumanage.entity.RtuStatusEntity;
+import org.springblade.modules.yjxt.base.map.entity.DangerAreaEntity;
+import org.springblade.modules.yjxt.base.map.vo.DangerAreaVO;
+import org.springblade.modules.yjxt.business.warn.dto.OriginalWarningInfoDTO;
 import org.springblade.modules.yjxt.business.warn.entity.OriginalWarningInfoEntity;
 import org.springblade.modules.yjxt.business.warn.service.IOriginalWarningService;
 import org.springblade.modules.yjxt.business.warn.vo.OriginalWarningInfoVO;
+import org.springblade.modules.yjxt.business.warn.wrapper.OriginalWarningWrapper;
 import org.springblade.modules.yjxt.business.warn.wrapper.YjWarnInfoWrapper;
+import org.springblade.utils.QRCodeUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.io.File;
+import java.io.FileInputStream;
+
 /***
  * Date:2023/11/12
  * Title:文件所属模块(必须填写)
@@ -47,10 +67,13 @@ public class YjWarnController extends BladeController {
     @GetMapping("/page")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "warnStatus", value = "预警状态", paramType = "query", dataType = "int"),
+            @ApiImplicitParam(name = "type", value = "预警状态", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "warnName", value = "预警名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "dangerAreaName", value = "危险政区名称", paramType = "query", dataType = "string"),
     })
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "分页")
-    public R<IPage<OriginalWarningInfoVO>> page(@ApiIgnore OriginalWarningInfoEntity entity, Query query) {
+    public R<IPage<OriginalWarningInfoVO>> page(@ApiIgnore OriginalWarningInfoDTO entity, Query query) {
         BladeUser user = AuthUtil.getUser();
         entity.setReviewStatus("1");
         entity.setType("4");
@@ -58,4 +81,17 @@ public class YjWarnController extends BladeController {
         return R.data(YjWarnInfoWrapper.build().pageVO(pages));
     }
 
+    /**
+     * 详情
+     */
+    @GetMapping("/detail")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情", notes = "")
+    public R<OriginalWarningInfoVO> detail(OriginalWarningInfoEntity entity) {
+        if (entity.getId() == null) {
+            return R.fail("参数错误");
+        }
+        OriginalWarningInfoEntity detail = originalWarningService.getById(entity.getId());
+        return R.data(OriginalWarningWrapper.build().entityVO(detail));
+    }
 }

+ 30 - 0
src/main/java/org/springblade/modules/yjxt/business/warn/dto/OriginalWarningInfoDTO.java

@@ -0,0 +1,30 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 运维系统
+ * 创建日期:2023/11/20
+ */
+package org.springblade.modules.yjxt.business.warn.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.yjxt.business.warn.entity.OriginalWarningInfoEntity;
+
+/***
+ * Date:2023/11/20
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class OriginalWarningInfoDTO extends OriginalWarningInfoEntity {
+    /**
+     * 预警政区名称
+     */
+    @ApiModelProperty("危险政区名称")
+    private String dangerAreaName;
+}

+ 12 - 0
src/main/java/org/springblade/modules/yjxt/business/warn/entity/OriginalWarningInfoEntity.java

@@ -8,6 +8,8 @@ package org.springblade.modules.yjxt.business.warn.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.NullSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -153,18 +155,21 @@ public class OriginalWarningInfoEntity extends BaseEntity {
 	 * 降雨总量
 	 */
 	@ApiModelProperty("降雨总量")
+	@JsonSerialize(nullsUsing = NullSerializer.class)
 	private Double drp;
 
 	/**
 	 * 河道水位
 	 */
 	@ApiModelProperty("河道水位")
+	@JsonSerialize(nullsUsing = NullSerializer.class)
 	private Double z;
 
 	/**
 	 * 河道流量
 	 */
 	@ApiModelProperty("河道流量")
+	@JsonSerialize(nullsUsing = NullSerializer.class)
 	private Double q;
 
 	/**
@@ -177,6 +182,7 @@ public class OriginalWarningInfoEntity extends BaseEntity {
 	 * 水库水位
 	 */
 	@ApiModelProperty("水库水位")
+	@JsonSerialize(nullsUsing = NullSerializer.class)
 	private Double rz;
 
 	/**
@@ -189,6 +195,7 @@ public class OriginalWarningInfoEntity extends BaseEntity {
 	 * 水库流量
 	 */
 	@ApiModelProperty("水库流量")
+	@JsonSerialize(nullsUsing = NullSerializer.class)
 	private Double inq;
 
 	/**
@@ -197,4 +204,9 @@ public class OriginalWarningInfoEntity extends BaseEntity {
 	@ApiModelProperty("关联预警Id")
 	private String relWarnId;
 
+	/**
+	 * 二维码
+	 */
+	@ApiModelProperty("二维码")
+	private String warnQrUrl;
 }

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

@@ -31,6 +31,7 @@
         <result column="rwptn" property="rwptn"/>
         <result column="inq" property="inq"/>
         <result column="rel_warn_id" property="relWarnId"/>
+        <result column="warn_qr_url" property="warnQrUrl"/>
     </resultMap>
 
     <select id="selectPage" resultMap="rtuWarningInfoEntityResultMap">
@@ -38,14 +39,24 @@
         n.*
         FROM
         data_st_warning_info n
+        LEFT JOIN base_data_ad_cd a ON a.adcd = n.warn_adcd and a.is_deleted = 0
         WHERE
         n.is_deleted = 0
         <if test="entity.reviewStatus!=null">
-            and n.review_status != #{entity.reviewStatus}
+            and (n.review_status is null or  n.review_status != #{entity.reviewStatus})
         </if>
         <if test="entity.type!=null">
             and n.type = #{entity.type}
         </if>
+        <if test="entity.warnName!=null ">
+            and n.warn_name LIKE concat(concat('%', #{entity.warnName}), '%')
+        </if>
+        <if test="entity.dangerAreaName!=null ">
+            and a.adnm LIKE concat(concat('%', #{entity.dangerAreaName}), '%')
+        </if>
+        <if test="entity.warnAdcd!=null and entity.warnAdcd!=''">
+            and (a.adcd =#{entity.warnAdcd} or  FIND_IN_SET(#{entity.warnAdcd} ,a.ancestors) >0 )
+        </if>
         order by n.warn_time desc
     </select>
 </mapper>

+ 2 - 0
src/main/java/org/springblade/modules/yjxt/business/warn/service/IOriginalWarningService.java

@@ -9,6 +9,7 @@ package org.springblade.modules.yjxt.business.warn.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.modules.yjxt.business.warn.entity.OriginalWarningInfoEntity;
+import org.springblade.modules.yjxt.business.warn.vo.OriginalWarningInfoVO;
 
 /***
  * Date:2022/8/24
@@ -20,4 +21,5 @@ import org.springblade.modules.yjxt.business.warn.entity.OriginalWarningInfoEnti
  */
 public interface IOriginalWarningService extends BaseService<OriginalWarningInfoEntity> {
     IPage<OriginalWarningInfoEntity> selectPage(IPage<OriginalWarningInfoEntity> page, OriginalWarningInfoEntity entity);
+    String createQr(String warnId);
 }

+ 41 - 0
src/main/java/org/springblade/modules/yjxt/business/warn/service/impl/OriginalWarningServiceImpl.java

@@ -7,12 +7,21 @@
 package org.springblade.modules.yjxt.business.warn.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.oss.model.BladeFile;
+import org.springblade.modules.resource.builder.oss.OssBuilder;
 import org.springblade.modules.yjxt.business.warn.entity.OriginalWarningInfoEntity;
 import org.springblade.modules.yjxt.business.warn.mapper.OriginalWarningMapper;
 import org.springblade.modules.yjxt.business.warn.service.IOriginalWarningService;
+import org.springblade.utils.QRCodeUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
+
 /***
  * Date:2022/8/24
  * Title:文件所属模块(必须填写)
@@ -22,10 +31,42 @@ import org.springframework.stereotype.Service;
  * Remark:认为有必要的其他信息
  */
 @Service
+@Slf4j
 public class OriginalWarningServiceImpl extends BaseServiceImpl<OriginalWarningMapper, OriginalWarningInfoEntity> implements IOriginalWarningService {
 
+    @Resource
+    private OssBuilder ossBuilder;
+
+    @Value("${spring.yjxt.qrdir}")
+    private String qrDir;
+
+    @Value("${spring.yjxt.transfer-reg-qr}")
+    private String transferRegQr;
+
+
     @Override
     public IPage<OriginalWarningInfoEntity> selectPage(IPage<OriginalWarningInfoEntity> page, OriginalWarningInfoEntity entity) {
         return page.setRecords(baseMapper.selectPage(page, entity));
     }
+
+    @Override
+    public String createQr(String warnId) {
+        try {
+            String qrFileName = "warn-qr-" + warnId + ".jpg";
+            File file = new File(qrDir + File.separator + qrFileName);
+            if (file.exists()) {
+                if (!file.delete()) {
+                    return null;
+                }
+            }
+            String content = transferRegQr + "?warnId=" + warnId;
+            QRCodeUtils.encode2(content, "warn-qr-" + warnId, qrDir);
+            FileInputStream fileInputStream = new FileInputStream(new File(qrDir + File.separator + "warn-qr-" + warnId + ".jpg"));
+            BladeFile bladeFile = ossBuilder.template().putFile(qrFileName, fileInputStream);
+            return bladeFile.getName();
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+        return null;
+    }
 }

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

@@ -60,4 +60,10 @@ public class OriginalWarningInfoVO extends OriginalWarningInfoEntity {
 	 */
 	@ApiModelProperty("已转移人员")
 	private Long safetyTransferPerson;
+
+	/**
+	 * 政区名称
+	 */
+	@ApiModelProperty("政区名称")
+	private String adName;
 }

+ 73 - 65
src/main/java/org/springblade/modules/yjxt/business/warn/wrapper/OriginalWarningWrapper.java

@@ -8,6 +8,7 @@ package org.springblade.modules.yjxt.business.warn.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.modules.yjxt.business.warn.entity.OriginalWarningInfoEntity;
 import org.springblade.modules.yjxt.business.warn.vo.OriginalWarningInfoVO;
 
@@ -22,70 +23,77 @@ import java.util.Objects;
  * Remark:认为有必要的其他信息
  */
 public class OriginalWarningWrapper extends BaseEntityWrapper<OriginalWarningInfoEntity, OriginalWarningInfoVO> {
-	public static OriginalWarningWrapper build() {
-		return new OriginalWarningWrapper();
-	}
+    public static OriginalWarningWrapper build() {
+        return new OriginalWarningWrapper();
+    }
 
-	@Override
-	public OriginalWarningInfoVO entityVO(OriginalWarningInfoEntity entity) {
-		OriginalWarningInfoVO originalWarningInfoVO = Objects.requireNonNull(BeanUtil.copy(entity, OriginalWarningInfoVO.class));
-		/**
-		 * 预警状态,(-1审核未通过,0未审核,1待内部预警,2待外部预警,3待响应启动,4待响应反馈,5已启动响应)
-		 */
-		if (originalWarningInfoVO.getWarnStatus() == -1) {
-			originalWarningInfoVO.setWarnStatusText("审核未通过");
-		} else if (originalWarningInfoVO.getWarnStatus() == 0) {
-			originalWarningInfoVO.setWarnStatusText("未审核");
-		} else if (originalWarningInfoVO.getWarnStatus() == 1) {
-			originalWarningInfoVO.setWarnStatusText("待内部预警");
-		} else if (originalWarningInfoVO.getWarnStatus() == 2) {
-			originalWarningInfoVO.setWarnStatusText("待外部预警");
-		} else if (originalWarningInfoVO.getWarnStatus() == 3) {
-			originalWarningInfoVO.setWarnStatusText("待响应启动");
-		} else if (originalWarningInfoVO.getWarnStatus() == 4) {
-			originalWarningInfoVO.setWarnStatusText("待响应反馈");
-		} else if (originalWarningInfoVO.getWarnStatus() == 5) {
-			originalWarningInfoVO.setWarnStatusText("已启动响应");
-		}
-		/**
-		 * 审核状态(1关闭,2通过)
-		 */
-		if (originalWarningInfoVO.getReviewStatus().equals("1")) {
-			originalWarningInfoVO.setReviewStatusText("关闭");
-		} else {
-			originalWarningInfoVO.setReviewStatusText("通过");
-		}
-		/**
-		 * 站类(1雨量站2河道水情站3水库水情站,4政区.5人工)
-		 */
-		if (originalWarningInfoVO.getType().equals("1")) {
-			originalWarningInfoVO.setTypeText("雨量站");
-		} else if (originalWarningInfoVO.getType().equals("2")) {
-			originalWarningInfoVO.setTypeText("河道水情站");
-		} else if (originalWarningInfoVO.getType().equals("3")) {
-			originalWarningInfoVO.setTypeText("水库水情站");
-		} else if (originalWarningInfoVO.getType().equals("4")) {
-			originalWarningInfoVO.setTypeText("政区");
-		} else if (originalWarningInfoVO.getType().equals("5")) {
-			originalWarningInfoVO.setTypeText("人工");
-		}
-		/**
-		 * 雨量站预警频率(1,2,3,4,5,6)对应(30分钟,1小时,3小时,6小时,12小时,24小时)
-		 */
-
-		if (originalWarningInfoVO.getRainWarnRate() == 1) {
-			originalWarningInfoVO.setRainWarnRateText("30分钟");
-		} else if (originalWarningInfoVO.getRainWarnRate() == 2) {
-			originalWarningInfoVO.setRainWarnRateText("1小时");
-		} else if (originalWarningInfoVO.getRainWarnRate() == 3) {
-			originalWarningInfoVO.setRainWarnRateText("3小时");
-		} else if (originalWarningInfoVO.getRainWarnRate() == 4) {
-			originalWarningInfoVO.setRainWarnRateText("6小时");
-		} else if (originalWarningInfoVO.getRainWarnRate() == 5) {
-			originalWarningInfoVO.setRainWarnRateText("12小时");
-		} else if (originalWarningInfoVO.getRainWarnRate() == 6) {
-			originalWarningInfoVO.setRainWarnRateText("24小时");
-		}
-		return originalWarningInfoVO;
-	}
+    @Override
+    public OriginalWarningInfoVO entityVO(OriginalWarningInfoEntity entity) {
+        OriginalWarningInfoVO originalWarningInfoVO = Objects.requireNonNull(BeanUtil.copy(entity, OriginalWarningInfoVO.class));
+        /**
+         * 预警状态,(-1审核未通过,0未审核,1待内部预警,2待外部预警,3待响应启动,4待响应反馈,5已启动响应)
+         */
+        if (Func.notNull(originalWarningInfoVO.getWarnStatus())) {
+            if (originalWarningInfoVO.getWarnStatus() == -1) {
+                originalWarningInfoVO.setWarnStatusText("审核未通过");
+            } else if (originalWarningInfoVO.getWarnStatus() == 0) {
+                originalWarningInfoVO.setWarnStatusText("未审核");
+            } else if (originalWarningInfoVO.getWarnStatus() == 1) {
+                originalWarningInfoVO.setWarnStatusText("待内部预警");
+            } else if (originalWarningInfoVO.getWarnStatus() == 2) {
+                originalWarningInfoVO.setWarnStatusText("待外部预警");
+            } else if (originalWarningInfoVO.getWarnStatus() == 3) {
+                originalWarningInfoVO.setWarnStatusText("待响应启动");
+            } else if (originalWarningInfoVO.getWarnStatus() == 4) {
+                originalWarningInfoVO.setWarnStatusText("待响应反馈");
+            } else if (originalWarningInfoVO.getWarnStatus() == 5) {
+                originalWarningInfoVO.setWarnStatusText("已启动响应");
+            }
+        }
+        /**
+         * 审核状态(1关闭,2通过)
+         */
+        if (Func.notNull(originalWarningInfoVO.getReviewStatus())) {
+            if (originalWarningInfoVO.getReviewStatus().equals("1")) {
+                originalWarningInfoVO.setReviewStatusText("关闭");
+            } else {
+                originalWarningInfoVO.setReviewStatusText("通过");
+            }
+        }
+        /**
+         * 站类(1雨量站2河道水情站3水库水情站,4政区.5人工)
+         */
+        if (Func.notNull(originalWarningInfoVO.getType())) {
+            if (originalWarningInfoVO.getType().equals("1")) {
+                originalWarningInfoVO.setTypeText("雨量站");
+            } else if (originalWarningInfoVO.getType().equals("2")) {
+                originalWarningInfoVO.setTypeText("河道水情站");
+            } else if (originalWarningInfoVO.getType().equals("3")) {
+                originalWarningInfoVO.setTypeText("水库水情站");
+            } else if (originalWarningInfoVO.getType().equals("4")) {
+                originalWarningInfoVO.setTypeText("政区");
+            } else if (originalWarningInfoVO.getType().equals("5")) {
+                originalWarningInfoVO.setTypeText("人工");
+            }
+        }
+        /**
+         * 雨量站预警频率(1,2,3,4,5,6)对应(30分钟,1小时,3小时,6小时,12小时,24小时)
+         */
+        if (Func.notNull(originalWarningInfoVO.getRainWarnRate())) {
+            if (originalWarningInfoVO.getRainWarnRate() == 1) {
+                originalWarningInfoVO.setRainWarnRateText("30分钟");
+            } else if (originalWarningInfoVO.getRainWarnRate() == 2) {
+                originalWarningInfoVO.setRainWarnRateText("1小时");
+            } else if (originalWarningInfoVO.getRainWarnRate() == 3) {
+                originalWarningInfoVO.setRainWarnRateText("3小时");
+            } else if (originalWarningInfoVO.getRainWarnRate() == 4) {
+                originalWarningInfoVO.setRainWarnRateText("6小时");
+            } else if (originalWarningInfoVO.getRainWarnRate() == 5) {
+                originalWarningInfoVO.setRainWarnRateText("12小时");
+            } else if (originalWarningInfoVO.getRainWarnRate() == 6) {
+                originalWarningInfoVO.setRainWarnRateText("24小时");
+            }
+        }
+        return originalWarningInfoVO;
+    }
 }

+ 53 - 15
src/main/java/org/springblade/modules/yjxt/business/warn/wrapper/YjWarnInfoWrapper.java

@@ -6,19 +6,28 @@
  */
 package org.springblade.modules.yjxt.business.warn.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.oss.model.BladeFile;
 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.rtu.service.IRtuBaseInfoService;
 import org.springblade.modules.yjxt.business.resident.dto.DangerAreaResidentInfoDTO;
 import org.springblade.modules.yjxt.business.resident.service.IDangerAreaResidentService;
 import org.springblade.modules.yjxt.business.transfer.dto.DamageTransferPersonInfoDTO;
 import org.springblade.modules.yjxt.business.transfer.service.IDamageTransferPersonService;
 import org.springblade.modules.yjxt.business.warn.entity.OriginalWarningInfoEntity;
+import org.springblade.modules.yjxt.business.warn.service.IOriginalWarningService;
 import org.springblade.modules.yjxt.business.warn.vo.OriginalWarningInfoVO;
+import org.springblade.utils.QRCodeUtils;
 
 
+import java.io.File;
+import java.io.FileInputStream;
 import java.util.Objects;
 
 /***
@@ -43,7 +52,6 @@ public class YjWarnInfoWrapper extends BaseEntityWrapper<OriginalWarningInfoEnti
         return rtuBaseInfoService;
     }
 
-
     private static IDangerAreaResidentService dangerAreaResidentService;
 
     private static IDangerAreaResidentService getDangerAreaResidentService() {
@@ -53,7 +61,6 @@ public class YjWarnInfoWrapper extends BaseEntityWrapper<OriginalWarningInfoEnti
         return dangerAreaResidentService;
     }
 
-
     private static IDamageTransferPersonService damageTransferPersonService;
 
     private static IDamageTransferPersonService getDamageTransferPersonService() {
@@ -63,24 +70,55 @@ public class YjWarnInfoWrapper extends BaseEntityWrapper<OriginalWarningInfoEnti
         return damageTransferPersonService;
     }
 
+    private static IOriginalWarningService originalWarningService;
+
+    private static IOriginalWarningService getOriginalWarningService() {
+        if (originalWarningService == null) {
+            originalWarningService = SpringUtil.getBean(IOriginalWarningService.class);
+        }
+        return originalWarningService;
+    }
+
+    private static IBaseRegionInfoService baseRegionInfoService;
+
+    private static IBaseRegionInfoService getBaseRegionInfoService() {
+        if (baseRegionInfoService == null) {
+            baseRegionInfoService = SpringUtil.getBean(IBaseRegionInfoService.class);
+        }
+        return baseRegionInfoService;
+    }
+
     @Override
     public OriginalWarningInfoVO entityVO(OriginalWarningInfoEntity entity) {
         OriginalWarningInfoVO vo = Objects.requireNonNull(BeanUtil.copy(entity, OriginalWarningInfoVO.class));
-//        if (Func.notNull(vo.getRtuCode())){
-////           RtuInfoEntity rtuInfoEntity= getRtuBaseInfoService().rtuInfoByRtuCode(vo.getRtuCode());
-////           if (Func.notNull(rtuInfoEntity)){
-////               if (Func.notNull(rtuInfoEntity.getLat()) && Func.notNull(rtuInfoEntity.getLng())){
-////                   vo.setWarnLgtd();
-////               }
-////           }
-////        }
-
-        DangerAreaResidentInfoDTO residentInfoDTO=new DangerAreaResidentInfoDTO();
-        residentInfoDTO.setDangerAreaCode(entity.getWarnAdcd());
-        long totalTransferPerson =getDangerAreaResidentService().residentCount(residentInfoDTO);
+        return this.entityVO(vo);
+    }
+
+    public OriginalWarningInfoVO entityVO(OriginalWarningInfoVO vo) {
+
+        if (Func.notNull(vo.getWarnAdcd())) {
+            LambdaQueryWrapper<BaseRegionInfoEntity> queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+            queryWrapper.eq(BaseRegionInfoEntity::getAdcd, vo.getWarnAdcd());
+            queryWrapper.last("limit 1");
+            BaseRegionInfoEntity entity = getBaseRegionInfoService().getOne(queryWrapper);
+            if (Func.notNull(entity)) {
+                vo.setAdName(entity.getAdnm());
+            }
+        }
+
+        if (Func.isNull(vo.getWarnQrUrl())) {
+            String qrUrl = getOriginalWarningService().createQr(vo.getWarnId());
+            if (Func.notNull(qrUrl)) {
+                vo.setWarnQrUrl(qrUrl);
+                getOriginalWarningService().updateById(vo);
+            }
+        }
+        DangerAreaResidentInfoDTO residentInfoDTO = new DangerAreaResidentInfoDTO();
+        residentInfoDTO.setDangerAreaCode(vo.getWarnAdcd());
+        long totalTransferPerson = getDangerAreaResidentService().residentCount(residentInfoDTO);
 
         DamageTransferPersonInfoDTO transferPersonInfoDTO = new DamageTransferPersonInfoDTO();
-        transferPersonInfoDTO.setWarnId(Func.toStr(entity.getId()));
+        transferPersonInfoDTO.setWarnId(Func.toStr(vo.getWarnId()));
         long safetyTransferPerson = getDamageTransferPersonService().transferPersonCount(transferPersonInfoDTO);
 
         vo.setTotalTransferPerson(totalTransferPerson);

+ 6 - 0
src/main/java/org/springblade/mq/kafka/handler/MessageHandler.java

@@ -598,6 +598,12 @@ public class MessageHandler {
                 detail.setRwptn(entity.getRwptn());
                 detail.setInq(entity.getInq());
                 detail.setRelWarnId(entity.getRelWarnId());
+                if (Func.isNull(detail.getWarnQrUrl())) {
+                    String qrUrl = originalWarningService.createQr(detail.getWarnId());
+                    if (Func.notNull(qrUrl)) {
+                        detail.setWarnQrUrl(qrUrl);
+                    }
+                }
                 originalWarningService.saveOrUpdate(detail);
             }
         } catch (Exception e) {

+ 129 - 0
src/main/java/org/springblade/share/yjxt/YjxtPublicDataController.java

@@ -0,0 +1,129 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 运维系统
+ * 创建日期:2023/11/10
+ */
+package org.springblade.share.yjxt;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.enums.DangerAreaResidentHouseHolderEnum;
+import org.springblade.modules.yjxt.business.resident.dto.DangerAreaResidentInfoDTO;
+import org.springblade.modules.yjxt.business.resident.entity.DangerAreaResidentInfoEntity;
+import org.springblade.modules.yjxt.business.resident.service.IDangerAreaResidentService;
+import org.springblade.modules.yjxt.business.transfer.dto.DamageTransferPersonInfoDTO;
+import org.springblade.modules.yjxt.business.transfer.entity.DamageTransferPersonInfoEntity;
+import org.springblade.modules.yjxt.business.transfer.service.IDamageTransferPersonService;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/***
+ * Date:2023/11/10
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@RestController
+@RequestMapping("yjxt-business/public/rest")
+@AllArgsConstructor
+@Api(value = "应急系统接口", tags = "提供网页填报接口")
+public class YjxtPublicDataController extends BladeController {
+
+    private final IDamageTransferPersonService damageTransferPersonService;
+
+    private final IDangerAreaResidentService dangerAreaResidentService;
+
+
+    @PostMapping("/transfer/resident/register")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "新增", notes = "")
+    public R residentRegister(@RequestBody DamageTransferPersonInfoDTO dto) {
+        if (Func.isNull(dto.getWarnId()) || Func.isNull(dto.getPersonId()) || Func.isNull(dto.getPersonName())) {
+            return R.fail("参数错误");
+        }
+        LambdaQueryWrapper<DamageTransferPersonInfoEntity> wrapper = Wrappers.<DamageTransferPersonInfoEntity>query().lambda();
+        wrapper.eq(DamageTransferPersonInfoEntity::getIsDeleted, 0);
+        wrapper.eq(DamageTransferPersonInfoEntity::getWarnId, dto.getWarnId());
+        wrapper.eq(DamageTransferPersonInfoEntity::getPersonId, dto.getPersonId());
+        long count = damageTransferPersonService.count(wrapper);
+        if (count > 0) {
+            return R.fail("该人员已经登记");
+        }
+        damageTransferPersonService.save(dto);
+        if (Func.notNull(dto.getFamilyMembersTransferStatus())) {
+            if (dto.getFamilyMembersTransferStatus() == 1) {
+                DangerAreaResidentInfoDTO residentInfoDTO = new DangerAreaResidentInfoDTO();
+                residentInfoDTO.setPersonId(dto.getPersonId());
+                List<DangerAreaResidentInfoEntity> residentInfoEntityList = dangerAreaResidentService.getFamilyMembers(residentInfoDTO);
+                if (Func.notNull(residentInfoEntityList)) {
+                    for (DangerAreaResidentInfoEntity entity : residentInfoEntityList) {
+                        if (!dto.getPersonId().equals(entity.getPersonId())) {
+                            wrapper = Wrappers.<DamageTransferPersonInfoEntity>query().lambda();
+                            wrapper.eq(DamageTransferPersonInfoEntity::getIsDeleted, 0);
+                            wrapper.eq(DamageTransferPersonInfoEntity::getWarnId, dto.getWarnId());
+                            wrapper.eq(DamageTransferPersonInfoEntity::getPersonId, entity.getPersonId());
+                            DamageTransferPersonInfoEntity detail = damageTransferPersonService.getOne(wrapper);
+                            if (Func.isNull(detail)) {
+                                detail = new DamageTransferPersonInfoEntity();
+                            }
+                            detail.setWarnId(dto.getWarnId());
+                            detail.setPersonId(entity.getPersonId());
+                            detail.setPersonName(entity.getPersonName());
+                            detail.setRemark(dto.getRemark());
+                            damageTransferPersonService.saveOrUpdate(detail);
+                        }
+                    }
+                }
+            }
+        }
+        return R.status(true);
+    }
+
+    /**
+     * 群众注册
+     */
+    @PostMapping("/dangerarea/resident/register")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "新增", notes = "")
+    public R register(@RequestBody DangerAreaResidentInfoDTO dto) {
+        if (Func.isNull(dto.getPersonId()) || Func.isNull(dto.getPersonName())) {
+            return R.fail("参数错误");
+        }
+        LambdaQueryWrapper<DangerAreaResidentInfoEntity> wrapper = Wrappers.<DangerAreaResidentInfoEntity>query().lambda();
+        wrapper.eq(DangerAreaResidentInfoEntity::getIsDeleted, 0);
+        wrapper.eq(DangerAreaResidentInfoEntity::getPersonId, dto.getPersonId());
+        long count = dangerAreaResidentService.count(wrapper);
+        if (count > 0) {
+            return R.fail("此人员已注册");
+        }
+        dto.setRegisterType(2);
+        dangerAreaResidentService.save(dto);
+        if (!Func.isNull(dto.getIsHouseholder())) {
+            if (dto.getIsHouseholder().intValue() == DangerAreaResidentHouseHolderEnum.TYPE_YES.getCode().intValue()) {
+                //户主
+                List<DangerAreaResidentInfoEntity> familyMembers = dto.getFamilyMembers();
+                if (Func.notNull(familyMembers)) {
+                    for (DangerAreaResidentInfoEntity residentInfoEntity : familyMembers) {
+                        residentInfoEntity.setDangerAreaPid(dto.getDangerAreaPid());
+                        residentInfoEntity.setIsHouseholder(DangerAreaResidentHouseHolderEnum.TYPE_NO.getCode());
+                        residentInfoEntity.setHouseholderId(dto.getPersonId());
+                        residentInfoEntity.setRegisterType(2);
+                        dangerAreaResidentService.save(residentInfoEntity);
+                    }
+                }
+            }
+        }
+        return R.status(true);
+    }
+}

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

@@ -83,6 +83,10 @@ spring:
     clock-failure-duration: 60
     outlier-value: 30
     missout: 5
+  yjxt:
+    qrdir: D:\\tmp\\qr
+    dangerarea-resident-reg-qr: http://111.204.228.227:20002/#/yj/dangerarea/resident/register
+    transfer-reg-qr: http://111.204.228.227:20002/#/damage/transfer/register
 export-config:
   workdir: D:\\tmp\\export
   equipment-info-template: equipment-template.xlsx