Commit f02aed27 authored by wujiang's avatar wujiang

修改告警时间格式化

parent d05bf786
package com.yeejoin.amos.boot.module.jxiop.biz.controller; package com.yeejoin.amos.boot.module.jxiop.biz.controller;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
...@@ -57,7 +56,6 @@ import java.io.InputStream; ...@@ -57,7 +56,6 @@ import java.io.InputStream;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.*; import java.util.*;
@RestController @RestController
@Api(tags = "Demo-test") @Api(tags = "Demo-test")
@RequestMapping(value = "/demo") @RequestMapping(value = "/demo")
...@@ -123,8 +121,9 @@ public class DemoController extends BaseController { ...@@ -123,8 +121,9 @@ public class DemoController extends BaseController {
@ApiOperation(value = "初始化influxdb-风电、光伏、升压站") @ApiOperation(value = "初始化influxdb-风电、光伏、升压站")
@GetMapping("doc/test4") @GetMapping("doc/test4")
public ResponseModel<Integer> demoTest3() { public ResponseModel<Integer> demoTest3() {
//数据说明 夏造风电、泰和光伏、夏造升压站、泰和升压站 // 数据说明 夏造风电、泰和光伏、夏造升压站、泰和升压站
String[] strings = {"1668801435891929089", "1669524885619085313", "1668801570352926721", "1669525017559306241"}; String[] strings = { "1668801435891929089", "1669524885619085313", "1668801570352926721",
"1669525017559306241" };
elasticsearchTemplate.deleteIndex(ESEquipments.class); elasticsearchTemplate.deleteIndex(ESEquipments.class);
int num = 0; int num = 0;
for (int i = 0; i < strings.length; i++) { for (int i = 0; i < strings.length; i++) {
...@@ -140,29 +139,19 @@ public class DemoController extends BaseController { ...@@ -140,29 +139,19 @@ public class DemoController extends BaseController {
List<ESEquipments> listit = new ArrayList<>(); List<ESEquipments> listit = new ArrayList<>();
for (EquipmentsJxiopDocMysql monitorFanIndicator : list) { for (EquipmentsJxiopDocMysql monitorFanIndicator : list) {
ESEquipments eSEquipments = new ESEquipments( ESEquipments eSEquipments = new ESEquipments(monitorFanIndicator.getValueF(),
monitorFanIndicator.getValueF(), monitorFanIndicator.getId(), monitorFanIndicator.getAddress(),
monitorFanIndicator.getId(), monitorFanIndicator.getDataType(), monitorFanIndicator.getEquipmentSpecificName(),
monitorFanIndicator.getAddress(), monitorFanIndicator.getGatewayId(), monitorFanIndicator.getIsAlarm(),
monitorFanIndicator.getDataType(), monitorFanIndicator.getCreatedTime(), monitorFanIndicator.getUnit(),
monitorFanIndicator.getEquipmentSpecificName(), monitorFanIndicator.getValue(), monitorFanIndicator.getValueLabel(),
monitorFanIndicator.getGatewayId(), monitorFanIndicator.getTraceId(), monitorFanIndicator.getEquipmentIndexName(),
monitorFanIndicator.getIsAlarm(), monitorFanIndicator.getEquipmentNumber(), monitorFanIndicator.getFrontModule(),
monitorFanIndicator.getCreatedTime(), monitorFanIndicator.getSystemType(), monitorFanIndicator.getPictureName(),
monitorFanIndicator.getUnit(),
monitorFanIndicator.getValue(),
monitorFanIndicator.getValueLabel(),
monitorFanIndicator.getTraceId(),
monitorFanIndicator.getEquipmentIndexName(),
monitorFanIndicator.getEquipmentNumber(),
monitorFanIndicator.getFrontModule(),
monitorFanIndicator.getSystemType(),
monitorFanIndicator.getPictureName(),
monitorFanIndicator.getDisplayName()); monitorFanIndicator.getDisplayName());
listit.add(eSEquipments); listit.add(eSEquipments);
// Map<String, String> tag = new HashMap<>(); // Map<String, String> tag = new HashMap<>();
// Map<String, Object> maps2 = new HashMap<>(); // Map<String, Object> maps2 = new HashMap<>();
// //
...@@ -197,11 +186,13 @@ public class DemoController extends BaseController { ...@@ -197,11 +186,13 @@ public class DemoController extends BaseController {
@GetMapping("doc/getDatafromEsToMysql") @GetMapping("doc/getDatafromEsToMysql")
public void getDatafromEsToMysql() { public void getDatafromEsToMysql() {
try { try {
List<ESEquipments> result = elasticSearchUtil.searchResponse("jxiop_equipments", null, hit -> JSONObject.parseObject(hit.getSourceAsString(), ESEquipments.class)); List<ESEquipments> result = elasticSearchUtil.searchResponse("jxiop_equipments", null,
hit -> JSONObject.parseObject(hit.getSourceAsString(), ESEquipments.class));
result.forEach(esEquipments -> { result.forEach(esEquipments -> {
EquipmentsJxiopDocMysql equipmentsJxiopDocMysql = new EquipmentsJxiopDocMysql(); EquipmentsJxiopDocMysql equipmentsJxiopDocMysql = new EquipmentsJxiopDocMysql();
BeanUtils.copyProperties(esEquipments, equipmentsJxiopDocMysql); BeanUtils.copyProperties(esEquipments, equipmentsJxiopDocMysql);
if (ObjectUtils.isEmpty(equipmentsJxiopDocMysqlMapper.selectList(new QueryWrapper<EquipmentsJxiopDocMysql>().eq("id", equipmentsJxiopDocMysql.getId())))) { if (ObjectUtils.isEmpty(equipmentsJxiopDocMysqlMapper.selectList(
new QueryWrapper<EquipmentsJxiopDocMysql>().eq("id", equipmentsJxiopDocMysql.getId())))) {
equipmentsJxiopDocMysqlMapper.insert(equipmentsJxiopDocMysql); equipmentsJxiopDocMysqlMapper.insert(equipmentsJxiopDocMysql);
} else { } else {
equipmentsJxiopDocMysqlMapper.updateById(equipmentsJxiopDocMysql); equipmentsJxiopDocMysqlMapper.updateById(equipmentsJxiopDocMysql);
...@@ -218,31 +209,56 @@ public class DemoController extends BaseController { ...@@ -218,31 +209,56 @@ public class DemoController extends BaseController {
@GetMapping("doc/getDatafromMySqlToES") @GetMapping("doc/getDatafromMySqlToES")
public void getDatafromMySqlToES() { public void getDatafromMySqlToES() {
// List<EquipmentsJxiopDocMysql> equipmentsJxiopDocMysqlList = equipmentsJxiopDocMysqlMapper.selectList(new QueryWrapper<EquipmentsJxiopDocMysql>().eq("id","24_1669525017559306241")); // List<EquipmentsJxiopDocMysql> equipmentsJxiopDocMysqlList = equipmentsJxiopDocMysqlMapper.selectList(new QueryWrapper<EquipmentsJxiopDocMysql>().eq("id","24_1669525017559306241"));
List<EquipmentsJxiopDocMysql> equipmentsJxiopDocMysqlList = equipmentsJxiopDocMysqlMapper.selectList(new QueryWrapper<EquipmentsJxiopDocMysql>().isNotNull("id")); List<EquipmentsJxiopDocMysql> equipmentsJxiopDocMysqlList = equipmentsJxiopDocMysqlMapper
equipmentsJxiopDocMysqlList.forEach(equipmentsJxiopDocMysql -> { .selectList(new QueryWrapper<EquipmentsJxiopDocMysql>().isNotNull("id"));
ESEquipments esEquipments = equipmentsRepository.findById(equipmentsJxiopDocMysql.getId()).get(); int i = 0;
esEquipments.setEquipmentIndexName(equipmentsJxiopDocMysql.getEquipmentIndexName()); for (EquipmentsJxiopDocMysql equipmentsJxiopDocMysql : equipmentsJxiopDocMysqlList) {
esEquipments.setEquipmentNumber(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getEquipmentNumber()) ? "" : equipmentsJxiopDocMysql.getEquipmentNumber()); // ESEquipments esEquipments =
esEquipments.setIsAlarm(equipmentsJxiopDocMysql.getIsAlarm()); // equipmentsRepository.findById(equipmentsJxiopDocMysql.getId()).get();
esEquipments.setDataType(equipmentsJxiopDocMysql.getDataType()); ESEquipments esEquipments = new ESEquipments();
esEquipments.setGatewayId(equipmentsJxiopDocMysql.getGatewayId()); esEquipments.setId(equipmentsJxiopDocMysql.getId());
esEquipments.setAddress(equipmentsJxiopDocMysql.getAddress()); esEquipments.setAddress(equipmentsJxiopDocMysql.getAddress());
esEquipments.setDataType(equipmentsJxiopDocMysql.getDataType());
esEquipments.setEquipmentSpecificName(equipmentsJxiopDocMysql.getEquipmentSpecificName()); esEquipments.setEquipmentSpecificName(equipmentsJxiopDocMysql.getEquipmentSpecificName());
//更新显示名称 esEquipments.setGatewayId(equipmentsJxiopDocMysql.getGatewayId());
esEquipments.setDisplayName(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getDisplayName()) ? "" : equipmentsJxiopDocMysql.getDisplayName()); esEquipments.setIsAlarm(equipmentsJxiopDocMysql.getIsAlarm());
//更新排序号 // 更新单位
esEquipments.setTraceId(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getTraceId()) ? "" : equipmentsJxiopDocMysql.getTraceId()); esEquipments.setUnit(
//更新单位 ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getUnit()) ? "" : equipmentsJxiopDocMysql.getUnit());
esEquipments.setUnit(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getUnit()) ? "" : equipmentsJxiopDocMysql.getUnit()); esEquipments.setCreatedTime(equipmentsJxiopDocMysql.getCreatedTime());
//更新frontModule esEquipments.setValue(
esEquipments.setFrontModule(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getFrontModule()) ? "" : equipmentsJxiopDocMysql.getFrontModule()); ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getValue()) ? "" : equipmentsJxiopDocMysql.getValue());
//更新systemType esEquipments.setValueF(
esEquipments.setSystemType(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getSystemType()) ? "" : equipmentsJxiopDocMysql.getSystemType()); ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getValueF()) ? 0 : equipmentsJxiopDocMysql.getValueF());
//更新图片名称 esEquipments.setValueLabel(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getValueLabel()) ? ""
esEquipments.setPictureName(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getPictureName()) ? "" : equipmentsJxiopDocMysql.getPictureName()); : equipmentsJxiopDocMysql.getValueLabel());
// 更新排序号
esEquipments.setTraceId(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getTraceId()) ? ""
: equipmentsJxiopDocMysql.getTraceId());
esEquipments.setEquipmentIndexName(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getEquipmentIndexName()) ? ""
: equipmentsJxiopDocMysql.getEquipmentIndexName());
esEquipments.setEquipmentNumber(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getEquipmentNumber()) ? ""
: equipmentsJxiopDocMysql.getEquipmentNumber());
// 更新显示名称
esEquipments.setDisplayName(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getDisplayName()) ? ""
: equipmentsJxiopDocMysql.getDisplayName());
// 更新frontModule
esEquipments.setFrontModule(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getFrontModule()) ? ""
: equipmentsJxiopDocMysql.getFrontModule());
// 更新systemType
esEquipments.setSystemType(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getSystemType()) ? ""
: equipmentsJxiopDocMysql.getSystemType());
// 更新图片名称
esEquipments.setPictureName(ObjectUtils.isEmpty(equipmentsJxiopDocMysql.getPictureName()) ? ""
: equipmentsJxiopDocMysql.getPictureName());
System.out.println("开始保存es" + ++i);
try {
equipmentsRepository.save(esEquipments); equipmentsRepository.save(esEquipments);
}); } catch (Exception e) {
e.printStackTrace();
}
System.out.println("结束保存es" + i);
}
} }
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY) @TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
...@@ -251,31 +267,40 @@ public class DemoController extends BaseController { ...@@ -251,31 +267,40 @@ public class DemoController extends BaseController {
public void getDatafromMySqlToES(@RequestParam String filePath) { public void getDatafromMySqlToES(@RequestParam String filePath) {
try { try {
InputStream inputStream = new FileInputStream(filePath); InputStream inputStream = new FileInputStream(filePath);
List<Object> pointImportDtoList = EasyExcel.read(inputStream).head(PointImportDto.class).sheet(0).headRowNumber(1).doReadSync(); List<Object> pointImportDtoList = EasyExcel.read(inputStream).head(PointImportDto.class).sheet(0)
.headRowNumber(1).doReadSync();
pointImportDtoList.forEach(o -> { pointImportDtoList.forEach(o -> {
PointImportDto pointImportDto = (PointImportDto) o; PointImportDto pointImportDto = (PointImportDto) o;
List<EquipmentsJxiopDocMysql> equipmentsJxiopDocMysqlList = equipmentsJxiopDocMysqlMapper.selectList(new QueryWrapper<EquipmentsJxiopDocMysql>().eq("gateway_id", pointImportDto.getGatewayId()).eq("equipment_index_name", pointImportDto.getEquipmentIndexName())); List<EquipmentsJxiopDocMysql> equipmentsJxiopDocMysqlList = equipmentsJxiopDocMysqlMapper.selectList(
new QueryWrapper<EquipmentsJxiopDocMysql>().eq("gateway_id", pointImportDto.getGatewayId())
.eq("equipment_index_name", pointImportDto.getEquipmentIndexName()));
if (!ObjectUtils.isEmpty(equipmentsJxiopDocMysqlList)) { if (!ObjectUtils.isEmpty(equipmentsJxiopDocMysqlList)) {
equipmentsJxiopDocMysqlList.forEach(equipmentsJxiopDocMysql -> { equipmentsJxiopDocMysqlList.forEach(equipmentsJxiopDocMysql -> {
ESEquipments esEquipments = equipmentsRepository.findById(equipmentsJxiopDocMysql.getId()).get(); ESEquipments esEquipments = equipmentsRepository.findById(equipmentsJxiopDocMysql.getId())
//更新模块 .get();
// 更新模块
if (!equipmentsJxiopDocMysql.getFrontModule().contains(pointImportDto.getFrontModule())) { if (!equipmentsJxiopDocMysql.getFrontModule().contains(pointImportDto.getFrontModule())) {
equipmentsJxiopDocMysql.setFrontModule(equipmentsJxiopDocMysql.getFrontModule() + "," + pointImportDto.getFrontModule()); equipmentsJxiopDocMysql.setFrontModule(
esEquipments.setFrontModule(equipmentsJxiopDocMysql.getFrontModule() + "," + pointImportDto.getFrontModule()); equipmentsJxiopDocMysql.getFrontModule() + "," + pointImportDto.getFrontModule());
esEquipments.setFrontModule(
equipmentsJxiopDocMysql.getFrontModule() + "," + pointImportDto.getFrontModule());
} }
//更新类型 // 更新类型
if (!equipmentsJxiopDocMysql.getSystemType().contains(pointImportDto.getSystemType())) { if (!equipmentsJxiopDocMysql.getSystemType().contains(pointImportDto.getSystemType())) {
equipmentsJxiopDocMysql.setSystemType(equipmentsJxiopDocMysql.getSystemType()+","+pointImportDto.getSystemType()); equipmentsJxiopDocMysql.setSystemType(
esEquipments.setSystemType(equipmentsJxiopDocMysql.getSystemType()+","+pointImportDto.getSystemType()); equipmentsJxiopDocMysql.getSystemType() + "," + pointImportDto.getSystemType());
esEquipments.setSystemType(
equipmentsJxiopDocMysql.getSystemType() + "," + pointImportDto.getSystemType());
} }
//更新排序号 // 更新排序号
equipmentsJxiopDocMysql.setTraceId(pointImportDto.getTraceId()); equipmentsJxiopDocMysql.setTraceId(pointImportDto.getTraceId());
esEquipments.setTraceId(pointImportDto.getTraceId()); esEquipments.setTraceId(pointImportDto.getTraceId());
//更新显示名称 // 更新显示名称
equipmentsJxiopDocMysql.setDisplayName(pointImportDto.getDisplayName()); equipmentsJxiopDocMysql.setDisplayName(pointImportDto.getDisplayName());
esEquipments.setDisplayName(pointImportDto.getDisplayName()); esEquipments.setDisplayName(pointImportDto.getDisplayName());
//更新单位 如果单位为空或者单位超过周期性数据存储长度则丢弃单位更新操作 // 更新单位 如果单位为空或者单位超过周期性数据存储长度则丢弃单位更新操作
if (!ObjectUtils.isEmpty(pointImportDto.getUnit()) && (pointImportDto.getUnit().toCharArray().length < 24)) { if (!ObjectUtils.isEmpty(pointImportDto.getUnit())
&& (pointImportDto.getUnit().toCharArray().length < 24)) {
equipmentsJxiopDocMysql.setUnit(pointImportDto.getUnit()); equipmentsJxiopDocMysql.setUnit(pointImportDto.getUnit());
esEquipments.setUnit(pointImportDto.getUnit()); esEquipments.setUnit(pointImportDto.getUnit());
} }
...@@ -299,7 +324,8 @@ public class DemoController extends BaseController { ...@@ -299,7 +324,8 @@ public class DemoController extends BaseController {
hashMap.put("test1", String.valueOf(Math.random() * 100)); hashMap.put("test1", String.valueOf(Math.random() * 100));
try { try {
emqKeeper.getMqttClient().publish("test_topic", JSON.toJSON(hashMap).toString().getBytes("UTF-8"), 1, true); emqKeeper.getMqttClient().publish("test_topic", JSON.toJSON(hashMap).toString().getBytes("UTF-8"), 1, true);
emqKeeper.getMqttClient().publish("test_topic1", JSON.toJSON(hashMap).toString().getBytes("UTF-8"), 1, true); emqKeeper.getMqttClient().publish("test_topic1", JSON.toJSON(hashMap).toString().getBytes("UTF-8"), 1,
true);
logger.info("++++++++++++++++++++++++++++++++++发送消息成功++++++++++++++++++++++++++++++++++++++"); logger.info("++++++++++++++++++++++++++++++++++发送消息成功++++++++++++++++++++++++++++++++++++++");
} catch (Exception exception) { } catch (Exception exception) {
logger.error("============================================================发送消息报错"); logger.error("============================================================发送消息报错");
...@@ -310,8 +336,8 @@ public class DemoController extends BaseController { ...@@ -310,8 +336,8 @@ public class DemoController extends BaseController {
@ApiOperation(value = "初始化升压站") @ApiOperation(value = "初始化升压站")
@GetMapping("/test6") @GetMapping("/test6")
public ResponseModel<Integer> demoTest5() { public ResponseModel<Integer> demoTest5() {
//数据说明 夏造风电、泰和光伏、夏造升压站、泰和升压站 // 数据说明 夏造风电、泰和光伏、夏造升压站、泰和升压站
String[] strings = {"1668801570352926721", "1669525017559306241"}; String[] strings = { "1668801570352926721", "1669525017559306241" };
// String [] strings = {"1669525017559306241"}; // String [] strings = {"1669525017559306241"};
// Object o=this.monitorFanIndicatorImpl.getIndicatoralueAvage("1668801435891929089","60秒平均风速"); // Object o=this.monitorFanIndicatorImpl.getIndicatoralueAvage("1668801435891929089","60秒平均风速");
// System.out.println(o.toString()); // System.out.println(o.toString());
...@@ -331,30 +357,19 @@ public class DemoController extends BaseController { ...@@ -331,30 +357,19 @@ public class DemoController extends BaseController {
List<ESEquipments> listit = new ArrayList<>(); List<ESEquipments> listit = new ArrayList<>();
for (EquipmentsJxiopDocMysql monitorFanIndicator : list) { for (EquipmentsJxiopDocMysql monitorFanIndicator : list) {
ESEquipments eSEquipments = new ESEquipments(monitorFanIndicator.getValueF(),
ESEquipments eSEquipments = new ESEquipments( monitorFanIndicator.getId(), monitorFanIndicator.getAddress(),
monitorFanIndicator.getValueF(), monitorFanIndicator.getDataType(), monitorFanIndicator.getEquipmentSpecificName(),
monitorFanIndicator.getId(), monitorFanIndicator.getGatewayId(), monitorFanIndicator.getIsAlarm(),
monitorFanIndicator.getAddress(), monitorFanIndicator.getCreatedTime(), monitorFanIndicator.getUnit(),
monitorFanIndicator.getDataType(), monitorFanIndicator.getValue(), monitorFanIndicator.getValueLabel(),
monitorFanIndicator.getEquipmentSpecificName(), monitorFanIndicator.getTraceId(), monitorFanIndicator.getEquipmentIndexName(),
monitorFanIndicator.getGatewayId(), monitorFanIndicator.getEquipmentNumber(), monitorFanIndicator.getFrontModule(),
monitorFanIndicator.getIsAlarm(), monitorFanIndicator.getSystemType(), monitorFanIndicator.getPictureName(),
monitorFanIndicator.getCreatedTime(),
monitorFanIndicator.getUnit(),
monitorFanIndicator.getValue(),
monitorFanIndicator.getValueLabel(),
monitorFanIndicator.getTraceId(),
monitorFanIndicator.getEquipmentIndexName(),
monitorFanIndicator.getEquipmentNumber(),
monitorFanIndicator.getFrontModule(),
monitorFanIndicator.getSystemType(),
monitorFanIndicator.getPictureName(),
monitorFanIndicator.getDisplayName()); monitorFanIndicator.getDisplayName());
listit.add(eSEquipments); listit.add(eSEquipments);
// Map<String, String> tag = new HashMap<>(); // Map<String, String> tag = new HashMap<>();
// Map<String, Object> maps2 = new HashMap<>(); // Map<String, Object> maps2 = new HashMap<>();
// //
...@@ -401,11 +416,8 @@ public class DemoController extends BaseController { ...@@ -401,11 +416,8 @@ public class DemoController extends BaseController {
QueryBuilder queryBuilder = QueryBuilders.matchQuery("equipmentIndexName", "有功功率"); QueryBuilder queryBuilder = QueryBuilders.matchQuery("equipmentIndexName", "有功功率");
SumAggregationBuilder buyCountSum = AggregationBuilders.sum("buyCountSum").field("valueF"); SumAggregationBuilder buyCountSum = AggregationBuilders.sum("buyCountSum").field("valueF");
Query query = new NativeSearchQueryBuilder() Query query = new NativeSearchQueryBuilder().withQuery(queryBuilder).addAggregation(buyCountSum)
.withQuery(queryBuilder) .withPageable(PageRequest.of(0, 1)).build();
.addAggregation(buyCountSum)
.withPageable(PageRequest.of(0, 1))
.build();
query.setTrackTotalHits(true); // 允许返回查询结果的total - search.getTotalHits() query.setTrackTotalHits(true); // 允许返回查询结果的total - search.getTotalHits()
SearchHits<ESEquipments> search = elasticsearchTemplate.search(query, ESEquipments.class); SearchHits<ESEquipments> search = elasticsearchTemplate.search(query, ESEquipments.class);
return ResponseHelper.buildResponse(search); return ResponseHelper.buildResponse(search);
...@@ -419,11 +431,8 @@ public class DemoController extends BaseController { ...@@ -419,11 +431,8 @@ public class DemoController extends BaseController {
QueryBuilder queryBuilder = QueryBuilders.matchQuery("equipmentIndexName", "有功功率"); QueryBuilder queryBuilder = QueryBuilders.matchQuery("equipmentIndexName", "有功功率");
AvgAggregationBuilder buyCountAvg = AggregationBuilders.avg("buyCountAvg").field("valueF"); AvgAggregationBuilder buyCountAvg = AggregationBuilders.avg("buyCountAvg").field("valueF");
Query query = new NativeSearchQueryBuilder() Query query = new NativeSearchQueryBuilder().withQuery(queryBuilder).addAggregation(buyCountAvg)
.withQuery(queryBuilder) .withPageable(PageRequest.of(0, 1)).build();
.addAggregation(buyCountAvg)
.withPageable(PageRequest.of(0, 1))
.build();
query.setTrackTotalHits(true); query.setTrackTotalHits(true);
SearchHits<ESEquipments> search = elasticsearchTemplate.search(query, ESEquipments.class); SearchHits<ESEquipments> search = elasticsearchTemplate.search(query, ESEquipments.class);
...@@ -431,30 +440,25 @@ public class DemoController extends BaseController { ...@@ -431,30 +440,25 @@ public class DemoController extends BaseController {
return ResponseHelper.buildResponse(search); return ResponseHelper.buildResponse(search);
} }
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY) @TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "分组求和数") @ApiOperation(value = "分组求和数")
@GetMapping("/test10") @GetMapping("/test10")
public SearchHits demoTest10() { public SearchHits demoTest10() {
QueryBuilder queryBuilder = QueryBuilders.matchQuery("equipmentIndexName", "年发电量"); QueryBuilder queryBuilder = QueryBuilders.matchQuery("equipmentIndexName", "年发电量");
// 如果只对一个字段进行分组写一个就好 // 如果只对一个字段进行分组写一个就好
TermsAggregationBuilder tb1 = AggregationBuilders.terms("group_gatewayId").field("gatewayId.keyword");//gatewayId 是分组字段名,group_gatewayId是查询结果的别名 TermsAggregationBuilder tb1 = AggregationBuilders.terms("group_gatewayId").field("gatewayId.keyword");// gatewayId
// 是分组字段名,group_gatewayId是查询结果的别名
// TermsAggregationBuilder tb2 = AggregationBuilders.terms("group_equipmentNumber").field("equipmentNumber.keyword");//equipmentNumber 是分组字段名,group_equipmentNumber是查询结果的别名 // TermsAggregationBuilder tb2 = AggregationBuilders.terms("group_equipmentNumber").field("equipmentNumber.keyword");//equipmentNumber 是分组字段名,group_equipmentNumber是查询结果的别名
SumAggregationBuilder sb = AggregationBuilders.sum("sum_valueDouble").field("valueF");//valueF是求和字段名称,sun_valueDouble是结果别名 SumAggregationBuilder sb = AggregationBuilders.sum("sum_valueDouble").field("valueF");// valueF是求和字段名称,sun_valueDouble是结果别名
// 注意顺序,决定先通过谁分组 // 注意顺序,决定先通过谁分组
tb1.subAggregation(sb); // 通过typeId字段分组统计总数 tb1.subAggregation(sb); // 通过typeId字段分组统计总数
// tb2.subAggregation(sb); // 通过houseId字段分组统计总数 // tb2.subAggregation(sb); // 通过houseId字段分组统计总数
// tb1.subAggregation(tb2); // 合并 // tb1.subAggregation(tb2); // 合并
Query query = new NativeSearchQueryBuilder().withQuery(queryBuilder).addAggregation(tb1)
Query query = new NativeSearchQueryBuilder() .withPageable(PageRequest.of(0, 1)).build();
.withQuery(queryBuilder)
.addAggregation(tb1)
.withPageable(PageRequest.of(0, 1))
.build();
query.setTrackTotalHits(true); query.setTrackTotalHits(true);
SearchHits search = elasticsearchTemplate.search(query, ESEquipments.class); SearchHits search = elasticsearchTemplate.search(query, ESEquipments.class);
...@@ -497,4 +501,3 @@ public class DemoController extends BaseController { ...@@ -497,4 +501,3 @@ public class DemoController extends BaseController {
commonServiceImpl.getListDataByCondtions(queryConditon, null, ESEquipments.class); commonServiceImpl.getListDataByCondtions(queryConditon, null, ESEquipments.class);
} }
} }
...@@ -64,10 +64,16 @@ public class EquipAlarmEventServiceImpl ...@@ -64,10 +64,16 @@ public class EquipAlarmEventServiceImpl
} else if ("false".equals(i.getValue())) { } else if ("false".equals(i.getValue())) {
i.setValue("分"); i.setValue("分");
} }
long mills = i.getCreatedTime() / 1000000; long mills = i.getCreatedTime() ;
car.setTimeInMillis(mills); car.setTimeInMillis(mills);
// System.out.println(sdf.format(car.getTime())); // System.out.println(sdf.format(car.getTime()));
i.setTime(sdf.format(car.getTime())); String time = sdf.format(car.getTime());
if (time.contains("1970")) {
mills = i.getCreatedTime()/ 1000000;;
car.setTimeInMillis(mills);
time = sdf.format(car.getTime());
}
i.setTime(time);
// car.add(Calendar.HOUR, 12); // car.add(Calendar.HOUR, 12);
// System.out.println(sdf.format(car.getTime())); // System.out.println(sdf.format(car.getTime()));
}); });
......
...@@ -14,17 +14,17 @@ spring.db2.datasource.driver-class-name: com.mysql.cj.jdbc.Driver ...@@ -14,17 +14,17 @@ spring.db2.datasource.driver-class-name: com.mysql.cj.jdbc.Driver
## db3-td-engine ## db3-td-engine
#spring.db3.datasource.type: com.alibaba.druid.pool.DruidDataSource #spring.db3.datasource.type: com.alibaba.druid.pool.DruidDataSource
spring.db3.datasource.url=jdbc:TAOS-RS://139.9.170.47:6041/iot_data?user=root&password=taosdata&timezone=GMT%2b8&allowMultiQueries=true spring.db3.datasource.url=jdbc:TAOS-RS://10.20.0.203:6041/iot_data?user=root&password=taosdata&timezone=GMT%2b8&allowMultiQueries=true
spring.db3.datasource.username=root spring.db3.datasource.username=root
spring.db3.datasource.password=taosdata spring.db3.datasource.password=taosdata
spring.db3.datasource.driver-class-name: com.taosdata.jdbc.rs.RestfulDriver spring.db3.datasource.driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
## eureka properties: ## eureka properties:
eureka.instance.hostname=172.16.10.220 eureka.instance.hostname=139.9.173.44
eureka.client.serviceUrl.defaultZone=http://admin:a1234560@${eureka.instance.hostname}:10001/eureka/ eureka.client.serviceUrl.defaultZone=http://admin:a1234560@${eureka.instance.hostname}:10001/eureka/
## redis properties: ## redis properties:
spring.redis.database=1 spring.redis.database=1
spring.redis.host=172.16.10.220 spring.redis.host=139.9.173.44
spring.redis.port=6379 spring.redis.port=6379
spring.redis.password=yeejoin@2020 spring.redis.password=yeejoin@2020
...@@ -60,10 +60,10 @@ lettuce.timeout=10000 ...@@ -60,10 +60,10 @@ lettuce.timeout=10000
emqx.clean-session=true emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]} emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://172.16.10.220:1883 emqx.broker=tcp://139.9.173.44:2883
emqx.user-name=admin emqx.user-name=admin
emqx.password=public emqx.password=public
mqtt.scene.host=mqtt://172.16.10.220:8083/mqtt mqtt.scene.host=mqtt://139.9.173.44:8083/mqtt
mqtt.client.product.id=mqtt mqtt.client.product.id=mqtt
mqtt.topic=topic_mqtt mqtt.topic=topic_mqtt
spring.mqtt.completionTimeout=3000 spring.mqtt.completionTimeout=3000
......
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