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

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

dylan пре 2 година
родитељ
комит
8c8e7dca0b
39 измењених фајлова са 2346 додато и 234 уклоњено
  1. 127 0
      src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
  2. 79 1
      src/main/java/org/springblade/modules/baseinfo/region/whole/controller/BaseRegionController.java
  3. 10 1
      src/main/java/org/springblade/modules/baseinfo/stbase/mapper/MvAttStBaseMapper.xml
  4. 24 3
      src/main/java/org/springblade/modules/test/TestController.java
  5. 83 31
      src/main/java/org/springblade/modules/yjxt/base/map/controller/MapDangerAreaController.java
  6. 4 1
      src/main/java/org/springblade/modules/yjxt/base/map/mapper/DangerAreaMapper.xml
  7. 14 1
      src/main/java/org/springblade/modules/yjxt/base/map/vo/DangerAreaVO.java
  8. 100 29
      src/main/java/org/springblade/modules/yjxt/base/map/wrapper/DangerAreaWrapper.java
  9. 43 5
      src/main/java/org/springblade/modules/yjxt/business/check/controller/DangerAreaCheckController.java
  10. 44 0
      src/main/java/org/springblade/modules/yjxt/business/check/entity/DangerAreaCheckInfoEntity.java
  11. 26 1
      src/main/java/org/springblade/modules/yjxt/business/check/mapper/DangerAreaCheckInfoMapper.xml
  12. 5 2
      src/main/java/org/springblade/modules/yjxt/business/check/vo/DangerAreaCheckInfoVO.java
  13. 50 9
      src/main/java/org/springblade/modules/yjxt/business/check/wrapper/DanagerAreaCheckWrapper.java
  14. 214 0
      src/main/java/org/springblade/modules/yjxt/business/rain/controller/YjRainDataController.java
  15. 30 0
      src/main/java/org/springblade/modules/yjxt/business/rain/mapper/YjRainDataMapper.java
  16. 116 0
      src/main/java/org/springblade/modules/yjxt/business/rain/mapper/YjRainDataMapper.xml
  17. 28 0
      src/main/java/org/springblade/modules/yjxt/business/rain/service/IYjRainDataService.java
  18. 36 0
      src/main/java/org/springblade/modules/yjxt/business/rain/service/impl/YjRainDataServiceImpl.java
  19. 247 0
      src/main/java/org/springblade/modules/yjxt/business/rain/vo/YjRainDataVO.java
  20. 62 25
      src/main/java/org/springblade/modules/yjxt/business/resident/controller/DangerAreaResidentController.java
  21. 6 0
      src/main/java/org/springblade/modules/yjxt/business/resident/entity/DangerAreaResidentInfoEntity.java
  22. 1 0
      src/main/java/org/springblade/modules/yjxt/business/resident/mapper/DangerAreaResidentInfoMapper.java
  23. 33 1
      src/main/java/org/springblade/modules/yjxt/business/resident/mapper/DangerAreaResidentInfoMapper.xml
  24. 2 1
      src/main/java/org/springblade/modules/yjxt/business/resident/service/IDangerAreaResidentService.java
  25. 6 1
      src/main/java/org/springblade/modules/yjxt/business/resident/service/impl/DangerAreaResidentServiceImpl.java
  26. 109 37
      src/main/java/org/springblade/modules/yjxt/business/transfer/controller/DamageTransferController.java
  27. 5 0
      src/main/java/org/springblade/modules/yjxt/business/transfer/dto/DamageTransferPersonInfoDTO.java
  28. 7 10
      src/main/java/org/springblade/modules/yjxt/business/transfer/mapper/DamageTransferPersonInfoMapper.xml
  29. 100 17
      src/main/java/org/springblade/modules/yjxt/business/warn/controller/YjWarnController.java
  30. 95 0
      src/main/java/org/springblade/modules/yjxt/business/warn/entity/InsideWarnInfoEntity.java
  31. 50 0
      src/main/java/org/springblade/modules/yjxt/business/warn/entity/OutsideWarnInfoEntity.java
  32. 48 0
      src/main/java/org/springblade/modules/yjxt/business/warn/entity/OutsideWarnTimeEntity.java
  33. 128 0
      src/main/java/org/springblade/modules/yjxt/business/warn/entity/WarnResponseInfoEntity.java
  34. 107 0
      src/main/java/org/springblade/modules/yjxt/business/warn/vo/WarnDetailInfoVO.java
  35. 93 31
      src/main/java/org/springblade/share/yjxt/YjxtPublicDataController.java
  36. 176 0
      src/main/java/org/springblade/utils/HttpRequestUtil.java
  37. 7 6
      src/main/resources/application-dev.yml
  38. 28 20
      src/main/resources/application-test.yml
  39. 3 1
      src/main/resources/application.yml

+ 127 - 0
src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java

@@ -0,0 +1,127 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2023/12/27
+ */
+package org.springblade.modules.auth.endpoint;
+
+import com.github.xiaoymin.knife4j.annotations.ApiSort;
+import com.wf.captcha.SpecCaptcha;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.jwt.JwtUtil;
+import org.springblade.core.jwt.props.JwtProperties;
+import org.springblade.core.log.annotation.ApiLog;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.WebUtil;
+import org.springblade.modules.auth.provider.ITokenGranter;
+import org.springblade.modules.auth.provider.TokenGranterBuilder;
+import org.springblade.modules.auth.provider.TokenParameter;
+import org.springblade.modules.auth.utils.TokenUtil;
+import org.springblade.modules.system.entity.UserInfo;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.time.Duration;
+import java.util.UUID;
+
+/***
+ * Date:2023/12/27
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@NonDS
+@ApiSort(1)
+@RestController
+@RequestMapping({"galaxy-auth"})
+@Api(
+        value = "用户授权认证",
+        tags = {"授权接口"}
+)
+public class BladeTokenEndPoint {
+    private final BladeRedis bladeRedis;
+    private final JwtProperties jwtProperties;
+
+    @ApiLog("登录用户验证")
+    @PostMapping({"/oauth/token"})
+    @ApiOperation(
+            value = "获取认证令牌",
+            notes = "传入租户ID:tenantId,账号:account,密码:password"
+    )
+    public Kv token(@ApiParam(value = "租户ID",required = true) @RequestParam String tenantId, @ApiParam(value = "账号",required = true) @RequestParam(required = false) String username, @ApiParam(value = "密码",required = true) @RequestParam(required = false) String password, @ApiIgnore @RequestHeader(name = "Dept-Id",required = false) String deptId, @ApiIgnore @RequestHeader(name = "Role-Id",required = false) String roleId) {
+        Kv authInfo = Kv.create();
+        String grantType = WebUtil.getRequest().getParameter("grant_type");
+        String refreshToken = WebUtil.getRequest().getParameter("refresh_token");
+        String userType = Func.toStr(WebUtil.getRequest().getHeader("User-Type"), "web");
+        TokenParameter tokenParameter = new TokenParameter();
+        tokenParameter.getArgs().set("tenantId", tenantId).set("username", username).set("password", password).set("grantType", grantType).set("refreshToken", refreshToken).set("userType", userType).set("deptId", deptId).set("roleId", roleId);
+        ITokenGranter granter = TokenGranterBuilder.getGranter(grantType);
+        UserInfo userInfo = granter.grant(tokenParameter);
+        if (userInfo != null && userInfo.getUser() != null) {
+            if (2==userInfo.getUser().getUserType()){
+                 if (!"app".equals(userType)){
+                     return authInfo.set("error_code", 400).set("error_description", "用户权限不正确");
+                 }
+            }
+            return Func.isEmpty(userInfo.getRoles()) ? authInfo.set("error_code", 400).set("error_description", "未获得用户的角色信息") : TokenUtil.createAuthInfo(userInfo);
+        } else {
+            return authInfo.set("error_code", 400).set("error_description", "用户名或密码不正确");
+        }
+    }
+
+    @GetMapping({"/oauth/logout"})
+    @ApiOperation("退出登录")
+    public Kv logout() {
+        BladeUser user = AuthUtil.getUser();
+        if (user != null && this.jwtProperties.getState()) {
+            String token = JwtUtil.getToken(WebUtil.getRequest().getHeader("Blade-Auth"));
+            JwtUtil.removeAccessToken(user.getTenantId(), String.valueOf(user.getUserId()), token);
+        }
+
+        return Kv.create().set("success", "true").set("msg", "success");
+    }
+
+    @GetMapping({"/oauth/captcha"})
+    @ApiOperation("获取验证码")
+    public Kv captcha() {
+        SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5);
+        String verCode = specCaptcha.text().toLowerCase();
+        String key = UUID.randomUUID().toString();
+        this.bladeRedis.setEx("blade:auth::blade:captcha:" + key, verCode, Duration.ofMinutes(30L));
+        return Kv.create().set("key", key).set("image", specCaptcha.toBase64());
+    }
+
+    @GetMapping({"/oauth/clear-cache"})
+    @ApiOperation("清除缓存")
+    public Kv clearCache() {
+        CacheUtil.clear("blade:biz");
+        CacheUtil.clear("blade:user");
+        CacheUtil.clear("blade:dict");
+        CacheUtil.clear("blade:flow");
+        CacheUtil.clear("blade:sys");
+        CacheUtil.clear("blade:param");
+        CacheUtil.clear("blade:resource");
+        CacheUtil.clear("blade:menu");
+        CacheUtil.clear("blade:dict", Boolean.FALSE);
+        CacheUtil.clear("blade:menu", Boolean.FALSE);
+        CacheUtil.clear("blade:sys", Boolean.FALSE);
+        CacheUtil.clear("blade:param", Boolean.FALSE);
+        return Kv.create().set("success", "true").set("msg", "success");
+    }
+
+    public BladeTokenEndPoint(final BladeRedis bladeRedis, final JwtProperties jwtProperties) {
+        this.bladeRedis = bladeRedis;
+        this.jwtProperties = jwtProperties;
+    }
+}

+ 79 - 1
src/main/java/org/springblade/modules/baseinfo/region/whole/controller/BaseRegionController.java

@@ -15,12 +15,16 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.constant.BusinessConstant;
 import org.springblade.core.boot.ctrl.BladeController;
+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.TaskManager;
+import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
+import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
 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;
@@ -48,10 +52,84 @@ import java.util.concurrent.FutureTask;
 public class BaseRegionController extends BladeController {
     private final IEtlAdCdService etlAdCdService;
     private final IBaseRegionInfoService baseRegionInfoService;
-
+    private final IDeptRegionService deptRegionService;
     @Resource
     private TaskManager taskManager;
 
+
+    @GetMapping("/list")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "")
+    public R<List<BaseRegionInfoEntity>> getList(BaseRegionInfoEntity entity) {
+        BladeUser user = AuthUtil.getUser();
+        LambdaQueryWrapper<BaseRegionInfoEntity> queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+        if (Func.isNull(entity.getParentCode())) {
+            if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+                queryWrapper.eq(BaseRegionInfoEntity::getParentCode, BusinessConstant.REGION_NM_ADCODE);
+            } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)){
+                    return R.fail("查询失败");
+                }
+                queryWrapper.eq(BaseRegionInfoEntity::getParentCode,deptRegionEntity.getAdcd());
+            }else if(BusinessConstant.ROLE_YJ_SERVICE_PERSON.equals(user.getRoleName())){
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)){
+                    return R.fail("查询失败");
+                }
+                queryWrapper.eq(BaseRegionInfoEntity::getParentCode,deptRegionEntity.getAdcd());
+            }
+        } else {
+            queryWrapper.eq(BaseRegionInfoEntity::getParentCode, entity.getParentCode());
+        }
+        List<BaseRegionInfoEntity> list = baseRegionInfoService.list(queryWrapper);
+        return R.data(list);
+    }
+
+
+    @GetMapping("/yj/list")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "")
+    public R<List<BaseRegionInfoEntity>> getYjList(BaseRegionInfoEntity entity) {
+        BladeUser user = AuthUtil.getUser();
+        LambdaQueryWrapper<BaseRegionInfoEntity> queryWrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+        if (Func.isNull(entity.getParentCode())) {
+            if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+                queryWrapper.eq(BaseRegionInfoEntity::getParentCode, BusinessConstant.REGION_NM_ADCODE);
+            } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)){
+                    return R.fail("查询失败");
+                }
+                queryWrapper.eq(BaseRegionInfoEntity::getAdcd,deptRegionEntity.getAdcd());
+            }else if(BusinessConstant.ROLE_YJ_SERVICE_PERSON.equals(user.getRoleName())){
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)){
+                    return R.fail("查询失败");
+                }
+                queryWrapper.eq(BaseRegionInfoEntity::getAdcd,deptRegionEntity.getAdcd());
+            }else{
+                return R.fail("查询失败");
+            }
+        } else {
+            queryWrapper.eq(BaseRegionInfoEntity::getParentCode, entity.getParentCode());
+        }
+        List<BaseRegionInfoEntity> list = baseRegionInfoService.list(queryWrapper);
+        return R.data(list);
+    }
+
     /**
      * 懒加载
      *

+ 10 - 1
src/main/java/org/springblade/modules/baseinfo/stbase/mapper/MvAttStBaseMapper.xml

@@ -6,8 +6,17 @@
     <resultMap id="adcdEntityResultMap" type="org.springblade.modules.baseinfo.stbase.entity.MvAttStBaseEntity">
         <result column="st_code" property="stCode"/>
         <result column="st_name" property="stName"/>
+        <result column="st_type" property="stType"/>
+        <result column="st_long" property="stLong"/>
+        <result column="st_site" property="stSite"/>
         <result column="ad_code" property="adCode"/>
-
+        <result column="ad_name" property="adName"/>
+        <result column="rv_code" property="rvCode"/>
+        <result column="rv_name" property="rvName"/>
+        <result column="is_rain" property="isRain"/>
+        <result column="is_river" property="isRiver"/>
+        <result column="is_res" property="isRes"/>
+        <result column="rain_st_type" property="rainStType"/>
     </resultMap>
 
 </mapper>

+ 24 - 3
src/main/java/org/springblade/modules/test/TestController.java

@@ -13,17 +13,21 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 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.jackson.JsonUtil;
+import org.springblade.modules.business.rtumanage.dto.RtuStatusDTO;
+import org.springblade.modules.yjxt.business.warn.vo.WarnDetailInfoVO;
+import org.springblade.utils.HttpRequestUtil;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.io.FileInputStream;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
+import java.util.*;
 
 /***
  * Date:2023/9/12
@@ -40,6 +44,8 @@ import java.util.List;
 @Api(value = "运维单位管理", tags = "运维单位管理")
 public class TestController extends BladeController {
 
+
+
 	@GetMapping("/map/json")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "获取配置项", notes = "获取配置项")
@@ -79,4 +85,19 @@ public class TestController extends BladeController {
 		}
 		return R.data(area);
 	}
+
+
+	@GetMapping("/warn/detail/{warnId}")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "获取配置项", notes = "获取配置项")
+	public R<WarnDetailInfoVO> getWarnDetail(@PathVariable(name = "warnId") String warnId) {
+		String url =  "http://localhost:40005/galaxy-business/warn/detail/"+warnId;
+		JSONObject res = HttpRequestUtil.doHttpGetRequest("查询预警详情", url, null, null, 20 * 1000);
+		if (res.getIntValue("code") ==200 && res.getBooleanValue("success")){
+			JSONObject data = res.getJSONObject("data");
+			WarnDetailInfoVO vo = JsonUtil.parse(data.toJSONString(), WarnDetailInfoVO.class);
+			return R.data(vo);
+		}
+		return R.data(null);
+	}
 }

+ 83 - 31
src/main/java/org/springblade/modules/yjxt/base/map/controller/MapDangerAreaController.java

@@ -12,28 +12,29 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 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.log.annotation.ApiLog;
 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.jobtask.TaskManager;
-import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
-import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
+import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
+import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.region.whole.entity.BaseRegionInfoEntity;
 import org.springblade.modules.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.yjxt.base.map.service.IDangerAreaPointService;
@@ -43,7 +44,6 @@ import org.springframework.web.multipart.MultipartFile;
 import springfox.documentation.annotations.ApiIgnore;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.concurrent.FutureTask;
@@ -69,9 +69,15 @@ public class MapDangerAreaController extends BladeController {
 
     private final IDangerAreaImportServcie danagerAreaImportServcie;
 
-    private final IRtuBaseInfoService rtuBaseInfoService;
+//    private final IDangerAreaLeaveLineService leaveLineService;
+//
+//    private final IMvAttStBaseService mvAttStBaseService;
+//
+//    private final IDangerAreaResidentService dangerAreaResidentService;
 
-    private final IDangerAreaLeaveLineService leaveLineService;
+    private final IDangerAreaPointService dangerAreaPointService;
+
+    private final IDeptRegionService deptRegionService;
 
     @Resource
     private OssBuilder ossBuilder;
@@ -86,6 +92,32 @@ public class MapDangerAreaController extends BladeController {
     })
     @ApiOperation(value = "分页")
     public R<IPage<DangerAreaVO>> getPage(@ApiIgnore DangerAreaDTO dto, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        if (Func.isNull(dto.getAdcd())) {
+            if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+                dto.setAdcd(BusinessConstant.REGION_NM_ADCODE);
+            } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)) {
+                    return R.fail("查询失败");
+                }
+                dto.setAdcd(deptRegionEntity.getAdcd());
+            } else if (BusinessConstant.ROLE_YJ_SERVICE_PERSON.equals(user.getRoleName())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)) {
+                    return R.fail("查询失败");
+                }
+                dto.setAdcd(deptRegionEntity.getAdcd());
+            } else {
+                return R.fail("查询失败");
+            }
+        }
         IPage<DangerAreaVO> pages = dangerAreaService.selectPage(Condition.getPage(query), dto);
         List<DangerAreaVO> voList = pages.getRecords();
         for (DangerAreaVO vo : voList) {
@@ -114,6 +146,19 @@ public class MapDangerAreaController extends BladeController {
         return R.data(voList);
     }
 
+    @GetMapping("/select")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "adcd", value = "行政区编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "dangerAreaName", value = "危险区名称", paramType = "query", dataType = "string"),
+    })
+    @ApiOperation(value = "分页")
+    public R<List<DangerAreaVO>> selectList(@ApiIgnore DangerAreaDTO dto) {
+        List<DangerAreaVO> voList = dangerAreaService.selectAdDangerArea(dto);
+
+        return R.data(voList);
+    }
+
+
     @GetMapping("/import/page")
     @ApiOperation(value = "分页")
     public R<IPage<DangerAreaImportRecordVO>> getImportPage(Query query) {
@@ -141,33 +186,39 @@ public class MapDangerAreaController extends BladeController {
     @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.isNull(entity.getId()) && Func.isNull(entity.getDangerAreaPid())) {
+            return R.fail("参数错误");
         }
-        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);
+        if (Func.notNull(entity.getId())) {
+            DangerAreaEntity detail = dangerAreaService.getById(entity.getId());
+            DangerAreaVO vo = DangerAreaWrapper.build().entityVO(detail);
+            List<DangerAreaPointEntity> list = this.getDangerAreaPoints(vo.getId());
+            if (Func.notNull(list)) {
+                vo.setPoints(list);
             }
+            return R.data(vo);
+        } else if (Func.notNull(entity.getDangerAreaPid())) {
+            LambdaQueryWrapper<DangerAreaEntity> wrapper = Wrappers.<DangerAreaEntity>query().lambda();
+            wrapper.eq(DangerAreaEntity::getDangerAreaPid, entity.getDangerAreaPid());
+            wrapper.last("limit 1");
+            DangerAreaEntity detail = dangerAreaService.getOne(wrapper);
+            if (Func.isNull(detail)) {
+                return R.fail("查询失败");
+            }
+            DangerAreaVO vo = DangerAreaWrapper.build().entityVO(detail);
+            List<DangerAreaPointEntity> list = this.getDangerAreaPoints(vo.getId());
+            if (Func.notNull(list)) {
+                vo.setPoints(list);
+            }
+            return R.data(vo);
         }
+        return R.fail("查询失败");
+    }
+
+    private List<DangerAreaPointEntity> getDangerAreaPoints(Long id) {
         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);
+        wrapper.eq(DangerAreaPointEntity::getDangerAreaId, id);
+        return dangerAreaPointService.list(wrapper);
     }
 
     /**
@@ -202,6 +253,7 @@ public class MapDangerAreaController extends BladeController {
 
     /**
      * 群众注册二维码
+     *
      * @param entity
      * @return
      */

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

