Forráskód Böngészése

内蒙山洪运维系统-应急系统功能模块开发,增加按危险区查询转移人员信息

dylan 2 éve
szülő
commit
45bbf4bf46

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

@@ -6,12 +6,15 @@
  */
 package org.springblade.modules.yjxt.business.transfer.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.models.auth.In;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.modules.yjxt.business.transfer.entity.DamageTransferPersonInfoEntity;
+import org.springframework.format.annotation.DateTimeFormat;
 
+import java.util.Date;
 import java.util.List;
 
 /***
@@ -40,4 +43,41 @@ public class DamageTransferPersonInfoDTO extends DamageTransferPersonInfoEntity
 
     @ApiModelProperty("家庭户转移情况")
     private List<String> familyMembers;
+
+    /**
+     * 危险区ID
+     */
+    @ApiModelProperty(value = "危险区ID")
+    private String dangerAreaPid;
+
+    /**
+     * 查询开始时间
+     */
+    @ApiModelProperty("查询开始时间")
+//    @DateTimeFormat(
+//            pattern = "yyyy-MM-dd HH:mm:ss"
+//    )
+//    @JsonFormat(
+//            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+//    )
+    private String startTime;
+
+    /**
+     * 查询结束时间
+     */
+    @ApiModelProperty("查询结束时间")
+//    @DateTimeFormat(
+//            pattern = "yyyy-MM-dd HH:mm:ss"
+//    )
+//    @JsonFormat(
+//            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+//    )
+    private String endTime;
+
+    /**
+     * 预警等级,100是准备转移,101是立即转移
+     */
+    @ApiModelProperty("预警等级")
+    private String warnLevelCode;
+
 }

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

@@ -6,10 +6,14 @@
  */
 package org.springblade.modules.yjxt.business.warn.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.modules.yjxt.business.warn.entity.OriginalWarningInfoEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
 
 /***
  * Date:2023/11/20
@@ -27,4 +31,40 @@ public class OriginalWarningInfoDTO extends OriginalWarningInfoEntity {
      */
     @ApiModelProperty("危险政区名称")
     private String dangerAreaName;
+
+    /**
+     * 危险区ID
+     */
+    @ApiModelProperty(value = "危险区ID")
+    private String dangerAreaPid;
+
+    /**
+     * 预警等级,100是准备转移,101是立即转移
+     */
+    @ApiModelProperty("预警等级")
+    private String warnLevelCode;
+
+    /**
+     * 查询开始时间
+     */
+    @ApiModelProperty("查询开始时间")
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+    )
+    private Date startTime;
+
+    /**
+     * 查询结束时间
+     */
+    @ApiModelProperty("查询结束时间")
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+    )
+    private Date endTime;
 }

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

@@ -9,6 +9,7 @@ package org.springblade.modules.yjxt.business.warn.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.yjxt.business.warn.dto.OriginalWarningInfoDTO;
 import org.springblade.modules.yjxt.business.warn.entity.OriginalWarningInfoEntity;
 
 import java.util.List;
@@ -24,4 +25,5 @@ import java.util.List;
  */
 public interface OriginalWarningMapper extends BaseMapper<OriginalWarningInfoEntity> {
     List<OriginalWarningInfoEntity> selectPage(IPage<OriginalWarningInfoEntity> page, @Param("entity") OriginalWarningInfoEntity entity);
+    List<OriginalWarningInfoEntity> selectDangerAreaList(@Param("dto") OriginalWarningInfoDTO dto);
 }

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

@@ -59,4 +59,21 @@
         </if>
         order by n.warn_time desc
     </select>
+
+    <select id="selectDangerAreaList" resultMap="rtuWarningInfoEntityResultMap">
+        SELECT w.* FROM data_st_warning_info w
+        LEFT JOIN map_danger_area_info a on a.adcd = w.warn_adcd and a.is_deleted = 0
+        WHERE
+        w.is_deleted = 0
+        <if test="dto.startTime!=null and dto.endTime!=null">
+        and w.warn_time &gt;=  #{dto.startTime} and w.warn_time  &lt;  #{dto.endTime}
+        </if>
+        <if test="dto.warnLevelCode!=null">
+            and w.warn_level_code =#{dto.warnLevelCode}
+        </if>
+        <if test="dto.dangerAreaPid!=null">
+            and a.danger_area_pid = #{dto.dangerAreaPid}
+        </if>
+        order by w.warn_time desc
+    </select>
 </mapper>

+ 5 - 1
src/main/java/org/springblade/modules/yjxt/business/warn/service/IOriginalWarningService.java

@@ -8,8 +8,11 @@ package org.springblade.modules.yjxt.business.warn.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseService;
+import org.springblade.modules.yjxt.business.warn.dto.OriginalWarningInfoDTO;
 import org.springblade.modules.yjxt.business.warn.entity.OriginalWarningInfoEntity;
