page, AlarmRecordRequest request);
+
}
diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IDataGasService.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IDataGasService.java
index afb913d..e644294 100644
--- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IDataGasService.java
+++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IDataGasService.java
@@ -1,8 +1,11 @@
package com.casic.missiles.modular.system.service;
+import com.casic.missiles.modular.system.es.DataGasEs;
import com.casic.missiles.modular.system.model.DataGas;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.io.IOException;
+
/**
*
* 甲烷实时数据表 服务类
@@ -12,5 +15,5 @@
* @since 2023-04-18
*/
public interface IDataGasService extends IService {
-
+ void insertDataGasEs(DataGasEs dataGasEs) throws IOException;
}
diff --git a/casic-common/pom.xml b/casic-common/pom.xml
new file mode 100644
index 0000000..861e1ec
--- /dev/null
+++ b/casic-common/pom.xml
@@ -0,0 +1,60 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-PTZ
+ 2.0.0
+ ../pom.xml
+
+
+ casic-common
+ 2.0.0
+ jar
+ casic-common
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ com.casic
+ casic-export-support
+ ${extension.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+ com.casic
+ casic-data-es
+ 1.0.1.alpha
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-common/src/main/java/com/casic/missiles/modular/system/consts/DataConst.java b/casic-common/src/main/java/com/casic/missiles/modular/system/consts/DataConst.java
new file mode 100644
index 0000000..bbe581c
--- /dev/null
+++ b/casic-common/src/main/java/com/casic/missiles/modular/system/consts/DataConst.java
@@ -0,0 +1,8 @@
+package com.casic.missiles.modular.system.consts;
+
+public class DataConst {
+
+ public static final String DATA_GAS_ES_INDEX = "casic_pantilt_gas";
+
+ public static final String DATA_GAS_ES_TYPE = "casic_pantilt_gas";
+}
diff --git a/casic-data/pom.xml b/casic-data/pom.xml
index a3eba7d..3ad2c9c 100644
--- a/casic-data/pom.xml
+++ b/casic-data/pom.xml
@@ -41,6 +41,11 @@
provided
+
+ com.casic
+ casic-data-es
+ 1.0.1.alpha
+
diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/consts/DataConst.java b/casic-data/src/main/java/com/casic/missiles/modular/system/consts/DataConst.java
new file mode 100644
index 0000000..bbe581c
--- /dev/null
+++ b/casic-data/src/main/java/com/casic/missiles/modular/system/consts/DataConst.java
@@ -0,0 +1,8 @@
+package com.casic.missiles.modular.system.consts;
+
+public class DataConst {
+
+ public static final String DATA_GAS_ES_INDEX = "casic_pantilt_gas";
+
+ public static final String DATA_GAS_ES_TYPE = "casic_pantilt_gas";
+}
diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java
index 4460f11..dfc76ec 100644
--- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java
+++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java
@@ -5,14 +5,17 @@
import com.casic.missiles.core.base.controller.ExportController;
import com.casic.missiles.core.page.PageFactory;
import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.dto.AlarmRecordRequest;
import com.casic.missiles.modular.system.model.AlarmRecord;
import com.casic.missiles.modular.system.service.IAlarmRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
+import javax.validation.Valid;
import java.util.List;
/**
@@ -44,10 +47,12 @@
*/
@RequestMapping(value = "/listPage")
@ResponseBody
- public Object listPage(String condition) {
+ public Object listPage(@RequestBody @Valid AlarmRecordRequest request) {
+
+
Page page = PageFactory.defaultPage();
- QueryWrapper query = new QueryWrapper<>();
- page = alarmRecordService.page(page,query);
+// QueryWrapper query = new QueryWrapper<>();
+ page = alarmRecordService.pageList(page,request);
return ResponseData.success(super.packForBT(page));
}
/**
diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
deleted file mode 100644
index 87b6fec..0000000
--- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.casic.missiles.modular.system.controller;
-
-
-import com.casic.missiles.model.application.event.core.EventPublisher;
-import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
-import com.casic.missiles.model.response.ResponseData;
-import com.casic.missiles.modular.system.event.UserEvent;
-import com.casic.missiles.modular.system.model.User;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @ClassName DemoController
- * @Description TODO
- * @Author lenovo
- * @Date 2020/6/13 15:38
- * @Version 1.0
- */
-@RestController
-@RequestMapping("/demo")
-public class DemoController {
- @Autowired
- private EventPublisher publisher;
-
- /**
- * 获取mockToken
- */
- @PostMapping("/list")
- @ResponseBody
- public Object list() {
- User user = new User();
- user.setAccount("张三");
- publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
- return ResponseData.success();
- }
-
-
-}
diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordRequest.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordRequest.java
new file mode 100644
index 0000000..9469954
--- /dev/null
+++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordRequest.java
@@ -0,0 +1,26 @@
+package com.casic.missiles.modular.system.dto;
+
+
+import lombok.Data;
+
+/**
+ * @author zt
+ */
+@Data
+public class AlarmRecordRequest {
+
+ private Long stationId;
+
+ private Long monitorId;
+
+ private Long lineNum;
+
+ private String alarmType;
+
+ private String alarmStatus;
+
+ private String startTime;
+
+ private String endTime;
+
+}
diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/es/ElasticSearchQuery.java b/casic-data/src/main/java/com/casic/missiles/modular/system/es/ElasticSearchQuery.java
new file mode 100644
index 0000000..4d7a38f
--- /dev/null
+++ b/casic-data/src/main/java/com/casic/missiles/modular/system/es/ElasticSearchQuery.java
@@ -0,0 +1,257 @@
+package com.casic.missiles.modular.system.es;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * ES查询请求体
+ *
+ * @author zhangyingjie123
+ * @since 2020-11-30
+ */
+public class ElasticSearchQuery {
+ private JSONObject body;
+ private JSONObject query;
+ private JSONObject bool;
+ private JSONArray boolMust;
+ private JSONObject filter;
+ private JSONObject filterBool;
+ private JSONArray filterBoolMust;
+ private JSONArray filterBoolMustnot;
+
+ public static final String MUST_FLAG = "1";
+ public static final String MUST_NOT_FLAG = "0";
+
+ public static final String QUERY = "query";
+ public static final String BOOL = "bool";
+ public static final String MUST = "must";
+ public static final String MUST_NOT = "must_not";
+ public static final String FILTER = "filter";
+
+
+ /**
+ * 生成查询请求体基础结构:
+ * {
+ * "query": {
+ * "bool": {
+ * "must" [],
+ * "filter": {
+ * "bool": {
+ * "must": [],
+ * "must_not": []
+ * }
+ * }
+ * }
+ * }
+ * }
+ */
+ public ElasticSearchQuery() {
+ this.body = new JSONObject();
+ this.query = this.query();
+ this.bool = this.bool();
+ this.boolMust = this.boolMust();
+ this.filter = this.filter();
+ this.filterBool = this.filterBool();
+ this.filterBoolMust = this.filterBoolMust();
+ this.filterBoolMustnot = this.filterBoolMustnot();
+ }
+
+ public ElasticSearchQuery(JSONObject body){
+ this.body = body;
+ }
+
+ public JSONObject getBody() {
+ return body;
+ }
+
+ private JSONObject query(){
+ if(ObjectUtil.isEmpty(this.body.get(QUERY))){
+ this.body.put("query",new JSONObject());
+ }
+ return this.body.getJSONObject(QUERY);
+
+ }
+
+ private JSONObject bool() {
+ JSONObject query = this.query;
+ if(ObjectUtil.isEmpty(query.get(BOOL))){
+ query.put(BOOL,new JSONObject());
+ }
+ return query.getJSONObject(BOOL);
+ }
+
+ private JSONArray boolMust(){
+ JSONObject bool = this.bool;
+ if(ObjectUtil.isEmpty(bool.get(MUST))){
+ bool.put(MUST,new JSONArray());
+ }
+ return bool.getJSONArray(MUST);
+ }
+
+ private JSONObject filter(){
+ JSONObject bool = this.bool;
+ if(ObjectUtil.isEmpty(bool.get(FILTER))){
+ bool.put(FILTER,new JSONObject());
+ }
+ return bool.getJSONObject(FILTER);
+ }
+
+ private JSONObject filterBool(){
+ JSONObject filter = this.filter;
+ if(ObjectUtil.isEmpty(filter.get(BOOL))){
+ filter.put(BOOL,new JSONObject());
+ }
+ return filter.getJSONObject(BOOL);
+ }
+
+ private JSONArray filterBoolMust(){
+ JSONObject bool = this.filterBool;
+ if(ObjectUtil.isEmpty(bool.get(MUST))){
+ bool.put(MUST,new JSONArray());
+ }
+ return bool.getJSONArray(MUST);
+ }
+
+ private JSONArray filterBoolMustnot(){
+ JSONObject bool = this.filterBool;
+ if(ObjectUtil.isEmpty(bool.get(MUST_NOT))){
+ bool.put(MUST_NOT,new JSONArray());
+ }
+ return bool.getJSONArray(MUST_NOT);
+ }
+
+ public void match(String filed, Serializable value){
+ JSONArray boolMust = this.boolMust;
+ JSONObject match = new JSONObject();
+ JSONObject filedJson = new JSONObject();
+ filedJson.put(filed,value);
+ match.put("match",filedJson);
+ boolMust.add(match);
+ }
+
+ public void matchPhrase(String filed, Serializable value){
+ JSONArray boolMust = this.boolMust;
+ JSONObject matchPhrase = new JSONObject();
+ JSONObject filedJson = new JSONObject();
+ filedJson.put(filed,value);
+ matchPhrase.put("match_phrase",filedJson);
+ boolMust.add(matchPhrase);
+ }
+
+ public void term(String filed, Serializable value){
+ this.term(filed,value,MUST_FLAG);
+ }
+
+ public void term(String filed, Serializable value,String mustFlag){
+ JSONObject filedJson = new JSONObject();
+ filedJson.put(filed,value);
+ JSONObject term = new JSONObject();
+ term.put("term",filedJson);
+ if(MUST_FLAG.equals(mustFlag)){
+ this.filterBoolMust.add(term);
+ }
+ if(MUST_NOT_FLAG.equals(mustFlag)){
+ this.filterBoolMustnot.add(term);
+ }
+ }
+
+ public void terms(String filed,List value){
+ this.terms(filed,value,MUST_FLAG);
+ }
+
+ public void terms(String filed, List value, String mustFlag){
+ JSONObject filedJson = new JSONObject();
+ filedJson.put(filed,value);
+ JSONObject terms = new JSONObject();
+ terms.put("terms",filedJson);
+ if(MUST_FLAG.equals(mustFlag)){
+ this.filterBoolMust.add(terms);
+ }
+ if(MUST_NOT_FLAG.equals(mustFlag)){
+ this.filterBoolMustnot.add(terms);
+ }
+ }
+
+ public void range(String filed, Serializable from, Serializable to){
+ this.range(filed,from,to,MUST_FLAG);
+ }
+
+ public void range(String filed, Serializable from, Serializable to, String mustFlag){
+ JSONObject rangeJson = new JSONObject();
+ if(ObjectUtil.isNotEmpty(from)){
+ rangeJson.put("from",from);
+ }
+ if(ObjectUtil.isNotEmpty(to)){
+ rangeJson.put("to",to);
+ }
+ JSONObject filedJson = new JSONObject();
+ filedJson.put(filed,rangeJson);
+ JSONObject range = new JSONObject();
+ range.put("range",filedJson);
+ if(MUST_FLAG.equals(mustFlag)){
+ this.filterBoolMust.add(range);
+ }
+ if(MUST_NOT_FLAG.equals(mustFlag)){
+ this.filterBoolMustnot.add(range);
+ }
+ }
+
+ public void size(int size){
+ this.body.put("size",size);
+ }
+
+ public void from(int from) {
+ this.body.put("from",from);
+ }
+
+ public void sort(String sort, String order){
+ JSONObject sortJson = new JSONObject();
+ JSONObject orderJson = new JSONObject();
+ orderJson.put("order",order);
+ sortJson.put(sort,orderJson);
+ this.body.put("sort",sortJson);
+ }
+
+ public void aggs(String aggsName, String filed){
+ JSONObject terms = new JSONObject();
+ terms.put("field",filed);
+ JSONObject aggsTerms = new JSONObject();
+ aggsTerms.put("terms",terms);
+ JSONObject aggsBody = new JSONObject();
+ aggsBody.put(aggsName,aggsTerms);
+ this.body.put("aggs",aggsBody);
+ }
+
+ public void aggs(JSONObject aggBody){
+ this.body.put("aggs",aggBody);
+ }
+
+
+
+ public static void main(String[] args) {
+ ElasticSearchQuery query = new ElasticSearchQuery();
+ query.matchPhrase("name","张三");
+ query.term("sex","2");
+ List deptIds = new ArrayList<>();
+ deptIds.add(0L);
+ deptIds.add(24L);
+ query.terms("deptId", deptIds);
+ Date date1 = DateUtil.parse("2020-01-01","yyyy-MM-dd");
+ Date date2 = DateUtil.parse("2020-04-01","yyyy-MM-dd");
+ query.range("collTime",date1.getTime(),date2.getTime());
+ query.term("collState","3",MUST_NOT_FLAG);
+ query.size(10);
+ query.from(0);
+ query.sort("irId","asc");
+ System.out.println(query.getBody().toJSONString());
+ }
+
+
+}
diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/es/ElasticSearchUtil.java b/casic-data/src/main/java/com/casic/missiles/modular/system/es/ElasticSearchUtil.java
new file mode 100644
index 0000000..e9da021
--- /dev/null
+++ b/casic-data/src/main/java/com/casic/missiles/modular/system/es/ElasticSearchUtil.java
@@ -0,0 +1,172 @@
+package com.casic.missiles.modular.system.es;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.casic.missiles.core.es.EsResponse;
+import org.apache.http.nio.entity.NStringEntity;
+import org.apache.http.util.EntityUtils;
+import org.elasticsearch.client.Request;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.Response;
+import org.elasticsearch.client.RestClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Base64;
+import java.util.List;
+
+/**
+ * ES工具类
+ *
+ * @author zhangyingjie123
+ * @since 2020-11-30
+ */
+@Component
+public class ElasticSearchUtil {
+ private static final Logger logger = LoggerFactory.getLogger(ElasticSearchUtil.class);
+
+ @Autowired
+ private RestClient clientMapping;
+ @Autowired
+ private Environment env;
+
+ private static String username;
+ private static String password;
+
+ private static RestClient client;
+
+ @PostConstruct
+ public void init(){
+ client = clientMapping;
+ username = env.getProperty("casic.data.es.username");
+ password = env.getProperty("casic.data.es.password");
+ }
+
+ public static JSONObject selectDocumentById(String index, String type, String id) throws IOException{
+ String method = "GET";
+ String endPoint = index.concat("/").concat(type).concat("/").concat(id);
+ Response response = performRequest(method,endPoint,null);
+ JSONObject result = JSONObject.parseObject(EntityUtils.toString(response.getEntity()));
+ return result.getJSONObject("_source");
+ }
+
+ public static Response addDocumentById(String index, String type, String id, Object entity) throws IOException{
+ String method = "POST";
+ String endPoint = index.concat("/").concat(type).concat("/");
+ if(ObjectUtil.isNotEmpty(id)){
+ endPoint.concat(id);
+ }
+ endPoint.concat("?refresh=true");
+ logger.debug(entity.toString());
+ return performRequest(method,endPoint,JSON.toJSONString(entity));
+ }
+
+ public static Response deleteDocumentById(String index, String type, String id) throws IOException{
+ String method = "DELETE";
+ String endPoint = index.concat("/").concat(type).concat("/").concat(id).concat("?refresh=true");
+ return performRequest(method,endPoint,null);
+ }
+
+ public static Response updateDocumentById(String index, String type, String id, Object entity) throws IOException{
+ String method = "POST";
+ String endPoint = index.concat("/").concat(type).concat("/").concat(id).concat("?refresh=true");
+ logger.debug(entity.toString());
+ return performRequest(method,endPoint,JSON.toJSONString(entity));
+ }
+
+ public static EsResponse searchQuery(String index, String type, ElasticSearchQuery query) throws IOException{
+ String method = "POST";
+ String entPoint = index.concat("/").concat(type).concat("/").concat("_search");
+ logger.debug(query.getBody().toString());
+ Response response = performRequest(method, entPoint, query.getBody().toString());
+ // 获取response body,转换为json对象
+ JSONObject result = JSONObject.parseObject(EntityUtils.toString(response.getEntity()));
+ return result.toJavaObject(EsResponse.class);
+ }
+
+ public static Response aggsQuery(String index, String type, ElasticSearchQuery query) throws IOException{
+ String method = "POST";
+ String entPoint = index.concat("/").concat(type).concat("/").concat("_search");
+ logger.debug(query.getBody().toString());
+ Response response = performRequest(method, entPoint, query.getBody().toString());
+ return response;
+ }
+
+ public static List