@@ -46,6 +46,9 @@
         <if test="dto.dangerAreaName!=null">
             and d.danger_area_name like concat(concat('%', #{dto.dangerAreaName}), '%')
         </if>
+        <if test="dto.adcd!=null">
+            and (a.adcd =#{dto.adcd} or  FIND_IN_SET(#{dto.adcd} ,a.ancestors) >0 )
+        </if>
         order by d.adcd
     </select>
 
@@ -58,7 +61,7 @@
         WHERE
         d.is_deleted = 0
         <if test="dto.adcd!=null">
-            and d.adcd = #{dto.adcd}
+            and (a.adcd =#{dto.adcd} or  FIND_IN_SET(#{dto.adcd} ,a.ancestors) >0 )
         </if>
         order by d.adcd
     </select>

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

@@ -10,8 +10,10 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
+import org.springblade.modules.baseinfo.stbase.entity.MvAttStBaseEntity;
 import org.springblade.modules.yjxt.base.map.entity.DangerAreaEntity;
 import org.springblade.modules.yjxt.base.map.entity.DangerAreaPointEntity;
+import org.springblade.modules.yjxt.business.resident.entity.DangerAreaResidentInfoEntity;
 
 import java.util.List;
 
@@ -49,7 +51,7 @@ public class DangerAreaVO extends DangerAreaEntity {
 	 * 测站
 	 */
 	@ApiModelProperty(value = "测站")
-	private List<RtuInfoEntity> rtus;
+	private List<MvAttStBaseEntity> rtus;
 
 	/**
 	 * 转移路线
@@ -63,4 +65,15 @@ public class DangerAreaVO extends DangerAreaEntity {
 	@ApiModelProperty(value = "二维码")
 	private String qrUrl;
 
+	/**
+	 * 家庭户数量
+	 */
+	@ApiModelProperty(value = "家庭户数量")
+	private Long familyCount;
+
+	/**
+	 * 家庭户
+	 */
+	@ApiModelProperty(value = "家庭户")
+	private List<DangerAreaResidentInfoEntity> familyPoints;
 }

+ 100 - 29
src/main/java/org/springblade/modules/yjxt/base/map/wrapper/DangerAreaWrapper.java

@@ -9,20 +9,21 @@ 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.yw.service.IRegionInfoService;
-import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
-import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
+import org.springblade.modules.baseinfo.stbase.entity.MvAttStBaseEntity;
+import org.springblade.modules.baseinfo.stbase.service.IMvAttStBaseService;
 import org.springblade.modules.yjxt.base.map.dto.DangerAreaLeaveLineDTO;
 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.entity.DangerAreaPointEntity;
 import org.springblade.modules.yjxt.base.map.service.IDangerAreaLeaveLineService;
+import org.springblade.modules.yjxt.base.map.service.IDangerAreaPointService;
 import org.springblade.modules.yjxt.base.map.vo.DangerAreaLeaveLineVO;
 import org.springblade.modules.yjxt.base.map.vo.DangerAreaVO;
+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 java.util.ArrayList;
 import java.util.List;
@@ -41,33 +42,62 @@ public class DangerAreaWrapper extends BaseEntityWrapper<DangerAreaEntity, Dange
         return new DangerAreaWrapper();
     }
 
-    private static IRtuBaseInfoService rtuBaseInfoService;
+//    private static IRtuBaseInfoService rtuBaseInfoService;
+//
+//    private static IRtuBaseInfoService getRtuBaseInfoService() {
+//        if (rtuBaseInfoService == null) {
+//            rtuBaseInfoService = SpringUtil.getBean(IRtuBaseInfoService.class);
+//        }
+//        return rtuBaseInfoService;
+//    }
+//
+//    private static IRegionInfoService regionService;
+//
+//    private static IRegionInfoService getRegionService() {
+//        if (regionService == null) {
+//            regionService = SpringUtil.getBean(IRegionInfoService.class);
+//        }
+//        return regionService;
+//    }
 
-    private static IRtuBaseInfoService getRtuBaseInfoService() {
-        if (rtuBaseInfoService == null) {
-            rtuBaseInfoService = SpringUtil.getBean(IRtuBaseInfoService.class);
+    private static IDangerAreaLeaveLineService dangerAreaLeaveLineService;
+
+    private static IDangerAreaLeaveLineService getDangerAreaLeaveLineService() {
+        if (dangerAreaLeaveLineService == null) {
+            dangerAreaLeaveLineService = SpringUtil.getBean(IDangerAreaLeaveLineService.class);
         }
-        return rtuBaseInfoService;
+        return dangerAreaLeaveLineService;
     }
 
-    private static IRegionInfoService regionService;
+    private static IMvAttStBaseService mvAttStBaseService;
 
-    private static IRegionInfoService getRegionService() {
-        if (regionService == null) {
-            regionService = SpringUtil.getBean(IRegionInfoService.class);
+    private static IMvAttStBaseService getMvAttStBaseService() {
+        if (mvAttStBaseService == null) {
+            mvAttStBaseService = SpringUtil.getBean(IMvAttStBaseService.class);
         }
-        return regionService;
+        return mvAttStBaseService;
     }
 
-    private static IDangerAreaLeaveLineService dangerAreaLeaveLineService;
 
-    private static IDangerAreaLeaveLineService getDangerAreaLeaveLineService() {
-        if (dangerAreaLeaveLineService == null) {
-            dangerAreaLeaveLineService = SpringUtil.getBean(IDangerAreaLeaveLineService.class);
+    private static IDangerAreaPointService dangerAreaPointService;
+
+    private static IDangerAreaPointService getDangerAreaPointService() {
+        if (dangerAreaPointService == null) {
+            dangerAreaPointService = SpringUtil.getBean(IDangerAreaPointService.class);
         }
-        return dangerAreaLeaveLineService;
+        return dangerAreaPointService;
     }
 
+    private static IDangerAreaResidentService dangerAreaResidentService;
+
+    private static IDangerAreaResidentService getDangerAreaResidentService() {
+        if (dangerAreaResidentService == null) {
+            dangerAreaResidentService = SpringUtil.getBean(IDangerAreaResidentService.class);
+        }
+        return dangerAreaResidentService;
+    }
+
+
     @Override
     public DangerAreaVO entityVO(DangerAreaEntity entity) {
         DangerAreaVO vo = Objects.requireNonNull(BeanUtil.copy(entity, DangerAreaVO.class));
@@ -75,19 +105,21 @@ public class DangerAreaWrapper extends BaseEntityWrapper<DangerAreaEntity, Dange
     }
 
     public DangerAreaVO entityVO(DangerAreaVO vo) {
-        String stCode = vo.getStCode();
-        if (Func.notNull(stCode)) {
+
+        if (Func.notNull(vo.getStCode())) {
+            List<MvAttStBaseEntity> rtus = new ArrayList<>();
+            String stCode = vo.getStCode();
             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);
-                }
+                LambdaQueryWrapper<MvAttStBaseEntity> rtuwrapper = Wrappers.<MvAttStBaseEntity>query().lambda();
+                rtuwrapper.eq(MvAttStBaseEntity::getStCode, st);
+                rtuwrapper.last("limit 1");
+                MvAttStBaseEntity rtuInfoEntity = getMvAttStBaseService().getOne(rtuwrapper);
+                rtus.add(rtuInfoEntity);
             }
             vo.setRtus(rtus);
         }
-
+        vo.setLeaveLines(new ArrayList<>(0));
         if (Func.notNull(vo.getAdcd())) {
             DangerAreaLeaveLineDTO lineDTO = new DangerAreaLeaveLineDTO();
             lineDTO.setAdcd(vo.getAdcd());
@@ -97,6 +129,45 @@ public class DangerAreaWrapper extends BaseEntityWrapper<DangerAreaEntity, Dange
             }
         }
 
+        DangerAreaResidentInfoDTO dangerAreaResidentInfoDTO = new DangerAreaResidentInfoDTO();
+        dangerAreaResidentInfoDTO.setIsHouseholder(1);
+        dangerAreaResidentInfoDTO.setDangerAreaPid(vo.getDangerAreaPid());
+        List<DangerAreaResidentInfoEntity> familyList = getDangerAreaResidentService().getFamilyPoints(dangerAreaResidentInfoDTO);
+        if (Func.notNull(familyList) && familyList.size() > 0) {
+            vo.setFamilyPoints(familyList);
+            vo.setFamilyCount((long) familyList.size());
+        } else {
+            vo.setFamilyCount(0L);
+        }
+
+
+
+//        String stCode = vo.getStCode();
+//        if (Func.notNull(stCode)) {
+//            String[] stCodeArr = stCode.split(",");
+//            List<MvAttStBaseEntity> rtus = new ArrayList<>(stCodeArr.length);
+//            for (String st : stCodeArr) {
+//                LambdaQueryWrapper<MvAttStBaseEntity> rtuwrapper = Wrappers.<MvAttStBaseEntity>query().lambda();
+//                rtuwrapper.eq(MvAttStBaseEntity::getStCode, st);
+//                rtuwrapper.last("limit 1");
+//                MvAttStBaseEntity rtuInfoEntity = getMvAttStBaseService().getOne(rtuwrapper);
+//
+//                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;
     }
 }

+ 43 - 5
src/main/java/org/springblade/modules/yjxt/business/check/controller/DangerAreaCheckController.java

@@ -6,13 +6,16 @@
  */
 package org.springblade.modules.yjxt.business.check.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;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.springblade.constant.BusinessConstant;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -21,16 +24,15 @@ 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.modules.yjxt.base.servicePerson.dto.YjxtServicePersonDTO;
-import org.springblade.modules.yjxt.base.servicePerson.vo.YjxtServicePersonVO;
+import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
+import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
 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.springblade.modules.yjxt.business.warn.service.IOriginalWarningService;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
@@ -51,6 +53,8 @@ import java.util.List;
 public class DangerAreaCheckController extends BladeController {
 
     private final IDangerAreaCheckService danagerAreaCheckService;
+    private final IOriginalWarningService originalWarningService;
+    private final IDeptRegionService deptRegionService;
 
     @GetMapping("/page")
     @ApiImplicitParams({
@@ -60,9 +64,34 @@ public class DangerAreaCheckController extends BladeController {
     @ApiOperation(value = "分页")
     public R<IPage<DangerAreaCheckInfoVO>> page(@ApiIgnore DangerAreaCheckInfoDTO dto, Query query) {
         BladeUser user = AuthUtil.getUser();
+        if(Func.isNull(dto.getAdcd())){
+            if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+                dto.setAdcd(BusinessConstant.REGION_NM_ADCODE);
+            } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)){
+                    return R.fail("查询失败");
+                }
+                dto.setAdcd(deptRegionEntity.getAdcd());
+            }else if(BusinessConstant.ROLE_YJ_SERVICE_PERSON.equals(user.getRoleName())){
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)){
+                    return R.fail("查询失败");
+                }
+                dto.setAdcd(deptRegionEntity.getAdcd());
+            }else{
+                return R.fail("查询失败");
+            }
+        }
         IPage<DangerAreaCheckInfoVO> pages = danagerAreaCheckService.selectPage(Condition.getPage(query), dto);
         List<DangerAreaCheckInfoVO> list = pages.getRecords();
-        for (DangerAreaCheckInfoVO vo : list){
+        for (DangerAreaCheckInfoVO vo : list) {
             DanagerAreaCheckWrapper.build().entityVO(vo);
         }
         return R.data(pages);
@@ -84,6 +113,15 @@ public class DangerAreaCheckController extends BladeController {
                 return R.fail("参数错误");
             }
         }
+        if (Func.notNull(entity.getWarnId())) {
+            LambdaQueryWrapper<OriginalWarningInfoEntity> wrapper = Wrappers.<OriginalWarningInfoEntity>query().lambda();
+            wrapper.eq(OriginalWarningInfoEntity::getWarnId, entity.getWarnId());
+            wrapper.last("limit 1");
+            OriginalWarningInfoEntity warningInfoEntity = originalWarningService.getOne(wrapper);
+            if (Func.notNull(warningInfoEntity)) {
+                entity.setAdcd(warningInfoEntity.getWarnAdcd());
+            }
+        }
         danagerAreaCheckService.save(entity);
         return R.status(true);
     }

+ 44 - 0
src/main/java/org/springblade/modules/yjxt/business/check/entity/DangerAreaCheckInfoEntity.java

@@ -38,6 +38,20 @@ public class DangerAreaCheckInfoEntity extends BaseEntity {
     @ApiModelProperty("巡查类型")
     private Integer checkType;
 
+    /**
+     * 危险区ID
+     */
+    @ApiModelProperty(value = "危险区ID")
+    private String dangerAreaPid;
+
+
+    /**
+     * 行政区划编码
+     */
+    @ApiModelProperty(value = "行政区划编码")
+    private String adcd;
+
+
     /**
      * 巡查类型为1时,此值为空
      */
@@ -62,6 +76,36 @@ public class DangerAreaCheckInfoEntity extends BaseEntity {
     @ApiModelProperty("定位地址")
     private String address;
 
+    /**
+     * 山洪沟名称
+     */
+    @ApiModelProperty("山洪沟名称")
+    private String riverName;
+
+    /**
+     * 是否发布预警
+     */
+    @ApiModelProperty("是否发布预警")
+    private Integer isWarn;
+
+    /**
+     * 预警信息
+     */
+    @ApiModelProperty("预警信息")
+    private String warnInfo;
+
+    /**
+     * 是否人员转移
+     */
+    @ApiModelProperty("是否人员转移")
+    private Integer isTransfer;
+
+    /**
+     * 人员转移信息
+     */
+    @ApiModelProperty("人员转移信息")
+    private String transferInfo;
+
     /**
      * 是否有山洪 0 否 1 是
      */

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

@@ -11,8 +11,15 @@
         <result column="address" property="address"/>
         <result column="is_flood" property="isFlood"/>
         <result column="is_damage" property="isDamage"/>
+        <result column="is_warn" property="isWarn"/>
+        <result column="warn_info" property="warnInfo"/>
+        <result column="is_transfer" property="isTransfer"/>
+        <result column="transfer_info" property="transferInfo"/>
         <result column="remark" property="remark"/>
         <result column="check_photos" property="checkPhotos"/>
+        <result column="danger_area_pid" property="dangerAreaPid"/>
+        <result column="adcd" property="adcd"/>
+        <result column="river_name" property="riverName"/>
     </resultMap>
 
     <resultMap id="checkVOResultMap" type="org.springblade.modules.yjxt.business.check.vo.DangerAreaCheckInfoVO">
@@ -23,20 +30,38 @@
         <result column="address" property="address"/>
         <result column="is_flood" property="isFlood"/>
         <result column="is_damage" property="isDamage"/>
+        <result column="is_warn" property="isWarn"/>
+        <result column="warn_info" property="warnInfo"/>
+        <result column="is_transfer" property="isTransfer"/>
+        <result column="transfer_info" property="transferInfo"/>
         <result column="remark" property="remark"/>
         <result column="check_photos" property="checkPhotos"/>
+        <result column="danger_area_pid" property="dangerAreaPid"/>
+        <result column="adcd" property="adcd"/>
+        <result column="river_name" property="riverName"/>
+        <result column="adnm" property="adName"/>
+        <result column="danger_area_name" property="dangerAreaName"/>
     </resultMap>
 
     <select id="selectPage" resultMap="checkVOResultMap">
         SELECT
-        p.*
+        p.*,a.adnm,d.danger_area_name
         FROM
         yjxt_danger_area_check_info p
+        LEFT JOIN base_data_ad_cd a ON a.adcd = p.adcd and a.is_deleted=0
+        LEFT JOIN map_danger_area_info d ON d.danger_area_pid = p.danger_area_pid and d.is_deleted=0
         WHERE
         p.is_deleted = 0
+        <if test="dto.adcd!=null and dto.adcd!=''">
+            and (a.adcd =#{dto.adcd} or  FIND_IN_SET(#{dto.adcd} ,a.ancestors) >0 )
+        </if>
+        <if test="dto.dangerAreaPid!=null">
+            and p.danger_area_pid = #{dto.dangerAreaPid}
+        </if>
         <if test="dto.warnId!=null">
             and p.warn_id = #{dto.warnId}
         </if>
+        order by p.create_time desc
     </select>
 
 </mapper>

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

@@ -24,6 +24,9 @@ import java.util.List;
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class DangerAreaCheckInfoVO extends DangerAreaCheckInfoEntity {
-//    @ApiModelProperty("巡查图片")
-//    private List<String> photos;
+    @ApiModelProperty("行政区名称")
+    private String adName;
+
+    @ApiModelProperty("危险区名称")
+    private String dangerAreaName;
 }

+ 50 - 9
src/main/java/org/springblade/modules/yjxt/business/check/wrapper/DanagerAreaCheckWrapper.java

@@ -6,9 +6,18 @@
  */
 package org.springblade.modules.yjxt.business.check.wrapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.modules.baseinfo.region.whole.entity.BaseRegionInfoEntity;
+import org.springblade.modules.baseinfo.region.whole.service.IBaseRegionInfoService;
+import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.service.IUserService;
+import org.springblade.modules.yjxt.base.map.entity.DangerAreaEntity;
+import org.springblade.modules.yjxt.base.map.service.IDangerAreaService;
 import org.springblade.modules.yjxt.business.check.entity.DangerAreaCheckInfoEntity;
 import org.springblade.modules.yjxt.business.check.vo.DangerAreaCheckInfoVO;
 
@@ -29,21 +38,53 @@ public class DanagerAreaCheckWrapper extends BaseEntityWrapper<DangerAreaCheckIn
         return new DanagerAreaCheckWrapper();
     }
 
+    private static IBaseRegionInfoService baseRegionInfoService;
+
+    private static IBaseRegionInfoService getBaseRegionInfoService() {
+        if (baseRegionInfoService == null) {
+            baseRegionInfoService = SpringUtil.getBean(IBaseRegionInfoService.class);
+        }
+        return baseRegionInfoService;
+    }
+
+    private static IDangerAreaService dangerAreaService;
+
+    private static IDangerAreaService getDangerAreaService() {
+        if (dangerAreaService == null) {
+            dangerAreaService = SpringUtil.getBean(IDangerAreaService.class);
+        }
+        return dangerAreaService;
+    }
+
     @Override
     public DangerAreaCheckInfoVO entityVO(DangerAreaCheckInfoEntity entity) {
         DangerAreaCheckInfoVO vo = Objects.requireNonNull(BeanUtil.copy(entity, DangerAreaCheckInfoVO.class));
-        return vo;
+        return this.entityVO(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);
-//        }
+        if (Func.notNull(vo.getAdcd())) {
+            LambdaQueryWrapper<BaseRegionInfoEntity> wrapper = Wrappers.<BaseRegionInfoEntity>query().lambda();
+            wrapper.eq(BaseRegionInfoEntity::getAdcd, vo.getAdcd());
+            wrapper.last("limit 1");
+            BaseRegionInfoEntity entity = getBaseRegionInfoService().getOne(wrapper);
+            if (Func.notNull(entity)) {
+                vo.setAdName(entity.getAdnm());
+            }
+        } else {
+            vo.setAdName("");
+        }
+        if (Func.notNull(vo.getDangerAreaPid())) {
+            LambdaQueryWrapper<DangerAreaEntity> wrapper = Wrappers.<DangerAreaEntity>query().lambda();
+            wrapper.eq(DangerAreaEntity::getDangerAreaPid, vo.getDangerAreaPid());
+            wrapper.last("limit 1");
+            DangerAreaEntity entity = getDangerAreaService().getOne(wrapper);
+            if (Func.notNull(entity)) {
+                vo.setDangerAreaName(entity.getDangerAreaName());
+            }
+        } else {
+            vo.setDangerAreaName("");
+        }
         return vo;
     }
 }

+ 214 - 0
src/main/java/org/springblade/modules/yjxt/business/rain/controller/YjRainDataController.java

@@ -0,0 +1,214 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 运维系统
+ * 创建日期:2022/8/28
+ */
+package org.springblade.modules.yjxt.business.rain.controller;
+
+import com.alibaba.fastjson.JSONObject;
+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;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.constant.BusinessConstant;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.jackson.JsonUtil;
+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.tree.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.yw.service.IRegionInfoService;
+import org.springblade.modules.baseinfo.stbase.entity.MvAttStBaseEntity;
+import org.springblade.modules.baseinfo.stbase.service.IMvAttStBaseService;
+import org.springblade.modules.business.data.dto.RtuDataRainDTO;
+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.service.IDangerAreaLeaveLineService;
+import org.springblade.modules.yjxt.base.map.service.IDangerAreaService;
+import org.springblade.modules.yjxt.base.map.vo.DangerAreaLeaveLineVO;
+import org.springblade.modules.yjxt.business.rain.service.IYjRainDataService;
+import org.springblade.modules.yjxt.business.rain.vo.YjRainDataVO;
+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.warn.entity.OriginalWarningInfoEntity;
+import org.springblade.modules.yjxt.business.warn.service.IOriginalWarningService;
+import org.springblade.modules.yjxt.business.warn.vo.WarnDetailInfoVO;
+import org.springblade.utils.HttpRequestUtil;
+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.util.ArrayList;
+import java.util.List;
+
+
+/***
+ * Date:2022/8/28
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@RestController
+@RequestMapping("galaxy-business/yj/rain")
+@AllArgsConstructor
+@Api(value = "降水实时数据管理", tags = "测站实时数据管理")
+public class YjRainDataController extends BladeController {
+    private final IYjRainDataService rainDataService;
+    private final IDeptRegionService deptRegionService;
+    private final IRegionInfoService regionService;
+    private final IMvAttStBaseService mvAttStBaseService;
+    private final IDangerAreaService dangerAreaService;
+    private final IOriginalWarningService originalWarningService;
+
+    /**
+     * 分页
+     */
+    @GetMapping("/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "rainCountType", value = "雨量统计类型", paramType = "query", dataType = "int"),
+    })
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "分页")
+    public R<IPage<YjRainDataVO>> yjPage(@ApiIgnore RtuDataRainDTO rtuDataRainDTO, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+            if (Func.isNull(rtuDataRainDTO.getAdCode())) {
+                rtuDataRainDTO.setAdCode(BusinessConstant.REGION_NM_ADCODE);
+            }
+        } else {
+            if (Func.isNull(rtuDataRainDTO.getAdCode())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)) {
+                    return R.fail("查询失败");
+                }
+                rtuDataRainDTO.setAdCode(deptRegionEntity.getAdcd());
+            }
+        }
+        if (Func.notNull(rtuDataRainDTO.getAdCode())) {
+            RegionTreeNodeEntity node = this.regionService.getRegionNode(user.getRoleName(), user.getDeptId(), rtuDataRainDTO.getAdCode());
+            if (Func.notNull(node)) {
+                rtuDataRainDTO.setExcludeCode(node.getExclude());
+            }
+        }
+        IPage<YjRainDataVO> pages = rainDataService.selectYjPage(Condition.getPage(query), rtuDataRainDTO);
+        List<YjRainDataVO> list = pages.getRecords();
+        for (YjRainDataVO vo : list) {
+            if (Func.notNull(rtuDataRainDTO.getRainCountType())) {
+                if (rtuDataRainDTO.getRainCountType() == 1) {
+                    vo.setIntvLable("近1小时");
+                    vo.setDrp(vo.getH1drp());
+                    vo.setTm(vo.getH1tm());
+                } else if (rtuDataRainDTO.getRainCountType() == 3) {
+                    vo.setIntvLable("近3小时");
+                    vo.setDrp(vo.getH3drp());
+                    vo.setTm(vo.getH3tm());
+                } else if (rtuDataRainDTO.getRainCountType() == 6) {
+                    vo.setIntvLable("近6小时");
+                    vo.setDrp(vo.getH6drp());
+                    vo.setTm(vo.getH6tm());
+                } else if (rtuDataRainDTO.getRainCountType() == 12) {
+                    vo.setIntvLable("近12小时");
+                    vo.setDrp(vo.getH12drp());
+                    vo.setTm(vo.getH12tm());
+                } else if (rtuDataRainDTO.getRainCountType() == 24) {
+                    vo.setIntvLable("近24小时");
+                    vo.setDrp(vo.getH24drp());
+                    vo.setTm(vo.getH24tm());
+                } else {
+                    if (vo.getIntv() != null && vo.getIntv() == 0.05) {
+                        vo.setIntvLable("5分钟");
+                    } else if (vo.getIntv() != null && vo.getIntv() == 1.0) {
+                        vo.setIntvLable("小时");
+                    }
+                }
+            } else {
+                if (vo.getIntv() != null && vo.getIntv() == 0.05) {
+                    vo.setIntvLable("5分钟");
+                } else if (vo.getIntv() != null && vo.getIntv() == 1.0) {
+                    vo.setIntvLable("小时");
+                }
+            }
+            LambdaQueryWrapper<MvAttStBaseEntity> rtuwrapper = Wrappers.<MvAttStBaseEntity>query().lambda();
+            rtuwrapper.eq(MvAttStBaseEntity::getStCode, vo.getRtuCode());
+            rtuwrapper.last("limit 1");
+            MvAttStBaseEntity rtuInfoEntity = mvAttStBaseService.getOne(rtuwrapper);
+            if (Func.notNull(rtuInfoEntity)) {
+                vo.setLng(Func.toStr(rtuInfoEntity.getStLong()));
+                vo.setLat(Func.toStr(rtuInfoEntity.getStLat()));
+                //查询预警信息
+                LambdaQueryWrapper<OriginalWarningInfoEntity> warnwrapper = Wrappers.<OriginalWarningInfoEntity>query().lambda();
+                warnwrapper.eq(OriginalWarningInfoEntity::getStcd, rtuInfoEntity.getStCode());
+                warnwrapper.last("limit 1");
+                OriginalWarningInfoEntity warningInfoEntity= originalWarningService.getOne(warnwrapper);
+                if (Func.notNull(warningInfoEntity)){
+                    vo.setIsWarn(1);
+                    vo.setWarnId(warningInfoEntity.getWarnId());
+                    vo.setWarnName(warningInfoEntity.getWarnName());
+                }else{
+                    vo.setIsWarn(0);
+                }
+                //查询危险区、转移路线等信息
+                LambdaQueryWrapper<DangerAreaEntity> dangerareawrapper = Wrappers.<DangerAreaEntity>query().lambda();
+                dangerareawrapper.eq(DangerAreaEntity::getStCode, rtuInfoEntity.getStCode());
+              //  dangerareawrapper.last("limit 1");
+                List<DangerAreaEntity> dangerAreaEntityList = dangerAreaService.list(dangerareawrapper);
+                if (Func.notNull(dangerAreaEntityList)) {
+                    vo.setIsLinkDanger(1);
+                    vo.setDangerAreaList(dangerAreaEntityList);
+                   // vo.setDangerAreaPid(dangerAreaEntity.getDangerAreaPid());
+                   // vo.setDangerAreaName(dangerAreaEntity.getDangerAreaName());
+//                    if (Func.notNull(dangerAreaEntity.getAdcd())) {
+//                        //转移路线
+//                        DangerAreaLeaveLineDTO lineDTO = new DangerAreaLeaveLineDTO();
+//                        lineDTO.setAdcd(dangerAreaEntity.getAdcd());
+//                        List<DangerAreaLeaveLineVO> lineVOList = dangerAreaLeaveLineService.selectAdDangerArea(lineDTO);
+//                        if (Func.notNull(lineVOList)) {
+//                            vo.setLeaveLines(lineVOList);
+//                        } else {
+//                            vo.setLeaveLines(new ArrayList<>(0));
+//                        }
+//                    } else {
+//                        vo.setLeaveLines(new ArrayList<>(0));
+//                    }
+//                    //群众注册
+//                    DangerAreaResidentInfoDTO dangerAreaResidentInfoDTO = new DangerAreaResidentInfoDTO();
+//                    dangerAreaResidentInfoDTO.setIsHouseholder(1);
+//                    dangerAreaResidentInfoDTO.setDangerAreaPid(vo.getDangerAreaPid());
+//                    List<DangerAreaResidentInfoEntity> familyList = residentService.getFamilyPoints(dangerAreaResidentInfoDTO);
+//                    if (Func.notNull(familyList) && familyList.size() > 0) {
+//                        vo.setFamilyPoints(familyList);
+//                        vo.setFamilyCount((long) familyList.size());
+//                    } else {
+//                        vo.setFamilyCount(0L);
+//                    }
+                } else {
+                    vo.setIsLinkDanger(0);
+                }
+            }
+
+        }
+        return R.data(pages);
+    }
+
+}