-import org.springblade.modules.yjxt.business.warn.vo.OriginalWarningInfoVO;
+
+
+import java.util.List;
 
 /***
  * Date:2022/8/24
@@ -22,4 +25,5 @@ import org.springblade.modules.yjxt.business.warn.vo.OriginalWarningInfoVO;
 public interface IOriginalWarningService extends BaseService<OriginalWarningInfoEntity> {
     IPage<OriginalWarningInfoEntity> selectPage(IPage<OriginalWarningInfoEntity> page, OriginalWarningInfoEntity entity);
     String createQr(String warnId);
+    List<OriginalWarningInfoEntity> selectDangerAreaList(OriginalWarningInfoDTO dto);
 }

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

@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.modules.resource.builder.oss.OssBuilder;
+import org.springblade.modules.yjxt.business.warn.dto.OriginalWarningInfoDTO;
 import org.springblade.modules.yjxt.business.warn.entity.OriginalWarningInfoEntity;
 import org.springblade.modules.yjxt.business.warn.mapper.OriginalWarningMapper;
 import org.springblade.modules.yjxt.business.warn.service.IOriginalWarningService;
@@ -21,6 +22,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.io.File;
 import java.io.FileInputStream;
+import java.util.List;
 
 /***
  * Date:2022/8/24
@@ -69,4 +71,9 @@ public class OriginalWarningServiceImpl extends BaseServiceImpl<OriginalWarningM
         }
         return null;
     }
+
+    @Override
+    public List<OriginalWarningInfoEntity> selectDangerAreaList(OriginalWarningInfoDTO dto) {
+        return baseMapper.selectDangerAreaList(dto);
+    }
 }

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

@@ -157,9 +157,6 @@ public class MessageHandler {
             wrapper.eq(RtuInfoEntity::getRtuCode, rainDataEntity.getRtuCode());
             long count = rtuBaseInfoService.count(wrapper);
             if (count > 0) {
-//				if (rainDataEntity.getRtuCode().equals("01751240")) {
-//					log.info("01751240");
-//				}
                 //更新数据
                 rtuDataRainService.updateRainInfo(rainDataEntity);
                 //写入历史数据

+ 75 - 9
src/main/java/org/springblade/share/DataShareController.java

@@ -22,6 +22,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.system.entity.User;
 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.dto.DangerAreaCheckInfoDTO;
 import org.springblade.modules.yjxt.business.check.entity.DangerAreaCheckInfoEntity;
 import org.springblade.modules.yjxt.business.check.service.IDangerAreaCheckService;
@@ -30,12 +32,16 @@ import org.springblade.modules.yjxt.business.resident.service.IDangerAreaResiden
 import org.springblade.modules.yjxt.business.transfer.dto.DamageTransferPersonInfoDTO;
 import org.springblade.modules.yjxt.business.transfer.entity.DamageTransferPersonInfoEntity;
 import org.springblade.modules.yjxt.business.transfer.service.IDamageTransferPersonService;
+import org.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.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /***
@@ -57,6 +63,8 @@ public class DataShareController extends BladeController {
     private final IDamageTransferPersonService damageTransferPersonService;
     private final IDangerAreaResidentService dangerAreaResidentService;
     private final IOriginalWarningService warningService;
+    private final IDangerAreaService dangerAreaService;
+    private final IOriginalWarningService originalWarningService;
 
     /**
      * 巡查巡检列表查询,不分页
@@ -121,6 +129,73 @@ public class DataShareController extends BladeController {
 
     /**
      * 灾害转移统计查询
+     * 根据危险区统计
+     */
+    @GetMapping("/yj/transfer/dangerarea/count")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "dangerAreaPid", value = "危险区ID", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "startTime", value = "预警开始时间", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "endTime", value = "预警结束时间", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "warnLevelCode", value = "预警等级", paramType = "query", dataType = "string"),
+    })
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "不分页", notes = "")
+    public R<List<JSONObject>> yjTransferCountByDangerarea(DamageTransferPersonInfoDTO dto) {
+        if (Func.isNull(dto.getDangerAreaPid())) {
+            return R.fail("危险区ID参数错误");
+        }
+        if (Func.isNull(dto.getStartTime()) || Func.isNull(dto.getEndTime())) {
+            return R.fail("查询时间参数错误");
+        }
+        if (Func.isNull(dto.getWarnLevelCode())) {
+            return R.fail("预警等级参数错误");
+        }
+        List<JSONObject> datas = new ArrayList<>();
+        OriginalWarningInfoDTO originalWarningInfoDTO = new OriginalWarningInfoDTO();
+        originalWarningInfoDTO.setDangerAreaPid(dto.getDangerAreaPid());
+        originalWarningInfoDTO.setWarnLevelCode(dto.getWarnLevelCode());
+        LocalDateTime startDateTime = LocalDateTime.parse(dto.getStartTime(), DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+        originalWarningInfoDTO.setStartTime(Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant()));
+        LocalDateTime endDateTime = LocalDateTime.parse(dto.getEndTime(), DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+        originalWarningInfoDTO.setEndTime(Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant()));
+        List<OriginalWarningInfoEntity> originalWarningInfoEntityList= originalWarningService.selectDangerAreaList(originalWarningInfoDTO);
+        if (Func.notNull(originalWarningInfoEntityList)){
+            for (OriginalWarningInfoEntity entity:originalWarningInfoEntityList){
+                JSONObject vo = new JSONObject();
+                vo.put("warnId",entity.getWarnId());
+                vo.put("warnTime",entity.getWarnTime().getTime());
+                DangerAreaResidentInfoDTO residentInfoDTO=new DangerAreaResidentInfoDTO();
+                residentInfoDTO.setDangerAreaCode(entity.getWarnAdcd());
+                long totalTransferPerson =dangerAreaResidentService.residentCount(residentInfoDTO);
+                DamageTransferPersonInfoDTO transferPersonInfoDTO = new DamageTransferPersonInfoDTO();
+                transferPersonInfoDTO.setWarnId(entity.getWarnId());
+                long safetyTransferPerson = damageTransferPersonService.transferPersonCount(transferPersonInfoDTO);
+                vo.put("totalTransferPerson",totalTransferPerson);
+                vo.put("safetyTransferPerson",safetyTransferPerson);
+                JSONArray personList = new JSONArray();
+                LambdaQueryWrapper<DamageTransferPersonInfoEntity> wrapper2 = Wrappers.<DamageTransferPersonInfoEntity>query().lambda();
+                wrapper2.eq(DamageTransferPersonInfoEntity::getWarnId, entity.getWarnId());
+                List<DamageTransferPersonInfoEntity> transferPersonInfoEntityList = damageTransferPersonService.list(wrapper2);
+                if (Func.notNull(transferPersonInfoEntityList)){
+                    for (DamageTransferPersonInfoEntity transferPersonInfoEntity:transferPersonInfoEntityList){
+                        JSONObject person = new JSONObject();
+                        person.put("personName",transferPersonInfoEntity.getPersonName());
+                        person.put("recordTime",transferPersonInfoEntity.getCreateTime().getTime());
+                        personList.add(person);
+                    }
+                }
+                vo.put("transferPersonList",personList);
+                datas.add(vo);
+            }
+        }
+        return R.data(datas);
+    }
+
+    /**
+     * 灾害转移统计查询
+     * 根据预警ID查询
+     * @param dto
+     * @return
      */
     @GetMapping("/yj/transfer/count")
     @ApiImplicitParams({
@@ -138,23 +213,17 @@ public class DataShareController extends BladeController {
         if (Func.isNull(warningInfoEntity)){
             return R.fail("预警数据空");
         }
-
         List<JSONObject> datas = new ArrayList<>(1);
-
         JSONObject vo = new JSONObject();
         DangerAreaResidentInfoDTO residentInfoDTO=new DangerAreaResidentInfoDTO();
         residentInfoDTO.setDangerAreaCode(warningInfoEntity.getWarnAdcd());
         long totalTransferPerson =dangerAreaResidentService.residentCount(residentInfoDTO);
-
         DamageTransferPersonInfoDTO transferPersonInfoDTO = new DamageTransferPersonInfoDTO();
         transferPersonInfoDTO.setWarnId(dto.getWarnId());
         long safetyTransferPerson = damageTransferPersonService.transferPersonCount(transferPersonInfoDTO);
-
         vo.put("totalTransferPerson",totalTransferPerson);
         vo.put("safetyTransferPerson",safetyTransferPerson);
-
         JSONArray personList = new JSONArray();
-
         LambdaQueryWrapper<DamageTransferPersonInfoEntity> wrapper2 = Wrappers.<DamageTransferPersonInfoEntity>query().lambda();
         wrapper2.eq(DamageTransferPersonInfoEntity::getIsDeleted, 0);
         wrapper2.eq(DamageTransferPersonInfoEntity::getWarnId, dto.getWarnId());
@@ -167,11 +236,8 @@ public class DataShareController extends BladeController {
                 personList.add(person);
             }
         }
-
         vo.put("transferPersonList",personList);
-
         datas.add(vo);
-
         return R.data(datas);
     }
 }

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

@@ -205,6 +205,7 @@ blade:
       - /galaxy-business/version/app/qr/url
       - /ywxt-business/public/data/share/yj/check/list
       - /ywxt-business/public/data/share/yj/transfer/count
+      - /ywxt-business/public/data/share/yj/transfer/dangerarea/count
       - /yjxt-business/public/rest/transfer/resident/register
       - /yjxt-business/public/rest/dangerarea/resident/register
       - /yjxt-business/public/rest/resident/family/list