suntianwu 3 years atrás
parent
commit
9fad2dc457

+ 2 - 2
src/main/java/com/iden/bms/controller/TraceController.java

@@ -68,8 +68,8 @@ public class TraceController {
     @ApiOperation(value = "使用上传图像获取目标轨迹列表(地图打点划线) ")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(paramType = "query", name = "imageNames", value = "图像名称,多个用逗号分割"),
-            @ApiImplicitParam(paramType = "query", name = "beginTime", value = "开始时间(yyyy-MM-dd HH:mm:ss)"),
-            @ApiImplicitParam(paramType = "query", name = "endTime", value = "结束时间(yyyy-MM-dd HH:mm:ss)")
+            @ApiImplicitParam(paramType = "query", name = "beginTime", value = "开始时间(yyyy-MM-dd)"),
+            @ApiImplicitParam(paramType = "query", name = "endTime", value = "结束时间(yyyy-MM-dd)")
 
     })
     public Result<List<TraceVO>> listUploadImagesTrace(HttpServletRequest request, @RequestHeader(value = "token") String token,

+ 35 - 1
src/main/java/com/iden/bms/controller/WarningStaController.java

@@ -10,6 +10,7 @@ import com.iden.common.util.WebPageUtils;
 
 import com.iden.common.vo.PageReqVO;
 import com.iden.common.vo.UserLoginedConvertVO;
+import com.iden.common.vo.WarningPersonVO;
 import com.iden.common.vo.WarningStaVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -101,5 +102,38 @@ public class WarningStaController {
             return PageResult.error( "获取列表失败");
         }
     }
-    
+
+    @GetMapping("/listWarningPersonbyCommunity")
+    @ApiOperation(value = "根据小区查询预警人员列表分页 ")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(paramType = "query", name = "type", value = "预警类型,1 陌生人员预警 2重点人员预警 3常住人员预警 4昼伏夜出人员预警"),
+            @ApiImplicitParam(paramType = "query", name = "communityId", value = "小区ID"),
+            @ApiImplicitParam(paramType = "query", name = "nameOrCred", value = "名称/身份证"),
+            @ApiImplicitParam(paramType = "query", name = "populationType", value = "人口类型"),
+            @ApiImplicitParam(paramType = "query", name = "crowdId", value = "人群类型ID"),
+            @ApiImplicitParam(paramType = "query", name = "beginDate", value = "开始时间"),
+            @ApiImplicitParam(paramType = "query", name = "endDate", value = "结束时间")
+
+    })
+    public PageResult<List<WarningPersonVO>> listWarningPersonbyCommunity(HttpServletRequest request, @RequestHeader(value = "token") String token,
+                                                                          @RequestParam(value = "type", required = true) String type,
+                                                                          @RequestParam(value = "communityId", required = true) Long communityId,
+                                                                          @RequestParam(value = "nameOrCred", required = false) String nameOrCred,
+                                                                          @RequestParam(value = "populationType", required = false) String populationType,
+                                                                          @RequestParam(value = "crowdId", required = false) Long crowdId,
+                                                                          @RequestParam(value = "beginDate", required = false) String beginDate,
+                                                                          @RequestParam(value = "endDate", required = false) String endDate,
+                                                                          PageReqVO pageReqVo){
+        try {
+            UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
+            IPage<WarningPersonVO> pageResponse = this.warningStaService.listWarningPersonbyCommunity(type,communityId,nameOrCred,populationType,crowdId,beginDate,endDate,loginUser ,pageReqVo);
+            return PageResult.success(pageResponse.getRecords(),pageResponse.getCurrent(),pageResponse.getSize(),pageResponse.getTotal());
+        }catch (BDException e) {
+            log.error("根据小区查询预警人员列表查询-分页列表出现异常",e);
+            return  PageResult.error(e.getMessage());
+        } catch (Exception e) {
+            log.error("预警管理: 根据小区查询预警人员列表查询出现异常",e);
+            return PageResult.error( "获取列表失败");
+        }
+    }
 }

+ 3 - 3
src/main/java/com/iden/bms/service/TraceService.java