+ 30 - 0
src/main/java/org/springblade/modules/yjxt/business/rain/mapper/YjRainDataMapper.java

@@ -0,0 +1,30 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 运维系统
+ * 创建日期:2022/8/28
+ */
+package org.springblade.modules.yjxt.business.rain.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.modules.business.data.dto.RtuDataRainDTO;
+import org.springblade.modules.business.data.entity.RtuDataRainEntity;
+import org.springblade.modules.business.data.vo.RtuDataRainVO;
+import org.springblade.modules.yjxt.business.rain.vo.YjRainDataVO;
+
+import java.util.List;
+
+/***
+ * Date:2022/8/28
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface YjRainDataMapper extends BaseMapper<RtuDataRainEntity> {
+
+	List<YjRainDataVO> selectYjPage(IPage page, @Param("rtuDataRainDTO") RtuDataRainDTO rtuDataRainDTO);
+}

+ 116 - 0
src/main/java/org/springblade/modules/yjxt/business/rain/mapper/YjRainDataMapper.xml

@@ -0,0 +1,116 @@
+<?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.yjxt.business.rain.mapper.YjRainDataMapper">
+
+    <resultMap id="rtuRainDataVOResultMap" type="org.springblade.modules.yjxt.business.rain.vo.YjRainDataVO">
+        <result column="rtu_code" property="rtuCode"/>
+        <result column="tm" property="tm"/>
+        <result column="drp" property="drp"/>
+        <result column="rtu_name" property="rtuName"/>
+        <result column="ad_city" property="adCity"/>
+        <result column="ad_dist" property="adDist"/>
+        <result column="from_time" property="fromTime"/>
+        <result column="h1tm" property="h1tm"/>
+        <result column="h1drp" property="h1drp"/>
+        <result column="h3tm" property="h3tm"/>
+        <result column="h3drp" property="h3drp"/>
+        <result column="h6tm" property="h6tm"/>
+        <result column="h6drp" property="h6drp"/>
+        <result column="h12tm" property="h12tm"/>
+        <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="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  FIND_IN_SET(#{rtuDataRainDTO.adCode} ,a.ancestors) >0 )
+        </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'">
+                    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 == 0">
+                    order by n.drp desc,n.tm desc
+                </if>
+                <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>
+</mapper>

+ 28 - 0
src/main/java/org/springblade/modules/yjxt/business/rain/service/IYjRainDataService.java

@@ -0,0 +1,28 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/8/28
+ */
+package org.springblade.modules.yjxt.business.rain.service;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.modules.business.data.dto.RtuDataRainDTO;
+import org.springblade.modules.business.data.entity.RtuDataRainEntity;
+import org.springblade.modules.business.data.vo.RtuDataRainVO;
+import org.springblade.modules.yjxt.business.rain.vo.YjRainDataVO;
+
+/***
+ * Date:2022/8/28
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IYjRainDataService extends BaseService<RtuDataRainEntity> {
+
+	IPage<YjRainDataVO> selectYjPage(IPage<YjRainDataVO> page, RtuDataRainDTO rtuDataRainDTO);
+}

+ 36 - 0
src/main/java/org/springblade/modules/yjxt/business/rain/service/impl/YjRainDataServiceImpl.java

@@ -0,0 +1,36 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 运维系统
+ * 创建日期:2022/8/28
+ */
+package org.springblade.modules.yjxt.business.rain.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.business.data.dto.RtuDataRainDTO;
+import org.springblade.modules.business.data.entity.RtuDataRainEntity;
+import org.springblade.modules.business.data.vo.RtuDataRainVO;
+import org.springblade.modules.yjxt.business.rain.mapper.YjRainDataMapper;
+import org.springblade.modules.yjxt.business.rain.service.IYjRainDataService;
+import org.springblade.modules.yjxt.business.rain.vo.YjRainDataVO;
+import org.springframework.stereotype.Service;
+
+
+/***
+ * Date:2022/8/28
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class YjRainDataServiceImpl extends BaseServiceImpl<YjRainDataMapper, RtuDataRainEntity> implements IYjRainDataService {
+
+	@Override
+	public IPage<YjRainDataVO> selectYjPage(IPage<YjRainDataVO> page, RtuDataRainDTO rtuDataRainDTO) {
+		return page.setRecords(baseMapper.selectYjPage(page, rtuDataRainDTO));
+	}
+
+}

+ 247 - 0
src/main/java/org/springblade/modules/yjxt/business/rain/vo/YjRainDataVO.java

@@ -0,0 +1,247 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 运维系统
+ * 创建日期:2022/8/28
+ */
+package org.springblade.modules.yjxt.business.rain.vo;
+
+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;
+import org.springblade.modules.business.data.entity.RtuDataRainEntity;
+import org.springblade.modules.yjxt.base.map.entity.DangerAreaEntity;
+import org.springblade.modules.yjxt.base.map.vo.DangerAreaLeaveLineVO;
+import org.springblade.modules.yjxt.business.resident.entity.DangerAreaResidentInfoEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+
+/***
+ * Date:2022/8/28
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class YjRainDataVO extends RtuDataRainEntity {
+	/**
+	 * 测站名称
+	 */
+	@ApiModelProperty("测站名称")
+	private String rtuName;
+
+	/**
+	 * 测站类型概要
+	 */
+	@ApiModelProperty(value = "测站类型概要")
+	private String rtuKindDesc;
+
+	/**
+	 * 所属盟市
+	 */
+	@ApiModelProperty(value = "所属盟市")
+	private String adCity;
+
+	/**
+	 * 所属盟县旗区
+	 */
+	@ApiModelProperty(value = "所属盟县旗区")
+	private String adDist;
+
+	/**
+	 * 行政区
+	 */
+	@ApiModelProperty(value = "行政区")
+	private String areaName;
+
+
+	/**
+	 * 时间
+	 */
+	@ApiModelProperty("时间")
+	@DateTimeFormat(
+			pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+			pattern = "yyyy-MM-dd HH:mm:ss",
+			timezone = "GMT+8"
+	)
+	private Date h1tm;
+
+	/**
+	 * 降水量
+	 */
+	@ApiModelProperty("降水量")
+	@JsonSerialize(nullsUsing = NullSerializer.class)
+	private Double h1drp;
+
+	/**
+	 * 时间
+	 */
+	@ApiModelProperty("时间")
+	@DateTimeFormat(
+			pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+			pattern = "yyyy-MM-dd HH:mm:ss",
+			timezone = "GMT+8"
+	)
+	private Date h3tm;
+
+	/**
+	 * 降水量
+	 */
+	@ApiModelProperty("降水量")
+	@JsonSerialize(nullsUsing = NullSerializer.class)
+	private Double h3drp;
+
+	/**
+	 * 时间
+	 */
+	@ApiModelProperty("时间")
+	@DateTimeFormat(
+			pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+			pattern = "yyyy-MM-dd HH:mm:ss",
+			timezone = "GMT+8"
+	)
+	private Date h6tm;
+
+	/**
+	 * 降水量
+	 */
+	@ApiModelProperty("降水量")
+	@JsonSerialize(nullsUsing = NullSerializer.class)
+	private Double h6drp;
+
+	/**
+	 * 时间
+	 */
+	@ApiModelProperty("时间")
+	@DateTimeFormat(
+			pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+			pattern = "yyyy-MM-dd HH:mm:ss",
+			timezone = "GMT+8"
+	)
+	private Date h12tm;
+
+	/**
+	 * 降水量
+	 */
+	@ApiModelProperty("降水量")
+	@JsonSerialize(nullsUsing = NullSerializer.class)
+	private Double h12drp;
+
+	/**
+	 * 时间
+	 */
+	@ApiModelProperty("时间")
+	@DateTimeFormat(
+			pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+			pattern = "yyyy-MM-dd HH:mm:ss",
+			timezone = "GMT+8"
+	)
+	private Date h24tm;
+
+	/**
+	 * 降水量
+	 */
+	@ApiModelProperty("降水量")
+	@JsonSerialize(nullsUsing = NullSerializer.class)
+	private Double h24drp;
+
+	/**
+	 * 降雨时段
+	 */
+	@ApiModelProperty(value = "降雨时段")
+	private String intvLable;
+
+	/**
+	 * 经度
+	 */
+	@ApiModelProperty(value = "经度")
+	private String lng;
+
+	/**
+	 * 纬度
+	 */
+	@ApiModelProperty(value = "纬度")
+	private String lat;
+
+	/**
+	 * 是否预警 0 否 1 是
+	 */
+	@ApiModelProperty(value = "是否预警")
+	private Integer isWarn;
+
+	/**
+	 * 预警编码
+	 */
+	@ApiModelProperty("预警编码")
+	private String warnId;
+
+	/**
+	 * 预警名称
+	 */
+	@ApiModelProperty("预警名称")
+	private String warnName;
+
+
+	/**
+	 * 是否关联危险区 0 否 1 是
+	 */
+	@ApiModelProperty(value = "是否关联危险区")
+	private Integer isLinkDanger;
+
+	/**
+	 * 危险区列表
+	 */
+	@ApiModelProperty(value = "危险区")
+	List<DangerAreaEntity> dangerAreaList;
+
+
+//	/**
+//	 * 危险区ID
+//	 */
+//	@ApiModelProperty(value = "危险区ID")
+//	private String dangerAreaPid;
+//
+//	/**
+//	 * 危险区名称
+//	 */
+//	@ApiModelProperty(value = "危险区名称")
+//	private String dangerAreaName;
+
+	/**
+	 * 转移路线
+	 */
+	@ApiModelProperty(value = "转移路线")
+	private List<DangerAreaLeaveLineVO> leaveLines;
+
+	/**
+	 * 家庭户数量
+	 */
+	@ApiModelProperty(value = "家庭户数量")
+	private Long familyCount;
+
+	/**
+	 * 家庭户
+	 */
+	@ApiModelProperty(value = "家庭户")
+	private List<DangerAreaResidentInfoEntity> familyPoints;
+
+}

