Commit 6e15f3cc authored by zhuangzhuang's avatar zhuangzhuang

4.27--增加mqtt

parent ce41a02a
package com.example.tdl.domain.vo;
public class AlarmMqttConfig {
private String tNo;
private String cNo;
public AlarmMqttConfig() {
}
public AlarmMqttConfig(String tNo, String cNo) {
this.tNo = tNo;
this.cNo = cNo;
}
public String gettNo() {
return tNo;
}
public void settNo(String tNo) {
this.tNo = tNo;
}
public String getcNo() {
return cNo;
}
public void setcNo(String cNo) {
this.cNo = cNo;
}
}
package com.example.tdl.domain.vo;
public class MqttUser {
private String userName;
private String password;
private String companyNo;
public MqttUser() {
}
public MqttUser(String userName, String password, String companyNo) {
this.userName = userName;
this.password = password;
this.companyNo = companyNo;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getCompanyNo() {
return companyNo;
}
public void setCompanyNo(String companyNo) {
this.companyNo = companyNo;
}
}
......@@ -11,7 +11,6 @@ public class UserNameVo {
public UserNameVo() {
}
public UserNameVo(String userName, String time, String ipAddress) {
UserName = userName;
this.time = time;
......@@ -41,4 +40,5 @@ public class UserNameVo {
public void setIpAddress(String ipAddress) {
this.ipAddress = ipAddress;
}
}
......@@ -124,7 +124,6 @@ public class MqttListener implements MqttCallback {
@Override
public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception {
String Message = mqttMessage.toString();
System.out.print(Message);
Long timestamp = System.currentTimeMillis();
String[] tmparray = topic.split("/");
String Type = tmparray[1];
......@@ -187,7 +186,7 @@ public class MqttListener implements MqttCallback {
}
// 有设备信息
ConfigVo configVo = configService.getConfig(SN,Type);
if(configVo == null){
if(configVo != null){
if(StringUtils.isEmpty(configVo.getMessage())){
//解绑状态
return 2;//解绑
......
......@@ -5,6 +5,7 @@ import com.example.tdl.domain.vo.*;
import com.example.tdl.entity.AlarmLog;
import com.example.tdl.service.AlarmLogService;
import com.example.tdl.service.CircuitService;
import com.example.tdl.service.CompanyService;
import com.example.tdl.service.GatewayService;
import com.example.tdl.service.redis.TokenRedisService;
import com.google.gson.Gson;
......@@ -43,6 +44,9 @@ public class AlarmLogController {
@Autowired
private TokenRedisService tokenRedisService;
@Autowired
private CompanyService companyService;
//获取报警信息
@ApiOperation(value = "获取报警信息",notes = "获取报警信息" +
" transportationNo:运输编号" +
......@@ -104,6 +108,22 @@ public class AlarmLogController {
return alarmLogServcie.getRealTimeAlarm(user.getCompanyName());
}
@ApiOperation(value = "获取报警信息",notes = "获取报警信息" +
"返回值: userName:用户名" +
"password:密码" )
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
@GetMapping("/getAlarmMessage")
public String getAlarmMessage(HttpServletRequest request){
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" + token);
UserRedisVo userRedisVo = gson.fromJson(datum,UserRedisVo.class);
ResultCompanyVo companyVo = companyService.getByCompanyName(userRedisVo.getCompanyName());
return gson.toJson(new MqttUser("ugen","ugen",companyVo.getCompanyNo()));
}
//新增报警消息
@ApiOperation(value = "增加报警",notes = "增加报警")
@RequestMapping(value = "/addAlarmLog",method = RequestMethod.POST)
......@@ -126,7 +146,8 @@ public class AlarmLogController {
if(addAlarmLogVo.getTs() == null){
fb.setCode(0);
fb.setMessage("时间不能为空");
}Map<Integer,String> map = new HashMap<>();
}
Map<Integer,String> map = new HashMap<>();
map.put(0,"正常");
map.put(1,"等于最大值");
map.put(2,"不等于最大值");
......
......@@ -7,6 +7,7 @@ import com.example.tdl.domain.dto.CommFeedback;
import com.example.tdl.domain.vo.*;
import com.example.tdl.service.*;
import com.example.tdl.service.redis.AlarmRedisService;
import com.example.tdl.service.redis.InfoRedisService;
import com.example.tdl.service.redis.TokenRedisService;
import com.google.gson.Gson;
import io.swagger.annotations.ApiImplicitParam;
......@@ -64,6 +65,12 @@ public class CircuitController {
@Autowired
private ConfigService configService;
@Autowired
private CompanyService companyService;
@Autowired
private InfoRedisService infoRedisService;
List<String> list = new ArrayList<String>(){{
add("T");
add("h");
......@@ -252,6 +259,7 @@ public class CircuitController {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
ResultCompanyVo companyVo = companyService.getByCompanyName(user.getCompanyName());
if(StringUtils.isEmpty(addCircuitVo.getStartAddressVo().getCountry())){
fb.setCode(0);
fb.setMessage("出发国家不能为空");
......@@ -520,7 +528,8 @@ public class CircuitController {
Map<Object,Object> map=new HashMap<>();
String transportation = "公路";
String transportationType="本地运输";
map.put("transportationNo",getTransportNo(transportation,transportationType));
String transportationNo =getTransportNo(transportation,transportationType);
map.put("transportationNo",transportationNo);
map.put("startTime",time);
map.put("expTime",addCircuitVo.getStartAddressVo().getExpTime());
map.put("compTime",addCircuitVo.getEndAddressVo().getCompTime());
......@@ -558,6 +567,9 @@ public class CircuitController {
if (msg.get("msg").equals("添加线路成功")){
fb.setCode(1);
fb.setMessage("添加线路成功");
//增加配置(公司以及线路信息)
AlarmMqttConfig alarmMqttConfig = new AlarmMqttConfig(transportationNo,companyVo.getCompanyNo());
infoRedisService.hmSet("AlarmMqttConfig",type+"_"+addCircuitVo.getSN(),gson.toJson(alarmMqttConfig));
}else {
fb.setCode(0);
fb.setMessage(msg.get("msg").toString());
......@@ -786,6 +798,7 @@ public class CircuitController {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
ResultCompanyVo companyVo = companyService.getByCompanyName(user.getCompanyName());
if (circuitService.getByTransportationNo(updateCircuitVo.getTransportationNo(),user.getCompanyName())==null){
fb.setCode(0);
fb.setMessage("没有该线路");
......@@ -866,6 +879,8 @@ public class CircuitController {
fb.setMessage(msg.get("msg").toString());
String key ="TDL/"+tdlLogVo.getgType()+"/" +tdlLogVo.getgSN() +"/Data";
alarmRedisService.delKey(key);
//AlarmMqttConfig alarmMqttConfig = new AlarmMqttConfig(updateCircuitVo.getTransportationNo(),companyVo.getCompanyNo());
infoRedisService.delHashKey("AlarmMqttConfig",tdlLogVo.getgType()+"_"+tdlLogVo.getgSN());
}else{
fb.setCode(0);
fb.setMessage(msg.get("msg").toString());
......@@ -1050,6 +1065,7 @@ public class CircuitController {
map.put("transportationNo",transportationNo);
map.put("gSN",tdlLogVo.getgSN());
map.put("gType",tdlLogVo.getgType());
map.put("endTime",System.currentTimeMillis());
map.put("message",gson.toJson(configCMDVo));
circuitService.deleteCircuit(map);
Map<Object,Object> msg=new HashMap<>();
......@@ -1059,6 +1075,7 @@ public class CircuitController {
fb.setMessage(msg.get("msg").toString());
String key ="TDL/"+tdlLogVo.getgType()+"/" +tdlLogVo.getgSN() +"/Data";
alarmRedisService.delKey(key);
infoRedisService.delHashKey("AlarmMqttConfig",tdlLogVo.getgType()+"_"+tdlLogVo.getgSN());
}else{
fb.setCode(0);
fb.setMessage(msg.get("msg").toString());
......@@ -1069,6 +1086,7 @@ public class CircuitController {
if (a > 0) {
fb.setCode(1);
fb.setMessage("删除线路成功");
infoRedisService.delHashKey("AlarmMqttConfig",tdlLogVo.getgType()+"_"+tdlLogVo.getgSN());
} else {
fb.setCode(0);
fb.setMessage("删除线路失败");
......
......@@ -83,22 +83,27 @@ public class GatewayController {
public Object addGateway(@RequestBody AddGatewayVo addGatewayVo){
if (StringUtils.isEmpty(addGatewayVo.getSN())){
fb.setCode(0);
fb.setMessage("添加的SN不能为空");
fb.setMessage("gateway编号不能为空");
return gson.toJson(fb);
}
if(addGatewayVo.getSN().matches("^[0-9]{8}$")){
fb.setCode(0);
fb.setMessage("gateway编号必须是数字");
return gson.toJson(fb);
}
if (StringUtils.isEmpty(addGatewayVo.getName())){
fb.setCode(0);
fb.setMessage("添加的名字不能为空");
fb.setMessage("gateway名字不能为空");
return gson.toJson(fb);
}
if (StringUtils.isEmpty(addGatewayVo.getType())){
fb.setCode(0);
fb.setMessage("添加的类型不能为空");
fb.setMessage("gateway类型不能为空");
return gson.toJson(fb);
}
if (StringUtils.isEmpty(addGatewayVo.getModelName())){
fb.setCode(0);
fb.setMessage("添加的模板名不能为空");
fb.setMessage("gateway模板名不能为空");
return gson.toJson(fb);
}
if (modelService.getByModelName(addGatewayVo.getModelName())==null){
......
......@@ -384,9 +384,12 @@ public class UserController {
public Object getUserName(HttpServletRequest request) {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" + token);
UserRedisVo userRedisVo = gson.fromJson(datum,UserRedisVo.class);
//获取当前登录者的天气
String ip = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getRemoteAddr();
return new UserNameVo(gson.fromJson(datum,UserRedisVo.class).getUserName(),System.currentTimeMillis() +"",ip);
//获取当前公司的公司编号
return new UserNameVo(userRedisVo.getUserName(),System.currentTimeMillis() +"",ip);
}
}
......@@ -2,5 +2,7 @@ spring.datasource.url=jdbc:mysql://192.168.1.200:3306/tdlcloud?useUnicode=true&c
spring.redis.host=192.168.1.200
server.port=8092
tdl.influxdb.host=http://192.168.1.200:8086
......@@ -3,6 +3,8 @@ spring.datasource.url=jdbc:mysql://housetest-mysql:3306/tdlCloud?useUnicode=true
# Redisַ
tdl.redis.host=housetest-redis
server.port=8092
# InfluxDB
spring.influxdb.url=http://housetest-influxdb:8086
......
......@@ -7,7 +7,7 @@ spring.datasource.driver-class-name=com.mysql.jdbc.Driver
threadpool.corepoolsize = 30
threadpool.maxpoolsize = 50
server.port=8092
server.port=8099
management.security.enabled=false
......@@ -40,7 +40,7 @@ logging.config=classpath:logback.xml
# Mqtt
tdl.mqtt.url = ssl://192.168.1.11
tdl.mqtt.url = ssl://192.168.1.14
tdl.mqtt.port = 8883
tdl.mqtt.username = ugen
tdl.mqtt.password = ugen
......
......@@ -29,7 +29,6 @@
#{transportationNo,jdbcType=VARCHAR},
#{startCity,jdbcType=VARCHAR},
#{endCity,jdbcType=VARCHAR},
#{transportationNo,jdbcType=VARCHAR},
#{TDLSN,jdbcType=VARCHAR},
#{description,jdbcType=VARCHAR},
#{data,jdbcType=FLOAT},
......
......@@ -201,6 +201,7 @@
#{transportationNo,mode=IN,jdbcType=VARCHAR},
#{gSN,mode=IN,jdbcType=VARCHAR},
#{gType,mode=IN,jdbcType=VARCHAR},
#{endTime,mode=IN,jdbcType=BIGINT},
#{message,mode=IN,jdbcType=VARCHAR},
#{msg,mode=OUT,jdbcType=VARCHAR}
)
......@@ -223,6 +224,17 @@
</select>
<select id="getCircuit" resultType="com.example.tdl.domain.vo.ResultCircuitVo" parameterType="String">
SELECT c.transportationNo,cargoNo,cargoName,(SELECT city from city WHERE id =(SELECT city_id from circuit_transfer WHERE circuit_id=c.id ORDER BY sequence LIMIT 1)) startCity,startTime,
(SELECT city from city WHERE id =(SELECT city_id from circuit_transfer WHERE circuit_id=c.id ORDER BY sequence DESC LIMIT 1)) endCity,endTime,circuitState,
(SELECT alarmType FROM alarm WHERE id IN (SELECT alarm_id from tdl_gateway_log WHERE transportationNo=c.transportationNo)) alarmType,
(select GROUP_CONCAT(DISTINCT classify) from alarm_log al where al.transportationNo = c.transportationNo) alarm,ifnull(evaluate,"") evaluate,transportation,
(select gatewaySN FROM tdl_gateway_log WHERE transportationNo= #{transportationNo,jdbcType=VARCHAR} ) SN,(SELECT GROUP_CONCAT(TDLSN) FROM tdl_gateway_log WHERE transportationNo= #{transportationNo,jdbcType=VARCHAR}) TDLSN
from circuit c
where c.state=1
and c.transportationNo=#{transportationNo,jdbcType=VARCHAR}
</select>
<!--根据线路编号获取线路信息 app-->
<select id="getByTransportationNoForApp" resultType="com.example.tdl.domain.vo.ResultCircuitForAppVo" parameterType="String">
SELECT c.transportationNo,cargoName,CONCAT_WS("-",(SELECT city from city WHERE id =(SELECT city_id from circuit_transfer WHERE circuit_id=c.id AND sequence =LEFT(s.sequence,1))),(SELECT city from city WHERE id =(SELECT city_id from circuit_transfer WHERE circuit_id=c.id AND sequence=RIGHT(s.sequence,1)))) city,
......
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