Commit d012287e authored by tangwei's avatar tangwei

物联数据存储es

parent fcd49c43
...@@ -46,6 +46,10 @@ ...@@ -46,6 +46,10 @@
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.yeejoin</groupId> <groupId>com.yeejoin</groupId>
<artifactId>amos-component-rule</artifactId> <artifactId>amos-component-rule</artifactId>
......
package com.yeejoin.equipmanage.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.elasticsearch.annotations.DateFormat;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
import org.springframework.data.annotation.Id;
import java.util.Date;
/**
* @description:
* @author: tw
* @createDate: 2023/3/13
*/
@Data
@Accessors(chain = true)
@Document(indexName = "equipmen_date", type = "eq", shards = 1, replicas = 0)
public class EquiplistSpecificBySystemESVO {
@ApiModelProperty(value = "uuid")
@Id
private String id;
@ApiModelProperty(value = "设备名")
@Field(type = FieldType.Text)
private String equipmentSpecificName;
@ApiModelProperty(value = "设备id")
@Field(type = FieldType.Long)
private Long equipmentSpecificId;
@ApiModelProperty(value = "设备编码")
@Field(type = FieldType.Text)
private String code;
@ApiModelProperty(value = "iot编码")
@Field(type = FieldType.Text)
private String iotCode;
@ApiModelProperty(value = "指标值")
@Field(type = FieldType.Text)
private String value;
@ApiModelProperty(value = "指标颜色")
@Field(type = FieldType.Text)
private String emergencyLevelColor;
@ApiModelProperty(value = "指标值说明")
@Field(type = FieldType.Text)
private String valueLabel;
@ApiModelProperty(value = "紧急程度")
@Field(type = FieldType.Text)
private String emergencyLevel;
@ApiModelProperty(value = "紧急程度描述")
@Field(type = FieldType.Text)
private String emergencyLevelDescribe;
@ApiModelProperty(value = "指标单位")
@Field(type = FieldType.Text)
private String unit;
@ApiModelProperty(value = "指标名称")
@Field(type = FieldType.Text)
private String equipmentIndexName;
@ApiModelProperty(value = "指标key")
@Field(type = FieldType.Text)
private String equipmentIndexKey;
@ApiModelProperty(value = "是否告警")
@Field(type = FieldType.Integer)
private Integer isAlarm;
@ApiModelProperty(value = "所属系统")
@Field(type = FieldType.Text)
private String systemId;
@ApiModelProperty(value = "所属系统名称")
@Field(type = FieldType.Text)
private String systemName;
@ApiModelProperty(value = "上报时间")
@Field(type = FieldType.Long)
private Long time;
}
...@@ -34,7 +34,7 @@ public class EquipmentSpecificVo implements Serializable { ...@@ -34,7 +34,7 @@ public class EquipmentSpecificVo implements Serializable {
private int single; private int single;
@ApiModelProperty(value = "所属系统") @ApiModelProperty(value = "所属系统")
private int systemId; private Long systemId;
@ApiModelProperty(value = "物联code") @ApiModelProperty(value = "物联code")
private String iotCode; private String iotCode;
......
package com.yeejoin.equipmanage.config;
import org.apache.commons.lang3.StringUtils;
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.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ElasticSearchClientConfig {
@Value("${spring.elasticsearch.rest.uris}")
private String uris;
@Value("${elasticsearch.username}")
private String username;
@Value("${elasticsearch.password}")
private String password;
@Bean
@Qualifier("highLevelClient")
public RestHighLevelClient restHighLevelClient() {
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(username, password));
try {
String url = uris.replace("http://", "");
final String[] parts = StringUtils.split(url, ":");
HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
RestClientBuilder builder = RestClient.builder(httpHost);
builder.setHttpClientConfigCallback(httpClientBuilder -> {
httpClientBuilder.disableAuthCaching();
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
});
builder.setRequestConfigCallback((requestConfigBuilder)->requestConfigBuilder.setConnectTimeout(5000 * 1000).setSocketTimeout(6000 * 1000));
return new RestHighLevelClient(builder);
} catch (Exception e) {
throw new IllegalStateException("Invalid ES nodes " + "property '" + uris + "'", e);
}
}
}
...@@ -5,6 +5,7 @@ import com.yeejoin.equipmanage.common.entity.EquipmentSpecific; ...@@ -5,6 +5,7 @@ import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import com.yeejoin.equipmanage.common.entity.FireFightingSystemEntity; import com.yeejoin.equipmanage.common.entity.FireFightingSystemEntity;
import com.yeejoin.equipmanage.common.utils.CommonResponseUtil; import com.yeejoin.equipmanage.common.utils.CommonResponseUtil;
import com.yeejoin.equipmanage.mapper.FireFightingSystemMapper; import com.yeejoin.equipmanage.mapper.FireFightingSystemMapper;
import com.yeejoin.equipmanage.service.IESeqService;
import com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmLogService; import com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmLogService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -31,8 +32,8 @@ public class EquipmentSpecificAlarmLogController extends AbstractBaseController ...@@ -31,8 +32,8 @@ public class EquipmentSpecificAlarmLogController extends AbstractBaseController
@Autowired @Autowired
IEquipmentSpecificAlarmLogService equipmentSpecificAlarmLogService; IEquipmentSpecificAlarmLogService equipmentSpecificAlarmLogService;
@Autowired
IESeqService eSeqService;
/** /**
* 获取告警设备日月环比信息 * 获取告警设备日月环比信息
* *
...@@ -64,6 +65,16 @@ public class EquipmentSpecificAlarmLogController extends AbstractBaseController ...@@ -64,6 +65,16 @@ public class EquipmentSpecificAlarmLogController extends AbstractBaseController
@RequestParam(required = false) int current ) { @RequestParam(required = false) int current ) {
return CommonResponseUtil.success(equipmentSpecificAlarmLogService.getEquipAlarmLog(code,startTime,endTime, pageSize,current)); return CommonResponseUtil.success(equipmentSpecificAlarmLogService.getEquipAlarmLog(code,startTime,endTime, pageSize,current));
} }
@RequestMapping(value = "/getEquipAlarmLogtest", method = RequestMethod.GET)
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "获取设备物联日志", notes = "获取设备物联日志")
public ResponseModel getEquipAlarmLog( ) {
eSeqService.deleteESEquiplistSpecificBySystemES();
return CommonResponseUtil.success();
}
} }
......
package com.yeejoin.equipmanage.dao;
import com.yeejoin.equipmanage.common.dto.EquiplistSpecificBySystemESVO;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;
/**
* @description:
* @author: tw
* @createDate: 2022/8/24
*/
@Repository
public interface ESequiplistSpecificBySystemRepository extends PagingAndSortingRepository<EquiplistSpecificBySystemESVO, Long> {
}
package com.yeejoin.equipmanage.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.dto.EquiplistSpecificBySystemESVO;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex;
import com.yeejoin.equipmanage.common.entity.dto.EquipmentAlarmLogDto;
import java.util.List;
/**
* @description:
* @author: tw
* @createDate: 2023/3/13
*/
public interface IESeqService {
//新增记录
public EquiplistSpecificBySystemESVO saveESEquiplistSpecificBySystemESVO(EquipmentSpecificIndex equipmentSpecificIndex,String systemId,String systemName);
//根据系统id分页查询
public Page<EquipmentAlarmLogDto> findAllBySystemId(String systemId, Long startTime, Long endTime, int pageSize, int current );
//删除数据距今一年前的数据。
public void deleteESEquiplistSpecificBySystemES();
}
package com.yeejoin.equipmanage.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.healthmarketscience.jackcess.impl.query.DeleteQueryImpl;
import com.healthmarketscience.jackcess.query.BaseSelectQuery;
import com.healthmarketscience.jackcess.query.DeleteQuery;
import com.yeejoin.equipmanage.common.dto.EquiplistSpecificBySystemESVO;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex;
import com.yeejoin.equipmanage.common.entity.dto.EquipmentAlarmLogDto;
import com.yeejoin.equipmanage.common.exception.BaseException;
import com.yeejoin.equipmanage.dao.ESequiplistSpecificBySystemRepository;
import com.yeejoin.equipmanage.service.IESeqService;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.index.query.*;
import org.elasticsearch.index.reindex.BulkByScrollResponse;
import org.elasticsearch.index.reindex.DeleteByQueryAction;
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
import org.elasticsearch.index.reindex.DeleteByQueryRequestBuilder;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.core.SearchHit;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.query.Query;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.beans.BeanUtils;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.text.SimpleDateFormat;
import java.util.*;
import static jdk.nashorn.internal.objects.Global.println;
/**
* @description:
* @author: tw
* @createDate: 2023/3/13
*/
@Service
public class ESeqServiceImpl implements IESeqService {
@Autowired
private ElasticsearchRestTemplate elasticsearchTemplate;
@Autowired
private ESequiplistSpecificBySystemRepository esequiplistSpecificBySystemRepository;
@Value("${es.ESEquiplistSpecific.flag}")
private boolean flag;
@Value("${es.ESEquiplistSpecific.year}")
private int year;
@Override
@Async("equipAsyncExecutor")
public EquiplistSpecificBySystemESVO saveESEquiplistSpecificBySystemESVO(EquipmentSpecificIndex equipmentSpecificIndex,String systemId,String systemName) {
EquiplistSpecificBySystemESVO equiplistSpecificBySystemESVO =new EquiplistSpecificBySystemESVO();
try {
BeanUtils.copyProperties(equipmentSpecificIndex,equiplistSpecificBySystemESVO);
equiplistSpecificBySystemESVO.setId(UUID.randomUUID().toString());
equiplistSpecificBySystemESVO.setTime(new Date().getTime());
equiplistSpecificBySystemESVO.setSystemId(systemId);
equiplistSpecificBySystemESVO.setSystemName(systemName);
esequiplistSpecificBySystemRepository.save(equiplistSpecificBySystemESVO);
}catch (Exception e) {
throw new BaseException("es新增报错");
}
return equiplistSpecificBySystemESVO;
}
@Override
public Page<EquipmentAlarmLogDto> findAllBySystemId(String systemId, Long startTime, Long endTime,int pageSize, int current ) {
Page<EquipmentAlarmLogDto> pageBean = new Page<EquipmentAlarmLogDto>(current,pageSize);
//组装查询
NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder()
.withQuery(
QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("systemId", systemId))
.must(QueryBuilders.termQuery("isAlarm", 0))
.must(QueryBuilders.rangeQuery("time").gte(startTime).lte(endTime))
)
.withPageable(PageRequest.of(current-1, pageSize))
.withSort(SortBuilders.fieldSort("time").order(SortOrder.DESC));
List<EquipmentAlarmLogDto> list = new LinkedList<EquipmentAlarmLogDto>();
try
{
SearchHits<EquiplistSpecificBySystemESVO> searchHits =elasticsearchTemplate.search(queryBuilder.build(), EquiplistSpecificBySystemESVO.class);
for (SearchHit<EquiplistSpecificBySystemESVO> searchHit : searchHits.getSearchHits())
{
JSONObject jsonObject = (JSONObject) JSON.toJSON(searchHit.getContent());
EquiplistSpecificBySystemESVO equiplistSpecificBySystemESVO = JSON.toJavaObject(jsonObject, EquiplistSpecificBySystemESVO.class);
EquipmentAlarmLogDto da=new EquipmentAlarmLogDto();
da.setId(UUID.randomUUID().toString());
da.setName(equiplistSpecificBySystemESVO.getEquipmentSpecificName());
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date daf =new Date(equiplistSpecificBySystemESVO.getTime());
String time=ft.format(daf);
da.setTime(time);
String value=equiplistSpecificBySystemESVO.getValue();
value= getReadableStatus(value );
da.setContent(equiplistSpecificBySystemESVO.getEquipmentIndexName()+":"+value);
list.add(da);
}
pageBean.setRecords(list);
pageBean.setTotal(searchHits.getTotalHits());
}catch (Exception e) {
e.printStackTrace();
throw new BadRequest("系统异常");
}
return pageBean;
}
@Override
@Scheduled(cron = "${es.ESEquiplistSpecific.time}")
public void deleteESEquiplistSpecificBySystemES() {
if(flag){
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.YEAR, -year);
Long endTime = calendar.getTime().getTime();
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
queryBuilder.must(QueryBuilders.rangeQuery("time").lte(endTime));
Query query = new NativeSearchQuery(queryBuilder);
elasticsearchTemplate.delete(query, EquiplistSpecificBySystemESVO.class, IndexCoordinates.of("equipmen_date"));
}
}
public String getReadableStatus(String value ) {
if("true".equals(value)){
return "是";
}
return "false".equals(value)?"否":value;
}
}
...@@ -16,6 +16,7 @@ import com.yeejoin.equipmanage.fegin.IotFeign; ...@@ -16,6 +16,7 @@ import com.yeejoin.equipmanage.fegin.IotFeign;
import com.yeejoin.equipmanage.fegin.VideoFeignClient; import com.yeejoin.equipmanage.fegin.VideoFeignClient;
import com.yeejoin.equipmanage.mapper.EquipmentSpecificAlarmLogMapper; import com.yeejoin.equipmanage.mapper.EquipmentSpecificAlarmLogMapper;
import com.yeejoin.equipmanage.mapper.FireFightingSystemMapper; import com.yeejoin.equipmanage.mapper.FireFightingSystemMapper;
import com.yeejoin.equipmanage.service.IESeqService;
import com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmLogService; import com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmLogService;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -24,6 +25,8 @@ import org.springframework.stereotype.Service; ...@@ -24,6 +25,8 @@ import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
/** /**
...@@ -47,8 +50,8 @@ public class EquipmentSpecificAlarmLogServiceImpl extends ServiceImpl<EquipmentS ...@@ -47,8 +50,8 @@ public class EquipmentSpecificAlarmLogServiceImpl extends ServiceImpl<EquipmentS
@Autowired @Autowired
IotFeign iotFeign; IotFeign iotFeign;
@Autowired
IESeqService eSeqService;
@Override @Override
public void updateAlarmLogByIotCodeAndIndexKey(EquipmentSpecificAlarm equipmentSpecificAlarm) { public void updateAlarmLogByIotCodeAndIndexKey(EquipmentSpecificAlarm equipmentSpecificAlarm) {
...@@ -92,64 +95,30 @@ public class EquipmentSpecificAlarmLogServiceImpl extends ServiceImpl<EquipmentS ...@@ -92,64 +95,30 @@ public class EquipmentSpecificAlarmLogServiceImpl extends ServiceImpl<EquipmentS
} }
@Override @Override
public Page<EquipmentAlarmLogDto> getEquipAlarmLog(String code, String startTime, String endTime,long pageSize, long current) { public Page<EquipmentAlarmLogDto> getEquipAlarmLog(String code, String startTime, String endTime,long pageSize, long current) {
Page<EquipmentAlarmLogDto> pageBean = new Page<EquipmentAlarmLogDto>(current,pageSize); Page<EquipmentAlarmLogDto> pageBean = new Page<EquipmentAlarmLogDto>(current,pageSize);
QueryWrapper<FireFightingSystemEntity> wrapper = new QueryWrapper<>(); try {
wrapper.eq("code", code); QueryWrapper<FireFightingSystemEntity> wrapper = new QueryWrapper<>();
FireFightingSystemEntity sys = fireFightingSystemMapper.selectOne(wrapper); wrapper.eq("code", code);
if(sys==null){ FireFightingSystemEntity sys = fireFightingSystemMapper.selectOne(wrapper);
throw new BadRequest("系统不存在!"); if(sys==null){
} throw new BadRequest("系统不存在!");
String id =sys.getId().toString(); }
//iotcode集合 String systemId =sys.getId().toString();
List<String> iotCodes = new ArrayList<>(); //获取时间梭
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//物联参数判断集合
Map<String, EquiplistSpecificBySystemVO> mapkey = new HashMap<>();
//存储整理后的数据
List<EquipmentAlarmLogDto> listDate = new ArrayList<>();
//获取系统下所有装备物联指标
this.getEquiplistBySystemIdList(id, mapkey,iotCodes);
//装备为空返回空
if(iotCodes.isEmpty()||mapkey.isEmpty()){
return pageBean;
}
String iotCode= String.join(",",iotCodes);
endTime= endTime.replace("00:00:00","23:59:59");
IndexLogsRequest indexLogsRequest=new IndexLogsRequest( startTime, endTime, "YJ210093SBMC0001FHS_FirePump_PowerRunStatus", current, pageSize); Long LongstartTime=format.parse(startTime).getTime();
//调用iot 获取数据 Long LongendTime=format.parse(endTime.replace("00:00:00","23:59:59")).getTime();
ResponseModel<Map<String, Object>> date = iotFeign.getEquipAlarmLog(indexLogsRequest);
if (date.getStatus() != 200 ) { pageBean= eSeqService.findAllBySystemId(systemId, LongstartTime, LongendTime, (int) pageSize, (int)current);
throw new BadRequest("系统错误!");
} }catch (Exception e) {
Map<String, Object> listObject = date.getResult(); e.printStackTrace();
throw new BadRequest("系统异常");
if (listObject != null) { }
List<Map<String, Object>> listObjectdate=( List<Map<String, Object>>)listObject.get("records");
//数据处理
for (Map<String, Object> map : listObjectdate) {
//过滤告警
String key=map.get("iotCode").toString()+map.get("indexName");
if(mapkey.containsKey(key)){
EquipmentAlarmLogDto da=new EquipmentAlarmLogDto();
da.setId(UUID.randomUUID().toString());
da.setName(mapkey.get(key).getEquipmentName());
da.setTime(map.get("createdTime").toString());
String value=map.get("indexValue").toString();
value= getReadableStatus(value );
da.setContent(mapkey.get(key).getIndexName()+":"+value);
listDate.add(da);
}
}
}
pageBean.setRecords(listDate);
//由于iot 分页 ,没有数据时返回int,有数据时返回字符串,还是Double类型字符串,需统一处理。
Double tot= Double.valueOf(listObject.get("total").toString());
pageBean.setTotal(tot.intValue());
return pageBean; return pageBean;
} }
...@@ -157,12 +126,7 @@ public class EquipmentSpecificAlarmLogServiceImpl extends ServiceImpl<EquipmentS ...@@ -157,12 +126,7 @@ public class EquipmentSpecificAlarmLogServiceImpl extends ServiceImpl<EquipmentS
public String getReadableStatus(String value ) {
if("true".equals(value)){
return "是";
}
return "false".equals(value)?"否":value;
}
public void getEquiplistBySystemIdList(String id, Map<String, EquiplistSpecificBySystemVO> map, List<String> iotCodes) { public void getEquiplistBySystemIdList(String id, Map<String, EquiplistSpecificBySystemVO> map, List<String> iotCodes) {
......
...@@ -189,6 +189,8 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -189,6 +189,8 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
@Autowired @Autowired
private TopographyService topographyService; private TopographyService topographyService;
@Autowired
IESeqService eSeqService;
@Autowired @Autowired
private IEquipmentService equipmentService; private IEquipmentService equipmentService;
...@@ -389,6 +391,11 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -389,6 +391,11 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
equipmentSpeIndex.setUpdateDate(new Date()); equipmentSpeIndex.setUpdateDate(new Date());
equipmentSpeIndex.setEquipmentType(topicEntity.getType()); equipmentSpeIndex.setEquipmentType(topicEntity.getType());
equipmentSpeIndex.setUUID(UUIDUtils.getUUID()); equipmentSpeIndex.setUUID(UUIDUtils.getUUID());
//es存储数据
eSeqService.saveESEquiplistSpecificBySystemESVO(equipmentSpeIndex,String.valueOf(vo.getSystemId()),vo.getSystemName());
equipmentSpecificIndexService.updateById(equipmentSpeIndex); equipmentSpecificIndexService.updateById(equipmentSpeIndex);
// 更新设备表指标状态 // 更新设备表指标状态
......
spring.application.name=AMOS-EQUIPMANAGE spring.application.name=AMOS-EQUIPMANAGE
server.servlet.context-path=/equip server.servlet.context-path=/equip
server.port=8100 server.port=8100
#server.servlet.context-path=/case #server.servlet.context-path=/case
spring.profiles.active=dev spring.profiles.active=dev
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
...@@ -95,6 +97,23 @@ dcs.x.hw.appKey=s+YkvQhwilx91TRJHhNDmw== ...@@ -95,6 +97,23 @@ dcs.x.hw.appKey=s+YkvQhwilx91TRJHhNDmw==
equip.enabled =false equip.enabled =false
#es储存物联日志是否删除开关
es.ESEquiplistSpecific.flag=true
#es储存数据时间年
es.ESEquiplistSpecific.year=1
#es储存物联日志定时删除
es.ESEquiplistSpecific.time=0 */1 * * * ?
## ES properties:
biz.elasticsearch.address=172.16.11.201
spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=${biz.elasticsearch.address}:9300
spring.elasticsearch.rest.uris=http://${biz.elasticsearch.address}:9200
elasticsearch.username= elastic
elasticsearch.password= Yeejoin@2020
# 权限标识-物联区域 # 权限标识-物联区域
auth-key-area=area_info auth-key-area=area_info
# 权限标识-消防系统 # 权限标识-消防系统
......
...@@ -160,13 +160,17 @@ ...@@ -160,13 +160,17 @@
(SELECT GROUP_CONCAT(fs.system_type_code) FROM f_fire_fighting_system fs WHERE find_in_set( (SELECT GROUP_CONCAT(fs.system_type_code) FROM f_fire_fighting_system fs WHERE find_in_set(
`fs`.`id`, `fs`.`id`,
`wes`.`system_id` `wes`.`system_id`
)) AS `code` )) AS `code`,
wes.system_id systemId,
(SELECT fs.name FROM f_fire_fighting_system fs WHERE `wes`.`system_id`=fs.id) AS systemName
FROM FROM
wl_equipment_specific AS wes wl_equipment_specific AS wes
where TRIM(wes.iot_code) != '' AND wes.iot_code IS NOT NULL where TRIM(wes.iot_code) != '' AND wes.iot_code IS NOT NULL
UNION ALL UNION ALL
SELECT SELECT
wc.id, wc.id,
'' systemId,
'' systemName,
wc.iot_code AS iotCode, wc.iot_code AS iotCode,
'' as ecode, '' as ecode,
'car' AS type, 'car' AS type,
......
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