+ 62 - 25
src/main/java/org/springblade/modules/yjxt/business/resident/controller/DangerAreaResidentController.java

@@ -9,6 +9,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.springblade.constant.BusinessConstant;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -18,15 +19,8 @@ import org.springblade.core.tool.api.R;
 
 import org.springblade.core.tool.utils.Func;
 import org.springblade.enums.DangerAreaResidentHouseHolderEnum;
-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.baseinfo.org.entity.DeptRegionEntity;
+import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
 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;
@@ -35,6 +29,7 @@ import org.springblade.modules.yjxt.business.resident.wrapper.DanagerAreaResiden
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @RestController
@@ -45,6 +40,7 @@ public class DangerAreaResidentController extends BladeController {
 
     private final IDangerAreaResidentService dangerAreaResidentService;
 
+    private final IDeptRegionService deptRegionService;
 
     @GetMapping("/page")
     @ApiImplicitParams({
@@ -55,6 +51,32 @@ public class DangerAreaResidentController extends BladeController {
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "分页")
     public R<IPage<DangerAreaResidentInfoVO>> page(@ApiIgnore DangerAreaResidentInfoDTO dto, Query query) {
+        BladeUser user = AuthUtil.getUser();
+        if(Func.isNull(dto.getDangerAreaCode())){
+            if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+                dto.setDangerAreaCode(BusinessConstant.REGION_NM_ADCODE);
+            } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)){
+                    return R.fail("查询失败");
+                }
+                dto.setDangerAreaCode(deptRegionEntity.getAdcd());
+            }else if(BusinessConstant.ROLE_YJ_SERVICE_PERSON.equals(user.getRoleName())){
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)){
+                    return R.fail("查询失败");
+                }
+                dto.setDangerAreaCode(deptRegionEntity.getAdcd());
+            }else{
+                return R.fail("查询失败");
+            }
+        }
         IPage<DangerAreaResidentInfoVO> pages = dangerAreaResidentService.selectPage(Condition.getPage(query), dto);
         return R.data(pages);
     }
