Commit 3b148a12 by liulianglang

全国案件es状态判断

parent b42a6118
......@@ -10,19 +10,22 @@ import com.founder.model.*;
import com.founder.service.SysGnsyrzOpenApiService;
import com.founder.service.XxcxService;
import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.join.query.HasParentQueryBuilder;
import org.elasticsearch.join.query.JoinQueryBuilders;
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.http.MediaType;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.http.HttpHeaders;
import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
......@@ -168,88 +171,95 @@ public class XxcxController {
System.out.println("----"+jsonParams.toJSONString());
HttpEntity<Map<String,Object>> params = new HttpEntity<>(jsonParams,getHeaders(asj));// 请求头
JSONObject resultJson = restTemplate.postForEntity(gabesUrl+"search",params,JSONObject.class).getBody();
LinkedHashMap json = (LinkedHashMap) resultJson.get("result");
LinkedHashMap jsonResponse = (LinkedHashMap) json.get("response");
LinkedHashMap jsonHit = (LinkedHashMap) jsonResponse.get("hits");
int total = (int) jsonHit.get("total");
if(total > 0 ){
List<LinkedHashMap> jsonHitArray = (List<LinkedHashMap>) jsonHit.get("hits");
SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddhhmmss");
for(int i=0;i<jsonHitArray.size();i++){
Map map = new HashMap();
LinkedHashMap obj = (LinkedHashMap) jsonHitArray.get(i).get("_source");
String asjbh = (String) obj.get("v_solr6_tb_st_asj_AS_ASJBH");
String ajmc = (String) obj.get("v_solr6_tb_st_asj_AT_AJMC");
String ajlbdmMc = (String) obj.get("v_solr6_tb_st_asj_AS_AJLBDM_value");// 案件类别
String ajlbdm = (String) obj.get("v_solr6_tb_st_asj_AS_AJLBDM");// 案件类别代码
String ajzlbMc = (String) obj.get("v_solr6_tb_st_asj_AS_ZATZ_JYQK_value");// 小案类别
String ajxzlbMc = (String) obj.get("tb_st_asj_asjbz_AJXLB_VALUE");// 细类案类别
String bzrXm = (String) obj.get("tb_st_asj_asjbz_XXCZRY_XM");// 标注人姓名
String bzrDwdmMc = (String) obj.get("tb_st_asj_asjbz_XXCZDW_GAJGJGDM_VALUE");// 标注人单位
String asjfsddDzmc = (String) obj.get("v_solr6_tb_st_asj_AT_ASJFSDD_DZMC");// 案发地详细地址
String ssjzrmby = (String) obj.get("v_solr6_tb_st_asj_AN_SSJZRMBY");// 损失总价值
String larq = (String) obj.get("v_solr6_tb_st_asj_AS_LARQ");// 立案日期
String ladwPcs = (String) obj.get("v_solr6_tb_st_asj_AS_LADW_GAJGJGDM");// 立案单位
String asjfssjAsjfskssj = (String) obj.get("v_solr6_tb_st_asj_AS_ASJFSSJ_ASJFSKSSJ");// 案发时间
String jyaq = (String) obj.get("v_solr6_tb_st_asj_AT_JYAQ");// 简要案情
String bzztMs = (String) obj.get("tb_st_asj_asjbz_BZZT_VALUE");// 标注状态描述
String bzzt = (String) obj.get("tb_st_asj_asjbz_BZZT");// 标注状态
map.put("asjbh",asjbh);
map.put("ajmc",ajmc);
map.put("ajlbdmMc",ajlbdmMc);
map.put("ajlbdm",ajlbdm);
map.put("ajzlbMc",ajzlbMc);
map.put("ajxzlbMc",ajxzlbMc);
map.put("bzrDwdmMc",bzrDwdmMc);
map.put("bzrXm",bzrXm);
map.put("asjfsddDzmc",asjfsddDzmc);
map.put("ssjzrmby",ssjzrmby);
String ladwMc = "";
String code=(String) resultJson.get("status_code");
if("1000".equals(code)) {
LinkedHashMap json = (LinkedHashMap) resultJson.get("result");
LinkedHashMap jsonResponse = (LinkedHashMap) json.get("response");
LinkedHashMap jsonHit = (LinkedHashMap) jsonResponse.get("hits");
int total = (int) jsonHit.get("total");
if (total > 0) {
List<LinkedHashMap> jsonHitArray = (List<LinkedHashMap>) jsonHit.get("hits");
SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddhhmmss");
for (int i = 0; i < jsonHitArray.size(); i++) {
Map map = new HashMap();
LinkedHashMap obj = (LinkedHashMap) jsonHitArray.get(i).get("_source");
String asjbh = (String) obj.get("v_solr6_tb_st_asj_AS_ASJBH");
String ajmc = (String) obj.get("v_solr6_tb_st_asj_AT_AJMC");
String ajlbdmMc = (String) obj.get("v_solr6_tb_st_asj_AS_AJLBDM_value");// 案件类别
String ajlbdm = (String) obj.get("v_solr6_tb_st_asj_AS_AJLBDM");// 案件类别代码
String ajzlbMc = (String) obj.get("v_solr6_tb_st_asj_AS_ZATZ_JYQK_value");// 小案类别
String ajxzlbMc = (String) obj.get("tb_st_asj_asjbz_AJXLB_VALUE");// 细类案类别
String bzrXm = (String) obj.get("tb_st_asj_asjbz_XXCZRY_XM");// 标注人姓名
String bzrDwdmMc = (String) obj.get("tb_st_asj_asjbz_XXCZDW_GAJGJGDM_VALUE");// 标注人单位
String asjfsddDzmc = (String) obj.get("v_solr6_tb_st_asj_AT_ASJFSDD_DZMC");// 案发地详细地址
String ssjzrmby = (String) obj.get("v_solr6_tb_st_asj_AN_SSJZRMBY");// 损失总价值
String larq = (String) obj.get("v_solr6_tb_st_asj_AS_LARQ");// 立案日期
String ladwPcs = (String) obj.get("v_solr6_tb_st_asj_AS_LADW_GAJGJGDM");// 立案单位
String asjfssjAsjfskssj = (String) obj.get("v_solr6_tb_st_asj_AS_ASJFSSJ_ASJFSKSSJ");// 案发时间
String jyaq = (String) obj.get("v_solr6_tb_st_asj_AT_JYAQ");// 简要案情
String bzztMs = (String) obj.get("tb_st_asj_asjbz_BZZT_VALUE");// 标注状态描述
String bzzt = (String) obj.get("tb_st_asj_asjbz_BZZT");// 标注状态
map.put("asjbh", asjbh);
map.put("ajmc", ajmc);
map.put("ajlbdmMc", ajlbdmMc);
map.put("ajlbdm", ajlbdm);
map.put("ajzlbMc", ajzlbMc);
map.put("ajxzlbMc", ajxzlbMc);
map.put("bzrDwdmMc", bzrDwdmMc);
map.put("bzrXm", bzrXm);
map.put("asjfsddDzmc", asjfsddDzmc);
map.put("ssjzrmby", ssjzrmby);
String ladwMc = "";
// if(null!=ladwPcs){
// ladwMc = detailervice.getDwMcBydm(ladwPcs);
// }
map.put("ladwPcs",ladwMc);
// 立案日期和案发日期 过滤
if(null != larq){
try {
map.put("larq",sf.parse(larq));
} catch (ParseException e) {
e.printStackTrace();
map.put("ladwPcs", ladwMc);
// 立案日期和案发日期 过滤
if (null != larq) {
try {
map.put("larq", sf.parse(larq));
} catch (ParseException e) {
e.printStackTrace();
}
} else {
map.put("larq", "无");
}
}else{
map.put("larq","无");
}
if(null != asjfssjAsjfskssj){
try {
map.put("asjfssjAsjfskssj",sf.parse(asjfssjAsjfskssj));
} catch (ParseException e) {
e.printStackTrace();
if (null != asjfssjAsjfskssj) {
try {
map.put("asjfssjAsjfskssj", sf.parse(asjfssjAsjfskssj));
} catch (ParseException e) {
e.printStackTrace();
}
} else {
map.put("asjfssjAsjfskssj", "无");
}
}else{
map.put("asjfssjAsjfskssj","无");
}
if(StringUtils.isEmpty(bzztMs)){
map.put("bzztMs","未标注");
}else{
map.put("bzztMs",bzztMs);
if (StringUtils.isEmpty(bzztMs)) {
map.put("bzztMs", "未标注");
} else {
map.put("bzztMs", bzztMs);
}
map.put("bzzt", bzzt);
map.put("jyaq", jyaq);
listResult.add(map);
}
map.put("bzzt",bzzt);
map.put("jyaq",jyaq);
listResult.add(map);
}
}
mapResult.put("total",total);
mapResult.put("rows",listResult);
mapResult.put("total", total);
mapResult.put("rows", listResult);
reslt.setData(mapResult);
reslt.setMsg("案件信息查询成功");
reslt.setStatus("success");
return reslt;
reslt.setData(mapResult);
reslt.setMsg("案件信息查询成功");
reslt.setStatus("success");
return reslt;
}else {
reslt.setMsg((String) resultJson.get("message"));
reslt.setStatus("fail");
return reslt;
}
}
@RequestMapping("/AsjApiByAsjbh")
public Result AsjApiByAsjbh(@RequestBody AsjRyRelateVoBzpt asjbl){
......@@ -755,6 +765,8 @@ public class XxcxController {
HttpEntity<Map<String,Object>> params = new HttpEntity<>(jsonParams,getHeaders(asj));// 请求头
JSONObject resultJson = restTemplate.postForEntity(gabesUrl+"search",params,JSONObject.class).getBody();
// JSONObject resultJson =getAsjResultJson();
String code=(String) resultJson.get("status_code");
if("1000".equals(code)) {
LinkedHashMap json = (LinkedHashMap) resultJson.get("result");
LinkedHashMap jsonResponse = (LinkedHashMap) json.get("response");
LinkedHashMap jsonHit = (LinkedHashMap) jsonResponse.get("hits");
......@@ -860,11 +872,63 @@ public class XxcxController {
reslt.setMsg("案件信息查询成功");
reslt.setStatus("success");
return reslt;
}else {
reslt.setMsg((String) resultJson.get("message"));
reslt.setStatus("fail");
return reslt;
}
}
@PostMapping(value = "/xyrQry")
public Result xyrQry(@RequestBody XyrParam param, HttpServletRequest request) {
Result reslt = new Result();
String header = request.getHeader("founder.authorization");
if(StringUtils.isEmpty(header) || !author.equals(header)){
reslt.setData(new ArrayList<>());
reslt.setMsg("没有授权码或者授权码验证未通过,不能查询!");
reslt.setStatus("fail");
return reslt;
}
int total = 0;
//构造请求参数
JSONObject jsonParams = new JSONObject();
jsonParams.put("index", "tb_xw_zbfzxyr");// 索引名称
jsonParams.put("request", JSONObject.parse(xxcxService.getEsXyrQryStr(param)));// 请求json
System.out.println("es嫌疑人查询请求参数:" + jsonParams.toJSONString());
//构造请求头
AsjRyRelateVoBzpt asj=new AsjRyRelateVoBzpt();
HttpEntity<Map<String, Object>> params = new HttpEntity<>(jsonParams, getHeaders(asj));
//返回参数处理
JSONObject resultJson = null;
resultJson = restTemplate.postForEntity(gabesUrl + "search", params, JSONObject.class).getBody();
System.out.println(resultJson);
if (resultJson != null) {
LinkedHashMap resultObj = (LinkedHashMap) resultJson.get("result");
LinkedHashMap responseObj = (LinkedHashMap) resultObj.get("response");
LinkedHashMap jsonHits = (LinkedHashMap) responseObj.get("hits");
//获取返回数据列表信息
List<LinkedHashMap> hitsArray = (ArrayList<LinkedHashMap>) jsonHits.get("hits");
if (hitsArray != null && hitsArray.size() > 0) {
for (LinkedHashMap hit : hitsArray) {
}
}
//数据总量
total = (int) jsonHits.get("total");
}
return reslt;
}
@RequestMapping("/AsjApiGroupByZjhm")
public Result AsjApiGroupByZjhm(@RequestBody AsjRyRelateVoBzpt asjbl){
Result reslt = new Result();
......@@ -1028,83 +1092,95 @@ public class XxcxController {
jsonParams.put("size","1000");
HttpEntity<Map<String,Object>> params = new HttpEntity<>(jsonParams,getHeaders(asj));// 请求头
JSONObject resultJson = restTemplate.postForEntity(gabUrl+"xyr",params,JSONObject.class).getBody();
// String ss="{\"sdd\":\"sd\",\"result\":null}";
// JSONObject resultJson =JSONObject.parseObject(ss);
List<LinkedHashMap> jsonHitArray = (List<LinkedHashMap>) resultJson.get("result");
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
if(jsonHitArray.size()>0){
for(int i=0;i<jsonHitArray.size();i++){
TbStRy tbStRy = new TbStRy();
LinkedHashMap obj = (LinkedHashMap) jsonHitArray.get(i);
String xm = (String) obj.get("ZHFZXYR_XM");// 姓名
String xzzDzmc = (String) obj.get("ZHFZXYR_XZZ_DZMC");// 现住址
String lxdh = (String) obj.get("ZHFZXYR_LXDH");// 联系电话
String csrq = (String) obj.get("ZHFZXYR_CSRQ_RQGZXX");// 出生日期
String cyzjZjhm = (String) obj.get("ZHFZXYR_CYZJ_ZJHM");// 证件号码
String xbdm = (String) obj.get("ZHFZXYR_XBDM");// 性别
String mzdm = (String) obj.get("ZHFZXYR_MZDM");// 民族
String gjdm = (String) obj.get("ZHFZXYR_GJDM");// 国际
tbStRy.setXm(xm);
tbStRy.setXzzDzmc(xzzDzmc);
tbStRy.setLxdh(lxdh);
if(StringUtils.isNotEmpty(csrq)){
try {
tbStRy.setCsrq(sf.format(sf.parse(csrq)));
} catch (ParseException e) {
e.printStackTrace();
}
}
HashMap<String,String> codeMap = new HashMap<String,String>();
// 性别
if(StringUtils.isNotEmpty(xbdm)){
// 翻译行政区划
codeMap.put("groupid","CODE_XB");
codeMap.put("code",xbdm);
tbStRy.setXbdm(xbdm);
String code=(String) resultJson.get("status_code");
if("1000".equals(code)) {
if (jsonHitArray != null) {
if (jsonHitArray.size() > 0) {
for (int i = 0; i < jsonHitArray.size(); i++) {
TbStRy tbStRy = new TbStRy();
LinkedHashMap obj = (LinkedHashMap) jsonHitArray.get(i);
String xm = (String) obj.get("ZHFZXYR_XM");// 姓名
String xzzDzmc = (String) obj.get("ZHFZXYR_XZZ_DZMC");// 现住址
String lxdh = (String) obj.get("ZHFZXYR_LXDH");// 联系电话
String csrq = (String) obj.get("ZHFZXYR_CSRQ_RQGZXX");// 出生日期
String cyzjZjhm = (String) obj.get("ZHFZXYR_CYZJ_ZJHM");// 证件号码
String xbdm = (String) obj.get("ZHFZXYR_XBDM");// 性别
String mzdm = (String) obj.get("ZHFZXYR_MZDM");// 民族
String gjdm = (String) obj.get("ZHFZXYR_GJDM");// 国际
tbStRy.setXm(xm);
tbStRy.setXzzDzmc(xzzDzmc);
tbStRy.setLxdh(lxdh);
if (StringUtils.isNotEmpty(csrq)) {
try {
tbStRy.setCsrq(sf.format(sf.parse(csrq)));
} catch (ParseException e) {
e.printStackTrace();
}
}
HashMap<String, String> codeMap = new HashMap<String, String>();
// 性别
if (StringUtils.isNotEmpty(xbdm)) {
// 翻译行政区划
codeMap.put("groupid", "CODE_XB");
codeMap.put("code", xbdm);
tbStRy.setXbdm(xbdm);
// String name = sysDictitemMapper.getNameByCode(codeMap);
// tbStRy.setXbdmStr(name);
}
}
// 民族
if(StringUtils.isNotEmpty(mzdm)){
// 民族
if (StringUtils.isNotEmpty(mzdm)) {
// 翻译行政区划
codeMap.put("groupid","CODE_MZ");
codeMap.put("code",mzdm);
tbStRy.setMzdm(mzdm);
// 翻译行政区划
codeMap.put("groupid", "CODE_MZ");
codeMap.put("code", mzdm);
tbStRy.setMzdm(mzdm);
// String name = sysDictitemMapper.getNameByCode(codeMap);
// tbStRy.setMzdmStr(name);
}
}
// 国籍
if(StringUtils.isNotEmpty(gjdm)){
// 国籍
if (StringUtils.isNotEmpty(gjdm)) {
// 翻译行政区划
codeMap.put("groupid","CODE_GJ");
codeMap.put("code",gjdm);
tbStRy.setGjdm(gjdm);
// 翻译行政区划
codeMap.put("groupid", "CODE_GJ");
codeMap.put("code", gjdm);
tbStRy.setGjdm(gjdm);
// String name = sysDictitemMapper.getNameByCode(codeMap);
// tbStRy.setGjdm(name);
}
tbStRy.setCyzjZjhm(cyzjZjhm);
}
tbStRy.setCyzjZjhm(cyzjZjhm);
// if (cyzjZjhm != null && !"".equals(cyzjZjhm.trim())) {
// String ryzp = getzp.getQgckZpXml(cyzjZjhm);// 获取人员照片
// tbStRy.setZp(ryzp);
// }
listTbStRy.add(tbStRy);
listTbStRy.add(tbStRy);
}
}
}
}
String zbfzxyrCount = "0";
if(listTbStRy!=null){
zbfzxyrCount = ""+listTbStRy.size();
}
resultMap.put("total",zbfzxyrCount);
resultMap.put("rows",listTbStRy);
String zbfzxyrCount = "0";
if (listTbStRy != null) {
zbfzxyrCount = "" + listTbStRy.size();
}
resultMap.put("total", zbfzxyrCount);
resultMap.put("rows", listTbStRy);
reslt.setData(resultMap);
reslt.setMsg("案件信息查询成功");
reslt.setStatus("success");
return reslt;
reslt.setData(resultMap);
reslt.setMsg("案件信息查询成功");
reslt.setStatus("success");
return reslt;
}else {
reslt.setMsg((String) resultJson.get("message"));
reslt.setStatus("fail");
return reslt;
}
}
public HttpHeaders getHeaders(AsjRyRelateVoBzpt asj) {
HttpHeaders hearders = new HttpHeaders();
......
......@@ -13,7 +13,7 @@ public interface XxcxService {
List<TbXwRybhView> queryTbXwRybh(TbXwRybhView param);
String getEsAsjQryStr(XyrParam xyr);
String getEsXyrQryStr(XyrParam xyr);
String getCountByAsjbhNum1();
String getCountByAsjbhNum3();
......
......@@ -6,6 +6,7 @@ import com.founder.service.XxcxService;
import org.apache.commons.lang3.StringUtils;
import org.apache.lucene.search.join.ScoreMode;
import org.elasticsearch.index.query.*;
import org.elasticsearch.join.query.HasParentQueryBuilder;
import org.elasticsearch.join.query.JoinQueryBuilders;
import org.elasticsearch.script.Script;
import org.elasticsearch.search.aggregations.AggregationBuilders;
......@@ -310,6 +311,53 @@ public class XxcxServiceImpl implements XxcxService {
return bqAj;
}
@Override
public String getEsXyrQryStr(XyrParam xyr) {
BoolQueryBuilder bqXyr = getBoolXyr(xyr);
// //是否需要关联查询案件
// AsjParam asj = param.getAsj();
// if (asj != null) {
// boolean parentFlag = false;
// // 通过反射获取实体字段 判断是否有值
// Class asjClass = asj.getClass();
// Field[] fieldAsj = asjClass.getDeclaredFields();
// for (int i = 0; i < fieldAsj.length; i++) {
// Field f = fieldAsj[i];
// // 使用私有方法必须设置 method.setAccessible(true) 取消访问检查
// f.setAccessible(true);
// // 获取属性的名字
// String name = f.getName();
// // 将属性的首字母大写
// name = name.replaceFirst(name.substring(0, 1), name.substring(0, 1)
// .toUpperCase());
// // 如果type是类类型,则前面包含"class ",后面跟类名
// Method m = asjClass.getMethod("get" + name);
// // 调用getter方法获取属性值
// String value = (String) m.invoke(asj);
// if (StringUtils.isNotEmpty(value)) {
// parentFlag = true;
// break;
// }
// }
// if (parentFlag) {
// // 基础查询 案件
// BoolQueryBuilder bqAj = getBoolAsj(asj);
// HasParentQueryBuilder parentQueryBuilder = JoinQueryBuilders.hasParentQuery("v_solr6_tb_st_asj", bqAj, false);
// bqXyr.must(parentQueryBuilder);
// }
// }
int page = xyr.getPage();
int limit = xyr.getLimit();
int begin = (page - 1) * limit;
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(bqXyr).from(begin).size(limit);
// searchSourceBuilder.sort("v_solr6_tb_xw_zbfzxyr_PS_ZHRQ",DESC);
return searchSourceBuilder.toString();
}
@Override
public String getEsAsjQryStr(XyrParam xyr) {
BoolQueryBuilder bqAj = QueryBuilders.boolQuery();
......
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