@@ -83,11 +83,11 @@ public class TraceService {
     public List<TraceVO> listUploadImagesTrace(String imageNames, String beginTime, String endTime, UserLoginedConvertVO loginUser) {
         Date dateBegin = null;
         if(StringUtils.isNotEmpty(beginTime)){
-            dateBegin  = DateUtils.strToDate(beginTime,"yyyy-MM-dd HH:mm:ss");
+            dateBegin  = DateUtils.strToDate(beginTime,"yyyy-MM-dd");
         }
         Date dateEnd = null;
         if(StringUtils.isNotEmpty(endTime)){
-            dateEnd  = DateUtils.strToDate(endTime,"yyyy-MM-dd HH:mm:ss");
+            dateEnd  = DateUtils.strToDate(endTime,"yyyy-MM-dd");
         }
 
         if(imageNames.endsWith(",")) {
@@ -136,7 +136,7 @@ public class TraceService {
                 if (cameraImageFiles != null && cameraImageFiles.length > 0){
                     for (File cameraImageFile : cameraImageFiles){
                         String photographTime = cameraImageFile.getName().substring(0, cameraImageFile.getName().indexOf("_"));
-                        Date photographDate = DateUtils.strToDate(photographTime,"yyyyMMddHHmmss");
+                        Date photographDate = DateUtils.strToDate(photographTime.substring(0,8),"yyyyMMdd");
                         if(dateBegin != null && photographDate.before(dateBegin)){
                             continue;
                         }

+ 91 - 6
src/main/java/com/iden/bms/service/WarningStaService.java

@@ -5,12 +5,14 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.iden.common.entity.IdenWarningSta;
-import com.iden.common.service.IdenWarningStaService;
+import com.iden.common.entity.*;
+import com.iden.common.enums.PersonTypeEnum;
+import com.iden.common.enums.PopulationTypeEnum;
+import com.iden.common.enums.StrangerTypeEnum;
+import com.iden.common.enums.WarningTypeEnum;
+import com.iden.common.service.*;
 
-import com.iden.common.vo.WarningStaVO;
-import com.iden.common.vo.PageReqVO;
-import com.iden.common.vo.UserLoginedConvertVO;
+import com.iden.common.vo.*;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
@@ -26,8 +28,17 @@ import java.util.List;
 @Service
 public class WarningStaService {
 
+    @Resource
+    private IdenPersonService idenPersonService;
     @Resource
     private IdenWarningStaService idenWarningStaService;
+    @Resource
+    private IdenWarningPersonService idenWarningPersonService;
+
+    @Resource
+    private IdenPersonCrowdRefService idenPersonCrowdRefService;
+    @Resource
+    private IdenCrowdService idenCrowdService;
 
     public Integer countCommunity(String type,String district, String subdistrict, String communityName, String beginDate, String endDate, UserLoginedConvertVO loginUser) {
         QueryWrapper<IdenWarningSta> queryWrapper = new QueryWrapper<>();
@@ -59,7 +70,7 @@ public class WarningStaService {
             IPage<IdenWarningSta> page = new Page<>(pageReqVo.getCurrent(), pageReqVo.getPageSize());
             QueryWrapper<IdenWarningSta> queryWrapper = new QueryWrapper<>();
             queryWrapper.lambda().eq(IdenWarningSta::getType,type)
-                    .like(StrUtil.isNotEmpty(communityName),IdenWarningSta::getCommunityName,communityName)
+                    .like(StrUtil.isNotEmpty(communityName), IdenWarningSta::getCommunityName,communityName)
                     .eq(StrUtil.isNotEmpty(district),IdenWarningSta::getDistrict,district)
                     .eq(StrUtil.isNotEmpty(subdistrict),IdenWarningSta::getSubdistrict,subdistrict)
                     .ge(StrUtil.isNotEmpty(beginDate),IdenWarningSta::getDataDate,beginDate)
@@ -84,6 +95,7 @@ public class WarningStaService {
                 pageRes.getRecords().forEach(item -> {
                     WarningStaVO resVO = new WarningStaVO();
                     BeanUtils.copyProperties(item,resVO);
+                    resVO.setTypeName(WarningTypeEnum.getValueToName(resVO.getType()));
                     list.add(resVO);
                 });
                 results.setRecords(list);
@@ -92,4 +104,77 @@ public class WarningStaService {
     }
 
 
+    /**
+     * 根据小区查询预警人员列表分页
+     * @return
+     */
+    public IPage<WarningPersonVO> listWarningPersonbyCommunity(String type,Long communityId, String nameOrCred, String populationType, Long crowdId, String beginDate, String endDate, UserLoginedConvertVO loginUser, PageReqVO pageReqVo) {
+        QueryWrapper<IdenPerson> queryWrapper0 = new QueryWrapper<>();
+        queryWrapper0.lambda().eq(StrUtil.isNotEmpty(populationType),IdenPerson::getPopulationType,populationType)
+                .and(StrUtil.isNotEmpty(nameOrCred),wrapper -> wrapper.like(IdenPerson::getName,nameOrCred)
+                .or().like(IdenPerson::getCredentialsCode,nameOrCred));
+        if (crowdId != null) {
+            queryWrapper0.apply(" EXISTS ( select dev_code from iden_person_crowd_ref ipcr where ipcr.person_id = iden_person.id  and ipcr.crowd_id  = " + crowdId + ")");
+        }
+        List<IdenPerson> listIdenPerson = idenPersonService.list(queryWrapper0);
+        List<Long> listIdenPersonId = new ArrayList<>();
+        if(CollUtil.isNotEmpty(listIdenPerson)){
+            listIdenPerson.forEach(item->{
+                listIdenPersonId.add(item.getId());
+            });
+        }
+
+        IPage<IdenWarningPerson> page = new Page<>(pageReqVo.getCurrent(), pageReqVo.getPageSize());
+        QueryWrapper<IdenWarningPerson> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(IdenWarningPerson::getType,type).eq(IdenWarningPerson::getCommunityId,communityId)
+                .ge(StrUtil.isNotEmpty(beginDate),IdenWarningPerson::getDataDate,beginDate)
+                .le(StrUtil.isNotEmpty(endDate),IdenWarningPerson::getDataDate,endDate)
+                .in(CollUtil.isNotEmpty(listIdenPersonId),IdenWarningPerson::getPersonId,listIdenPersonId)
+                .orderByAsc(IdenWarningPerson::getId);
+
+        IPage<IdenWarningPerson> pageRes = this.idenWarningPersonService.page(page, queryWrapper);
+        IPage<WarningPersonVO> results = new Page<>(pageRes.getCurrent(),pageRes.getSize(),pageRes.getTotal());
+        if(CollUtil.isNotEmpty(pageRes.getRecords())){
+            List<WarningPersonVO> list = new ArrayList<>();
+            pageRes.getRecords().forEach(item -> {
+                WarningPersonVO resVO = new WarningPersonVO();
+                BeanUtils.copyProperties(item,resVO);
+                resVO.setTypeName(WarningTypeEnum.getValueToName(resVO.getType()));
+                resVO.setStrangerTypeName(StrangerTypeEnum.getValueToName(resVO.getStrangerType()));
+
+                Long personId = resVO.getPersonId();
+                if (personId != null) {
+                    IdenPerson idenPerson = this.idenPersonService.getById(personId);
+                    PersonVO personVO = new PersonVO();
+                    BeanUtils.copyProperties(idenPerson,personVO);
+                    personVO.setPopulationTypeName(PopulationTypeEnum.getValueToName(personVO.getPopulationType()));
+                    personVO.setTypeName(PersonTypeEnum.getValueToName(personVO.getType()));
+
+                    QueryWrapper<IdenPersonCrowdRef> queryWrapper1 = new QueryWrapper<>();
+                    queryWrapper1.lambda().eq(IdenPersonCrowdRef::getPersonId,personVO.getId());
+                    List<IdenPersonCrowdRef> listIdenPersonCrowdRef = idenPersonCrowdRefService.list(queryWrapper1);
+                    StringBuilder sb = new StringBuilder();
+                    if (CollUtil.isNotEmpty(listIdenPersonCrowdRef)) {
+                        for(IdenPersonCrowdRef idenPersonCrowdRef : listIdenPersonCrowdRef){
+                            IdenCrowd idenCrowd = idenCrowdService.getById(idenPersonCrowdRef.getCrowdId());
+                            if(idenCrowd != null) {
+                                sb.append(idenCrowd.getName()).append(",");
+                            }
+                        }
+                    }
+                    String crowdName = sb.toString();
+                    if(crowdName != null && crowdName.endsWith(",")) {
+                        crowdName = crowdName.substring(0, crowdName.length() - 1);
+                    }
+                    personVO.setCrowdName(crowdName);
+                    resVO.setPersonVO(personVO);
+                }
+                list.add(resVO);
+            });
+            results.setRecords(list);
+        }
+        return results;
+    }
+
+
 }

+ 48 - 0
src/main/java/com/iden/common/enums/StrangerTypeEnum.java

@@ -0,0 +1,48 @@
+package com.iden.common.enums;
+
+
+import cn.hutool.core.util.StrUtil;
+
+/**
+ * @Author:java
+ * @Date: 2021/05/27
+ */
+public enum StrangerTypeEnum {
+    /**
+     * 陌生人员类型
+     */
+    STRANGER("1","陌生人"),
+    NO_REGISTER("2","疑似未登记住户");
+    private String value;
+    private String name;
+    StrangerTypeEnum(String value, String name) {
+        this.value = value;
+        this.name = name;
+    }
+    public String getValue() {
+        return value;
+    }
+
+    public static String getValueToName(String value){
+        if (StrUtil.isEmpty(value)){
+            return null;
+        }
+
+        String names = "";
+        String[] types = value.split(",");
+        if (types.length > 0){
+            for(String type : types){
+                if (STRANGER.getValue().equals(type)){
+                    names += STRANGER.name + ",";
+                } else if (NO_REGISTER.getValue().equals(type)){
+                    names += NO_REGISTER.name + ",";
+                }
+            }
+        }
+        if(names.endsWith(",")) {
+            names = names.substring(0,names.length() - 1);
+        }
+      return names;
+
+    }
+}

+ 54 - 0
src/main/java/com/iden/common/enums/WarningTypeEnum.java

@@ -0,0 +1,54 @@
+package com.iden.common.enums;
+
+
+import cn.hutool.core.util.StrUtil;
+
+/**
+ * @Author:java
+ * @Date: 2021/05/27
+ */
+public enum WarningTypeEnum {
+    /**
+     * 预警类型
+     */
+    STRANGER("1","陌生人员预警"),
+    KEYNOTE("2","重点人员预警"),
+    RESIDENT("3","常住人员预警"),
+    EVENT_COMMING("4","昼伏夜出人员预警");
+    private String value;
+    private String name;
+    WarningTypeEnum(String value, String name) {
+        this.value = value;
+        this.name = name;
+    }
+    public String getValue() {
+        return value;
+    }
+
+    public static String getValueToName(String value){
+        if (StrUtil.isEmpty(value)){
+            return null;
+        }
+
+        String names = "";
+        String[] types = value.split(",");
+        if (types.length > 0){
+            for(String type : types){
+                if (STRANGER.getValue().equals(type)){
+                    names += STRANGER.name + ",";
+                } else if (KEYNOTE.getValue().equals(type)){
+                    names += KEYNOTE.name + ",";
+                } else if (RESIDENT.getValue().equals(type)){
+                    names += RESIDENT.name + ",";
+                } else if (EVENT_COMMING.getValue().equals(type)){
+                    names += EVENT_COMMING.name + ",";
+                }
+            }
+        }
+        if(names.endsWith(",")) {
+            names = names.substring(0,names.length() - 1);
+        }
+      return names;
+
+    }
+}

+ 96 - 0
src/main/java/com/iden/common/vo/WarningPersonVO.java

@@ -0,0 +1,96 @@
+package com.iden.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 预警人员表(IdenWarningPerson)实体类
+ *
+ * @author makejava
+ * @since 2021-12-27 12:54:39
+ */
+
+@Data
+@ApiModel(value = "预警人员表", description = "")
+public class WarningPersonVO implements Serializable {
+    private static final long serialVersionUID = -29739343678149348L;
+
+    private Long id;
+
+
+    @ApiModelProperty("数据日期")
+    private Date dataDate;
+
+
+    @ApiModelProperty("图像")
+    private String image;
+
+
+    @ApiModelProperty("出现小区id")
+    private Long communityId;
+
+
+    @ApiModelProperty("出现小区编号")
+    private String communityCode;
+
+
+    @ApiModelProperty("出现小区名称")
+    private String communityName;
+
+
+    @ApiModelProperty("出现区域")
+    private String district;
+
+
+    @ApiModelProperty("出现街道")
+    private String subdistrict;
+
+
+    @ApiModelProperty("出现频次")
+    private Integer appearFrequency;
+
+
+    @ApiModelProperty("最早出现时间")
+    private Date earliestAppearTime;
+
+
+    @ApiModelProperty("预警类型,1 陌生人员预警 2重点人员预警 3常住人员预警 4昼伏夜出人员预警")
+    private String type;
+
+    @ApiModelProperty("预警类型名称,1 陌生人员预警 2重点人员预警 3常住人员预警 4昼伏夜出人员预警")
+    private String typeName;
+
+    @ApiModelProperty("陌生人员类型,1陌生人 2疑似未登记住户")
+    private String strangerType;
+
+    @ApiModelProperty("陌生人员类型,1陌生人 2疑似未登记住户")
+    private String strangerTypeName;
+
+    @ApiModelProperty("人员ID")
+    private Long personId;
+
+
+    @ApiModelProperty("连续未出现天数")
+    private Integer continueDisappearDays;
+
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+
+    @ApiModelProperty("createTime")
+    private Date createTime;
+
+
+    @ApiModelProperty("modifyTime")
+    private Date modifyTime;
+
+    @ApiModelProperty("人员VO")
+    private PersonVO personVO;
+
+}