@@ -66,9 +88,23 @@ public class DangerAreaResidentController extends BladeController {
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "分页")
     public R<List<DangerAreaResidentInfoEntity>> getFamilyMembers(@ApiIgnore DangerAreaResidentInfoDTO dto) {
-        if (Func.isNull(dto.getPersonId())){
+        if (Func.isNull(dto.getPersonId())) {
             return R.fail("参数错误");
         }
+        LambdaQueryWrapper<DangerAreaResidentInfoEntity> wrapper = Wrappers.<DangerAreaResidentInfoEntity>query().lambda();
+        wrapper.eq(DangerAreaResidentInfoEntity::getPersonId, dto.getPersonId());
+        if(Func.notNull(dto.getPersonName())){
+            wrapper.eq(DangerAreaResidentInfoEntity::getPersonName,dto.getPersonName());
+        }
+        wrapper.last("limit 1");
+        DangerAreaResidentInfoEntity entity=dangerAreaResidentService.getOne(wrapper);
+        if (Func.isNull(entity)){
+            return R.data(new ArrayList<>(0));
+        }
+        if (0 ==  entity.getIsHouseholder()){
+            dto.setPersonName(null);
+            dto.setPersonId(entity.getHouseholderId());
+        }
         List<DangerAreaResidentInfoEntity> list = dangerAreaResidentService.getFamilyMembers(dto);
         return R.data(list);
     }
@@ -94,29 +130,29 @@ public class DangerAreaResidentController extends BladeController {
             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("此人员已注册");
+            return R.fail("此人员【" + dto.getPersonName() + "】已注册");
         }
         dto.setRegisterType(1);
         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(1);
-                        dangerAreaResidentService.save(residentInfoEntity);
-                    }
-                }
+        //if (!Func.isNull(dto.getIsHouseholder())) {
+        // if (dto.getIsHouseholder().intValue() == DangerAreaResidentHouseHolderEnum.TYPE_YES.getCode().intValue()) {
+        if (Func.notNull(dto.getFamilyMembers())) {
+            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);
             }
+            //  }
         }
+        // }
+        // }
         return R.status(true);
     }
 
