Commit 2f99b98f by 宋珺琪

案件查询案关联人员轨迹上图接口

parent b6e09b95
package com.founder.commonutils.model.newPublicEntity.RyAndAjEntity;
import com.founder.commonutils.model.newPublicEntity.ztypEntity.KsjResultCheck;
import lombok.Data;
import java.io.Serializable;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 案关联人员接口返回格式
*/
@Data
public class AJAndRyResullt implements Serializable {
/**
* 人员信息
*/
private List<TbStXftpNew> tbStXftpNew;
/**
*案件信息
*/
private List<TbStJzyp> tbStJzyps;
/**
* 户籍地(去重后)
*/
private List hjdzd;
/**
* 犯罪状态(去重后)
*/
private Set fzbq;
}
package com.founder.commonutils.model.newPublicEntity.RyAndAjEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_st_jzyp")
@ApiModel(value="案件表", description="")
public class TbStJzyp implements Serializable {
@ApiModelProperty(value = "主键编号")
@TableField("xxzjbh")
private String xxzjbh;
@ApiModelProperty(value = "案件名称")
@TableField("ajmc")
private String ajmc;
@ApiModelProperty(value = "侦查阶段代码(06的以破案其余未破案)")
@TableField("zcjddm")
private String zcjddm;
@ApiModelProperty(value = "是否认定 1已认定 2未认定")
@TableField("state")
private String state;
@ApiModelProperty(value = "周边重点人员数")
@TableField("counts")
private String counts;
@ApiModelProperty(value = "案件编号")
@TableField("asjbh")
private String asjbh;
@ApiModelProperty(value = "接警编号")
@TableField("jjbh")
private String jjbh;
@ApiModelProperty(value = "受理单位名称")
@TableField("sldw_gajgmc")
private String sldwGajgmc;
@ApiModelProperty(value = "创建时间")
@TableField("cjsj")
private String cjsj;
@ApiModelProperty(value = "认定得嫌疑人证件号码")
@TableField("zjhm")
private String zjhm;
@ApiModelProperty(value = "案发开始时间")
@TableField("asjfssj_asjfskssj")
private String asjfssjAsjfskssj;
@ApiModelProperty(value = "案件类别代码")
@TableField("ajlbdm")
private String ajlbdm;
@ApiModelProperty(value = "案件类别代码名称")
@TableField("ajlbdmmc")
private String ajlbdmmc;
/**
* 经纬度
*/
@TableField(exist = false)
private Double dqjd;
@TableField(exist = false)
private Double dqwd;
@TableField(exist = false)
private String asjfsddDzmc;
@TableField(exist = false)
private Date asjfskssj;
@TableField(exist = false)
private Date asjfsjssj;
@TableField(exist = false)
private String jyaq;
}
package com.founder.commonutils.model.newPublicEntity.RyAndAjEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_st_xftp_new")
@ApiModel(value="人员表", description="")
public class TbStXftpNew implements Serializable {
@ApiModelProperty(value = "主键编号")
@TableField("xxzjbh")
private String xxzjbh;
@ApiModelProperty(value = "手机号(技侦)")
@TableField("usernum")
private String usernum;
@ApiModelProperty(value = "证件号码")
@TableField("zjhm")
private String zjhm;
@ApiModelProperty(value = "姓名")
@TableField("xm")
private String xm;
@ApiModelProperty(value = "接警编号")
@TableField("jjbh")
private String jjbh;
@ApiModelProperty(value = "案件编号")
@TableField("asjbh")
private String asjbh;
@ApiModelProperty(value = "常驻时间(分)")
@TableField("tlsc2")
private String tlsc2;
@ApiModelProperty(value = "逃离时间(分)")
@TableField("tlsj")
private String tlsj;
@ApiModelProperty(value = "1已认定 0未认定")
@TableField("state")
private String state;
@ApiModelProperty(value = "抵近距离(米)")
@TableField("distance")
private String distance;
@ApiModelProperty(value = "年龄")
@TableField("age")
private String age;
@ApiModelProperty(value = "性别")
@TableField("xb")
private String xb;
@ApiModelProperty(value = "户籍地")
@TableField("hjd")
private String hjd;
@ApiModelProperty(value = "人员标签多个#号分隔")
@TableField("rybq")
private String rybq;
@ApiModelProperty(value = "案件类别标签多个#号分隔")
@TableField("ajbq")
private String ajbq;
@ApiModelProperty(value = "是否跨区域 1是 0否")
@TableField("ifkqustate")
private String ifkqustate;
@ApiModelProperty(value = "违法犯罪数")
@TableField("wffzcount")
private String wffzcount;
@ApiModelProperty(value = "车牌号多个#号分隔")
@TableField("carnum")
private String carnum;
@ApiModelProperty(value = "人像")
@TableField("rx")
private String rx;
@ApiModelProperty(value = "案件小案标签多个#号分隔")
@TableField("xabq")
private String xabq;
}
...@@ -88,6 +88,14 @@ public class SkTrail extends Model<SkTrail> implements Comparable<SkTrail>{ ...@@ -88,6 +88,14 @@ public class SkTrail extends Model<SkTrail> implements Comparable<SkTrail>{
* 火车、飞机、寄递 出发1/达到2 * 火车、飞机、寄递 出发1/达到2
*/ */
private String status; private String status;
/**
* 案件编号
*/
private String asjbh;
/**
* 证件号码
*/
private String zjhm;
/** /**
* 获取主键值 * 获取主键值
......
package com.founder.publicapi.controller.RyAndAj;
import cn.hutool.core.util.ObjectUtil;
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.founder.commonutils.model.asjEntity.TbStAsj;
import com.founder.commonutils.model.newPublicEntity.MapRestResult;
import com.founder.commonutils.model.newPublicEntity.RyAndAjEntity.AJAndRyResullt;
import com.founder.commonutils.model.newPublicEntity.RyAndAjEntity.TbStJzyp;
import com.founder.commonutils.model.newPublicEntity.RyAndAjEntity.TbStXftpNew;
import com.founder.commonutils.model.newPublicEntity.SkTrail;
import com.founder.commonutils.util.StringUtil;
import com.founder.publicapi.mapper.mysqlMapper.AjMapper;
import com.founder.publicapi.mapper.mysqlMapper.RyMapper;
import com.founder.publicapi.mapper.mysqlMapper.SkTrailMapper;
import com.founder.publicapi.mapper.mysqlMapper.TbStAsjMapper;
import com.founder.publicapi.service.AjService;
import com.founder.publicapi.service.RyService;
import com.founder.publicapi.service.SkTrailService;
import com.founder.servicebase.logs.OperLog;
import com.founder.servicebase.logs.OperationType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import java.lang.reflect.Field;
import java.time.LocalDateTime;
import java.util.*;
@RestController
@RequestMapping("/ryaj")
@Api(tags = "查询案件和关联人员接口")
public class RyAndAjController {
@Autowired
AjService ajService;
@Autowired
RyService ryService;
@Autowired
SkTrailService skTrailService;
@Autowired
RyMapper ryMapper;
@Autowired
AjMapper ajMapper;
@Autowired
TbStAsjMapper tbStAsjMapper;
@Autowired
SkTrailMapper skTrailMapper;
/**
*案件查询
* @param ajmc 案件名称
* @param cbdw 承办单位
* @param bhcx 案件编号
* @param afstartTime 案发开始时间
* @param afendTime 案发结束时间
* @param zcjddm 破案状态侦查阶段代码(06的以破案其余未破案)
* @param state 认定状态 1已认定 2未认定
* @param cjstartTime 创建开始时间
* @param cjendTime 创建结束时间
* @param zjhm 身份证号码 (在人员表里)
* @param ajlbdm 案件类别代码
* @param currentPage 页数
* @param pageSize 个数
* @return
*/
@OperLog(message = "案件查询",operation = OperationType.QUERY)
@ApiOperation(value = "案件查询")
@PostMapping("Ajquery")
public MapRestResult getTaskInfo(@RequestParam(name = "ajmc", required = false) String ajmc,
@RequestParam(name = "cbdw", required = false) String cbdw,
@RequestParam(name = "bhcx", required = false) String bhcx,
@RequestParam(name = "afstartTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime afstartTime,
@RequestParam(name = "afendTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime afendTime,
@RequestParam(name = "zcjddm", required = false) String zcjddm,
@RequestParam(name = "state", required = false) String state,
@RequestParam(name = "cjstartTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime cjstartTime,
@RequestParam(name = "cjendTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime cjendTime,
@RequestParam(name = "zjhm", required = false) String zjhm,
@RequestParam(name = "ajlbdm", required = false) String ajlbdm,
@RequestParam(name = "currentPage", defaultValue = "1") Integer currentPage,
@RequestParam(name = "pageSize", defaultValue = "5") Integer pageSize) {
QueryWrapper<TbStJzyp> wrapper = new QueryWrapper<>();
wrapper.eq(!StringUtil.isEmpty(ajmc),"ajmc", ajmc);
wrapper.eq(!StringUtil.isEmpty(cbdw),"sldw_gajgmc", cbdw);
wrapper.eq(!StringUtil.isEmpty(bhcx),"asjbh", bhcx);
if (ObjectUtil.isNotNull( afstartTime) && ObjectUtil.isNotNull(afendTime)) {
wrapper.apply("asjfssj_asjfskssj between'" + afstartTime.toString() + "' and '" + afendTime.toString() +"'" );
} else if (ObjectUtil.isNotNull( afstartTime)) {
wrapper.apply("asjfssj_asjfskssj >= '" + afstartTime.toString() +"'" );
} else if (ObjectUtil.isNotNull(afendTime)) {
wrapper.apply("asjfssj_asjfskssj <= '" + afendTime.toString() +"'" );
}
wrapper.eq(!StringUtil.isEmpty(zcjddm),"zcjddm", zcjddm);
wrapper.eq(!StringUtil.isEmpty(state),"state", state);
if (ObjectUtil.isNotNull(cjstartTime) && ObjectUtil.isNotNull(cjendTime)) {
wrapper.apply("cjsj between'" + cjstartTime.toString() + "' and '" + cjendTime.toString() +"'" );
} else if (ObjectUtil.isNotNull( cjstartTime)) {
wrapper.apply("cjsj >= '" + cjstartTime.toString() +"'" );
} else if (ObjectUtil.isNotNull(cjendTime)) {
wrapper.apply("cjsj <= '" + cjendTime.toString() +"'" );
}
if (ajlbdm.equals("null")){
ajlbdm="";
}
System.out.println(ajlbdm);
wrapper.eq(!StringUtil.isEmpty(ajlbdm),"ajlbdm", ajlbdm);
if (!StringUtil.isEmpty(zjhm)){
String s = ryService.selectAjbhBySfz(zjhm);
wrapper.eq(!StringUtil.isEmpty(s),"asjbh", s);
}
wrapper.last("ORDER BY state !='1' ,asjfssj_asjfskssj DESC");
Page page = new Page(currentPage,pageSize);
IPage<TbStJzyp> iPage = ajService.page(page,wrapper);
List<TbStJzyp> records = iPage.getRecords();
List<TbStJzyp> resultList = new ArrayList<>();
for (TbStJzyp record :records) {
TbStJzyp stJzyp = new TbStJzyp();
stJzyp.setAjmc(record.getAjmc());
String zcjddm1 = record.getZcjddm();
if (zcjddm1.substring(0,2).equals("06")){
stJzyp.setZcjddm("已破案");
}else {
stJzyp.setZcjddm("未破案");
}
stJzyp.setState(record.getState());
stJzyp.setCounts(record.getCounts());
stJzyp.setAsjbh(record.getAsjbh());
stJzyp.setAjlbdmmc(record.getAjlbdmmc());
stJzyp.setAsjfssjAsjfskssj(record.getAsjfssjAsjfskssj());
stJzyp.setSldwGajgmc(record.getSldwGajgmc());
stJzyp.setCjsj(record.getCjsj());
resultList.add(stJzyp);
}
return new MapRestResult(200,"ok",iPage.getTotal(),resultList);
}
/**
* 案关联人员
* @param asjbh 案事件编号
* @param currentPage
* @param pageSize
* @return
*/
@OperLog(message = "案关联人员",operation = OperationType.QUERY)
@ApiOperation(value = "案关联人员")
@PostMapping("Ryquery")
public MapRestResult selectAsjxxRlt(@RequestParam(name = "asjbh") String asjbh,
@RequestParam(name = "currentPage", defaultValue = "1") Integer currentPage,
@RequestParam(name = "pageSize", defaultValue = "5") Integer pageSize) {
AJAndRyResullt ajAndRyResullt = new AJAndRyResullt();
//人员信息
QueryWrapper<TbStXftpNew> wrapper = new QueryWrapper<>();
wrapper.eq(!StringUtil.isEmpty(asjbh),"asjbh", asjbh);
Page page = new Page(currentPage,pageSize);
IPage<TbStXftpNew> iPage = ryService.page(page,wrapper);
List<TbStXftpNew> rylist = iPage.getRecords();
// 案件信息
QueryWrapper<TbStJzyp> wrapper1 = new QueryWrapper();
wrapper1.eq(!StringUtil.isEmpty(asjbh),"asjbh",asjbh);
List<TbStJzyp> ajlist = ajMapper.selectList(wrapper1);
for (TbStJzyp tb :ajlist) {
QueryWrapper<TbStAsj> wrapper2 = new QueryWrapper<>();
wrapper2.select("ASJFSDD_DQJD", "ASJFSDD_DQWD","asjfsdd_dzmc","asjfssj_asjfskssj","asjfssj_asjfsjssj","jyaq").eq("asjbh",asjbh);
List<TbStAsj> jwd = tbStAsjMapper.selectList(wrapper2);
for (TbStAsj tbStAsj :jwd) {
tb.setDqjd(tbStAsj.getAsjfsddDqjd());
tb.setDqwd(tbStAsj.getAsjfsddDqwd());
tb.setAsjfsddDzmc(tbStAsj.getAsjfsddDzmc());
tb.setAsjfskssj(tbStAsj.getAsjfssjAsjfskssj());
tb.setAsjfsjssj(tbStAsj.getAsjfssjAsjfsjssj());
tb.setJyaq(tbStAsj.getJyaq());
}
}
//当前案下人员户籍地去重后字典
Set hjd = new HashSet();
for (TbStXftpNew tbStXftpNew: rylist){
hjd.add(tbStXftpNew.getHjd());
}
List<Object> list1 = new ArrayList();
Iterator it1 = hjd.iterator();
while (it1.hasNext()){
HashMap<String, String> hjd1 = new HashMap<>();
String next = (String)it1.next();
hjd1.put("value", next);
hjd1.put("text", next);
list1.add(hjd1);
}
// 犯罪特征 (rybq和ajbq)去重后字典
List rybq = new ArrayList();
List ajbq = new ArrayList();
for (TbStXftpNew tbStXftpNew: rylist){
String ry = tbStXftpNew.getRybq();
String aj = tbStXftpNew.getAjbq();
rybq.add(ry);
ajbq.add(aj);
}
List ryaj = new ArrayList();
for (int i = 0; i < rybq.size(); i++) {
ryaj.add(rybq.get(i));
}
for (int i = 0; i < ajbq.size(); i++) {
ryaj.add(ajbq.get(i));
}
Set list = new HashSet();
for (Object o : ryaj) {
if (o.toString().contains("#")){
String[] str1 = o.toString().split("#");
for (int i = 0; i < str1.length; i++) {
HashMap<String, String> map1 = new HashMap<>();
map1.put("value",str1[i]);
map1.put("text",str1[i]);
list.add(map1);
}
}else {
HashMap<String, String> map2 = new HashMap<>();
map2.put("value",o.toString());
map2.put("text",o.toString());
list.add(map2);
}
}
// 组合
ajAndRyResullt.setTbStJzyps(ajlist);
ajAndRyResullt.setTbStXftpNew(rylist);
ajAndRyResullt.setHjdzd(list1);
ajAndRyResullt.setFzbq(list);
// 带回案件信息 、人员信息、当前案下人员户籍地去重后字典、以及犯罪特征 (rybq和ajbq)去重后字典并带上跨区域作案
return new MapRestResult(200,"ok",iPage.getTotal(),ajAndRyResullt);
}
@OperLog(message = "轨迹上图",operation = OperationType.QUERY)
@ApiOperation(value = "轨迹上图")
@PostMapping("gjst")
public MapRestResult selectGjst(@RequestBody TbStXftpNew tbStXftpNew ){
// 基站轨迹 车辆轨迹 人像轨迹类型
// 通过案件编号 证件号码以及号码 手机号、车牌号 、 人像就通过身份证查询
// 对 通过 人证件号码、案件号、号码(手机号、车牌号、证件号) 去查询对应类型的 基站轨迹、车辆轨迹、人像轨迹
// {“jzgj”:[],"kkgj":[],"rxgj":[]} 返回数据格式
HashMap<Object, Object> map = new HashMap<>();
QueryWrapper<SkTrail> wrapper = new QueryWrapper<>();
wrapper.eq("objecttype","jzgj");
wrapper.eq("isdeleted","0");
wrapper.and(wrap -> wrap.eq("asjbh", tbStXftpNew.getAsjbh())
.or()
.eq("zjhm", tbStXftpNew.getZjhm())
.or()
.eq("objectvalue",tbStXftpNew.getUsernum()));
List<SkTrail> jzgj = skTrailMapper.selectList(wrapper);
map.put("jzgj",jzgj);
QueryWrapper<SkTrail> wrapper1 = new QueryWrapper<>();
String[] str = tbStXftpNew.getCarnum().split("#");
for (int i = 0; i < str.length; i++) {
wrapper1.eq("objecttype","kkgj");
wrapper1.eq("isdeleted","0");
String s = str[i];
wrapper1.and(wrapp -> wrapp.eq("objectvalue",s)
.or()
.eq("objectvalue",tbStXftpNew.getUsernum()));
List<SkTrail> kkgj = skTrailMapper.selectList(wrapper1);
map.put("kkgj",kkgj);
}
QueryWrapper<SkTrail> wrapper2 = new QueryWrapper<>();
wrapper2.eq("zjhm", tbStXftpNew.getZjhm());
wrapper2.eq("objecttype","rxgj");
wrapper2.eq("isdeleted","0");
List<SkTrail> rxgj = skTrailMapper.selectList(wrapper2);
map.put("rxgj",rxgj);
return new MapRestResult(200,"ok",map.size(),map);
}
@OperLog(message = "认定功能",operation = OperationType.QUERY)
@ApiOperation(value = "认定功能")
@PostMapping("state")
public MapRestResult isstate(@RequestBody TbStXftpNew tbStXftpNew,
@RequestBody TbStJzyp tbStJzyp){
/* 1.认定和取消认定 将tb_st_xftp_new案件表 state 1已认定 2取消认定 备注:bz字段
2.认定和取消认定 将tb_st_jzyp人员表 state 1已认定 2取消认定
zjhm字段即为认定的人 多个用#号分隔 (认定操作: 如果该案件之前有认定的人、则将人员详情的人加入
取消认定: 将该人从案件的zjhm字段中移除 如果移除后该案件下没有认定的人则将state置为2)*/
return new MapRestResult();
}
}
package com.founder.publicapi.mapper.mysqlMapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.founder.commonutils.model.newPublicEntity.RyAndAjEntity.TbStJzyp;
public interface AjMapper extends BaseMapper<TbStJzyp> {
}
package com.founder.publicapi.mapper.mysqlMapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.founder.commonutils.model.newPublicEntity.RyAndAjEntity.TbStXftpNew;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
@Mapper
@Component
public interface RyMapper extends BaseMapper<TbStXftpNew> {
String selectAjbhBySfz(String zjhm);
}
<?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="com.founder.publicapi.mapper.mysqlMapper.RyMapper">
<select id="selectAjbhBySfz" resultType="java.lang.String">
select asjbh from tb_st_xftp_new where zjhm =#{zjhm}
</select>
</mapper>
\ No newline at end of file
package com.founder.publicapi.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.founder.commonutils.model.newPublicEntity.RyAndAjEntity.TbStJzyp;
public interface AjService extends IService<TbStJzyp> {
}
package com.founder.publicapi.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.founder.commonutils.model.newPublicEntity.RyAndAjEntity.TbStXftpNew;
import java.util.List;
public interface RyService extends IService<TbStXftpNew> {
String selectAjbhBySfz(String zjhm);
}
package com.founder.publicapi.service.serviceimpl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.founder.commonutils.model.newPublicEntity.RyAndAjEntity.TbStJzyp;
import com.founder.publicapi.mapper.mysqlMapper.AjMapper;
import com.founder.publicapi.service.AjService;
import org.springframework.stereotype.Service;
@Service
public class AjServiceImpl extends ServiceImpl<AjMapper,TbStJzyp> implements AjService {
}
package com.founder.publicapi.service.serviceimpl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.founder.commonutils.model.newPublicEntity.RyAndAjEntity.TbStXftpNew;
import com.founder.publicapi.mapper.mysqlMapper.RyMapper;
import com.founder.publicapi.service.RyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class RyServiceImpl extends ServiceImpl<RyMapper,TbStXftpNew> implements RyService {
@Autowired
RyMapper ryMapper;
@Override
public String selectAjbhBySfz(String zjhm) {
return ryMapper.selectAjbhBySfz(zjhm);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment