Commit d7e0f34a by yangyang

湖南态势分析es处理(湖南)

parent 09e49de5
...@@ -34,6 +34,7 @@ public class TbStAsjParm implements Serializable { ...@@ -34,6 +34,7 @@ public class TbStAsjParm implements Serializable {
@ApiModelProperty(value = "简要案情") @ApiModelProperty(value = "简要案情")
private String jyaq; private String jyaq;
private String jyaqType;
@ApiModelProperty(value = "立案日期开始") @ApiModelProperty(value = "立案日期开始")
private String larqStart; private String larqStart;
...@@ -60,7 +61,7 @@ public class TbStAsjParm implements Serializable { ...@@ -60,7 +61,7 @@ public class TbStAsjParm implements Serializable {
private String afdxzqhdm; private String afdxzqhdm;
@ApiModelProperty(value = "案件名称") @ApiModelProperty(value = "案件名称")
private int ajmc; private String ajmc;
@ApiModelProperty(value = "所属分局1 所属派出所2") @ApiModelProperty(value = "所属分局1 所属派出所2")
private int ssFjOrPcs; private int ssFjOrPcs;
......
...@@ -75,6 +75,46 @@ public class HttpClient { ...@@ -75,6 +75,46 @@ public class HttpClient {
return jsonResult; return jsonResult;
} }
/**
* 请求的参数类型为json
* @param url
* @param json
* @return {username:"",pass:""}
*/
public static JSONObject doPostJsonHunanTs(String url, String json) throws Exception {
// post请求返回结果
CloseableHttpClient httpClient = HttpClients.createDefault();
JSONObject jsonResult = null;
HttpPost httpPost = new HttpPost(url);
// 设置请求和传输超时时间
httpPost.setConfig(requestConfig);
httpPost.setHeader("founder.authorization", "Basic 9b6c45cfcf3a4a629e3ed90fa3e5d058");
try{
//设置参数解决中文乱码
if (null != json){
StringEntity entity = new StringEntity(json,"utf-8");
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
}
//发送请求
CloseableHttpResponse result = httpClient.execute(httpPost);
System.out.println("StatusCode===="+result.getStatusLine().getStatusCode());
if (result.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
// 读取服务器返回的json数据(然后解析)
jsonResult = JSONObject.parseObject(EntityUtils.toString(result.getEntity(), "utf-8"));
}else{
throw new Exception();
}
}catch (Exception e){
e.printStackTrace();
throw new Exception();
}finally{
httpPost.releaseConnection();
}
return jsonResult;
}
public static String doGet(String url,Map<String, String> headMap,Map<String, String> param) { public static String doGet(String url,Map<String, String> headMap,Map<String, String> param) {
// 创建客户端连接 // 创建客户端连接
CloseableHttpClient httpclient = HttpClients.createDefault(); CloseableHttpClient httpclient = HttpClients.createDefault();
......
...@@ -69,21 +69,6 @@ ...@@ -69,21 +69,6 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId> <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency> </dependency>
<!-- 引入spring-data-elasticsearch-->
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>-->
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.4.3</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>6.4.3</version>
</dependency>
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
...@@ -93,6 +78,18 @@ ...@@ -93,6 +78,18 @@
<artifactId>gson</artifactId> <artifactId>gson</artifactId>
<version>2.8.5</version> <version>2.8.5</version>
</dependency> </dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.9</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.13</version>
</dependency>
<!-- spring2.X集成redis所需common-pool2 <!-- spring2.X集成redis所需common-pool2
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
......
...@@ -176,7 +176,11 @@ public class SysLogAspect { ...@@ -176,7 +176,11 @@ public class SysLogAspect {
try { try {
result = proceedingJoinPoint.proceed(); result = proceedingJoinPoint.proceed();
if (!StringUtils.isEmpty(result)) { if (!StringUtils.isEmpty(result)) {
sysLog.setContent(result.toString()); if (request.getRequestURL().toString().contains("/skTbStAsj/queryAsjEs")){
sysLog.setContent(null);
}else{
sysLog.setContent(result.toString());
}
} }
}catch (Exception e){ }catch (Exception e){
// KoTime工具在Throwable中不生效,以后如果要自定义异常的话 需要继承Exception // KoTime工具在Throwable中不生效,以后如果要自定义异常的话 需要继承Exception
......
...@@ -103,25 +103,6 @@ ...@@ -103,25 +103,6 @@
<groupId>org.apache.velocity</groupId> <groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId> <artifactId>velocity-engine-core</artifactId>
</dependency> </dependency>
<!-- 引入spring-data-elasticsearch-->
<!--
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
-->
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.4.3</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>6.4.3</version>
</dependency>
<!--spring切面aop依赖--> <!--spring切面aop依赖-->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
......
...@@ -66,5 +66,20 @@ ...@@ -66,5 +66,20 @@
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId> <artifactId>fastjson</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.11.1</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.11.1</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>7.11.1</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
package com.founder.publicapi.config;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.time.Duration;
/**
* @描述: 创建ES高级客户端
* @aurhor : yangyang
* @date : 2023/09/27
*/
@Configuration
public class ElasticSearchClientConfig {
@Bean
public RestHighLevelClient restHighLevelClient(){
RestHighLevelClient client = null;
//需要用户名和密码的认证
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic", "admin@43"));
RestClientBuilder restClientBuilder = RestClient.builder(
//new HttpHost("47.92.225.109",9200,"http"))
new HttpHost("10.142.16.191",9209,"http"))
//new HttpHost(node2,port,"http"),
//new HttpHost(node3,port,"http"))
.setHttpClientConfigCallback( new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpAsyncClientBuilder) {
return httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider).setKeepAliveStrategy((response, context) -> Duration.ofMinutes(5).toMillis());
}
});
client = new RestHighLevelClient(restClientBuilder);
return client;
}
}
...@@ -56,6 +56,24 @@ public class AsjController { ...@@ -56,6 +56,24 @@ public class AsjController {
return MapRestResult.build(200,"成功获取案件信息",total,asjList); return MapRestResult.build(200,"成功获取案件信息",total,asjList);
} }
@OperLog(message = "态势分析查询",operation = OperationType.QUERY)
@ApiOperation(value = "态势分析查询")
@PostMapping("queryAsjEs")
public MapRestResult queryAsjEs(@RequestBody TbStAsjParm tbStAsjParm,HttpServletRequest request) {
//获取request中的用户信息
SysUser user = (SysUser)request.getAttribute("user");
return tbStAsjService.selectAsjxxListEs(tbStAsjParm);
}
@OperLog(message = "态势分析案情详情查询",operation = OperationType.QUERY)
@ApiOperation(value = "态势分析案情详情查询")
@PostMapping("queryAsjEsXq")
public MapRestResult queryAsjEsXq(@RequestBody TbStAsjParm tbStAsjParm,HttpServletRequest request) {
//获取request中的用户信息
SysUser user = (SysUser)request.getAttribute("user");
return tbStAsjService.selectAsjxxListEsXq(tbStAsjParm);
}
@OperLog(message = "串并案件导出",operation = OperationType.QUERY) @OperLog(message = "串并案件导出",operation = OperationType.QUERY)
@ApiOperation(value = "串并案件导出") @ApiOperation(value = "串并案件导出")
@PostMapping("cbajExport") @PostMapping("cbajExport")
...@@ -98,8 +116,8 @@ public class AsjController { ...@@ -98,8 +116,8 @@ public class AsjController {
@PostMapping("tsfxExport") @PostMapping("tsfxExport")
public void tsfxExport(HttpServletResponse response,@RequestBody TbStAsjParm tbStAsjParm) throws Exception { public void tsfxExport(HttpServletResponse response,@RequestBody TbStAsjParm tbStAsjParm) throws Exception {
List<TbStAsjResult> list = tbStAsjService.selectAsjxxList(tbStAsjParm); List<Map<String,Object>> list = tbStAsjService.getAsjExportEs(tbStAsjParm);
ExportExcelUtil<TbStAsjResult> exportExcelUtil = new ExportExcelUtil<>(); ExportExcelUtil<Map<String,Object>> exportExcelUtil = new ExportExcelUtil<>();
String[] headersName = {"案件编号","案件名称","案发时间","案发地址","坐标x","坐标y","案件类别","案件标签","简要案情"}; String[] headersName = {"案件编号","案件名称","案发时间","案发地址","坐标x","坐标y","案件类别","案件标签","简要案情"};
String[] headersField = {"asjbh","ajmc","asjfssjAsjfskssj","asjfsddDzmc","x","y","ajlbdmMc","zatzJyqkMc","jyaq"}; String[] headersField = {"asjbh","ajmc","asjfssjAsjfskssj","asjfsddDzmc","x","y","ajlbdmMc","zatzJyqkMc","jyaq"};
exportExcelUtil.exportExcel("DataStatistics", headersName, headersField, list, response,"态势分析地图检索"); exportExcelUtil.exportExcel("DataStatistics", headersName, headersField, list, response,"态势分析地图检索");
......
/*
package com.founder.publicapi.controller.SkInterface;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.founder.commonutils.model.newPublicEntity.MapRestResult;
import com.founder.commonutils.model.vo.response.SkRelatedResultInterFace;
import com.founder.commonutils.model.vo.response.SkRelatedResultVO;
import com.founder.commonutils.util.ExportExcelUtil;
import com.founder.commonutils.util.HttpClient;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@Api(tags = "天枢导出")
@RestController
@RequestMapping("/exportTsHn")
public class TsinfoController {
@Autowired
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
String url = "http://tianshu.gat.zj/tsure/assistQueryResult/queryAssistForPage.json";
@PostMapping("/export")
@ApiOperation("Excel接口")
public void export(@RequestParam(name = "id") String id){
// 天枢导出注册
CompletableFuture future = CompletableFuture.supplyAsync(() -> {
Integer zdryexist =0;
try {
List<CarInfo> carList = exportData(carInfoService.selectCarInfoListCount(entity),entity);
ExportExcelUtil<CarInfo> exportExcelUtil = new ExportExcelUtil<>();
String[] headersName = {"车架号","品牌型号","车辆颜色","发动机号","车辆所有人","出卖人姓名","出卖人身份证号","营业场所名称","法人姓名","法人联系电话"};
String[] headersField = {"vin","ppxh","ys","fdjh","clsyr","cmrXm","cmrZjhm","yycsmc","frxm","frlxdh"};
exportExcelUtil.exportExcel("DataStatistics", headersName, headersField, carList, response,"二手车信息");
} catch (Exception e) {
e.printStackTrace();
}
return "success";
}, threadPoolTaskExecutor);
// 天枢导出登录
CompletableFuture future2 = CompletableFuture.supplyAsync(() -> {
Integer zdryexist =0;
try {
List<CarInfo> carList = exportData(carInfoService.selectCarInfoListCount(entity),entity);
ExportExcelUtil<CarInfo> exportExcelUtil = new ExportExcelUtil<>();
String[] headersName = {"车架号","品牌型号","车辆颜色","发动机号","车辆所有人","出卖人姓名","出卖人身份证号","营业场所名称","法人姓名","法人联系电话"};
String[] headersField = {"vin","ppxh","ys","fdjh","clsyr","cmrXm","cmrZjhm","yycsmc","frxm","frlxdh"};
exportExcelUtil.exportExcel("DataStatistics", headersName, headersField, carList, response,"二手车信息");
} catch (Exception e) {
e.printStackTrace();
}
return "success";
}, threadPoolTaskExecutor);
// 天枢导出交易
CompletableFuture future3 = CompletableFuture.supplyAsync(() -> {
Integer zdryexist =0;
try {
List<CarInfo> carList = exportData(carInfoService.selectCarInfoListCount(entity),entity);
ExportExcelUtil<CarInfo> exportExcelUtil = new ExportExcelUtil<>();
String[] headersName = {"车架号","品牌型号","车辆颜色","发动机号","车辆所有人","出卖人姓名","出卖人身份证号","营业场所名称","法人姓名","法人联系电话"};
String[] headersField = {"vin","ppxh","ys","fdjh","clsyr","cmrXm","cmrZjhm","yycsmc","frxm","frlxdh"};
exportExcelUtil.exportExcel("DataStatistics", headersName, headersField, carList, response,"二手车信息");
} catch (Exception e) {
e.printStackTrace();
}
return "success";
}, threadPoolTaskExecutor);
future.join();
future2.join();
future3.join();
}
public List<CarInfo> exportData(int size,CarInfo carInfo) throws Exception {
List<CarInfo> list = new ArrayList<>();
// 分页
int limit=1000;
// 特殊处理
if(limit==0){
limit=1;
}
long threadNum = size / limit;
int startnum = 0;
int endnum = 0;
// 按需分配线程池
for (int i = 0; i < threadNum + 1; i++) {
startnum = i * limit;
endnum = ((i + 1) * limit);
if (startnum > size) {
break;
}
if (endnum >size) {
endnum = size;
}
if (startnum == endnum) {
break;
}
carInfo.setPage(startnum);
carInfo.setPageSize(limit);
Task task = new Task(carInfo);
FutureTask<List<CarInfo>> futureTask = new FutureTask<>(task);
ExecutorService executorService = Executors.newFixedThreadPool(100);
executorService.submit(futureTask);
List<CarInfo> list1 = futureTask.get();
list.addAll(list1);
executorService.shutdown();
}
return list;
}
class Task implements Callable<List<CarInfo>> {
private String table;
private Integer pageSize;
private Integer pageNum;
public Task(String table,Integer pageSize,Integer pageNum) {
this.table = table;
this.pageSize = pageSize;
this.pageNum = pageNum;
}
@Override
public List<CarInfo> call() {
list<> listResult = new ArrayList<>();
HttpClient httpClient = new HttpClient();
JSONObject params = new JSONObject();
// table 登录(logon_log_acc) 注册(register) 账户明细(consume_query_real_time)
params.put("pageSize", pageSize);
params.put("pageNum", pageNum);
params.put("tsureRequireId", "311072023091100672254");
params.put("tableName", table);
JSONObject result = null;
try {
result = httpClient.doPostJsonHunanTs(url, params.toJSONString());
} catch (Exception e) {
e.printStackTrace();
}
if (result != null) {
if ("true".equals(result.getString("success"))) {
JSONArray jsonArray = result.getJSONArray("data");
}
}
return listResult;
}
}
// 获取总数
public Integer getCount(String table){
Integer totalCount = 0;
HttpClient httpClient = new HttpClient();
JSONObject params = new JSONObject();
// table 登录(logon_log_acc) 注册(register) 账户明细(consume_query_real_time)
params.put("pageSize", 0);
params.put("pageNum", 1);
params.put("tsureRequireId", "311072023091100672254");
params.put("tableName", table);
JSONObject result = null;
try {
result = httpClient.doPostJsonHunanTs(url, params.toJSONString());
} catch (Exception e) {
e.printStackTrace();
}
if (result != null) {
if ("true".equals(result.getString("success"))) {
totalCount = result.getInteger("totalCount");
}
}
return totalCount;
}
}
*/
...@@ -5,6 +5,7 @@ import com.founder.commonutils.model.asjEntity.CbxszAndXlaj; ...@@ -5,6 +5,7 @@ import com.founder.commonutils.model.asjEntity.CbxszAndXlaj;
import com.founder.commonutils.model.asjEntity.TbAsjJwdInfo; import com.founder.commonutils.model.asjEntity.TbAsjJwdInfo;
import com.founder.commonutils.model.asjEntity.TbStAsj; import com.founder.commonutils.model.asjEntity.TbStAsj;
import com.founder.commonutils.model.asjEntity.TbStAsjResult; import com.founder.commonutils.model.asjEntity.TbStAsjResult;
import com.founder.commonutils.model.newPublicEntity.MapRestResult;
import com.founder.commonutils.model.newPublicEntity.SaspEntity.PhotoOrMediaResult; import com.founder.commonutils.model.newPublicEntity.SaspEntity.PhotoOrMediaResult;
import com.founder.commonutils.model.newPublicEntity.SysUser; import com.founder.commonutils.model.newPublicEntity.SysUser;
import com.founder.commonutils.model.newPublicEntity.ZdryResult; import com.founder.commonutils.model.newPublicEntity.ZdryResult;
...@@ -21,6 +22,12 @@ public interface TbStAsjService extends IService<TbStAsj> { ...@@ -21,6 +22,12 @@ public interface TbStAsjService extends IService<TbStAsj> {
List<TbStAsjResult> selectAsjxxList(TbStAsjParm tbStAsjParm); List<TbStAsjResult> selectAsjxxList(TbStAsjParm tbStAsjParm);
MapRestResult selectAsjxxListEs(TbStAsjParm tbStAsjParm);
MapRestResult selectAsjxxListEsXq(TbStAsjParm tbStAsjParm);
List<Map<String,Object>> getAsjExportEs(TbStAsjParm tbStAsjParm);
Integer selectAsjxxListCount(TbStAsjParm tbStAsjParm); Integer selectAsjxxListCount(TbStAsjParm tbStAsjParm);
List<String> getXszajbhByAsjbh(String asjbh); List<String> getXszajbhByAsjbh(String asjbh);
......
...@@ -7,29 +7,38 @@ import com.founder.commonutils.model.asjEntity.CbxszAndXlaj; ...@@ -7,29 +7,38 @@ import com.founder.commonutils.model.asjEntity.CbxszAndXlaj;
import com.founder.commonutils.model.asjEntity.TbAsjJwdInfo; import com.founder.commonutils.model.asjEntity.TbAsjJwdInfo;
import com.founder.commonutils.model.asjEntity.TbStAsj; import com.founder.commonutils.model.asjEntity.TbStAsj;
import com.founder.commonutils.model.asjEntity.TbStAsjResult; import com.founder.commonutils.model.asjEntity.TbStAsjResult;
import com.founder.commonutils.model.newPublicEntity.*;
import com.founder.commonutils.model.newPublicEntity.SaspEntity.PhotoOrMediaResult; import com.founder.commonutils.model.newPublicEntity.SaspEntity.PhotoOrMediaResult;
import com.founder.commonutils.model.newPublicEntity.SkPointlocation;
import com.founder.commonutils.model.newPublicEntity.SysUser;
import com.founder.commonutils.model.newPublicEntity.ZdcsResult;
import com.founder.commonutils.model.newPublicEntity.ZdryResult;
import com.founder.commonutils.model.newPublicEntity.jwdjyEntity.TbAsjJwdinfo; import com.founder.commonutils.model.newPublicEntity.jwdjyEntity.TbAsjJwdinfo;
import com.founder.commonutils.model.vo.param.SkPointlocationParams; import com.founder.commonutils.model.vo.param.SkPointlocationParams;
import com.founder.commonutils.model.vo.param.TbStAsjParm; import com.founder.commonutils.model.vo.param.TbStAsjParm;
import com.founder.commonutils.model.vo.param.ZdryParams; import com.founder.commonutils.model.vo.param.ZdryParams;
import com.founder.commonutils.util.DwUtilCommon; import com.founder.commonutils.util.DwUtilCommon;
import com.founder.commonutils.util.StringUtil;
import com.founder.publicapi.mapper.mysqlMapper.SysDictitemMapper; import com.founder.publicapi.mapper.mysqlMapper.SysDictitemMapper;
import com.founder.publicapi.mapper.mysqlMapper.TbStAsjMapper; import com.founder.publicapi.mapper.mysqlMapper.TbStAsjMapper;
import com.founder.publicapi.mapper.qgxzMapper.TbStAsjqgMapper; import com.founder.publicapi.mapper.qgxzMapper.TbStAsjqgMapper;
import com.founder.publicapi.service.SkPointlocationService; import com.founder.publicapi.service.SkPointlocationService;
import com.founder.publicapi.service.TbStAsjService; import com.founder.publicapi.service.TbStAsjService;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.*;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.elasticsearch.search.sort.SortOrder.DESC;
@Service @Service
public class TbStAsjServiceImpl extends ServiceImpl<TbStAsjMapper, TbStAsj> implements TbStAsjService { public class TbStAsjServiceImpl extends ServiceImpl<TbStAsjMapper, TbStAsj> implements TbStAsjService {
...@@ -43,6 +52,9 @@ public class TbStAsjServiceImpl extends ServiceImpl<TbStAsjMapper, TbStAsj> impl ...@@ -43,6 +52,9 @@ public class TbStAsjServiceImpl extends ServiceImpl<TbStAsjMapper, TbStAsj> impl
private SkPointlocationService skPointlocationService; private SkPointlocationService skPointlocationService;
@Autowired @Autowired
private SysDictitemMapper sysDictitemMapper; private SysDictitemMapper sysDictitemMapper;
@Autowired
private RestHighLevelClient client;
private SearchSourceBuilder sourceBuilder;
@Override @Override
public List<TbStAsjResult> selectAsjxxList(TbStAsjParm tbStAsjParm) { public List<TbStAsjResult> selectAsjxxList(TbStAsjParm tbStAsjParm) {
...@@ -52,8 +64,14 @@ public class TbStAsjServiceImpl extends ServiceImpl<TbStAsjMapper, TbStAsj> impl ...@@ -52,8 +64,14 @@ public class TbStAsjServiceImpl extends ServiceImpl<TbStAsjMapper, TbStAsj> impl
// 根据规则截取前三位 // 根据规则截取前三位
String ajlbdm = ""; String ajlbdm = "";
if (tbStAsjParm.getAjlbdm().endsWith("000")) { if(tbStAsjParm.getAjlbdm().endsWith("000000")){
ajlbdm = tbStAsjParm.getAjlbdm().substring(0, 3) + "*"; ajlbdm = tbStAsjParm.getAjlbdm().substring(0, 2);
}else if (tbStAsjParm.getAjlbdm().endsWith("0000")) {
ajlbdm = tbStAsjParm.getAjlbdm().substring(0, 4);
} else if (tbStAsjParm.getAjlbdm().endsWith("000")) {
ajlbdm = tbStAsjParm.getAjlbdm().substring(0, 5);
} else if (tbStAsjParm.getAjlbdm().endsWith("00")) {
ajlbdm = tbStAsjParm.getAjlbdm().substring(0, 6);
} else { } else {
ajlbdm = tbStAsjParm.getAjlbdm(); ajlbdm = tbStAsjParm.getAjlbdm();
} }
...@@ -72,12 +90,85 @@ public class TbStAsjServiceImpl extends ServiceImpl<TbStAsjMapper, TbStAsj> impl ...@@ -72,12 +90,85 @@ public class TbStAsjServiceImpl extends ServiceImpl<TbStAsjMapper, TbStAsj> impl
}else{ }else{
xzqh = tbStAsjParm.getAfdxzqhdm(); xzqh = tbStAsjParm.getAfdxzqhdm();
} }
tbStAsjParm.getAfdxzqhdm(xzqh); tbStAsjParm.setAfdxzqhdm(xzqh);
} }
return tbStAsjMapper.selectAsjxxByReceivingList(tbStAsjParm); return tbStAsjMapper.selectAsjxxByReceivingList(tbStAsjParm);
} }
@Override @Override
public MapRestResult selectAsjxxListEs(TbStAsjParm tbStAsjParm) {
List<Map<String,Object>> list = new ArrayList<>();
// 查询
SearchRequest searchRequest = new SearchRequest("skasj");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.fetchSource(new String[] {"asjbh","ajmc","asjfsddDzmc","x","y","ajlbdmMc","asjfssjAsjfskssj"}, new String[]{});
sourceBuilder.query(boolAsj(tbStAsjParm)).from(0).size(10000).trackTotalHits(true);
sourceBuilder.sort("larq", DESC);
searchRequest.source(sourceBuilder);
System.out.println("es查询条件为:" + sourceBuilder);
SearchResponse searchResponse = null;
try {
searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
} catch (IOException e) {
e.printStackTrace();
}
SearchHits hits = searchResponse.getHits();
for (SearchHit hit : hits) {
Map<String, Object> map = hit.getSourceAsMap();
list.add(map);
}
return MapRestResult.build(200,"成功获取案件信息",hits.getTotalHits().value,list);
}
@Override
public MapRestResult selectAsjxxListEsXq(TbStAsjParm tbStAsjParm) {
List<Map<String,Object>> list = new ArrayList<>();
// 查询
SearchRequest searchRequest = new SearchRequest("skasj");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(boolAsj(tbStAsjParm)).from(0).size(1).trackTotalHits(true);
sourceBuilder.sort("larq", DESC);
searchRequest.source(sourceBuilder);
System.out.println("es查询条件为:" + sourceBuilder);
SearchResponse searchResponse = null;
try {
searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
} catch (IOException e) {
e.printStackTrace();
}
SearchHits hits = searchResponse.getHits();
for (SearchHit hit : hits) {
Map<String, Object> map = hit.getSourceAsMap();
list.add(map);
}
return MapRestResult.build(200,"成功获取案件信息",hits.getTotalHits().value,list);
}
@Override
public List<Map<String,Object>> getAsjExportEs(TbStAsjParm tbStAsjParm){
List<Map<String,Object>> list = new ArrayList<>();
// 查询
SearchRequest searchRequest = new SearchRequest("skasj");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(boolAsj(tbStAsjParm)).from(0).size(10000).trackTotalHits(true);
sourceBuilder.sort("larq", DESC);
searchRequest.source(sourceBuilder);
System.out.println("es查询条件为:" + sourceBuilder);
SearchResponse searchResponse = null;
try {
searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
} catch (IOException e) {
e.printStackTrace();
}
SearchHits hits = searchResponse.getHits();
for (SearchHit hit : hits) {
Map<String, Object> map = hit.getSourceAsMap();
list.add(map);
}
return list;
}
@Override
public Integer selectAsjxxListCount(TbStAsjParm tbStAsjParm) { public Integer selectAsjxxListCount(TbStAsjParm tbStAsjParm) {
return tbStAsjMapper.selectAsjxxByReceivingListCount(tbStAsjParm); return tbStAsjMapper.selectAsjxxByReceivingListCount(tbStAsjParm);
} }
...@@ -360,4 +451,157 @@ public class TbStAsjServiceImpl extends ServiceImpl<TbStAsjMapper, TbStAsj> impl ...@@ -360,4 +451,157 @@ public class TbStAsjServiceImpl extends ServiceImpl<TbStAsjMapper, TbStAsj> impl
} }
return unitCode; return unitCode;
} }
// 封装Es案件查询条件
public BoolQueryBuilder boolAsj(TbStAsjParm asj) {
// 基础查询 案件
BoolQueryBuilder bqAj = QueryBuilders.boolQuery();
// 信息删除判断标志
TermsQueryBuilder termQueryBuilderXxsc = QueryBuilders.termsQuery("xxscPdbzAsj", "0");
bqAj.must(termQueryBuilderXxsc);
//查询处理
if (null != asj) {
// 案事件编号模糊查询
if (StringUtils.isNotBlank(asj.getAsjbh())) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("asjbh", "*" + asj.getAsjbh() + "*");
bqAj.must(wildcardQueryBuilder);
}
// 案件名称
if (StringUtils.isNotBlank(asj.getAjmc())) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("ajmc", "*" + asj.getAjmc() + "*");
bqAj.must(wildcardQueryBuilder);
}
// 案件类别代码模糊查询
if (StringUtils.isNotBlank(asj.getAjlbdm())) {
// 根据规则截取前三位
String ajlbdm = "";
if(asj.getAjlbdm().endsWith("000000")){
ajlbdm = asj.getAjlbdm().substring(0, 2)+ "*";
}else if (asj.getAjlbdm().endsWith("0000")) {
ajlbdm = asj.getAjlbdm().substring(0, 4)+ "*";
} else if (asj.getAjlbdm().endsWith("000")) {
ajlbdm = asj.getAjlbdm().substring(0, 5)+ "*";
} else if (asj.getAjlbdm().endsWith("00")) {
ajlbdm = asj.getAjlbdm().substring(0, 6)+ "*";
} else {
ajlbdm = asj.getAjlbdm();
}
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("ajlbdm", ajlbdm);
bqAj.must(wildcardQueryBuilder);
}
// 小类案别
if (StringUtils.isNotBlank(asj.getZatzJyqk())) {
// 根据规则截取
String zatz = "";
if (asj.getZatzJyqk().endsWith("000000")) {
zatz = asj.getZatzJyqk().substring(0, 6) + "*";
} else if(asj.getZatzJyqk().endsWith("00")){
zatz = asj.getZatzJyqk().substring(0, 10) + "*";
}else{
zatz = asj.getZatzJyqk();
}
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("zatzJyqk", zatz);
bqAj.must(wildcardQueryBuilder);
}
// 案件细类别
if (StringUtils.isNotBlank(asj.getAjxlb())) {
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("ajxlb", asj.getAjxlb());
bqAj.must(termQueryBuilder);
}
// 侦察阶段
if (StringUtils.isNotBlank(asj.getZcjddm())) {
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("zcjddm", asj.getZcjddm());
bqAj.must(termQueryBuilder);
}
// 案发地行政区划
if (StringUtils.isNotBlank(asj.getAfdxzqhdm())) {
String xzqhdm = "";
// 省级 市级 县级截取
if (asj.getAfdxzqhdm().endsWith("0000")) {
xzqhdm = asj.getAfdxzqhdm().substring(0, 2);
} else if (asj.getAfdxzqhdm().endsWith("00")) {
xzqhdm = asj.getAfdxzqhdm().substring(0, 4);
} else {
xzqhdm = asj.getAfdxzqhdm();
}
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("asjfsddXzqhdm", xzqhdm + "*");
bqAj.must(wildcardQueryBuilder);
}
// 立案单位公安机关机关代码
if (StringUtils.isNotBlank(asj.getLadwGajgjgdm())) {
String unitcode = asj.getLadwGajgjgdm();
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("ladwGajgjgdm", unitcode + "*");
bqAj.must(wildcardQueryBuilder);
}
// 立案时间(年月日)范围
if (StringUtils.isNotBlank(asj.getKssj())) {
if (null != asj.getJssj() && !"".equals(asj.getJssj())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("larq").gte(asj.getKssj()).lte(asj.getJssj());
bqAj.must(rangeQueryBuilder);
} else {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("larq").gte(asj.getKssj());
bqAj.must(rangeQueryBuilder);
}
} else if (null != asj.getJssj() && !"".equals(asj.getJssj())) {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("larq").gte(asj.getJssj());
bqAj.must(rangeQueryBuilder);
}
// 经纬度范围
if (StringUtils.isNotBlank(asj.getStartLng())&&
StringUtils.isNotBlank(asj.getEndLng())&&StringUtils.isNotBlank(asj.getStartLat())&&StringUtils.isNotBlank(asj.getEndLat())
) {
RangeQueryBuilder rangeQueryBuilderX = QueryBuilders.rangeQuery("x").gte(asj.getStartLng()).lte(asj.getEndLng());
bqAj.must(rangeQueryBuilderX);
RangeQueryBuilder rangeQueryBuilderY = QueryBuilders.rangeQuery("y").gte(asj.getStartLat()).lte(asj.getEndLat());
bqAj.must(rangeQueryBuilderY);
}
// 简要案情模糊查询
if (StringUtils.isNotBlank(asj.getJyaq())) {
String jyaq = asj.getJyaq();
String[] jyaqs = jyaq.split(",|,");
String jyaqType = asj.getJyaqType();
if ("and".equals(jyaqType)) {
for (String aq : jyaqs) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("jyaq", "*" + aq + "*");
bqAj.must(wildcardQueryBuilder);
}
} else if ("or".equals(jyaqType)) {
BoolQueryBuilder bqShould = QueryBuilders.boolQuery();
for (String aq : jyaqs) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("jyaq", "*" + aq + "*");
bqShould.should(wildcardQueryBuilder);
}
bqAj.must(bqShould);
}else {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("jyaq", "*" + jyaq + "*");
bqAj.must(wildcardQueryBuilder);
}
}
}
return bqAj;
}
} }
...@@ -10,13 +10,13 @@ logging.level.root=INFO ...@@ -10,13 +10,13 @@ logging.level.root=INFO
#mysql\uFFFD\uFFFD\uFFFD\u077F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD #mysql\uFFFD\uFFFD\uFFFD\u077F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.xzxtdb.url=jdbc:mysql://65.26.107.159:4306/xzxt?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai spring.datasource.xzxtdb.url=jdbc:mysql://10.142.16.194:4306/xzxt?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.xzxtdb.username=ENC(b7OXS5qvb3tVsaDbfqkFpg==) spring.datasource.xzxtdb.username=ENC(b7OXS5qvb3tVsaDbfqkFpg==)
spring.datasource.xzxtdb.password=ENC(PhkJovHr5GezJgLS+gfSFaID3dNlmUi5) spring.datasource.xzxtdb.password=ENC(PhkJovHr5GezJgLS+gfSFaID3dNlmUi5)
#oracle\uFFFD\uFFFD\uFFFD\u077F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD(\u022B\uFFFD\uFFFD\uFFFD\uFFFD) #oracle\uFFFD\uFFFD\uFFFD\u077F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD(\u022B\uFFFD\uFFFD\uFFFD\uFFFD)
spring.datasource.qgdb.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.qgdb.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.qgdb.url=jdbc:mysql://65.26.107.159:4306/xzxt?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai spring.datasource.qgdb.url=jdbc:mysql://10.142.16.194:4306/xzxt?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.qgdb.username=ENC(b7OXS5qvb3tVsaDbfqkFpg==) spring.datasource.qgdb.username=ENC(b7OXS5qvb3tVsaDbfqkFpg==)
spring.datasource.qgdb.password=ENC(PhkJovHr5GezJgLS+gfSFaID3dNlmUi5) spring.datasource.qgdb.password=ENC(PhkJovHr5GezJgLS+gfSFaID3dNlmUi5)
......
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