@@ -169,6 +205,7 @@ public class DangerAreaResidentController extends BladeController {
         if (Func.notNull(detail)) {
             detail.setLongitude(entity.getLongitude());
             detail.setLatitude(entity.getLatitude());
+            detail.setAddress(entity.getAddress());
         }
         dangerAreaResidentService.updateById(detail);
         return R.status(true);

+ 6 - 0
src/main/java/org/springblade/modules/yjxt/business/resident/entity/DangerAreaResidentInfoEntity.java

@@ -61,6 +61,12 @@ public class DangerAreaResidentInfoEntity extends BaseEntity {
     @ApiModelProperty("经度")
     private String longitude;
 
+    /**
+     * 定位地址
+     */
+    @ApiModelProperty("定位地址")
+    private String address;
+
     /**
      * 注册类型,1 工作人员注册 2 群众注册
      */

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

@@ -34,4 +34,5 @@ public interface DangerAreaResidentInfoMapper extends BaseMapper<DangerAreaResid
 
     List<DangerAreaResidentInfoEntity> getFamilyMembers(@Param("dto") DangerAreaResidentInfoDTO dto);
 
+    List<DangerAreaResidentInfoEntity> getFamilyPoints(@Param("dto") DangerAreaResidentInfoDTO dto);
 }

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

@@ -11,6 +11,7 @@
         <result column="danger_area_pid" property="dangerAreaPid"/>
         <result column="longitude" property="longitude"/>
         <result column="latitude" property="latitude"/>
+        <result column="address" property="address"/>
         <result column="register_type" property="registerType"/>
     </resultMap>
 
@@ -22,6 +23,7 @@
         <result column="danger_area_pid" property="dangerAreaPid"/>
         <result column="longitude" property="longitude"/>
         <result column="latitude" property="latitude"/>
+        <result column="address" property="address"/>
         <result column="danger_area_name" property="dangerAreaName"/>
         <result column="adnm" property="adName"/>
         <result column="register_type" property="registerType"/>
@@ -52,6 +54,9 @@
         <if test="dto.adName!=null">
             and a.adnm like concat(concat('%', #{dto.adName}), '%')
         </if>
+        <if test="dto.dangerAreaPid!=null">
+            and n.danger_area_pid = #{dto.dangerAreaPid}
+        </if>
         <if test="dto.dangerAreaCode!=null and dto.dangerAreaCode!=''">
             and (a.adcd =#{dto.dangerAreaCode} or  FIND_IN_SET(#{dto.dangerAreaCode} ,a.ancestors) >0 )
         </if>
@@ -70,9 +75,15 @@
         <if test="dto.householderId != null">
             and (n.householder_id = #{dto.householderId} || n.person_id = #{dto.householderId})
         </if>
+        <if test="dto.isHouseholder!=null">
+            and n.is_householder = #{dto.isHouseholder}
+        </if>
         <if test="dto.dangerAreaCode!=null">
             and d.adcd = #{dto.dangerAreaCode}
         </if>
+        <if test="dto.dangerAreaPid!=null">
+            and n.danger_area_pid = #{dto.dangerAreaPid}
+        </if>
     </select>
 
     <select id="getFamilyMembers" resultMap="desidentResultMap">
@@ -85,7 +96,28 @@
         <if test="dto.personId!=null">
             and (n.person_id =  #{dto.personId} or n.householder_id = #{dto.personId})
         </if>
+        <if test="dto.isHouseholder!=null">
+            and n.is_householder = #{dto.isHouseholder}
+        </if>
+        <if test="dto.dangerAreaPid!=null">
+            and n.danger_area_pid = #{dto.dangerAreaPid}
+        </if>
         ORDER BY
-        n.person_id
+        n.is_householder desc
+    </select>
+
+    <select id="getFamilyPoints" resultMap="desidentResultMap">
+        SELECT
+        n.*
+        FROM
+        yjxt_danger_area_resident_info n
+        WHERE
+        n.is_deleted = 0
+        and n.is_householder = 1
+        and n.longitude is not null
+        and n.latitude is not null
+        <if test="dto.dangerAreaPid!=null">
+            and n.danger_area_pid = #{dto.dangerAreaPid}
+        </if>
     </select>
 </mapper>

+ 2 - 1
src/main/java/org/springblade/modules/yjxt/business/resident/service/IDangerAreaResidentService.java

@@ -25,10 +25,11 @@ import java.util.List;
  * Remark:认为有必要的其他信息
  */
 public interface IDangerAreaResidentService extends BaseService<DangerAreaResidentInfoEntity> {
-    IPage<DangerAreaResidentInfoVO> selectPage(IPage page, DangerAreaResidentInfoDTO dto);
+    IPage<DangerAreaResidentInfoVO> selectPage(IPage<DangerAreaResidentInfoVO> page, DangerAreaResidentInfoDTO dto);
 
     long residentCount(DangerAreaResidentInfoDTO dto);
 
     List<DangerAreaResidentInfoEntity> getFamilyMembers(DangerAreaResidentInfoDTO dto);
 
+    List<DangerAreaResidentInfoEntity> getFamilyPoints(DangerAreaResidentInfoDTO dto);
 }

+ 6 - 1
src/main/java/org/springblade/modules/yjxt/business/resident/service/impl/DangerAreaResidentServiceImpl.java

@@ -29,7 +29,7 @@ import java.util.List;
 @Service
 public class DangerAreaResidentServiceImpl extends BaseServiceImpl<DangerAreaResidentInfoMapper, DangerAreaResidentInfoEntity> implements IDangerAreaResidentService {
     @Override
-    public IPage<DangerAreaResidentInfoVO> selectPage(IPage page, DangerAreaResidentInfoDTO dto) {
+    public IPage<DangerAreaResidentInfoVO> selectPage(IPage<DangerAreaResidentInfoVO> page, DangerAreaResidentInfoDTO dto) {
         return page.setRecords(baseMapper.selectPage(page,dto));
     }
 
@@ -42,4 +42,9 @@ public class DangerAreaResidentServiceImpl extends BaseServiceImpl<DangerAreaRes
     public List<DangerAreaResidentInfoEntity> getFamilyMembers(DangerAreaResidentInfoDTO dto) {
         return baseMapper.getFamilyMembers(dto);
     }
+
+    @Override
+    public List<DangerAreaResidentInfoEntity> getFamilyPoints(DangerAreaResidentInfoDTO dto) {
+        return baseMapper.getFamilyPoints(dto);
+    }
 }

+ 109 - 37
src/main/java/org/springblade/modules/yjxt/business/transfer/controller/DamageTransferController.java

@@ -15,11 +15,19 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.springblade.constant.BusinessConstant;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
+import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.yjxt.base.map.dto.DangerAreaDTO;
+import org.springblade.modules.yjxt.base.map.service.IDangerAreaService;
+import org.springblade.modules.yjxt.base.map.vo.DangerAreaVO;
 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;
@@ -54,6 +62,10 @@ public class DamageTransferController extends BladeController {
 
     private final IOriginalWarningService originalWarningService;
 
+    private final IDeptRegionService deptRegionService;
+
+    private final IDangerAreaService dangerAreaService;
+
 
     @GetMapping("/page")
     @ApiImplicitParams({
@@ -62,18 +74,58 @@ public class DamageTransferController extends BladeController {
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "分页")
     public R<IPage<DamageTransferPersonInfoVO>> page(@ApiIgnore DamageTransferPersonInfoDTO dto, Query query) {
-        if (Func.isNull(dto.getWarnId())){
+        if (Func.isNull(dto.getWarnId())) {
             return R.fail("参数错误");
         }
-        //BladeUser user = AuthUtil.getUser();
+//        BladeUser user = AuthUtil.getUser();
+//        if (Func.isNull(dto.getDangerAreaCode())) {
+//            if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+//                dto.setDangerAreaCode(BusinessConstant.REGION_NM_ADCODE);
+//            } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+//                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+//                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+//                wrapper.last("limit 1");
+//                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+//                if (Func.isNull(deptRegionEntity)) {
+//                    return R.fail("查询失败");
+//                }
+//                dto.setDangerAreaCode(deptRegionEntity.getAdcd());
+//            } else if (BusinessConstant.ROLE_YJ_SERVICE_PERSON.equals(user.getRoleName())) {
+//                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+//                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+//                wrapper.last("limit 1");
+//                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+//                if (Func.isNull(deptRegionEntity)) {
+//                    return R.fail("查询失败");
+//                }
+//                dto.setDangerAreaCode(deptRegionEntity.getAdcd());
+//            } else {
+//                return R.fail("查询失败");
+//            }
+//        }
         LambdaQueryWrapper<OriginalWarningInfoEntity> wrapper = Wrappers.<OriginalWarningInfoEntity>query().lambda();
-        wrapper.eq(OriginalWarningInfoEntity::getIsDeleted, 0);
+//        wrapper.eq(OriginalWarningInfoEntity::getIsDeleted, 0);
         wrapper.eq(OriginalWarningInfoEntity::getWarnId, dto.getWarnId());
+        wrapper.last("limit 1");
         OriginalWarningInfoEntity detail = originalWarningService.getOne(wrapper);
-        if (Func.isNull(detail)){
-            return R.fail("系统错误");
+        if (Func.isNull(detail)) {
+            return R.fail("查询错误");
+        }
+        DangerAreaDTO dangerAreaDTO = new DangerAreaDTO();
+        dangerAreaDTO.setAdcd(detail.getWarnAdcd());
+        List<DangerAreaVO> dangerAreaVOList = dangerAreaService.selectAdDangerArea(dangerAreaDTO);
+        if (Func.notNull(dangerAreaVOList)) {
+            StringBuilder builder = new StringBuilder();
+            for (DangerAreaVO vo : dangerAreaVOList) {
+                if (builder.length() > 0) {
+                    builder.append(",");
+                }
+                builder.append(vo.getDangerAreaPid());
+            }
+            if (builder.length() > 0) {
+                dto.setDangerAreaCode(builder.toString());
+            }
         }
-     //   dto.setDangerAreaCode(detail.getWarnAdcd());
         IPage<DamageTransferPersonInfoVO> pages = damageTransferPersonService.selectPage(Condition.getPage(query), dto);
         return R.data(pages);
     }
@@ -89,41 +141,61 @@ public class DamageTransferController extends BladeController {
         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("该人员已经登记");
+        if (Func.isNull(dto.getFamilyMembers())) {
+            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);
-                        }
-                    }
+        for (String id : dto.getFamilyMembers()) {
+            DangerAreaResidentInfoEntity entity = dangerAreaResidentService.getById(Func.toLong(id));
+            if (Func.notNull(entity)) {
+                LambdaQueryWrapper<DamageTransferPersonInfoEntity> wrapper = Wrappers.<DamageTransferPersonInfoEntity>query().lambda();
+                wrapper.eq(DamageTransferPersonInfoEntity::getWarnId, dto.getWarnId());
+                wrapper.eq(DamageTransferPersonInfoEntity::getPersonId, entity.getPersonId());
+                wrapper.eq(DamageTransferPersonInfoEntity::getPersonName, entity.getPersonName());
+                wrapper.last("limit 1");
+                DamageTransferPersonInfoEntity detail = damageTransferPersonService.getOne(wrapper);
+                if (Func.notNull(detail)) {
+                    detail.setRemark(dto.getRemark());
+                    detail.setKeepPhotos(dto.getKeepPhotos());
+                    damageTransferPersonService.updateById(detail);
+                } else {
+                    detail = new DamageTransferPersonInfoEntity();
+                    detail.setWarnId(dto.getWarnId());
+                    detail.setPersonId(entity.getPersonId());
+                    detail.setPersonName(entity.getPersonName());
+                    detail.setRemark(dto.getRemark());
+                    detail.setKeepPhotos(dto.getKeepPhotos());
+                    damageTransferPersonService.save(detail);
                 }
             }
         }
+
+//        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);
     }
 

+ 5 - 0
src/main/java/org/springblade/modules/yjxt/business/transfer/dto/DamageTransferPersonInfoDTO.java

@@ -12,6 +12,8 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.modules.yjxt.business.transfer.entity.DamageTransferPersonInfoEntity;
 
+import java.util.List;
+
 /***
  * Date:2023/11/10
  * Title:文件所属模块(必须填写)
@@ -35,4 +37,7 @@ public class DamageTransferPersonInfoDTO extends DamageTransferPersonInfoEntity
      */
     @ApiModelProperty("危险区编码")
     private String dangerAreaCode;
+
+    @ApiModelProperty("家庭户转移情况")
+    private List<String> familyMembers;
 }

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

@@ -25,23 +25,22 @@
 
     <select id="selectPage" resultMap="transferPersonVOResultMap">
         SELECT
-        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
+        r.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_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
+        yjxt_danger_area_resident_info r
+        LEFT JOIN yjxt_damage_transfer_person_info p on p.person_id = r.person_id and  p.person_name = r.person_name and p.is_deleted = 0
         WHERE
-        p.is_deleted = 0
+        r.is_deleted = 0
         <if test="dto.warnId!=null">
-            and p.warn_id =  #{dto.warnId}
+            and (p.warn_id =  #{dto.warnId} or p.warn_id is null)
         </if>
         <if test="dto.dangerAreaCode!=null">
-            and r.danger_area_pid =  #{dto.dangerAreaCode}
+            and  FIND_IN_SET(r.danger_area_pid ,#{dto.dangerAreaCode}) >0
         </if>
         ORDER BY
-        p.warn_id desc, r.person_id
+        p.warn_id desc,r.person_name
     </select>
 
-
     <select id="transferPersonCount" resultType="java.lang.Long">
         SELECT
         count(n.person_id)
@@ -54,6 +53,4 @@
         </if>
     </select>
 
-
-
 </mapper>

+ 100 - 17
src/main/java/org/springblade/modules/yjxt/business/warn/controller/YjWarnController.java

@@ -6,6 +6,7 @@
  */
 package org.springblade.modules.yjxt.business.warn.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -14,39 +15,35 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import lombok.AllArgsConstructor;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.constant.BusinessConstant;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 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.jackson.JsonUtil;
 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.baseinfo.org.entity.DeptRegionEntity;
+import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
 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.vo.WarnDetailInfoVO;
 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.springblade.utils.HttpRequestUtil;
+import org.springframework.beans.factory.annotation.Value;
 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;
+import javax.annotation.Resource;
+import java.util.ArrayList;
 
 /***
  * Date:2023/11/12
@@ -56,13 +53,21 @@ import java.io.FileInputStream;
  * @version 1.0
  * Remark:认为有必要的其他信息
  */
+@Slf4j
 @RestController
 @RequestMapping("galaxy-business/yj/warn")
-@AllArgsConstructor
+@RequiredArgsConstructor
 @Api(value = "应急系统预警信息管理接口", tags = "查")
 public class YjWarnController extends BladeController {
 
-    private final IOriginalWarningService originalWarningService;
+    @Resource
+    private IOriginalWarningService originalWarningService;
+
+    @Resource
+    private final IDeptRegionService deptRegionService;
+
+    @Value("${spring.yjxt.etl-server-url}")
+    private String etlServerUrl;
 
     @GetMapping("/page")
     @ApiImplicitParams({
@@ -75,6 +80,31 @@ public class YjWarnController extends BladeController {
     @ApiOperation(value = "分页")
     public R<IPage<OriginalWarningInfoVO>> page(@ApiIgnore OriginalWarningInfoDTO entity, Query query) {
         BladeUser user = AuthUtil.getUser();
+        if (Func.isNull(entity.getWarnAdcd())) {
+            if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+                entity.setWarnAdcd(BusinessConstant.REGION_NM_ADCODE);
+            } else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)) {
+                    return R.fail("查询失败");
+                }
+                entity.setWarnAdcd(deptRegionEntity.getAdcd());
+            } else if (BusinessConstant.ROLE_YJ_SERVICE_PERSON.equals(user.getRoleName())) {
+                LambdaQueryWrapper<DeptRegionEntity> wrapper = Wrappers.<DeptRegionEntity>query().lambda();
+                wrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+                wrapper.last("limit 1");
+                DeptRegionEntity deptRegionEntity = deptRegionService.getOne(wrapper);
+                if (Func.isNull(deptRegionEntity)) {
+                    return R.fail("查询失败");
+                }
+                entity.setWarnAdcd(deptRegionEntity.getAdcd());
+            } else {
+                return R.fail("查询失败");
+            }
+        }
         entity.setReviewStatus("1");
         entity.setType("4");
         IPage<OriginalWarningInfoEntity> pages = originalWarningService.selectPage(Condition.getPage(query), entity);
@@ -94,4 +124,57 @@ public class YjWarnController extends BladeController {
         OriginalWarningInfoEntity detail = originalWarningService.getById(entity.getId());
         return R.data(OriginalWarningWrapper.build().entityVO(detail));
     }
+
+    /**
+     * 从宏图数据库读取完整数据
+     *
+     * @param entity
+     * @return
+     */
+    @GetMapping("/detail/all")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情", notes = "")
+    public R<WarnDetailInfoVO> allDetail(OriginalWarningInfoEntity entity) {
+        if (Func.isNull(entity.getId()) && Func.isNull(entity.getWarnId())) {
+            return R.fail("参数错误");
+        }
+        OriginalWarningInfoEntity detail = new OriginalWarningInfoEntity();
+        if (Func.notNull(entity.getId())) {
+            detail = originalWarningService.getById(entity.getId());
+            if (Func.isNull(detail)) {
+                return R.fail("查询失败");
+            }
+        } else if (Func.notNull(entity.getWarnId())) {
+            LambdaQueryWrapper<OriginalWarningInfoEntity> warnwrapper = Wrappers.<OriginalWarningInfoEntity>query().lambda();
+            warnwrapper.eq(OriginalWarningInfoEntity::getWarnId, entity.getWarnId());
+            warnwrapper.last("limit 1");
+            detail = originalWarningService.getOne(warnwrapper);
+            if (Func.isNull(detail)) {
+                return R.fail("查询失败");
+            }
+        } else {
+            return R.fail("查询失败");
+        }
+        try {
+            String url = etlServerUrl + detail.getWarnId();
+            JSONObject res = HttpRequestUtil.doHttpGetRequest("查询预警详情", url, null, null, 20 * 1000);
+            if (res.getIntValue("code") == 200 && res.getBooleanValue("success")) {
+                JSONObject data = res.getJSONObject("data");
+                WarnDetailInfoVO vo = JsonUtil.parse(data.toJSONString(), WarnDetailInfoVO.class);
+                return R.data(vo);
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+        WarnDetailInfoVO warnDetailInfoVO = new WarnDetailInfoVO();
+        warnDetailInfoVO.setWarnId(detail.getWarnId());
+        warnDetailInfoVO.setWarnInfo(detail.getWarnInfo());
+        warnDetailInfoVO.setWarnTime(detail.getWarnTime());
+        warnDetailInfoVO.setWarnName(detail.getWarnName());
+        warnDetailInfoVO.setInsideWarnInfoList(new ArrayList<>(0));
+        warnDetailInfoVO.setOusideWarnStatus(0);
+        warnDetailInfoVO.setWarnResponseStatus(0);
+        return R.data(warnDetailInfoVO);
+    }
+
 }

+ 95 - 0
src/main/java/org/springblade/modules/yjxt/business/warn/entity/InsideWarnInfoEntity.java

@@ -0,0 +1,95 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2024/1/19
+ */
+package org.springblade.modules.yjxt.business.warn.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2024/1/19
+ * Title:预警信息-内部预警详情
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("st_message_send")
+public class InsideWarnInfoEntity  extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("预警编码")
+    private String warnId;
+
+    /**
+     * 类别
+     */
+    @ApiModelProperty("类别")
+    private String sendObjectName;
+
+    /**
+     * 接收人
+     */
+    @ApiModelProperty("接收人")
+    private String userName;
+
+    /**
+     * 电话
+     */
+    @ApiModelProperty("电话")
+    private String userTel;
+
+    /**
+     * 发送信息
+     */
+    @ApiModelProperty("发送信息")
+    private String messageInfo;
+
+    /**
+     * 职务
+     */
+    @ApiModelProperty("职务")
+    private String posiTion;
+
+    /**
+     * 发送时间
+     */
+    @ApiModelProperty("发送时间")
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+    )
+    private Date sendTime;
+
+    /**
+     * 发送状态,0失败  1成功
+     */
+    @ApiModelProperty("发送状态")
+    private String sendStatus;
+
+    /***
+     * 发送人
+     */
+    @ApiModelProperty("发送人")
+    private String senderName;
+
+    /**
+     * 发送单位
+     */
+    @ApiModelProperty("发送单位")
+    private String deptName;
+}

+ 50 - 0
src/main/java/org/springblade/modules/yjxt/business/warn/entity/OutsideWarnInfoEntity.java

@@ -0,0 +1,50 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2024/1/19
+ */
+package org.springblade.modules.yjxt.business.warn.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/***
+ * Date:2024/1/19
+ * Title:预警信息-外部预警
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("st_message_send")
+public class OutsideWarnInfoEntity  extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("预警编码")
+    private String warnId;
+
+    /**
+     * 发送单位
+     */
+    @ApiModelProperty("发送单位")
+    private String deptName;
+
+    /**
+     * 发送人
+     */
+    @ApiModelProperty("发送人")
+    private String senderName;
+
+    /**
+     * 发送信息
+     */
+    @ApiModelProperty("发送信息")
+    private String messageInfo;
+
+}

+ 48 - 0
src/main/java/org/springblade/modules/yjxt/business/warn/entity/OutsideWarnTimeEntity.java

@@ -0,0 +1,48 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2024/1/19
+ */
+package org.springblade.modules.yjxt.business.warn.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2024/1/19
+ * Title:预警信息-外部预警时间
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("st_message_send")
+public class OutsideWarnTimeEntity extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("预警编码")
+    private String warnId;
+
+    /**
+     * 外部预警时间
+     */
+    @ApiModelProperty("外部预警时间")
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+    )
+    private Date extTime;
+
+}

+ 128 - 0
src/main/java/org/springblade/modules/yjxt/business/warn/entity/WarnResponseInfoEntity.java

@@ -0,0 +1,128 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2024/1/19
+ */
+package org.springblade.modules.yjxt.business.warn.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2024/1/19
+ * Title:预警信息-预警响应
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("ST_WARN_CFNR_R")
+public class WarnResponseInfoEntity extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 预警ID
+     */
+    @ApiModelProperty("预警ID")
+    private String warnId;
+
+    /**
+     * 叫应时间
+     */
+    @ApiModelProperty("响应时间")
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+    )
+    private Date reacTm;
+
+    /**
+     * 反馈时间
+     */
+    @ApiModelProperty("反馈时间")
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+    )
+    private Date replyTm;
+
+    /**
+     * 危险区负责人ID
+     */
+    @ApiModelProperty("危险区负责人ID")
+    private String pcaId;
+
+    /**
+     * 叫应次数
+     */
+    @ApiModelProperty("叫应次数")
+    private Integer reacTimes;
+
+    /**
+     * -1 未叫应 0 未反馈 1已反馈
+     */
+    @ApiModelProperty("状态")
+    private String repltStatus;
+
+    /**
+     * 响应时间
+     */
+    @ApiModelProperty("响应时间")
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+    )
+    private Date responTm;
+
+    /**
+     * 是否收到预警信息 0 是 1否
+     */
+    @ApiModelProperty("是否收到预警信息")
+    private String isReceive;
+
+    /**
+     * 是否发生山洪灾害 0 是 1 否
+     */
+    @ApiModelProperty("是否发生山洪灾害")
+    private String isFloodBoot;
+
+    /**
+     * 是否降雨持续 0 是 1 否
+     */
+    @ApiModelProperty("是否降雨持续")
+    private String isRainContu;
+
+    /**
+     * 是否发生人员转移 0 是 1 否
+     */
+    @ApiModelProperty("是否发生人员转移")
+    private String isTrans;
+
+    /**
+     * 是否有人员伤亡 0 是 1无
+     */
+    @ApiModelProperty("是否有人员伤亡")
+    private String isDeady;
+
+    /**
+     * 山洪是否已出沟 0 是 1 否
+     */
+    @ApiModelProperty("山洪是否已出沟")
+    private String isFloodOut;
+}

+ 107 - 0
src/main/java/org/springblade/modules/yjxt/business/warn/vo/WarnDetailInfoVO.java

@@ -0,0 +1,107 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2024/1/19
+ */
+package org.springblade.modules.yjxt.business.warn.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springblade.modules.yjxt.business.warn.entity.InsideWarnInfoEntity;
+import org.springblade.modules.yjxt.business.warn.entity.OutsideWarnInfoEntity;
+import org.springblade.modules.yjxt.business.warn.entity.WarnResponseInfoEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+
+/***
+ * Date:2024/1/19
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WarnDetailInfoVO extends BaseEntity {
+
+    @ApiModelProperty("预警编码")
+    private String warnId;
+
+    @ApiModelProperty("预警发生时间")
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+    )
+    private Date warnTime;
+
+    @ApiModelProperty("预警名称")
+    private String warnName;
+
+    @ApiModelProperty("预警信息")
+    private String warnInfo;
+
+    /**
+     * 内部预警信息
+     */
+    @ApiModelProperty("内部预警信息")
+    private List<InsideWarnInfoEntity> insideWarnInfoList;
+
+    /**
+     * 0 没有,1 有
+     */
+    @ApiModelProperty("是否有外部预警")
+    private Integer ousideWarnStatus;
+
+    /**
+     * 外部预警时间
+     */
+    @ApiModelProperty("外部预警时间")
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+    )
+    private Date extTime;
+
+    /**
+     * 外部预警信息
+     */
+    @ApiModelProperty("外部预警信息")
+    private List<OutsideWarnInfoEntity> outsideWarnInfoList;
+
+
+    /**
+     * 0 没有,1 有
+     */
+    @ApiModelProperty("是否有预警响应")
+    private Integer warnResponseStatus;
+
+    /**
+     * 预警响应时间
+     */
+    @ApiModelProperty("预警响应时间")
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+    )
+    private Date replyTm;
+
+    /**
+     * 预警响应信息
+     */
+    @ApiModelProperty("预警响应信息")
+    private List<WarnResponseInfoEntity> warnResponseInfoList;
+}

+ 93 - 31
src/main/java/org/springblade/share/yjxt/YjxtPublicDataController.java

@@ -10,6 +10,8 @@ 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.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springblade.core.boot.ctrl.BladeController;
@@ -23,7 +25,9 @@ import org.springblade.modules.yjxt.business.transfer.dto.DamageTransferPersonIn
 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 springfox.documentation.annotations.ApiIgnore;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /***
@@ -52,41 +56,69 @@ public class YjxtPublicDataController extends BladeController {
         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("该人员已经登记");
+        if (Func.isNull(dto.getFamilyMembers())) {
+            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);
-                        }
-                    }
+        for (String id : dto.getFamilyMembers()) {
+            DangerAreaResidentInfoEntity entity = dangerAreaResidentService.getById(Func.toLong(id));
+            if (Func.notNull(entity)) {
+                LambdaQueryWrapper<DamageTransferPersonInfoEntity> wrapper = Wrappers.<DamageTransferPersonInfoEntity>query().lambda();
+                wrapper.eq(DamageTransferPersonInfoEntity::getWarnId, dto.getWarnId());
+                wrapper.eq(DamageTransferPersonInfoEntity::getPersonId, entity.getPersonId());
+                wrapper.eq(DamageTransferPersonInfoEntity::getPersonName, entity.getPersonName());
+                wrapper.last("limit 1");
+                DamageTransferPersonInfoEntity detail = damageTransferPersonService.getOne(wrapper);
+                if (Func.notNull(detail)) {
+                    detail.setRemark(dto.getRemark());
+                    detail.setKeepPhotos(dto.getKeepPhotos());
+                    damageTransferPersonService.updateById(detail);
+                } else {
+                    detail = new DamageTransferPersonInfoEntity();
+                    detail.setWarnId(dto.getWarnId());
+                    detail.setPersonId(entity.getPersonId());
+                    detail.setPersonName(entity.getPersonName());
+                    detail.setRemark(dto.getRemark());
+                    detail.setKeepPhotos(dto.getKeepPhotos());
+                    damageTransferPersonService.save(detail);
                 }
             }
         }
+
+//        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);
     }
 
@@ -126,4 +158,34 @@ public class YjxtPublicDataController extends BladeController {
         }
         return R.status(true);
     }
+
+
+    @GetMapping("/resident/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("参数错误");
+        }
+        LambdaQueryWrapper<DangerAreaResidentInfoEntity> wrapper = Wrappers.<DangerAreaResidentInfoEntity>query().lambda();
+        wrapper.eq(DangerAreaResidentInfoEntity::getPersonId, dto.getPersonId());
+        if(Func.notNull(dto.getPersonName())){
+            wrapper.eq(DangerAreaResidentInfoEntity::getPersonName,dto.getPersonName());
+        }
+        wrapper.last("limit 1");
+        DangerAreaResidentInfoEntity entity=dangerAreaResidentService.getOne(wrapper);
+        if (Func.isNull(entity)){
+            return R.data(new ArrayList<>(0));
+        }
+        if (0 ==  entity.getIsHouseholder()){
+            dto.setPersonName(null);
+            dto.setPersonId(entity.getHouseholderId());
+        }
+        List<DangerAreaResidentInfoEntity> list = dangerAreaResidentService.getFamilyMembers(dto);
+        return R.data(list);
+    }
+
 }

+ 176 - 0
src/main/java/org/springblade/utils/HttpRequestUtil.java

@@ -0,0 +1,176 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期: 2022/11/9
+ */
+package org.springblade.utils;
+
+import cn.hutool.core.util.CharsetUtil;
+import cn.hutool.http.ContentType;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.http.HttpStatus;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springblade.core.log.exception.ServiceException;
+
+import java.util.Map;
+
+/**
+ * 创建日期: 2022/11/9
+ * Title: 文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author DSH
+ * @mender:(文件的修改者,文件创建者之外的人)
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Slf4j
+public class HttpRequestUtil {
+
+	/**
+	 * 功能: GET请求
+	 * 作者: DSH
+	 * 创建日期: 2022/11/09
+	 * @param interfaceName 接口名称
+	 * @param url 接口地址
+	 * @param headers 请求头
+	 * @param paramMap 接口入参
+	 * @param nTimeOut 超时时间,单位:毫秒
+	 * @return: com.alibaba.fastjson.JSONObject
+	 */
+	public static JSONObject doHttpGetRequest(String interfaceName, String url, Map<String, String> headers, Map<String, Object> paramMap, int nTimeOut) {
+		log.info("【{}】接口地址:{},参数:{}", interfaceName, url, paramMap);
+		HttpResponse response = HttpRequest.get(url)
+			.form(paramMap)
+			.addHeaders(headers)
+			.timeout(nTimeOut)
+			.execute();
+		if (response.getStatus() == HttpStatus.HTTP_OK) {
+			String body = response.body();
+			log.info("【{}】接口响应:{}", interfaceName, body);
+			if (StringUtils.isNotBlank(body)) {
+				JSONObject result = JSONObject.parseObject(body);
+				if (result.getIntValue("code") != HttpStatus.HTTP_OK) {
+					throw new ServiceException(result.getString("msg"));
+				}
+				return result;
+			}
+		} else {
+			log.error("【{}】请求异常,Http状态码:{}", interfaceName, response.getStatus());
+			throw new ServiceException("请求异常,Http状态码:"+ response.getStatus());
+		}
+		return null;
+	}
+
+	/**
+	 * 功能: POST请求
+	 * 作者: DSH
+	 * 创建日期: 2022/11/09
+	 * @param interfaceName 接口名称
+	 * @param url 接口地址
+	 * @param headers 请求头
+	 * @param paramMap 接口入参
+	 * @param nTimeOut 超时时间,单位:毫秒
+	 * @return: com.alibaba.fastjson.JSONObject
+	 */
+	public static JSONObject doHttpPostRequest(String interfaceName, String url, Map<String, String> headers, Map<String, Object> paramMap, int nTimeOut) {
+		log.info("【{}】接口地址:{},参数:{}", interfaceName, url, paramMap);
+		HttpResponse response = HttpRequest.post(url)
+			//.contentType("application/json;charset=utf-8")
+			.contentType(ContentType.JSON.toString(CharsetUtil.CHARSET_UTF_8))
+			.body(paramMap == null ? null : JSONObject.toJSONString(paramMap))
+			.addHeaders(headers)
+			.timeout(nTimeOut)
+			.execute();
+		if (response.getStatus() == HttpStatus.HTTP_OK) {
+			String body = response.body();
+			log.info("【{}】接口响应:{}", interfaceName, body);
+			if (StringUtils.isNotBlank(body)) {
+				JSONObject result = JSONObject.parseObject(body);
+				if (result.getIntValue("code") != HttpStatus.HTTP_OK) {
+					throw new ServiceException(result.getString("msg"));
+				}
+				return result;
+			}
+		} else {
+			log.error("【{}】请求异常,Http状态码:{}", interfaceName, response.getStatus());
+			throw new ServiceException("请求异常,Http状态码:"+ response.getStatus());
+		}
+		return null;
+	}
+
+	/**
+	 *  POST请求 ,按JSON字符串传入BODY
+	 * @param interfaceName
+	 * @param url
+	 * @param headers
+	 * @param paramMap
+	 * @param nTimeOut
+	 * @return
+	 */
+	public static JSONObject doHttpPostRequest(String interfaceName, String url, Map<String, String> headers, String paramMap, int nTimeOut) {
+		log.info("【{}】接口地址:{},参数:{}", interfaceName, url, paramMap);
+		HttpResponse response = HttpRequest.post(url)
+//			.contentType("application/json;charset=utf-8")
+			.contentType(ContentType.JSON.toString(CharsetUtil.CHARSET_UTF_8))
+			.body(paramMap)
+			.addHeaders(headers)
+			.timeout(nTimeOut)
+			.execute();
+		if (response.getStatus() == HttpStatus.HTTP_OK) {
+			String body = response.body();
+			log.info("【{}】接口响应:{}", interfaceName, body);
+			if (StringUtils.isNotBlank(body)) {
+				JSONObject result = JSONObject.parseObject(body);
+//				if (result.getIntValue("code") != HttpStatus.HTTP_OK) {
+//					throw new ServiceException(result.getString("msg"));
+//				}
+				return result;
+			}
+		} else {
+			log.error("【{}】请求异常,Http状态码:{}", interfaceName, response.getStatus());
+			throw new ServiceException("请求异常,Http状态码:"+ response.getStatus());
+		}
+		return null;
+	}
+
+
+	/**
+	 * 功能: POST请求
+	 * 作者: DSH
+	 * 创建日期: 2022/11/09
+	 * @param interfaceName 接口名称
+	 * @param url 接口地址
+	 * @param headers 请求头
+	 * @param paramMap 接口入参
+	 * @param nTimeOut 超时时间,单位:毫秒
+	 * @return: com.alibaba.fastjson.JSONObject
+	 */
+	public static JSONObject doHttpPostSubmitForm(String interfaceName, String url, Map<String, String> headers, Map<String, Object> paramMap, int nTimeOut) {
+		log.info("【{}】接口地址:{},参数:{}", interfaceName, url, paramMap);
+		HttpResponse response = HttpRequest.post(url)
+			.form(paramMap)
+			.addHeaders(headers)
+			.timeout(nTimeOut)
+			.execute();
+		if (response.getStatus() == HttpStatus.HTTP_OK) {
+			String body = response.body();
+			log.info("【{}】接口响应:{}", interfaceName, body);
+			if (StringUtils.isNotBlank(body)) {
+				JSONObject result = JSONObject.parseObject(body);
+				if (result.getIntValue("code") != HttpStatus.HTTP_OK) {
+					throw new ServiceException(result.getString("msg"));
+				}
+				return result;
+			}
+		} else {
+			log.error("【{}】请求异常,Http状态码:{}", interfaceName, response.getStatus());
+			throw new ServiceException("请求异常,Http状态码:"+ response.getStatus());
+		}
+		return null;
+	}
+
+}

