Commit 6654a569 by liulianglang

在逃分析

parent ebb44e37
......@@ -21,6 +21,7 @@ import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -86,4 +87,20 @@ public class ZtryController {
return reslt;
}
@RequestMapping("/doAnalyseZtry")
public Result doAnalyseZtry(@RequestBody ZtryParam ztryParam){
Result reslt = new Result();
Map<String,Object> map = new HashMap<>();
Map mapResult = new HashMap();
mapResult =ztryService.doAnalyseZtry(ztryParam);
reslt.setData(mapResult);
reslt.setMsg("在逃信息查询成功");
reslt.setStatus("success");
return reslt;
}
}
......@@ -8,6 +8,16 @@ import java.util.Date;
public class ZtryParam extends BaseModel {
private boolean ifzttj;//是否为在逃人员统计
private boolean ifjcyla;//是否为检察院立案
public String getFxtjCx() {
return fxtjCx;
}
public void setFxtjCx(String fxtjCx) {
this.fxtjCx = fxtjCx;
}
private String fxtjCx="1";
private String zbdw_gajgjgdm;//主办单位_公安机关机构代码
private String zbdw_gajgmc;//主办单位_公安机关名称
......@@ -319,6 +329,16 @@ public class ZtryParam extends BaseModel {
private String flag;
private String nld;
private String tpsc;
public String getTpsclx() {
return tpsclx;
}
public void setTpsclx(String tpsclx) {
this.tpsclx = tpsclx;
}
private String tpsclx;
private String hjdszd_gajgjgdm;
private String ztzt;//
private String zp;
......
......@@ -9,4 +9,6 @@ import java.util.Map;
public interface ZtryService {
Map<String, Object> ZtryApiQuery(ZtryParam ztry);
Map<String, Object> ZtryApiByDetail(ZtryParam ztry);
Map<String, Object> doAnalyseZtry(ZtryParam ztryParam);
}
......@@ -21,6 +21,7 @@ import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
......@@ -32,6 +33,347 @@ import static org.elasticsearch.search.sort.SortOrder.DESC;
public class ZtryServiceImpl implements ZtryService {
@Resource
private RestHighLevelClient restHighLevelClient;
private BoolQueryBuilder getBoolZtryfxTjCount(ZtryParam ztry){
BoolQueryBuilder bqXyr = QueryBuilders.boolQuery();
// // 信息删除判断标志
// TermsQueryBuilder termQueryBuilderXxsc = QueryBuilders.termsQuery("v_solr6_tb_xw_zbfzxyr_PS_XXSC_PDBZ", "0");
// bqXyr.must(termQueryBuilderXxsc);
//ssdw
if (StringUtils.isNotEmpty(ztry.getSsdw())) {
// WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("ladwGajgjgdm.keyword", ztry.getSsdw() + "*");
BoolQueryBuilder should = QueryBuilders.boolQuery();
WildcardQueryBuilder hjdzXzqhdm = QueryBuilders.wildcardQuery("hjdzXzqhdm", ztry.getSsdw() + "*");
WildcardQueryBuilder ladwGajgjgdm = QueryBuilders.wildcardQuery("ladwGajgjgdm", ztry.getSsdw() + "*");
should.should(hjdzXzqhdm);
should.should(ladwGajgjgdm);
bqXyr.must(should);
}
//在逃状态
if (StringUtils.isNotEmpty(ztry.getRyzt())) {
if("0".equals(ztry.getRyzt())){
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("ryzt", "0");
bqXyr.must(termQueryBuilder);
}else if("1".equals(ztry.getRyzt())){
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("ryzt", "1");
bqXyr.must(termQueryBuilder);
}else if("3".equals(ztry.getRyzt())){
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("ryzt", "2");
bqXyr.must(termQueryBuilder);
}else if("2".equals(ztry.getRyzt())){
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("ryzt", "0","1");
bqXyr.must(termQueryBuilder);
}else {
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("ryzt", ztry.getRyzt());
bqXyr.must(termQueryBuilder);
}
}
//性别
if (StringUtils.isNotEmpty(ztry.getXbdm())) {
if("1".equals(ztry.getXbdm())){
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("xbdm", "1");
bqXyr.must(termQueryBuilder);
}else if("2".equals(ztry.getXbdm())){
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("xbdm", "2");
bqXyr.must(termQueryBuilder);
}else if("3".equals(ztry.getXbdm())){
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("xbdm", "1","2");
bqXyr.mustNot(termQueryBuilder);
}else {
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("xbdm", ztry.getXbdm());
bqXyr.must(termQueryBuilder);
}
}
//立案单位
if (StringUtils.isNotEmpty(ztry.getLadwGajgjgdm())) {
String unitcode = ztry.getLadwGajgjgdm();
if(!"222".equals(unitcode)&&!"111".equals(unitcode)&&!"999".equals(unitcode)){
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("ladwGajgjgdm", unitcode + "*");
bqXyr.must(wildcardQueryBuilder);
}else if("222".equals(unitcode)){
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("ladwGajgjgdm", ztry.getSsdw()+ "*");
bqXyr.must(wildcardQueryBuilder);
}else if("111".equals(unitcode)){
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("ladwGajgjgdm", ztry.getSsdw() + "*");
bqXyr.mustNot(wildcardQueryBuilder);
}else if("999".equals(unitcode)){
//立案单位为null
BoolQueryBuilder queryExist = new BoolQueryBuilder();
ExistsQueryBuilder existsQueryBuilder = QueryBuilders.existsQuery("ladwGajgjgdm");
queryExist.mustNot(existsQueryBuilder);
bqXyr.must(queryExist);
}
}
// 户籍地行政区划
if (StringUtils.isNotEmpty(ztry.getHjdzXzqhdm())) {
String zhfzxyrHjdzXzqhdm = ztry.getHjdzXzqhdm();
if(!"222".equals(zhfzxyrHjdzXzqhdm)&&!"111".equals(zhfzxyrHjdzXzqhdm)&&!"999".equals(zhfzxyrHjdzXzqhdm)){
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("hjdzXzqhdm", zhfzxyrHjdzXzqhdm + "*");
bqXyr.must(wildcardQueryBuilder);
}else if("222".equals(zhfzxyrHjdzXzqhdm)){
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("hjdzXzqhdm", ztry.getSsdw()+ "*");
bqXyr.must(wildcardQueryBuilder);
}else if("111".equals(zhfzxyrHjdzXzqhdm)){
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("hjdzXzqhdm", ztry.getSsdw() + "*");
bqXyr.mustNot(wildcardQueryBuilder);
}else if("999".equals(zhfzxyrHjdzXzqhdm)){
//立案单位为null
BoolQueryBuilder queryExist = new BoolQueryBuilder();
ExistsQueryBuilder existsQueryBuilder = QueryBuilders.existsQuery("hjdzXzqhdm");
queryExist.mustNot(existsQueryBuilder);
bqXyr.must(queryExist);
}
// WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("hjdzXzqhdm", zhfzxyrHjdzXzqhdm + "*");
// bqXyr.must(wildcardQueryBuilder);
}
//年龄段
if(StringUtils.isNotEmpty(ztry.getNld())){
if ("10".equals(ztry.getNld())) {
BoolQueryBuilder query10 = new BoolQueryBuilder();
BoolQueryBuilder queryExist = new BoolQueryBuilder();
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("csrq.keyword").gte("2009-12-31 23:59:59").lte(ztry.getLarqEnd());
ExistsQueryBuilder existsQueryBuilder = QueryBuilders.existsQuery("csrq.keyword");
queryExist.mustNot(existsQueryBuilder);
query10.should(queryExist);
query10.should(rangeQueryBuilder);
bqXyr.must(query10);
} else if ("00".equals(ztry.getNld())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("csrq.keyword").gte("2000-01-01 00:00:00").lte("2009-12-31 23:59:59");
bqXyr.must(rangeQueryBuilder);
}else if ("90".equals(ztry.getNld())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("csrq.keyword").gte("1990-01-01 00:00:00").lte("1999-12-31 23:59:59");
bqXyr.must(rangeQueryBuilder);
}else if ("80".equals(ztry.getNld())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("csrq.keyword").gte("1980-01-01 00:00:00").lte("1989-12-31 23:59:59");
bqXyr.must(rangeQueryBuilder);
}else if ("70".equals(ztry.getNld())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("csrq.keyword").lte("1979-12-31 23:59:59");
bqXyr.must(rangeQueryBuilder);
}
}
//tpsc
if(StringUtils.isNotEmpty(ztry.getTpsc())){
if ("qtsj".equals(ztry.getTpsc())) {
BoolQueryBuilder queryExist = new BoolQueryBuilder();
ExistsQueryBuilder existsQueryBuilder = QueryBuilders.existsQuery("xxrbksjRqsj.keyword");
queryExist.mustNot(existsQueryBuilder);
bqXyr.must(queryExist);
}else if("nopara".equals(ztry.getTpsc())) {
if (StringUtils.isNotEmpty(ztry.getRbksjStart()) && StringUtils.isNotEmpty(ztry.getRbksjEnd())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("xxrbksjRqsj.keyword").gte(ztry.getRbksjStart()).lte(ztry.getRbksjEnd());
bqXyr.must(rangeQueryBuilder);
} else {
if (StringUtils.isNotEmpty(ztry.getRbksjStart())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("xxrbksjRqsj.keyword").gte(ztry.getRbksjStart());
bqXyr.must(rangeQueryBuilder);
}
if (StringUtils.isNotEmpty(ztry.getRbksjEnd())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("xxrbksjRqsj.keyword").lte(ztry.getRbksjEnd());
bqXyr.must(rangeQueryBuilder);
}
}
}
}
//姓名
if (StringUtils.isNotEmpty(ztry.getXm())) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("xm.keyword", "*" + ztry.getXm() + "*");
bqXyr.must(wildcardQueryBuilder);
}
//人员编号
if (StringUtils.isNotEmpty(ztry.getZtrybh())) {
System.out.println(ztry.getZtrybh());
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("ztrybh", ztry.getZtrybh() + "*");
bqXyr.must(wildcardQueryBuilder);
}
//案事件编号
if (StringUtils.isNotEmpty(ztry.getAsjbh())) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("asjbh", ztry.getAsjbh() + "*");
bqXyr.must(wildcardQueryBuilder);
}
//证件号码
if (StringUtils.isNotEmpty(ztry.getZjhm())) {
// String [] zjhms=xyr.getZjhm().split(",");
// BoolQueryBuilder zjBuilder=new BoolQueryBuilder();
// for(int i=0;i<zjhms.length;i++){
// zjBuilder.should(QueryBuilders.termsQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_CYZJ_ZJHM", zjhms[i]));
// }
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("zjhm.keyword", ztry.getZjhm());
bqXyr.must(termQueryBuilder);
}
//立案日期
if (StringUtils.isNotEmpty(ztry.getLarqStart()) && StringUtils.isNotEmpty(ztry.getLarqEnd())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("larq.keyword").gte(ztry.getLarqStart()).lte(ztry.getLarqEnd());
bqXyr.must(rangeQueryBuilder);
} else {
if (StringUtils.isNotEmpty(ztry.getLarqStart())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("larq.keyword").gte(ztry.getLarqStart());
bqXyr.must(rangeQueryBuilder);
}
if (StringUtils.isNotEmpty(ztry.getLarqEnd())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("larq.keyword").lte(ztry.getLarqEnd());
bqXyr.must(rangeQueryBuilder);
}
}
//上网时间
if (StringUtils.isNotEmpty(ztry.getXxrbksjStart()) && StringUtils.isNotEmpty(ztry.getXxrbksjEnd())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("xxrbksjRqsj.keyword").gte(ztry.getXxrbksjStart()).lte(ztry.getXxrbksjEnd());
bqXyr.must(rangeQueryBuilder);
} else {
if (StringUtils.isNotEmpty(ztry.getXxrbksjStart())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("xxrbksjRqsj.keyword").gte(ztry.getXxrbksjStart());
bqXyr.must(rangeQueryBuilder);
}
if (StringUtils.isNotEmpty(ztry.getXxrbksjEnd())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("xxrbksjRqsj.keyword").lte(ztry.getXxrbksjEnd());
bqXyr.must(rangeQueryBuilder);
}
}
//抓获日期
if (StringUtils.isNotEmpty(ztry.getZhrqStart()) && StringUtils.isNotEmpty(ztry.getZhrqEnd())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("zhrqStr.keyword").gte(ztry.getZhrqStart()).lte(ztry.getZhrqEnd());
bqXyr.must(rangeQueryBuilder);
} else {
if (StringUtils.isNotEmpty(ztry.getZhrqStart())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("zhrqStr.keyword").gte(ztry.getZhrqStart());
bqXyr.must(rangeQueryBuilder);
}
if (StringUtils.isNotEmpty(ztry.getZhrqEnd())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("zhrqStr.keyword").lte(ztry.getZhrqEnd());
bqXyr.must(rangeQueryBuilder);
}
}
//抓获单位
if (StringUtils.isNotEmpty(ztry.getZhdwGajgjgdm())) {
String unitcode = ztry.getZhdwGajgjgdm();
if (unitcode.endsWith("0000000000")) {
unitcode = unitcode.substring(0, 2);
}
// 市局
else if (unitcode.endsWith("00000000")) {
unitcode = unitcode.substring(0, 4);
}
// 分局
else if (unitcode.endsWith("000000")) {
unitcode = unitcode.substring(0, 6);
}
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("zhdwGajgjgdm", unitcode + "*");
bqXyr.must(wildcardQueryBuilder);
}
//TODO 添加单位
if(ztry.isIfzttj()) {
log.info("进行湖南单位统计");
if (ztry.isIfjcyla()) {
log.info("非检察院立案");
TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("ladwGajgjgdm", "990200000000");
bqXyr.mustNot(termQueryBuilder);
} else {
log.info("检察院立案");
//and (hjdz_xzqhdm like '43%' or ladw_gajgjgdm like '43%')
BoolQueryBuilder should = QueryBuilders.boolQuery();
WildcardQueryBuilder hjdzXzqhdm = QueryBuilders.wildcardQuery("hjdzXzqhdm", "43*");
WildcardQueryBuilder ladwGajgjgdm = QueryBuilders.wildcardQuery("ladwGajgjgdm", "43*");
should.should(hjdzXzqhdm);
should.should(ladwGajgjgdm);
bqXyr.must(should);
}
}
//上网单位
if (StringUtils.isNotEmpty(ztry.getDjspdwGajgjgdm())) {
String unitcode = ztry.getDjspdwGajgjgdm();
if (unitcode.endsWith("0000000000")) {
unitcode = unitcode.substring(0, 2);
}
// 市局
else if (unitcode.endsWith("00000000")) {
unitcode = unitcode.substring(0, 4);
}
// 分局
else if (unitcode.endsWith("000000")) {
unitcode = unitcode.substring(0, 6);
}
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("djspdwGajgjgdm", unitcode + "*");
bqXyr.must(wildcardQueryBuilder);
}
// 案件类别代码模糊查询
if (StringUtils.isNotEmpty(ztry.getAjlbdm())) {
// 根据规则截取前三位
String ajlbdm = "";
if (ztry.getAjlbdm().endsWith("000")) {
ajlbdm = ztry.getAjlbdm().substring(0, 3) + "*";
} else {
ajlbdm = ztry.getAjlbdm();
}
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("ajlbdm", ajlbdm);
bqXyr.must(wildcardQueryBuilder);
}
// 现住址名称
if (StringUtils.isNotEmpty(ztry.getXzzDzmc())) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("xzzDzmc", "*" + ztry.getXzzDzmc() + "*");
bqXyr.must(wildcardQueryBuilder);
}
//出生日期
// if (StringUtils.isNotEmpty(xyr.getCsrqKssj())) {
// RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_CSRQ_RQGZXX").gte(xyr.getCsrqKssj());
// bqXyr.must(rangeQueryBuilder);
// }
// if (StringUtils.isNotEmpty(xyr.getCsrqJssj())) {
// RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_CSRQ_RQGZXX").lte(DateUtil.EndDateAdd(xyr.getCsrqJssj()));
// bqXyr.must(rangeQueryBuilder);
// }
// 国籍
// if (StringUtils.isNotEmpty(xyr.getGjdm())) {
// TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_GJDM", xyr.getGjdm());
// bqXyr.must(termQueryBuilder);
// }
// 民族
if (StringUtils.isNotEmpty(ztry.getMzdm())) {
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("mzdm", ztry.getMzdm());
bqXyr.must(termQueryBuilder);
}
// 户籍地名称
if (StringUtils.isNotEmpty(ztry.getHjdzDzmc())) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("hjdzDzmc", "*" + ztry.getHjdzDzmc() + "*");
bqXyr.must(wildcardQueryBuilder);
}
System.out.println(bqXyr.toString());
return bqXyr;
}
private BoolQueryBuilder getBoolZtry(ZtryParam ztry) {
BoolQueryBuilder bqXyr = QueryBuilders.boolQuery();
// // 信息删除判断标志
......@@ -256,9 +598,65 @@ public class ZtryServiceImpl implements ZtryService {
long total=0;
SearchRequest searchRequest = new SearchRequest();
BoolQueryBuilder boolQueryBuilder=new BoolQueryBuilder();
if("2".equals(ztry.getFxtjCx())){
String ssdw="430000000000";
String ztssdw = ssdw.substring(0,4);
if(ssdw.endsWith("0000000000")){
ztssdw = ssdw.substring(0,2);
}
ztry.setSsdw(ztssdw);
Date date = new Date();
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar= Calendar.getInstance();
String rbksjStart = "";
String rbksjEnd = "";
String tpsc=ztry.getTpsc();
String tpsclx=ztry.getTpsclx();
//逃跑时长
if("nopara".equals(tpsc)) {
if ("one".equals(tpsclx) || tpsclx == "one") {//一年以内
calendar.add(Calendar.YEAR, -1);
rbksjEnd = dateFormat.format(date);
rbksjStart = dateFormat.format(calendar.getTime());
ztry.setRbksjStart(rbksjStart);
ztry.setRbksjEnd(rbksjEnd + " 23:59:59");
}
if ("three".equals(tpsclx) || tpsclx == "three") {//一到三年
//calendar.add(Calendar.YEAR, -1);
rbksjEnd = dateFormat.format(calendar.getTime());
calendar.add(Calendar.YEAR, -2);
rbksjStart = dateFormat.format(calendar.getTime());
ztry.setRbksjStart(rbksjStart);
ztry.setRbksjEnd(rbksjEnd);
}
if ("five".equals(tpsclx) || tpsclx == "five") {//三到五年
//calendar.add(Calendar.YEAR, -3);
rbksjEnd = dateFormat.format(calendar.getTime());
calendar.add(Calendar.YEAR, -2);
rbksjStart = dateFormat.format(calendar.getTime());
ztry.setRbksjStart(rbksjStart);
ztry.setRbksjEnd(rbksjEnd);
}
if ("ten".equals(tpsclx) || tpsclx == "ten") {//五年以上
//calendar.add(Calendar.YEAR, -5);
rbksjEnd = dateFormat.format(calendar.getTime());
ztry.setRbksjEnd(rbksjEnd);
}
}
boolQueryBuilder=getBoolZtryfxTjCount(ztry);
}else{
boolQueryBuilder=getBoolZtry(ztry);
}
// 指定索引
searchRequest.indices("hnqgztry");
searchRequest.indices("qgztry");
// 指定 DSL 检索条件
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
// TermsQueryBuilder termQueryBuilderXxsc = QueryBuilders.termsQuery("v_solr6_tb_st_asj_AS_XXSC_PDBZ", "0");
......@@ -316,6 +714,7 @@ public class ZtryServiceImpl implements ZtryService {
return rtMap;
}
@Override
public Map<String, Object> ZtryApiByDetail(ZtryParam ztry) {
Map<String, Object> rtMap = new HashMap<>();
......@@ -327,7 +726,7 @@ public class ZtryServiceImpl implements ZtryService {
boolQueryBuilder.must(termQueryBuilder);
}
// 指定索引
searchRequest.indices("hnqgztry");
searchRequest.indices("qgztry");
// 指定 DSL 检索条件
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
// TermsQueryBuilder termQueryBuilderXxsc = QueryBuilders.termsQuery("v_solr6_tb_st_asj_AS_XXSC_PDBZ", "0");
......@@ -361,4 +760,488 @@ public class ZtryServiceImpl implements ZtryService {
return rtMap;
}
public long geFxTjCount(ZtryParam ztry) {
Map<String, Object> rtMap = new HashMap<>();
long total=0;
SearchRequest searchRequest = new SearchRequest();
BoolQueryBuilder boolQueryBuilder=new BoolQueryBuilder();
boolQueryBuilder=getBoolZtryfxTjCount(ztry);
// 指定索引
searchRequest.indices("qgztry");
// 指定 DSL 检索条件
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
// TermsQueryBuilder termQueryBuilderXxsc = QueryBuilders.termsQuery("v_solr6_tb_st_asj_AS_XXSC_PDBZ", "0");
// boolQueryBuilder.must(termQueryBuilderXxsc);
List<QgEsZtryEntity> listResult=new ArrayList<>();
int page = 1;
int limit = 10;
int begin = (page - 1) * limit;
// searchSourceBuilder.query(boolQueryBuilder).from(begin).size(limit).sort("xxrbksjRqsj.keyword",DESC).trackTotalHits(true);
searchSourceBuilder.query(boolQueryBuilder).from(begin).size(limit).trackTotalHits(true);
searchRequest.source(searchSourceBuilder);
try {
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
SearchHits hits = searchResponse.getHits();
SearchHit[] searchHits = hits.getHits();
TotalHits s= hits.getTotalHits();
total=s.value;
}catch (Exception e){
e.printStackTrace();
}
return total;
}
@Override
public Map<String, Object> doAnalyseZtry(ZtryParam ztryParam) {
String ssdw="430000000000";
String ztssdw = ssdw.substring(0,4);
if(ssdw.endsWith("0000000000")){
ztssdw = ssdw.substring(0,2);
}
ztryParam.setSsdw(ztssdw);
Date date = new Date();
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar= Calendar.getInstance();
Map<String, Object> resultMap = new HashMap<String, Object>();
String ryzt = "";//在逃人员状态
String xbdm = "";//性别
String ladw_gajgjgdm = "";//本地上网在逃人员
String hjdz_xzqhdm = "";//户籍地本地在逃人员
String nld = "";//年龄段
String tpsc = "";//逃跑时长
String rbksjStart = "";
String rbksjEnd = "";
String xxrbksj = ztryParam.getRbksjStart();
if(xxrbksj == null || "".equals(xxrbksj)) {
ztryParam.setTpsc("nopara");
}
ladw_gajgjgdm = ztryParam.getLadwGajgjgdm();
if(ladw_gajgjgdm != null && !"".equals(ladw_gajgjgdm)){
String gajgdm = ladw_gajgjgdm;
String ladm = "";
if(gajgdm.endsWith("0000000000")){
ladm = ladw_gajgjgdm.substring(0,2);
}else if(gajgdm.endsWith("00000000")){
ladm = ladw_gajgjgdm.substring(0,4);
}else if(gajgdm.endsWith("000000")){
ladm = ladw_gajgjgdm.substring(0,6);
}else if(gajgdm.endsWith("0000")){
ladm = ladw_gajgjgdm.substring(0,8);
}
ztryParam.setLadwGajgjgdm(ladm);
Integer ladwCount =(int) geFxTjCount(ztryParam);
//其他 数据中立案单位为空的
ztryParam.setLadwGajgjgdm("999");
Integer qtladwCount =(int) geFxTjCount(ztryParam);
ztryParam.setLadwGajgjgdm(ladm);
String pdla = ladw_gajgjgdm.substring(0,4);
if(pdla==ztssdw||ztssdw.equals(pdla)){
resultMap.put("ladwCount", ladwCount);
resultMap.put("fladwCount", 0);
resultMap.put("qtladwCount", qtladwCount);
}else{
resultMap.put("ladwCount", 0);
resultMap.put("fladwCount", ladwCount);
resultMap.put("qtladwCount", qtladwCount);
}
}
hjdz_xzqhdm = ztryParam.getHjdzXzqhdm();
if(hjdz_xzqhdm != null && !"".equals(hjdz_xzqhdm)){
String hjdz = hjdz_xzqhdm;
String hjdxzqh = "";
if(hjdz.endsWith("0000")){
hjdxzqh = hjdz_xzqhdm.substring(0,2);
}else if(hjdz.endsWith("00")){
hjdxzqh = hjdz_xzqhdm.substring(0,4);
}
ztryParam.setHjdzXzqhdm(hjdxzqh);
Integer hjdCount = (int) geFxTjCount(ztryParam);
//其他 数据中户籍为空的
ztryParam.setHjdzXzqhdm("999");
Integer qthjdzCount = (int) geFxTjCount(ztryParam);
ztryParam.setHjdzXzqhdm(hjdxzqh);
String pdhj = hjdz_xzqhdm.substring(0,4);
if(pdhj==ztssdw||ztssdw.equals(pdhj)){
resultMap.put("hjdzCount", hjdCount);
resultMap.put("fhjdzCount", 0);
resultMap.put("qthjdzCount", qthjdzCount);
}else{
resultMap.put("hjdzCount", 0);
resultMap.put("fhjdzCount", hjdCount);
resultMap.put("qthjdzCount", qthjdzCount);
}
}
ryzt = ztryParam.getRyzt();
if(ryzt == null || "".equals(ryzt)) {
ryzt = "0";
if ("0".equals(ryzt)) {
ztryParam.setRyzt("0");
Integer ztztCount = (int) geFxTjCount(ztryParam);
ryzt = "";
ztryParam.setRyzt("");
resultMap.put("ztztCount", ztztCount);
}
ryzt = "1";
if ("1".equals(ryzt)) {
ztryParam.setRyzt("1");
Integer ctztCount = (int) geFxTjCount(ztryParam);
ryzt = "";
ztryParam.setRyzt("");
resultMap.put("ctztCount", ctztCount);
}
ryzt = "3";
if ("3".equals(ryzt)) {
ztryParam.setRyzt("3");
Integer qtztCount = (int) geFxTjCount(ztryParam);
ryzt = "";
ztryParam.setRyzt("");
resultMap.put("qtztCount", qtztCount);
}
}else if(ryzt != null && !"".equals(ryzt)){
if(ryzt == "0" || "0".equals(ryzt)){
Integer ztztCount = (int) geFxTjCount(ztryParam);
//Integer qtztCount = (int) geFxTjCount(ztryParam);
resultMap.put("ztztCount", ztztCount);
resultMap.put("ctztCount", 0);
resultMap.put("qtztCount", 0);
}else if(ryzt == "1" || "1".equals(ryzt)){
Integer ctztCount = (int) geFxTjCount(ztryParam);
resultMap.put("ctztCount", ctztCount);
resultMap.put("ztztCount", 0);
resultMap.put("qtztCount", 0);
}else if(ryzt == "2" || "2".equals(ryzt)){
ryzt = "0";
if ("0".equals(ryzt)) {
ztryParam.setRyzt("0");
Integer ztztCount = (int) geFxTjCount(ztryParam);
ryzt = "";
ztryParam.setRyzt("");
resultMap.put("ztztCount", ztztCount);
}
ryzt = "1";
if ("1".equals(ryzt)) {
ztryParam.setRyzt("1");
Integer ctztCount = (int) geFxTjCount(ztryParam);
ryzt = "";
ztryParam.setRyzt("");
resultMap.put("ctztCount", ctztCount);
}
//等于3时已删除人员
ryzt = "3";
if ("3".equals(ryzt)) {
ztryParam.setRyzt("3");
Integer qtztCount = (int) geFxTjCount(ztryParam);
ryzt = "";
ztryParam.setRyzt("");
resultMap.put("qtztCount", qtztCount);
}
ztryParam.setRyzt("2");
}
}
xbdm = ztryParam.getXbdm();
if(xbdm == null || "".equals(xbdm)) {
// if (xbdm == "" || "".equals(xbdm)) {
//性别
xbdm = "1";//男生
if ("1".equals(xbdm)) {
ztryParam.setXbdm("1");
Integer ztnsCount = (int) geFxTjCount(ztryParam);
xbdm = "";
ztryParam.setXbdm("");
resultMap.put("ztnsCount", ztnsCount);
}
xbdm = "2";//女生
if ("2".equals(xbdm)) {
ztryParam.setXbdm("2");
Integer ztvsCount = (int) geFxTjCount(ztryParam);
xbdm = "";
ztryParam.setXbdm("");
resultMap.put("ztvsCount", ztvsCount);
}
xbdm = "3";//其他 (包含值为空、未知性别、未说明的性别)
if ("3".equals(xbdm)) {
ztryParam.setXbdm("3");
Integer qtxbCount = (int) geFxTjCount(ztryParam);
xbdm = "";
ztryParam.setXbdm("");
resultMap.put("qtxbCount", qtxbCount);
}
// }
}else if(xbdm != null && !"".equals(xbdm)){
if(xbdm == "1"|| "1".equals(xbdm)){
Integer ztnsCount = (int) geFxTjCount(ztryParam);
resultMap.put("ztnsCount", ztnsCount);
resultMap.put("ztvsCount", 0);
resultMap.put("qtxbCount", 0);
}else if(xbdm == "2"|| "2".equals(xbdm)){
Integer ztvsCount = (int) geFxTjCount(ztryParam);
resultMap.put("ztvsCount", ztvsCount);
resultMap.put("ztnsCount", 0);
resultMap.put("qtxbCount", 0);
}else if(xbdm == "0"|| "0".equals(xbdm)||xbdm == "9"|| "9".equals(xbdm)){
ztryParam.setXbdm("3");//(包含值为空、未知性别、未说明的性别)
Integer qtxbCount = (int) geFxTjCount(ztryParam);
//ztryParam.setXbdm("");
resultMap.put("ztvsCount", 0);
resultMap.put("ztnsCount", 0);
resultMap.put("qtxbCount", qtxbCount);
}
}
//户籍
if(hjdz_xzqhdm == null || "".equals(hjdz_xzqhdm)){
hjdz_xzqhdm = "111";//非本市户籍
if(hjdz_xzqhdm=="111"||"111".equals(hjdz_xzqhdm)) {
ztryParam.setHjdzXzqhdm("111");
Integer fhjdzCount = (int) geFxTjCount(ztryParam);
hjdz_xzqhdm = "";
ztryParam.setHjdzXzqhdm("");
resultMap.put("fhjdzCount",fhjdzCount);
}
hjdz_xzqhdm = "222";
if(hjdz_xzqhdm=="222"||"222".equals(hjdz_xzqhdm)) {
ztryParam.setHjdzXzqhdm("222");
Integer hjdzCount = (int) geFxTjCount(ztryParam);
hjdz_xzqhdm = "";
ztryParam.setHjdzXzqhdm("");
resultMap.put("hjdzCount",hjdzCount);
}
hjdz_xzqhdm = "999";
if(hjdz_xzqhdm=="999"||"999".equals(hjdz_xzqhdm)) {
ztryParam.setHjdzXzqhdm("999");
Integer qthjdzCount = (int) geFxTjCount(ztryParam);
hjdz_xzqhdm = "";
ztryParam.setHjdzXzqhdm("");
resultMap.put("qthjdzCount",qthjdzCount);
}
}
//本地上网
if(ladw_gajgjgdm == null || "".equals(ladw_gajgjgdm)) {
ladw_gajgjgdm = "222";
if (ladw_gajgjgdm=="222"||"222".equals(ladw_gajgjgdm)) {
ztryParam.setLadwGajgjgdm("222");
Integer ladwCount = (int) geFxTjCount(ztryParam);
ladw_gajgjgdm = "";
ztryParam.setLadwGajgjgdm("");
resultMap.put("ladwCount", ladwCount);
}
//其他(上网单位为空)
ladw_gajgjgdm = "999";
if (ladw_gajgjgdm=="999"||"999".equals(ladw_gajgjgdm)) {
ztryParam.setLadwGajgjgdm("999");
Integer qtladwCount = (int) geFxTjCount(ztryParam);
ladw_gajgjgdm = "";
ztryParam.setLadwGajgjgdm("");
resultMap.put("qtladwCount", qtladwCount);
}
//非本地上网
ladw_gajgjgdm = "111";
if (ladw_gajgjgdm=="111"||"111".equals(ladw_gajgjgdm)) {
ztryParam.setLadwGajgjgdm("111");
Integer fladwCount = (int) geFxTjCount(ztryParam);
ladw_gajgjgdm = "";
ztryParam.setLadwGajgjgdm("");
resultMap.put("fladwCount", fladwCount);
}
}
//年龄段
nld = "10";//年龄其他
if("10".equals(nld)) {
ztryParam.setNld("10");
Integer qtqlCount = (int) geFxTjCount(ztryParam);
nld = "";
ztryParam.setNld("");
resultMap.put("qtqlCount",qtqlCount);
}
nld = "00";//00后
if("00".equals(nld)) {
ztryParam.setNld("00");
Integer nllCount = (int) geFxTjCount(ztryParam);
nld = "";
ztryParam.setNld("");
resultMap.put("nllCount",nllCount);
}
nld = "90";//00后
if("90".equals(nld)) {
ztryParam.setNld("90");
Integer njlCount = (int) geFxTjCount(ztryParam);
nld = "";
ztryParam.setNld("");
resultMap.put("njlCount",njlCount);
}
nld = "80";//00后
if("80".equals(nld)) {
ztryParam.setNld("80");
Integer nblCount = (int) geFxTjCount(ztryParam);
nld = "";
ztryParam.setNld("");
resultMap.put("nblCount",nblCount);
}
nld = "70";//80前
if("70".equals(nld)) {
ztryParam.setNld("70");
Integer nqlCount = (int) geFxTjCount(ztryParam);
nld = "";
ztryParam.setNld("");
resultMap.put("nqlCount",nqlCount);
}
//逃跑时长
String xxrbksjStart = ztryParam.getRbksjStart();
String xxrbksjEnd = ztryParam.getRbksjEnd();
if(xxrbksjStart == null || "".equals(xxrbksjStart)) {
ztryParam.setTpsc("nopara");
tpsc = "one";//一年以内
if ("one".equals(tpsc) || tpsc == "one") {//一年以内
calendar.add(Calendar.YEAR, -1);
rbksjEnd = dateFormat.format(date);
rbksjStart = dateFormat.format(calendar.getTime());
ztryParam.setRbksjStart(rbksjStart);
ztryParam.setRbksjEnd(rbksjEnd+" 23:59:59");
Integer tpynCount = (int) geFxTjCount(ztryParam);
ztryParam.setRbksjStart("");
ztryParam.setRbksjEnd("");
rbksjEnd = "";
rbksjStart = "";
tpsc = "";
resultMap.put("tpynCount", tpynCount);
}
tpsc = "three";
if ("three".equals(tpsc) || tpsc == "three") {//一到三年
//calendar.add(Calendar.YEAR, -1);
rbksjEnd = dateFormat.format(calendar.getTime());
calendar.add(Calendar.YEAR, -2);
rbksjStart = dateFormat.format(calendar.getTime());
ztryParam.setRbksjStart(rbksjStart);
ztryParam.setRbksjEnd(rbksjEnd);
Integer tpysCount = (int) geFxTjCount(ztryParam);
ztryParam.setRbksjStart("");
ztryParam.setRbksjEnd("");
rbksjEnd = "";
rbksjStart = "";
tpsc = "";
resultMap.put("tpysCount", tpysCount);
}
tpsc = "five";
if ("five".equals(tpsc) || tpsc == "five") {//三到五年
//calendar.add(Calendar.YEAR, -3);
rbksjEnd = dateFormat.format(calendar.getTime());
calendar.add(Calendar.YEAR, -2);
rbksjStart = dateFormat.format(calendar.getTime());
ztryParam.setRbksjStart(rbksjStart);
ztryParam.setRbksjEnd(rbksjEnd);
Integer tpswCount = (int) geFxTjCount(ztryParam);
ztryParam.setRbksjStart("");
ztryParam.setRbksjEnd("");
rbksjEnd = "";
rbksjStart = "";
tpsc = "";
resultMap.put("tpswCount", tpswCount);
}
tpsc = "ten";
if ("ten".equals(tpsc) || tpsc == "ten") {//五年以上
//calendar.add(Calendar.YEAR, -5);
rbksjEnd = dateFormat.format(calendar.getTime());
ztryParam.setRbksjEnd(rbksjEnd);
Integer tpwsCount = (int) geFxTjCount(ztryParam);
ztryParam.setRbksjEnd("");
rbksjEnd = "";
rbksjStart = "";
tpsc = "";
resultMap.put("tpwsCount", tpwsCount);
}
tpsc = "qtsj";
if ("qtsj".equals(tpsc) || tpsc == "qtsj") {//其他时间段
ztryParam.setTpsc("qtsj");
Integer tpqtCount = (int) geFxTjCount(ztryParam);
ztryParam.setTpsc("");
tpsc = "";
resultMap.put("tpqtCount", tpqtCount);
}
}else if(xxrbksjStart != "" && !"".equals(xxrbksjStart)){
ztryParam.setXxrbksjStart(xxrbksjStart);
ztryParam.setXxrbksjEnd(xxrbksjEnd);
ztryParam.setTpsc("nopara");
//ztryParam.setTpsc("");
tpsc = "one";//一年以内
if ("one".equals(tpsc) || tpsc == "one") {//一年以内
calendar.add(Calendar.YEAR, -1);
rbksjEnd = dateFormat.format(date);
rbksjStart = dateFormat.format(calendar.getTime());
ztryParam.setRbksjStart(rbksjStart);
// ztryParam.setRbksjEnd(rbksjEnd);
ztryParam.setRbksjEnd(rbksjEnd+" 23:59:59");
Integer tpynCount = (int) geFxTjCount(ztryParam);
ztryParam.setRbksjStart("");
ztryParam.setRbksjEnd("");
rbksjEnd = "";
rbksjStart = "";
tpsc = "";
resultMap.put("tpynCount", tpynCount);
}
tpsc = "three";
if ("three".equals(tpsc) || tpsc == "three") {//一到三年
calendar.add(Calendar.YEAR, -1);
rbksjEnd = dateFormat.format(calendar.getTime());
calendar.add(Calendar.YEAR, -2);
rbksjStart = dateFormat.format(calendar.getTime());
ztryParam.setRbksjStart(rbksjStart);
ztryParam.setRbksjEnd(rbksjEnd);
Integer tpysCount = (int) geFxTjCount(ztryParam);
ztryParam.setRbksjStart("");
ztryParam.setRbksjEnd("");
rbksjEnd = "";
rbksjStart = "";
tpsc = "";
resultMap.put("tpysCount", tpysCount);
}
tpsc = "five";
if ("five".equals(tpsc) || tpsc == "five") {//三到五年
calendar.add(Calendar.YEAR, -3);
rbksjEnd = dateFormat.format(calendar.getTime());
calendar.add(Calendar.YEAR, -2);
rbksjStart = dateFormat.format(calendar.getTime());
ztryParam.setRbksjStart(rbksjStart);
ztryParam.setRbksjEnd(rbksjEnd);
Integer tpswCount = (int) geFxTjCount(ztryParam);
ztryParam.setRbksjStart("");
ztryParam.setRbksjEnd("");
rbksjEnd = "";
rbksjStart = "";
tpsc = "";
resultMap.put("tpswCount", tpswCount);
}
tpsc = "ten";
if ("ten".equals(tpsc) || tpsc == "ten") {//五年以上
calendar.add(Calendar.YEAR, -5);
rbksjEnd = dateFormat.format(calendar.getTime());
ztryParam.setRbksjEnd(rbksjEnd);
Integer tpwsCount = (int) geFxTjCount(ztryParam);
ztryParam.setRbksjEnd("");
rbksjEnd = "";
rbksjStart = "";
tpsc = "";
resultMap.put("tpwsCount", tpwsCount);
}
tpsc = "qtsj";
if ("qtsj".equals(tpsc) || tpsc == "qtsj") {//其他时间段
ztryParam.setTpsc("qtsj");
Integer tpwsCount = (int) geFxTjCount(ztryParam);
ztryParam.setTpsc("");
tpsc = "";
resultMap.put("tpwsCount", tpwsCount);
}
}
return resultMap;
}
}
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