+ 7 - 6
src/main/resources/application-dev.yml

@@ -2,10 +2,10 @@
 spring:
   redis:
     ##redis 单机环境配置
-    host: 172.31.1.228
+    host: 172.31.1.154
     port: 6379
     password:  Dh@82828800
-    database: 2
+    database: 0
     ssl: false
     ##redis 集群环境配置
     #cluster:
@@ -13,9 +13,9 @@ spring:
     #  commandTimeout: 5000
   datasource:
     # MySql
-    url: jdbc:mysql://172.31.1.233:3306/shzhjcyjptywxt?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true
+    url: jdbc:mysql://172.31.1.154:3306/shzhjcyjptywxt?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true
     username: root
-    password: Dh@82828800
+    password: 1QAZ!2wsx@
 
     # PostgreSQL
     #url: jdbc:postgresql://127.0.0.1:5432/bladex_boot
@@ -35,7 +35,7 @@ spring:
   #    password: ZGXXXT2022
 
   kafka:
-    bootstrap-servers: 172.31.1.228:9092
+    bootstrap-servers: 172.31.1.154:9092
     producer:
       retries: 0
       batch-size: 16384
@@ -43,7 +43,7 @@ spring:
       key-serializer: org.apache.kafka.common.serialization.StringSerializer
       value-serializer: org.apache.kafka.common.serialization.StringSerializer
     consumer:
-      group-id: kafka-ywxt-nm
+      group-id: kafka-shzhjcyjptywxt
       # 手动提交
       enable-auto-commit: false
       auto-offset-reset: latest
@@ -87,6 +87,7 @@ spring:
     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
+    etl-server-url: http://localhost:40005/galaxy-business/warn/detail/
 export-config:
   workdir: D:\\tmp\\export
   equipment-info-template: equipment-template.xlsx

+ 28 - 20
src/main/resources/application-test.yml

@@ -2,10 +2,10 @@
 spring:
   redis:
     ##redis 单机环境配置
-    host: 172.31.1.228
+    host: 127.0.0.1
     port: 6379
     password:  Dh@82828800
-    database: 2
+    database: 0
     ssl: false
     ##redis 集群环境配置
     #cluster:
@@ -13,9 +13,9 @@ spring:
     #  commandTimeout: 5000
   datasource:
     # MySql
-    url: jdbc:mysql://172.31.1.233:3306/shzhjcyjptywxt?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
+    url: jdbc:mysql://127.0.0.1:3306/shzhjcyjptywxt?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true
     username: root
-    password: Dh@82828800
+    password: 1QAZ!2wsx@
 
     # PostgreSQL
     #url: jdbc:postgresql://127.0.0.1:5432/bladex_boot
@@ -35,7 +35,7 @@ spring:
   #    password: ZGXXXT2022
 
   kafka:
-    bootstrap-servers: 172.31.1.228:9092
+    bootstrap-servers: 127.0.0.1:9092
     producer:
       retries: 0
       batch-size: 16384
@@ -43,7 +43,7 @@ spring:
       key-serializer: org.apache.kafka.common.serialization.StringSerializer
       value-serializer: org.apache.kafka.common.serialization.StringSerializer
     consumer:
-      group-id: kafka-ywxt-nm
+      group-id: kafka-shzhjcyjptywxt
       # 手动提交
       enable-auto-commit: false
       auto-offset-reset: latest
@@ -64,25 +64,34 @@ spring:
     topic-etl-river: topic-etl-river-data
     topic-etl-rsvr: topic-etl-rsvr-data
     topic-etl-ground: topic-etl-ground-data
-    topic-etl-promptly-collect:  topic-etl-promptly-collect
+    topic-etl-warn: topic-etl-warn-data
+    topic-etl-promptly-collect: topic-etl-promptly-collect
   apk:
-    qr-url: https://nmwx.dahengsi.com:20001/api/galaxy-business/version/app/qr/url
+    qr-url: http://111.204.228.227:20002/api/galaxy-business/version/app/qr/url
     url: http://111.204.228.227:20002/app/apk
-    save-path: /home/apk
+    save-path: /home/tmp
   task-config:
-    etl-task: false
     warning-check-task: false
-    dept-update-task: false
     test-task: false
+    rain-count-task: false
+    surface-rain-task: false
+    report-task: false
+    rtu-datagram-up-task: false
   warn-config:
-    delay-time: 120
-
+    delay-duration: 120
+    delay-min-duration: 10
+    clock-failure-duration: 60
+    outlier-value: 30
+    missout: 5
+  yjxt:
+    qrdir: /home/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: /home/export
   equipment-info-template: equipment-template.xlsx
   inspection-remainingproblems-template: inspection-remainingproblems-template.xlsx
   inspection-unfinished-template: inspection-unfinished-template.xlsx
-
 ftp-config:
   ip: 172.31.1.199
   port: 2221
@@ -90,18 +99,15 @@ ftp-config:
   password: admin
   workdir: /home/ftp
   targetdir: ANALYSIS/CLDAS
-
 rockdb-config:
   save-path: /home/rockdb
-
-warn-config:
-  missout: 5
-
+region-ver-config:
+  original-ver: v1
+  ver: v8
 #第三方登陆
 social:
   enabled: true
   domain: http://127.0.0.1:1888
-
 #blade配置
 blade:
   #分布式锁配置
@@ -116,3 +122,5 @@ blade:
     remote-mode: true
     upload-domain: http://localhost:8999
     remote-path: /usr/share/nginx/html
+
+

+ 3 - 1
src/main/resources/application.yml

@@ -135,7 +135,7 @@ oss:
   enabled: true
   name: minio
   tenant-mode: true
-  endpoint: http://172.9.0.165:9000
+  endpoint: http://172.31.1.154:9000
   bucket-name: galaxy
   access-key: oss
   secret-key: Oss@2022
@@ -207,6 +207,8 @@ blade:
       - /ywxt-business/public/data/share/yj/transfer/count
       - /yjxt-business/public/rest/transfer/resident/register
       - /yjxt-business/public/rest/dangerarea/resident/register
+      - /yjxt-business/public/rest/resident/family/list
+      - /galaxy-test/test/**
     #授权认证配置
     auth:
       - method: ALL