Merge branch 'master' of http://47.115.223.229:8888/yangjun/hldy_yunwei_java
# Conflicts: # nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/dingshuo/electricity/utils/MqttConfig.java # nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/dingshuo/electricity/utils/MqttMessageHandler.java # nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/dingshuo/electricity/utils/MqttPublisherParams.java
This commit is contained in:
commit
4124e58b10
|
|
@ -44,33 +44,46 @@ public class DsElectricityMeterController extends JeecgController<DsElectricityM
|
|||
}
|
||||
|
||||
@RequestMapping(value = "/add", method = RequestMethod.POST)
|
||||
public Result<String> add(@RequestBody DsElectricityMeter dsElectricityMeter) {
|
||||
public Result<?> add(@RequestBody DsElectricityMeter dsElectricityMeter) {
|
||||
return service.add(dsElectricityMeter);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/delete", method = RequestMethod.POST)
|
||||
public Result<String> delete(@RequestBody DsElectricityMeter dsElectricityMeter) {
|
||||
public Result<?> delete(@RequestBody DsElectricityMeter dsElectricityMeter) {
|
||||
return service.delete(dsElectricityMeter);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设备信息
|
||||
* 清零
|
||||
* @param dsElectricityMeter
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/eleReset")
|
||||
public Result<String> eleReset(DsElectricityMeter dsElectricityMeter) {
|
||||
return service.eleReset(dsElectricityMeter);
|
||||
service.eleReset(dsElectricityMeter);
|
||||
return Result.OK("清零中,请1分钟后刷新页面");
|
||||
}
|
||||
|
||||
/**
|
||||
* 拉闸、合闸
|
||||
* 拉闸
|
||||
* @param dsElectricityMeter
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/eleControl")
|
||||
public Result<String> eleControl(DsElectricityMeter dsElectricityMeter) {
|
||||
return service.eleControl(dsElectricityMeter);
|
||||
@GetMapping(value = "/eleCutOff")
|
||||
public Result<String> eleCutOff(DsElectricityMeter dsElectricityMeter) {
|
||||
service.eleCutOff(dsElectricityMeter);
|
||||
return Result.OK("拉闸中,请1分钟后刷新页面");
|
||||
}
|
||||
|
||||
/**
|
||||
* 合闸
|
||||
* @param dsElectricityMeter
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/eleConnected")
|
||||
public Result<String> eleConnected(DsElectricityMeter dsElectricityMeter) {
|
||||
service.eleConnected(dsElectricityMeter);
|
||||
return Result.OK("合闸中,请1分钟后刷新页面");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -80,7 +93,8 @@ public class DsElectricityMeterController extends JeecgController<DsElectricityM
|
|||
*/
|
||||
@GetMapping(value = "/eleRead")
|
||||
public Result<String> eleRead(DsElectricityMeter dsElectricityMeter) {
|
||||
return service.eleRead(dsElectricityMeter);
|
||||
service.eleRead(dsElectricityMeter);
|
||||
return Result.OK("抄表中,请1分钟后重新查询");
|
||||
}
|
||||
|
||||
@AutoLog(value = "修改电表信息")
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ public class DsElectricityMeter implements Serializable {
|
|||
private String remark;
|
||||
private String izAllocate;//是否分配
|
||||
private String dimension;//设备维度
|
||||
private String delFlag;//删除标识 0正常 1删除
|
||||
|
||||
private String nuId;//护理单元ID
|
||||
private String nuName;//护理单元
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
a.iz_allocate,
|
||||
a.dimension
|
||||
from nu_iot_ds_electricity_meter a
|
||||
<where>
|
||||
where a.del_flag = '0'
|
||||
<if test="params.sn != null and params.sn != ''">
|
||||
AND a.sn = #{params.sn}
|
||||
</if>
|
||||
|
|
@ -42,7 +42,6 @@
|
|||
<if test="params.izAllocate != null and params.izAllocate != ''">
|
||||
AND a.iz_allocate = #{params.izAllocate}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="findAllList" parameterType="com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter" resultType="com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter">
|
||||
|
|
@ -63,6 +62,7 @@
|
|||
a.iz_allocate,
|
||||
a.dimension
|
||||
from nu_iot_ds_electricity_meter a
|
||||
where a.del_flag = '0'
|
||||
</select>
|
||||
|
||||
<select id="getElectricityMeter" parameterType="com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter" resultType="com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter">
|
||||
|
|
@ -82,12 +82,16 @@
|
|||
old_depart_id as oldDepartId,
|
||||
old_depart_name as oldDepartName,
|
||||
iz_allocate,
|
||||
dimension
|
||||
dimension,
|
||||
del_flag
|
||||
from nu_iot_ds_electricity_meter
|
||||
<where>
|
||||
<if test="sn != null and sn != ''">
|
||||
AND sn = #{sn}
|
||||
</if>
|
||||
<if test="id != null and id != ''">
|
||||
AND id = #{id}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
|
@ -97,22 +101,25 @@
|
|||
remark,
|
||||
iz_allocate,
|
||||
dimension,
|
||||
create_time
|
||||
create_time,
|
||||
del_flag
|
||||
)
|
||||
values(
|
||||
#{sn},
|
||||
#{remark},
|
||||
'N',
|
||||
'区域维度',
|
||||
now()
|
||||
now(),
|
||||
'0'
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateElectricty" parameterType="com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter">
|
||||
update nu_iot_ds_electricity_meter
|
||||
set
|
||||
ele_value = #{eleValue},
|
||||
relay_state = #{relayState},
|
||||
remark = #{remark},
|
||||
read_time = #{readTime},
|
||||
update_time = now()
|
||||
<where>
|
||||
<if test="sn != null and sn != ''">
|
||||
|
|
@ -185,7 +192,7 @@
|
|||
a.dimension
|
||||
from nu_iot_ds_electricity_meter a
|
||||
left join nu_base_info c on a.nu_id = c.nu_id
|
||||
<where>
|
||||
where a.del_flag = '0'
|
||||
<if test="params.sn != null and params.sn != ''">
|
||||
AND a.sn LIKE concat('%',#{params.sn},'%')
|
||||
</if>
|
||||
|
|
@ -207,7 +214,6 @@
|
|||
AND a.depart_server_url != #{params.departServerUrl}
|
||||
</if>
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="findDepartList" parameterType="com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter" resultType="com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter">
|
||||
|
|
@ -216,6 +222,7 @@
|
|||
depart_name as departName
|
||||
from nu_iot_ds_electricity_meter
|
||||
where depart_id is not null
|
||||
and del_flag = '0'
|
||||
<if test="departServerUrl != null and departServerUrl != ''">
|
||||
<if test="dataType != null and dataType == 'source'">
|
||||
AND depart_server_url != #{departServerUrl}
|
||||
|
|
@ -232,6 +239,7 @@
|
|||
nu_name as nuName
|
||||
from nu_iot_ds_electricity_meter
|
||||
where nu_id is not null
|
||||
and del_flag = '0'
|
||||
<if test="departId != null and departId != ''">
|
||||
AND depart_id = #{departId}
|
||||
</if>
|
||||
|
|
@ -266,7 +274,8 @@
|
|||
a.dimension
|
||||
from nu_iot_ds_electricity_meter a
|
||||
left join nu_base_info c on a.nu_id = c.nu_id
|
||||
where a.depart_server_url = #{params.departServerUrl}
|
||||
where a.del_flag = '0'
|
||||
and a.depart_server_url = #{params.departServerUrl}
|
||||
<if test="params.sn != null and params.sn != ''">
|
||||
AND a.sn LIKE concat('%',#{params.sn},'%')
|
||||
</if>
|
||||
|
|
|
|||
|
|
@ -11,16 +11,19 @@ import java.util.Map;
|
|||
|
||||
public interface IDsElectricityMeterService extends IService<DsElectricityMeter> {
|
||||
IPage<DsElectricityMeter> findPage(Page<DsElectricityMeter> page, DsElectricityMeter dsElectricityMeter);
|
||||
Result<String> add(DsElectricityMeter dsElectricityMeter);
|
||||
Result<String> delete(DsElectricityMeter dsElectricityMeter);
|
||||
Result<?> add(DsElectricityMeter dsElectricityMeter);
|
||||
Result<?> delete(DsElectricityMeter dsElectricityMeter);
|
||||
|
||||
List<DsElectricityMeter> findAllList();
|
||||
void updateValue(DsElectricityMeter dsElectricityMeter);
|
||||
void updateRelayState(DsElectricityMeter dsElectricityMeter);
|
||||
|
||||
Result<String> eleReset(DsElectricityMeter dsElectricityMeter);
|
||||
Result<String> eleControl(DsElectricityMeter dsElectricityMeter);
|
||||
Result<String> eleRead(DsElectricityMeter dsElectricityMeter);
|
||||
void eleReset(DsElectricityMeter dsElectricityMeter);
|
||||
void eleCutOff(DsElectricityMeter dsElectricityMeter);
|
||||
void eleConnected(DsElectricityMeter dsElectricityMeter);
|
||||
void eleRead(DsElectricityMeter dsElectricityMeter);
|
||||
|
||||
void processReceivedMessage(String payload);
|
||||
|
||||
void syncElectricity(String dataSourceCode, DsElectricityMeter dsElectricityMeter);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package com.nu.modules.dingshuo.electricity.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
|
|
@ -10,6 +12,8 @@ import com.nu.dto.IotElectricityMeterMQDto;
|
|||
import com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter;
|
||||
import com.nu.modules.dingshuo.electricity.mapper.DsElectricityMeterMapper;
|
||||
import com.nu.modules.dingshuo.electricity.service.IDsElectricityMeterService;
|
||||
import com.nu.modules.dingshuo.electricity.utils.MqttMessageHandler;
|
||||
import com.nu.modules.dingshuo.electricity.utils.MqttPublisherParams;
|
||||
import com.nu.modules.syncLog.entity.SyncBizLog;
|
||||
import com.nu.modules.syncLog.entity.SyncLog;
|
||||
import com.nu.modules.syncLog.service.ISyncBizLogService;
|
||||
|
|
@ -18,6 +22,7 @@ import com.nu.utils.RabbitMQUtil;
|
|||
import lombok.extern.slf4j.Slf4j;
|
||||
import me.zhyd.oauth.utils.UuidUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.eclipse.paho.client.mqttv3.MqttException;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -43,23 +48,45 @@ public class DsElectricityMeterServiceImpl extends ServiceImpl<DsElectricityMete
|
|||
@Autowired
|
||||
private DsElectricityMeterServiceImpl syncImpl;
|
||||
|
||||
@Autowired
|
||||
@Lazy
|
||||
private MqttMessageHandler mqttMessageHandler;
|
||||
|
||||
@Autowired
|
||||
private MqttPublisherParams mqttPublisherParams;
|
||||
|
||||
@Override
|
||||
public IPage<DsElectricityMeter> findPage(Page<DsElectricityMeter> page, DsElectricityMeter dsElectricityMeter){
|
||||
return baseMapper.findPage(page,dsElectricityMeter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<String> add(DsElectricityMeter dsElectricityMeter){
|
||||
public Result<?> add(DsElectricityMeter dsElectricityMeter){
|
||||
DsElectricityMeter entity = baseMapper.getElectricityMeter(dsElectricityMeter);
|
||||
if(entity!=null){
|
||||
return Result.OK("添加失败,设备序号已存在!");
|
||||
if(entity.getDelFlag().equals("0")){
|
||||
return Result.error("添加失败,设备已存在!");
|
||||
}else{
|
||||
DsElectricityMeter dem = new DsElectricityMeter();
|
||||
dem.setId(entity.getId());
|
||||
dem.setDelFlag("0");
|
||||
baseMapper.updateById(dem);
|
||||
}
|
||||
}else{
|
||||
baseMapper.insertElectricty(dsElectricityMeter);
|
||||
}
|
||||
String deviceId = dsElectricityMeter.getSn();
|
||||
try {
|
||||
mqttMessageHandler.subscribeUplinkMessage(deviceId);
|
||||
} catch (MqttException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return Result.OK("添加成功!");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<String> delete(DsElectricityMeter dsElectricityMeter){
|
||||
public Result<?> delete(DsElectricityMeter dsElectricityMeter){
|
||||
DsElectricityMeter entity = baseMapper.getElectricityMeter(dsElectricityMeter);
|
||||
if(entity!=null){
|
||||
String izAllocate = entity.getIzAllocate();
|
||||
|
|
@ -67,8 +94,17 @@ public class DsElectricityMeterServiceImpl extends ServiceImpl<DsElectricityMete
|
|||
return Result.OK("设备已分配,无法删除!");
|
||||
}
|
||||
}
|
||||
baseMapper.deleteById(dsElectricityMeter.getId());
|
||||
return Result.OK("添加成功!");
|
||||
DsElectricityMeter dem = new DsElectricityMeter();
|
||||
dem.setId(entity.getId());
|
||||
dem.setDelFlag("1");
|
||||
baseMapper.updateById(dem);
|
||||
String deviceId = dsElectricityMeter.getSn();
|
||||
try {
|
||||
mqttMessageHandler.unsubscribeUplinkMessage(deviceId);
|
||||
} catch (MqttException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -86,36 +122,136 @@ public class DsElectricityMeterServiceImpl extends ServiceImpl<DsElectricityMete
|
|||
baseMapper.updateRelayState(dsElectricityMeter);
|
||||
}
|
||||
|
||||
/**
|
||||
* 清零
|
||||
*/
|
||||
@Override
|
||||
public Result<String> eleReset(DsElectricityMeter dsElectricityMeter){
|
||||
public void eleReset(DsElectricityMeter dsElectricityMeter){
|
||||
String deviceId = dsElectricityMeter.getSn();
|
||||
MqttMessageHandler.DownlinkMessage message = mqttPublisherParams.getResetParams(deviceId);
|
||||
try {
|
||||
mqttMessageHandler.publishDownlinkMessage(deviceId,message);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
return Result.OK("清零中,请1分钟后刷新页面");
|
||||
@Override
|
||||
public void eleCutOff(DsElectricityMeter dsElectricityMeter){
|
||||
String deviceId = dsElectricityMeter.getSn();
|
||||
MqttMessageHandler.DownlinkMessage message = mqttPublisherParams.getCutOffParams(deviceId);
|
||||
try {
|
||||
mqttMessageHandler.publishDownlinkMessage(deviceId,message);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eleConnected(DsElectricityMeter dsElectricityMeter){
|
||||
String deviceId = dsElectricityMeter.getSn();
|
||||
MqttMessageHandler.DownlinkMessage message = mqttPublisherParams.getConnectedParams(deviceId);
|
||||
try {
|
||||
mqttMessageHandler.publishDownlinkMessage(deviceId,message);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eleRead(DsElectricityMeter dsElectricityMeter){
|
||||
String deviceId = dsElectricityMeter.getSn();
|
||||
MqttMessageHandler.DownlinkMessage message = mqttPublisherParams.getReadingParams(deviceId);
|
||||
try {
|
||||
mqttMessageHandler.publishDownlinkMessage(deviceId,message);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 拉合闸
|
||||
* mqtt收到消息,并处理
|
||||
*/
|
||||
@Override
|
||||
public Result<String> eleControl(DsElectricityMeter dsElectricityMeter){
|
||||
Integer type = dsElectricityMeter.getType();
|
||||
|
||||
if(type.equals(10)){
|
||||
return Result.OK("拉闸中,请1分钟后刷新页面");
|
||||
public void processReceivedMessage(String message){
|
||||
JSONObject jsonObject = new JSONObject(message);
|
||||
JSONObject header = (JSONObject)jsonObject.get("header");
|
||||
JSONObject payload = (JSONObject)jsonObject.get("payload");
|
||||
String name = header.getStr("name");
|
||||
String sn = header.getStr("ID");
|
||||
switch (name){
|
||||
case "901":
|
||||
// 抄表
|
||||
String EgT901 = payload.getStr("EgT");//总有功电能
|
||||
String RelyF901 = payload.getStr("RelyF");//表状态
|
||||
String eleValue901 = "0";
|
||||
String relayState901 = "0";
|
||||
if(RelyF901.equals("ON")){
|
||||
relayState901 = "1";
|
||||
}
|
||||
if(EgT901.toLowerCase().indexOf("kwh")>0){
|
||||
eleValue901 = EgT901.substring(0,EgT901.toLowerCase().indexOf("kwh"));
|
||||
}
|
||||
DsElectricityMeter entity901 = new DsElectricityMeter();
|
||||
entity901.setSn(sn);
|
||||
entity901.setEleValue(eleValue901);
|
||||
entity901.setRelayState(relayState901);
|
||||
entity901.setReadTime(DateUtil.now());
|
||||
baseMapper.updateElectricty(entity901);
|
||||
break;
|
||||
case "902":
|
||||
// 拉闸合闸
|
||||
String result902 = payload.getStr("result");//拉合闸执行结果
|
||||
if(result902.equals("SUCCESS")){
|
||||
// //拉合闸成功,直接抄表,获取表状态
|
||||
DsElectricityMeter dme902 = new DsElectricityMeter();
|
||||
dme902.setSn(sn);
|
||||
// eleRead(dme902);
|
||||
DsElectricityMeter entity902 = baseMapper.getElectricityMeter(dme902);
|
||||
if(entity902!=null){
|
||||
if(entity902.getRelayState().equals("0")){
|
||||
entity902.setRelayState("1");
|
||||
}else{
|
||||
return Result.OK("合闸中,请1分钟后刷新页面");
|
||||
entity902.setRelayState("0");
|
||||
}
|
||||
baseMapper.updateRelayState(entity902);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 抄电表
|
||||
*/
|
||||
@Override
|
||||
public Result<String> eleRead(DsElectricityMeter dsElectricityMeter){
|
||||
|
||||
return Result.OK("抄表中,请1分钟后重新查询");
|
||||
break;
|
||||
case "904":
|
||||
// 参数配置,包括清零
|
||||
String mtype904 = payload.getStr("mtype");//mtype:200 TCP信息;206 表复位重启;208 表清零
|
||||
String dcode904 = payload.getStr("dcode");
|
||||
if(dcode904.equals("SUCCESS")){
|
||||
if(mtype904.equals("208")){
|
||||
DsElectricityMeter entity904 = new DsElectricityMeter();
|
||||
entity904.setSn(sn);
|
||||
entity904.setEleValue("0");
|
||||
entity904.setReadTime(DateUtil.now());
|
||||
baseMapper.updateValue(entity904);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "601":
|
||||
// 定时主动上报表计数据
|
||||
String EgT601 = payload.getStr("EgT");//总有功电能
|
||||
String RelyF601 = payload.getStr("RelyF");//表状态
|
||||
String eleValue601 = "0";
|
||||
String relayState601 = "0";
|
||||
if(RelyF601.equals("ON")){
|
||||
relayState601 = "1";
|
||||
}
|
||||
if(EgT601.toLowerCase().indexOf("kwh")>0){
|
||||
eleValue601 = EgT601.substring(0,EgT601.toLowerCase().indexOf("kwh"));
|
||||
}
|
||||
DsElectricityMeter entity601 = new DsElectricityMeter();
|
||||
entity601.setSn(sn);
|
||||
entity601.setEleValue(eleValue601);
|
||||
entity601.setRelayState(relayState601);
|
||||
entity601.setReadTime(DateUtil.now());
|
||||
baseMapper.updateElectricty(entity601);
|
||||
break;
|
||||
case "701":
|
||||
// 定时主动上报事件数据
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -143,8 +279,6 @@ public class DsElectricityMeterServiceImpl extends ServiceImpl<DsElectricityMete
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 抄表同步到业务系统
|
||||
* @param dsElectricityMeter
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
package com.nu.modules.dingshuo.electricity.utils;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.eclipse.paho.client.mqttv3.MqttClient;
|
||||
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
|
||||
import org.eclipse.paho.client.mqttv3.MqttException;
|
||||
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* 配置 MQTT 连接
|
||||
*/
|
||||
@Slf4j
|
||||
@Configuration
|
||||
@ConfigurationProperties(prefix = "mqtt")
|
||||
public class MqttConfig {
|
||||
|
||||
@Value("${mqtt.broker-url}")
|
||||
private String brokerUrl;
|
||||
|
||||
@Value("${mqtt.client-id}")
|
||||
private String clientId;
|
||||
|
||||
@Value("${mqtt.username}")
|
||||
private String username;
|
||||
|
||||
@Value("${mqtt.password}")
|
||||
private String password;
|
||||
|
||||
@Value("${mqtt.clean-session}")
|
||||
private boolean cleanSession;
|
||||
|
||||
@Value("${mqtt.connection-timeout}")
|
||||
private int connectionTimeout;
|
||||
|
||||
@Value("${mqtt.keep-alive-interval}")
|
||||
private int keepAliveInterval;
|
||||
|
||||
@Bean
|
||||
public MqttConnectOptions mqttConnectOptions() {
|
||||
MqttConnectOptions options = new MqttConnectOptions();
|
||||
options.setCleanSession(cleanSession);
|
||||
options.setConnectionTimeout(connectionTimeout);
|
||||
options.setKeepAliveInterval(keepAliveInterval);
|
||||
options.setAutomaticReconnect(true);
|
||||
|
||||
if (username != null && !username.isEmpty()) {
|
||||
options.setUserName(username);
|
||||
}
|
||||
if (password != null && !password.isEmpty()) {
|
||||
options.setPassword(password.toCharArray());
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public MqttClient mqttClient() throws MqttException {
|
||||
String mqttClientId = clientId + UUID.randomUUID();
|
||||
MqttClient client = new MqttClient(brokerUrl, mqttClientId, new MemoryPersistence());
|
||||
client.connect(mqttConnectOptions());
|
||||
return client;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
package com.nu.modules.dingshuo.electricity.utils;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter;
|
||||
import com.nu.modules.dingshuo.electricity.service.IDsElectricityMeterService;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.eclipse.paho.client.mqttv3.IMqttMessageListener;
|
||||
import org.eclipse.paho.client.mqttv3.MqttClient;
|
||||
import org.eclipse.paho.client.mqttv3.MqttException;
|
||||
import org.eclipse.paho.client.mqttv3.MqttMessage;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.CommandLineRunner;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class MqttMessageHandler implements CommandLineRunner {
|
||||
|
||||
@Autowired
|
||||
private MqttClient mqttClient;
|
||||
|
||||
@Autowired
|
||||
@Lazy
|
||||
private IDsElectricityMeterService dsElectricityMeterService;
|
||||
|
||||
@Autowired
|
||||
private ObjectMapper objectMapper;
|
||||
|
||||
/**
|
||||
* 发送下行消息(发布1)
|
||||
* @param deviceId 设备ID
|
||||
* @param message 消息内容
|
||||
*/
|
||||
public void publishDownlinkMessage(String deviceId, MqttMessageHandler.DownlinkMessage message) throws Exception {
|
||||
String topic = "BY/dn/" + deviceId;
|
||||
String payload = objectMapper.writeValueAsString(message);
|
||||
|
||||
MqttMessage mqttMessage = new MqttMessage(payload.getBytes());
|
||||
mqttMessage.setQos(0);
|
||||
mqttMessage.setRetained(false);
|
||||
log.info("发布 - 主题: {}, 消息: {}", topic, payload);
|
||||
mqttClient.publish(topic, mqttMessage);
|
||||
log.info("发布成功 - 主题: {}, 消息: {}", topic, payload);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订阅上行消息(接收2)
|
||||
* @param deviceId 设备ID
|
||||
*/
|
||||
public void subscribeUplinkMessage(String deviceId) throws MqttException {
|
||||
String topic = "BY/up/" + deviceId;
|
||||
mqttClient.subscribe(topic, 0, new IMqttMessageListener() {
|
||||
@Override
|
||||
public void messageArrived(String topic, MqttMessage message) throws Exception {
|
||||
String payload = new String(message.getPayload());
|
||||
log.info("收到上行消息, 主题: {}, 内容: {}", topic, payload);
|
||||
// 解析消息
|
||||
dsElectricityMeterService.processReceivedMessage(payload);
|
||||
}
|
||||
});
|
||||
log.info("已订阅上行主题: {}", topic);
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消订阅上行消息
|
||||
* @param deviceId 设备ID
|
||||
*/
|
||||
public void unsubscribeUplinkMessage(String deviceId) throws MqttException {
|
||||
String topic = "BY/up/" + deviceId;
|
||||
log.info("取消已订阅上行主题: {}", topic);
|
||||
mqttClient.unsubscribe(topic);
|
||||
log.info("取消已订阅上行主题成功: {}", topic);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(String... args) throws Exception {
|
||||
// 启动时订阅示例
|
||||
List<DsElectricityMeter> list = dsElectricityMeterService.findAllList();
|
||||
for(int i=0;i<list.size();i++){
|
||||
DsElectricityMeter dem = list.get(i);
|
||||
subscribeUplinkMessage(dem.getSn());
|
||||
}
|
||||
log.info("MQTT客户端启动完成");
|
||||
}
|
||||
|
||||
// 下行消息实体类
|
||||
@Data
|
||||
public static class DownlinkMessage {
|
||||
private Header header;
|
||||
private Map<String, Object> payload = new HashMap<>();
|
||||
|
||||
@Data
|
||||
public static class Header {
|
||||
private String name;
|
||||
private String ID;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
package com.nu.modules.dingshuo.electricity.utils;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 发布命令参数
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class MqttPublisherParams {
|
||||
|
||||
/**
|
||||
* 获取抄表参数
|
||||
* @return
|
||||
*/
|
||||
public MqttMessageHandler.DownlinkMessage getReadingParams(String deviceId){
|
||||
MqttMessageHandler.DownlinkMessage message = new MqttMessageHandler.DownlinkMessage();
|
||||
MqttMessageHandler.DownlinkMessage.Header header = new MqttMessageHandler.DownlinkMessage.Header();
|
||||
header.setName("801"); //801:表⽰读取表计数据
|
||||
header.setID(deviceId);
|
||||
message.setHeader(header);
|
||||
Map<String, Object> payload = new HashMap<>();
|
||||
payload.put("mtype", "101"); //"101"对应上⾏数据中的总有功电量
|
||||
message.setPayload(payload);
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
* 拉闸
|
||||
* @return
|
||||
*/
|
||||
public MqttMessageHandler.DownlinkMessage getCutOffParams(String deviceId){
|
||||
MqttMessageHandler.DownlinkMessage message = new MqttMessageHandler.DownlinkMessage();
|
||||
MqttMessageHandler.DownlinkMessage.Header header = new MqttMessageHandler.DownlinkMessage.Header();
|
||||
header.setName("802"); //802:表⽰拉合闸命令
|
||||
header.setID(deviceId);
|
||||
message.setHeader(header);
|
||||
Map<String, Object> payload = new HashMap<>();
|
||||
payload.put("mtype", "OFF"); //mtype:表⽰信息类型;ON---合闸;OFF---拉闸;KEEPON--保电;KEEPOFF--保电取消
|
||||
payload.put("passwd", "02123456"); //"101"对应上⾏数据中的总有功电量
|
||||
message.setPayload(payload);
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
* 合闸
|
||||
* @return
|
||||
*/
|
||||
public MqttMessageHandler.DownlinkMessage getConnectedParams(String deviceId){
|
||||
MqttMessageHandler.DownlinkMessage message = new MqttMessageHandler.DownlinkMessage();
|
||||
MqttMessageHandler.DownlinkMessage.Header header = new MqttMessageHandler.DownlinkMessage.Header();
|
||||
header.setName("802"); //802:表⽰拉合闸命令
|
||||
header.setID(deviceId);
|
||||
message.setHeader(header);
|
||||
Map<String, Object> payload = new HashMap<>();
|
||||
payload.put("mtype", "ON"); //mtype:表⽰信息类型;ON---合闸;OFF---拉闸;KEEPON--保电;KEEPOFF--保电取消
|
||||
payload.put("passwd", "02123456"); //"101"对应上⾏数据中的总有功电量
|
||||
message.setPayload(payload);
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
* 清零
|
||||
* @return
|
||||
*/
|
||||
public MqttMessageHandler.DownlinkMessage getResetParams(String deviceId){
|
||||
MqttMessageHandler.DownlinkMessage message = new MqttMessageHandler.DownlinkMessage();
|
||||
MqttMessageHandler.DownlinkMessage.Header header = new MqttMessageHandler.DownlinkMessage.Header();
|
||||
header.setName("804"); //804:参数配置
|
||||
header.setID(deviceId);
|
||||
message.setHeader(header);
|
||||
Map<String, Object> payload = new HashMap<>();
|
||||
payload.put("mtype", "208");
|
||||
payload.put("Code", "A5A5A5A5");
|
||||
payload.put("passwd", "02123456");
|
||||
message.setPayload(payload);
|
||||
return message;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -188,6 +188,18 @@ public class CameraInfoController extends JeecgController<CameraInfo, ICameraInf
|
|||
return service.getIpcCapability(cameraInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设备详情信息
|
||||
*
|
||||
* @param cameraInfo
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/getDeviceDetails")
|
||||
public Result<JSONObject> getDeviceDetails(CameraInfo cameraInfo) {
|
||||
return service.getDeviceDetails(cameraInfo);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取画面基本信息
|
||||
*
|
||||
|
|
@ -210,6 +222,28 @@ public class CameraInfoController extends JeecgController<CameraInfo, ICameraInf
|
|||
return service.setImageCommon(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取画面操作信息
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@PostMapping(value = "/getImageSwitch")
|
||||
public Result<JSONObject> getImageSwitch(@RequestBody Map<String,Object> map) {
|
||||
return service.getImageSwitch(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置画面操作信息
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@PostMapping(value = "/setImageSwitch")
|
||||
public Result setImageSwitch(@RequestBody Map<String,Object> map) {
|
||||
return service.setImageSwitch(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取OSD能力集
|
||||
*
|
||||
|
|
|
|||
|
|
@ -326,6 +326,7 @@ public class CameraInfo implements Serializable {
|
|||
private String remarks;//备注
|
||||
private String izAllocate;//是否分配
|
||||
private String dimension;//设备维度
|
||||
private String channel;//通道号
|
||||
|
||||
@TableField(exist = false)
|
||||
private String routeType;//camera监控设备 network网络设备
|
||||
|
|
|
|||
|
|
@ -41,7 +41,8 @@
|
|||
a.maintain_status,
|
||||
a.remarks,
|
||||
a.iz_allocate,
|
||||
a.dimension
|
||||
a.dimension,
|
||||
a.channel
|
||||
from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.nu_id
|
||||
left join nu_iot_tplink_camera_capability c on a.device_index = c.device_index
|
||||
<where>
|
||||
|
|
@ -126,7 +127,8 @@
|
|||
a.ftp_uploadpath as ftpUploadpath,
|
||||
a.remarks,
|
||||
a.iz_allocate,
|
||||
a.dimension
|
||||
a.dimension,
|
||||
a.channel
|
||||
from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.nu_id
|
||||
<where>
|
||||
<if test="projectId != null and projectId != ''">
|
||||
|
|
@ -173,7 +175,8 @@
|
|||
ftp_uploadpath as ftpUploadpath,
|
||||
a.remarks,
|
||||
a.iz_allocate,
|
||||
a.dimension
|
||||
a.dimension,
|
||||
a.channel
|
||||
from nu_iot_tplink_camera a
|
||||
<where>
|
||||
<if test="deviceType != null and deviceType != ''">
|
||||
|
|
@ -229,7 +232,8 @@
|
|||
a.ftp_uploadpath as ftpUploadpath,
|
||||
a.remarks,
|
||||
a.iz_allocate,
|
||||
a.dimension
|
||||
a.dimension,
|
||||
a.channel
|
||||
from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.id
|
||||
where device_index = #{deviceIndex}
|
||||
</select>
|
||||
|
|
@ -325,7 +329,10 @@
|
|||
|
||||
<update id="updateDeviceStatusByDevId">
|
||||
UPDATE nu_iot_tplink_camera
|
||||
SET device_status = #{deviceStatus}
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="deviceStatus != null">device_status = #{deviceStatus},</if>
|
||||
<if test="channel != null">channel = #{channel},</if>
|
||||
</trim>
|
||||
where device_index = #{deviceIndex}
|
||||
</update>
|
||||
|
||||
|
|
@ -376,7 +383,8 @@
|
|||
a.ftp_uploadpath as ftpUploadpath,
|
||||
a.remarks,
|
||||
a.iz_allocate,
|
||||
a.dimension
|
||||
a.dimension,
|
||||
a.channel
|
||||
from nu_iot_tplink_camera a
|
||||
where device_index = #{deviceIndex}
|
||||
</select>
|
||||
|
|
@ -439,7 +447,8 @@
|
|||
c.area_flag as areaFlag,
|
||||
a.remarks,
|
||||
a.iz_allocate,
|
||||
a.dimension
|
||||
a.dimension,
|
||||
a.channel
|
||||
from nu_iot_tplink_camera a
|
||||
left join nu_base_info c on a.nu_id = c.nu_id
|
||||
<where>
|
||||
|
|
@ -545,7 +554,8 @@
|
|||
c.area_flag as areaFlag,
|
||||
a.remarks,
|
||||
a.iz_allocate,
|
||||
a.dimension
|
||||
a.dimension,
|
||||
a.channel
|
||||
from nu_iot_tplink_camera a
|
||||
left join nu_base_info c on a.nu_id = c.nu_id
|
||||
where a.depart_server_url = #{params.departServerUrl}
|
||||
|
|
|
|||
|
|
@ -31,8 +31,11 @@ public interface ICameraInfoService extends IService<CameraInfo> {
|
|||
Result<String> syncDevicesStatus(CameraInfo cameraInfo);
|
||||
Result<String> syncProjectIpcDevice(CameraInfo cameraInfo);
|
||||
Result<JSONObject> getIpcCapability(CameraInfo cameraInfo);
|
||||
Result<JSONObject> getDeviceDetails(CameraInfo cameraInfo);
|
||||
Result<JSONObject> getImageCommon(Map<String,Object> map);
|
||||
Result setImageCommon(Map<String,Object> map);
|
||||
Result<JSONObject> getImageSwitch(Map<String,Object> map);
|
||||
Result setImageSwitch(Map<String,Object> map);
|
||||
Result<JSONObject> getOsdCapability(Map<String,Object> map);
|
||||
Result<JSONObject> getOsd(Map<String,Object> map);
|
||||
Result<String> setOsd(Map<String,Object> map);
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
String jsonRes = tumsApi.modifyDeviceDetails(sb.toString());
|
||||
JSONObject jsonObject = new JSONObject(jsonRes);
|
||||
if(jsonObject.getInt("error_code").equals(0)){
|
||||
return Result.OK();
|
||||
return Result.OK("编辑成功");
|
||||
}else{
|
||||
return Result.error(jsonObject.getStr("msg"));
|
||||
}
|
||||
|
|
@ -156,7 +156,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
String jsonRes = tumsApi.rebootDeviceList(sb.toString());
|
||||
JSONObject jsonObject = new JSONObject(jsonRes);
|
||||
if(jsonObject.getInt("error_code").equals(0)){
|
||||
return Result.OK();
|
||||
return Result.OK("重启成功");
|
||||
}else{
|
||||
return Result.error(jsonObject.getStr("msg"));
|
||||
}
|
||||
|
|
@ -189,9 +189,15 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
JSONArray list = result.getJSONArray("list");
|
||||
for(int i=0;i<list.size();i++){
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
String jsonString = list.get(i).toString();
|
||||
JSONObject json = (JSONObject)list.get(i);
|
||||
String jsonString = json.toString();
|
||||
try {
|
||||
CameraInfo cameraInfo = mapper.readValue(jsonString, CameraInfo.class);
|
||||
JSONObject extend = json.getJSONObject("extend");
|
||||
if(extend!=null){
|
||||
String channel = extend.getStr("channel");
|
||||
cameraInfo.setChannel(channel);
|
||||
}
|
||||
CameraInfo entity = baseMapper.getByDeviceId(cameraInfo);
|
||||
if(entity==null){
|
||||
//新增
|
||||
|
|
@ -419,9 +425,15 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
JSONArray list = result.getJSONArray("list");
|
||||
for(int i=0;i<list.size();i++){
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
String jsonString = list.get(i).toString();
|
||||
JSONObject json = (JSONObject)list.get(i);
|
||||
String jsonString = json.toString();
|
||||
try {
|
||||
CameraInfo cameraInfo = mapper.readValue(jsonString, CameraInfo.class);
|
||||
JSONObject extend = json.getJSONObject("extend");
|
||||
if(extend!=null){
|
||||
String channel = extend.getStr("channel");
|
||||
cameraInfo.setChannel(channel);
|
||||
}
|
||||
CameraInfo entity = baseMapper.getByDeviceId(cameraInfo);
|
||||
if(entity==null){
|
||||
//新增
|
||||
|
|
@ -542,6 +554,40 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
return Result.OK(capability);
|
||||
}
|
||||
|
||||
/**
|
||||
* 接口调用-获取设备详情信息
|
||||
* @param ci
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Result<JSONObject> getDeviceDetails(CameraInfo ci){
|
||||
String id = ci.getDeviceIndex();
|
||||
StringBuffer paramsSb = new StringBuffer();
|
||||
paramsSb.append("{");
|
||||
paramsSb.append("\"deviceIndex\"").append(":").append("\"").append(id).append("\"");
|
||||
paramsSb.append("}");
|
||||
String ipcCapabilityRes = tumsApi.getDeviceDetails(paramsSb.toString());
|
||||
JSONObject jsonObject = new JSONObject(ipcCapabilityRes);
|
||||
if(jsonObject.getInt("error_code").equals(0)){
|
||||
JSONObject json = (JSONObject)jsonObject.get("result");
|
||||
JSONObject extend = json.getJSONObject("extendInfo");
|
||||
String channel = extend.getStr("channel");
|
||||
try {
|
||||
String deviceIndex = json.getStr("deviceIndex");
|
||||
String deviceStatus = json.getStr("deviceStatus");
|
||||
CameraInfo cameraInfo = new CameraInfo();
|
||||
cameraInfo.setDeviceIndex(deviceIndex);
|
||||
cameraInfo.setDeviceStatus(deviceStatus);
|
||||
cameraInfo.setChannel(channel);
|
||||
baseMapper.updateDeviceStatusByDevId(cameraInfo);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新设备在线状态
|
||||
* @param deviceIndex
|
||||
|
|
@ -572,6 +618,14 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
public Result<JSONObject> getImageCommon(Map<String,Object> map){
|
||||
String id = map.get("deviceIndex").toString();
|
||||
String type = map.get("type").toString();
|
||||
CameraInfo cameraInfo = new CameraInfo();
|
||||
cameraInfo.setDeviceIndex(id);
|
||||
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
|
||||
String parentId = cameraInfo.getParentId();
|
||||
if(!parentId.equals("0")){
|
||||
id = parentId;
|
||||
type = "chn"+cameraInfo.getChannel()+"_common";
|
||||
}
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("{");
|
||||
sb.append("\"devId\"").append(":").append("\"").append(id).append("\"").append(",");
|
||||
|
|
@ -631,6 +685,14 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
public Result setImageCommon(Map<String,Object> map){
|
||||
String id = map.get("deviceIndex").toString();
|
||||
String type = map.get("type").toString();
|
||||
CameraInfo cameraInfo = new CameraInfo();
|
||||
cameraInfo.setDeviceIndex(id);
|
||||
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
|
||||
String parentId = cameraInfo.getParentId();
|
||||
if(!parentId.equals("0")){
|
||||
id = parentId;
|
||||
type = "chn"+cameraInfo.getChannel()+"_common";
|
||||
}
|
||||
Map<String,Object> paramMap = (Map<String,Object>)map.get("param");
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("{");
|
||||
|
|
@ -691,6 +753,153 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取画面操作信息
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public Result<JSONObject> getImageSwitch(Map<String,Object> map){
|
||||
String id = map.get("deviceIndex").toString();
|
||||
String type = map.get("type").toString();
|
||||
CameraInfo cameraInfo = new CameraInfo();
|
||||
cameraInfo.setDeviceIndex(id);
|
||||
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
|
||||
String parentId = cameraInfo.getParentId();
|
||||
if(!parentId.equals("0")){
|
||||
id = parentId;
|
||||
type = "chn"+cameraInfo.getChannel()+"_switch";
|
||||
}
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("{");
|
||||
sb.append("\"devId\"").append(":").append("\"").append(id).append("\"").append(",");
|
||||
sb.append("\"param\"").append(":").append("{");
|
||||
sb.append("\"method\"").append(":").append("\"get\"").append(",");
|
||||
sb.append("\"image\"").append(":").append("{");
|
||||
sb.append("\"name\"").append(":").append("\"").append(type).append("\"");
|
||||
sb.append("}");
|
||||
sb.append("}");
|
||||
sb.append("}");
|
||||
String addPreviewRes = tumsApi.passthrough(sb.toString());
|
||||
JSONObject jsonObject = new JSONObject(addPreviewRes);
|
||||
String errCode = jsonObject.getStr("error_code");
|
||||
if("0".equals(errCode)){
|
||||
JSONObject result = (JSONObject)jsonObject.get("result");
|
||||
JSONObject responseData = (JSONObject)result.get("responseData");
|
||||
String errorCode = responseData.getStr("error_code");
|
||||
if("0".equals(errorCode)){
|
||||
JSONObject image = (JSONObject)responseData.get("image");
|
||||
JSONObject data = (JSONObject)image.get(type);
|
||||
updateDeviceStatus(id,errorCode);
|
||||
return Result.OK(data);
|
||||
}else{
|
||||
String errorMsg = "";
|
||||
try{
|
||||
ErrorCode errorVo = errorCodeService.getByCode(errorCode);
|
||||
errorMsg = errorVo.getErrorMsg();
|
||||
}catch (Exception e){
|
||||
errorMsg = errorCode;
|
||||
}
|
||||
updateDeviceStatus(id,errorCode);
|
||||
log.info("getImageCommon:{}",errorMsg);
|
||||
return Result.error(errorMsg);
|
||||
}
|
||||
}else{
|
||||
String errMsg = "";
|
||||
try{
|
||||
ErrorCode errVo = errorCodeService.getByCode(errCode);
|
||||
errMsg = errVo.getErrorMsg();
|
||||
}catch (Exception e){
|
||||
errMsg = errCode;
|
||||
}
|
||||
updateDeviceStatus(id,errCode);
|
||||
log.info("getImageCommon:{}",errMsg);
|
||||
return Result.error(errMsg);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置画面操作信息
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public Result setImageSwitch(Map<String,Object> map){
|
||||
String id = map.get("deviceIndex").toString();
|
||||
String type = map.get("type").toString();
|
||||
CameraInfo cameraInfo = new CameraInfo();
|
||||
cameraInfo.setDeviceIndex(id);
|
||||
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
|
||||
String parentId = cameraInfo.getParentId();
|
||||
if(!parentId.equals("0")){
|
||||
id = parentId;
|
||||
type = "chn"+cameraInfo.getChannel()+"_switch";
|
||||
}
|
||||
Map<String,Object> paramMap = (Map<String,Object>)map.get("param");
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("{");
|
||||
sb.append("\"devId\"").append(":").append("\"").append(id).append("\"").append(",");
|
||||
sb.append("\"param\"").append(":").append("{");
|
||||
sb.append("\"method\"").append(":").append("\"set\"").append(",");
|
||||
sb.append("\"image\"").append(":").append("{");
|
||||
sb.append("\"").append(type).append("\"").append(":").append("{");
|
||||
//类属性+类值
|
||||
StringBuffer csb = new StringBuffer();
|
||||
Set<String> keys = paramMap.keySet();
|
||||
// 遍历键的集合并打印每个键
|
||||
for (String key : keys) {
|
||||
String value = paramMap.get(key).toString();
|
||||
csb.append("\"").append(key).append("\"").append(":").append("\"").append(value).append("\"").append(",");
|
||||
}
|
||||
String cstr = csb.toString();
|
||||
if(cstr.length()>0){
|
||||
cstr = cstr.substring(0,cstr.length()-1);
|
||||
}
|
||||
sb.append(cstr);
|
||||
sb.append("}");
|
||||
sb.append("}");
|
||||
sb.append("}");
|
||||
sb.append("}");
|
||||
String addPreviewRes = tumsApi.passthrough(sb.toString());
|
||||
JSONObject jsonObject = new JSONObject(addPreviewRes);
|
||||
String errCode = jsonObject.getStr("error_code");
|
||||
if("0".equals(errCode)){
|
||||
JSONObject result = (JSONObject)jsonObject.get("result");
|
||||
JSONObject responseData = (JSONObject)result.get("responseData");
|
||||
String errorCode = responseData.getStr("error_code");
|
||||
if("0".equals(errorCode)){
|
||||
return Result.OK("设置成功");
|
||||
}else{
|
||||
String errorMsg = "";
|
||||
try{
|
||||
ErrorCode errorVo = errorCodeService.getByCode(errorCode);
|
||||
errorMsg = errorVo.getErrorMsg();
|
||||
}catch (Exception e){
|
||||
errorMsg = errorCode;
|
||||
}
|
||||
updateDeviceStatus(id,errorCode);
|
||||
log.info("setImageCommon:{}",errorMsg);
|
||||
return Result.error(errorMsg);
|
||||
}
|
||||
}else{
|
||||
String errMsg = "";
|
||||
try{
|
||||
ErrorCode errVo = errorCodeService.getByCode(errCode);
|
||||
errMsg = errVo.getErrorMsg();
|
||||
}catch (Exception e){
|
||||
errMsg = errCode;
|
||||
}
|
||||
updateDeviceStatus(id,errCode);
|
||||
log.info("setImageCommon:{}",errMsg);
|
||||
return Result.error(errMsg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取OSD能力集参数
|
||||
*
|
||||
|
|
@ -758,13 +967,30 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
@Override
|
||||
public Result<JSONObject> getOsd(Map<String,Object> map){
|
||||
String id = map.get("deviceIndex").toString();
|
||||
CameraInfo cameraInfo = new CameraInfo();
|
||||
cameraInfo.setDeviceIndex(id);
|
||||
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
|
||||
String parentId = cameraInfo.getParentId();
|
||||
String font = "font";
|
||||
String week = "week";
|
||||
String date = "date";
|
||||
if(!parentId.equals("0")){
|
||||
id = parentId;
|
||||
font = "chn"+cameraInfo.getChannel()+"_font";
|
||||
week = "chn"+cameraInfo.getChannel()+"_week";
|
||||
date = "chn"+cameraInfo.getChannel()+"_date";
|
||||
}
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("{");
|
||||
sb.append("\"devId\"").append(":").append("\"").append(id).append("\"").append(",");
|
||||
sb.append("\"param\"").append(":").append("{");
|
||||
sb.append("\"method\"").append(":").append("\"get\"").append(",");
|
||||
sb.append("\"OSD\"").append(":").append("{");
|
||||
sb.append("\"name\"").append(":[").append("\"font\",").append("\"week\",").append("\"date\"").append("],");
|
||||
sb.append("\"name\"").append(":[");
|
||||
sb.append("\"").append(font).append("\"").append(",");
|
||||
sb.append("\"").append(week).append("\"").append(",");
|
||||
sb.append("\"").append(date).append("\"");
|
||||
sb.append("],");
|
||||
sb.append("\"table\"").append(":").append("\"label_info\"");
|
||||
sb.append("}");
|
||||
sb.append("}");
|
||||
|
|
@ -778,7 +1004,26 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
String errorCode = responseData.getStr("error_code");
|
||||
if("0".equals(errorCode)){
|
||||
JSONObject osd = (JSONObject)responseData.get("OSD");
|
||||
if(!parentId.equals("0")){
|
||||
JSONObject res = new JSONObject();
|
||||
res.set("date",osd.get(date));
|
||||
res.set("week",osd.get(week));
|
||||
res.set("font",osd.get(font));
|
||||
JSONArray label_infos = osd.getJSONArray("label_info");
|
||||
JSONArray mainEncodeTypeArr = new JSONArray();
|
||||
for(int i=0;i<label_infos.size();i++){
|
||||
JSONObject json = new JSONObject();
|
||||
JSONObject label_info = (JSONObject)label_infos.get(i);
|
||||
int cn = i+1;
|
||||
String name = "chn"+cameraInfo.getChannel()+"_"+"label_info_"+cn;
|
||||
json.set("label_info_"+cn,label_info.get(name));
|
||||
mainEncodeTypeArr.put(json);
|
||||
}
|
||||
res.set("label_info",mainEncodeTypeArr);
|
||||
return Result.OK(res);
|
||||
}else{
|
||||
return Result.OK(osd);
|
||||
}
|
||||
}else{
|
||||
String errorMsg = "";
|
||||
try{
|
||||
|
|
@ -815,6 +1060,21 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
@Override
|
||||
public Result<String> setOsd(Map<String,Object> map){
|
||||
String id = map.get("deviceIndex").toString();
|
||||
CameraInfo cameraInfo = new CameraInfo();
|
||||
cameraInfo.setDeviceIndex(id);
|
||||
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
|
||||
String parentId = cameraInfo.getParentId();
|
||||
String font = "font";
|
||||
String week = "week";
|
||||
String date = "date";
|
||||
String label_info_1 = "label_info_1";
|
||||
if(!parentId.equals("0")){
|
||||
id = parentId;
|
||||
font = "chn"+cameraInfo.getChannel()+"_font";
|
||||
week = "chn"+cameraInfo.getChannel()+"_week";
|
||||
date = "chn"+cameraInfo.getChannel()+"_date";
|
||||
label_info_1 = "chn"+cameraInfo.getChannel()+"_label_info_1";
|
||||
}
|
||||
String dateEnabled = map.get("dateEnabled").toString();
|
||||
String weekEnabled = map.get("weekEnabled").toString();
|
||||
String labelEnabled = map.get("labelEnabled").toString();
|
||||
|
|
@ -825,17 +1085,17 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
sb.append("\"param\"").append(":").append("{");
|
||||
sb.append("\"method\"").append(":").append("\"set\"").append(",");
|
||||
sb.append("\"OSD\"").append(":").append("{");
|
||||
sb.append("\"font\"").append(":").append("{");
|
||||
sb.append("\"").append(font).append("\"").append(":").append("{");
|
||||
sb.append("\"display\"").append(":").append("\"ntnb\",");
|
||||
sb.append("\"main_font_pixel\"").append(":").append(mainFontPixel);
|
||||
sb.append("},");
|
||||
sb.append("\"date\"").append(":").append("{");
|
||||
sb.append("\"").append(date).append("\"").append(":").append("{");
|
||||
sb.append("\"enabled\"").append(":").append("\"").append(dateEnabled).append("\"");
|
||||
sb.append("},");
|
||||
sb.append("\"week\"").append(":").append("{");
|
||||
sb.append("\"").append(week).append("\"").append(":").append("{");
|
||||
sb.append("\"enabled\"").append(":").append("\"").append(weekEnabled).append("\"");
|
||||
sb.append("},");
|
||||
sb.append("\"label_info_1\"").append(":").append("{");
|
||||
sb.append("\"").append(label_info_1).append("\"").append(":").append("{");
|
||||
sb.append("\"enabled\"").append(":").append("\"").append(labelEnabled).append("\"");
|
||||
sb.append("}");
|
||||
sb.append("}");
|
||||
|
|
@ -886,16 +1146,38 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
@Override
|
||||
public Result<JSONObject> getVideoParams(Map<String,Object> map){
|
||||
String id = map.get("deviceIndex").toString();
|
||||
CameraInfo cameraInfo = new CameraInfo();
|
||||
cameraInfo.setDeviceIndex(id);
|
||||
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
|
||||
String parentId = cameraInfo.getParentId();
|
||||
String main = "main";
|
||||
String minor = "minor";
|
||||
if(!parentId.equals("0")){
|
||||
id = parentId;
|
||||
main = "chn"+cameraInfo.getChannel()+"_main";
|
||||
minor = "chn"+cameraInfo.getChannel()+"_minor";
|
||||
}
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("{");
|
||||
sb.append("\"devId\"").append(":").append("\"").append(id).append("\"").append(",");
|
||||
sb.append("\"param\"").append(":").append("{");
|
||||
sb.append("\"method\"").append(":").append("\"get\"").append(",");
|
||||
sb.append("\"video\"").append(":").append("{");
|
||||
sb.append("\"name\"").append(":[").append("\"main\"").append(",").append("\"minor\"").append("]");
|
||||
sb.append("\"name\"").append(":[");
|
||||
sb.append("\"").append(main).append("\"").append(",");
|
||||
sb.append("\"").append(minor).append("\"");
|
||||
if(!parentId.equals("0")){
|
||||
sb.append("],");
|
||||
sb.append("\"table\"").append(":[");
|
||||
sb.append("\"").append("main_res").append("\"").append(",");
|
||||
sb.append("\"").append("minor_res").append("\"");
|
||||
sb.append("]");
|
||||
}else{
|
||||
sb.append("]");
|
||||
sb.append("},");
|
||||
sb.append("\"video_capability\"").append(":").append("{");
|
||||
sb.append("\"name\"").append(":[").append("\"main\"").append(",").append("\"minor\"").append("]");
|
||||
}
|
||||
sb.append("}");
|
||||
sb.append("}");
|
||||
sb.append("}");
|
||||
|
|
@ -909,10 +1191,240 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
if("0".equals(errorCode)){
|
||||
JSONObject resObject = new JSONObject();
|
||||
JSONObject video = (JSONObject)responseData.get("video");
|
||||
JSONObject mainData = (JSONObject)video.get("main");
|
||||
JSONObject mainData = (JSONObject)video.get(main);
|
||||
resObject.set("mainData",mainData);
|
||||
JSONObject minorData = (JSONObject)video.get("minor");
|
||||
JSONObject minorData = (JSONObject)video.get(minor);
|
||||
resObject.set("minorData",minorData);
|
||||
if(!parentId.equals("0")){
|
||||
//主码流-分辨率
|
||||
JSONArray mainRes = video.getJSONArray("main_res");
|
||||
JSONArray mainResolutionArr = new JSONArray();
|
||||
for(int i=0;i<mainRes.size();i++){
|
||||
JSONObject json = (JSONObject)mainRes.get(i);
|
||||
int cn = i+1;
|
||||
String name = main+"_res_"+cn;
|
||||
JSONObject resolutionObj = (JSONObject)json.get(name);
|
||||
if(resolutionObj!=null){
|
||||
String resolutionValue = resolutionObj.getStr("resolution");
|
||||
JSONObject resolutionRes = new JSONObject();
|
||||
resolutionRes.set("label",resolutionValue);
|
||||
resolutionRes.set("value",resolutionValue);
|
||||
mainResolutionArr.put(resolutionRes);
|
||||
}
|
||||
}
|
||||
resObject.set("mainResolutionArr",mainResolutionArr);
|
||||
//主码流-视频帧率
|
||||
JSONArray mainFrameRatesArr = new JSONArray();
|
||||
JSONObject mainFrameRatesObj1 = new JSONObject();
|
||||
mainFrameRatesObj1.set("label","1");
|
||||
mainFrameRatesObj1.set("value","65537");
|
||||
mainFrameRatesArr.put(mainFrameRatesObj1);
|
||||
JSONObject mainFrameRatesObj2 = new JSONObject();
|
||||
mainFrameRatesObj2.set("label","5");
|
||||
mainFrameRatesObj2.set("value","65541");
|
||||
mainFrameRatesArr.put(mainFrameRatesObj2);
|
||||
JSONObject mainFrameRatesObj3 = new JSONObject();
|
||||
mainFrameRatesObj3.set("label","10");
|
||||
mainFrameRatesObj3.set("value","65546");
|
||||
mainFrameRatesArr.put(mainFrameRatesObj3);
|
||||
JSONObject mainFrameRatesObj4 = new JSONObject();
|
||||
mainFrameRatesObj4.set("label","15");
|
||||
mainFrameRatesObj4.set("value","65551");
|
||||
mainFrameRatesArr.put(mainFrameRatesObj4);
|
||||
JSONObject mainFrameRatesObj5 = new JSONObject();
|
||||
mainFrameRatesObj5.set("label","20");
|
||||
mainFrameRatesObj5.set("value","65556");
|
||||
mainFrameRatesArr.put(mainFrameRatesObj5);
|
||||
JSONObject mainFrameRatesObj6 = new JSONObject();
|
||||
mainFrameRatesObj6.set("label","25");
|
||||
mainFrameRatesObj6.set("value","65561");
|
||||
mainFrameRatesArr.put(mainFrameRatesObj6);
|
||||
resObject.set("mainFrameRatesArr",mainFrameRatesArr);
|
||||
//主码流-码率类型
|
||||
JSONArray mainBitrateTypeArr = new JSONArray();
|
||||
JSONObject mainBitrateTypeObj1 = new JSONObject();
|
||||
mainBitrateTypeObj1.set("label","定码率");
|
||||
mainBitrateTypeObj1.set("value","cbr");
|
||||
mainBitrateTypeArr.put(mainBitrateTypeObj1);
|
||||
JSONObject mainBitrateTypeObj2 = new JSONObject();
|
||||
mainBitrateTypeObj2.set("label","变码率");
|
||||
mainBitrateTypeObj2.set("value","vbr");
|
||||
mainBitrateTypeArr.put(mainBitrateTypeObj2);
|
||||
resObject.set("mainBitrateTypeArr",mainBitrateTypeArr);
|
||||
//主码流-图像质量
|
||||
JSONArray mainQualityArr = new JSONArray();
|
||||
JSONObject mainQualityObj1 = new JSONObject();
|
||||
mainQualityObj1.set("label","低");
|
||||
mainQualityObj1.set("value","1");
|
||||
mainQualityArr.put(mainQualityObj1);
|
||||
JSONObject mainQualityObj2 = new JSONObject();
|
||||
mainQualityObj2.set("label","中");
|
||||
mainQualityObj2.set("value","3");
|
||||
mainQualityArr.put(mainQualityObj2);
|
||||
JSONObject mainQualityObj3 = new JSONObject();
|
||||
mainQualityObj3.set("label","高");
|
||||
mainQualityObj3.set("value","5");
|
||||
mainQualityArr.put(mainQualityObj3);
|
||||
resObject.set("mainQualityArr",mainQualityArr);
|
||||
//主码流-码率上限
|
||||
JSONArray mainBitrateArr = new JSONArray();
|
||||
JSONObject mainBitrateObj1 = new JSONObject();
|
||||
mainBitrateObj1.set("label","256");
|
||||
mainBitrateObj1.set("value","256");
|
||||
mainBitrateArr.put(mainBitrateObj1);
|
||||
JSONObject mainBitrateObj2 = new JSONObject();
|
||||
mainBitrateObj2.set("label","384");
|
||||
mainBitrateObj2.set("value","384");
|
||||
mainBitrateArr.put(mainBitrateObj2);
|
||||
JSONObject mainBitrateObj3 = new JSONObject();
|
||||
mainBitrateObj3.set("label","512");
|
||||
mainBitrateObj3.set("value","512");
|
||||
mainBitrateArr.put(mainBitrateObj3);
|
||||
JSONObject mainBitrateObj4 = new JSONObject();
|
||||
mainBitrateObj4.set("label","768");
|
||||
mainBitrateObj4.set("value","768");
|
||||
mainBitrateArr.put(mainBitrateObj4);
|
||||
JSONObject mainBitrateObj5 = new JSONObject();
|
||||
mainBitrateObj5.set("label","1024");
|
||||
mainBitrateObj5.set("value","1024");
|
||||
mainBitrateArr.put(mainBitrateObj5);
|
||||
JSONObject mainBitrateObj6 = new JSONObject();
|
||||
mainBitrateObj6.set("label","1536");
|
||||
mainBitrateObj6.set("value","1536");
|
||||
mainBitrateArr.put(mainBitrateObj6);
|
||||
JSONObject mainBitrateObj7 = new JSONObject();
|
||||
mainBitrateObj7.set("label","2048");
|
||||
mainBitrateObj7.set("value","2048");
|
||||
mainBitrateArr.put(mainBitrateObj7);
|
||||
JSONObject mainBitrateObj8 = new JSONObject();
|
||||
mainBitrateObj8.set("label","3072");
|
||||
mainBitrateObj8.set("value","3072");
|
||||
mainBitrateArr.put(mainBitrateObj8);
|
||||
resObject.set("mainBitrateArr",mainBitrateArr);
|
||||
//主码流-视频编码
|
||||
JSONArray mainEncodeTypeArr = new JSONArray();
|
||||
JSONObject mainEncodeTypeObj1 = new JSONObject();
|
||||
mainEncodeTypeObj1.set("label","H264");
|
||||
mainEncodeTypeObj1.set("value","H264");
|
||||
mainEncodeTypeArr.put(mainEncodeTypeObj1);
|
||||
JSONObject mainEncodeTypeObj2 = new JSONObject();
|
||||
mainEncodeTypeObj2.set("label","H265");
|
||||
mainEncodeTypeObj2.set("value","H265");
|
||||
mainEncodeTypeArr.put(mainEncodeTypeObj2);
|
||||
resObject.set("mainEncodeTypeArr",mainEncodeTypeArr);
|
||||
//子码流-分辨率
|
||||
JSONArray minorRes = video.getJSONArray("minor_res");
|
||||
JSONArray minorResolutionArr = new JSONArray();
|
||||
for(int i=0;i<minorRes.size();i++){
|
||||
JSONObject json = (JSONObject)minorRes.get(i);
|
||||
int cn = i+1;
|
||||
String name = minor+"_res_"+cn;
|
||||
JSONObject resolutionObj = (JSONObject)json.get(name);
|
||||
if(resolutionObj!=null){
|
||||
String resolutionValue = resolutionObj.getStr("resolution");
|
||||
JSONObject resolutionRes = new JSONObject();
|
||||
resolutionRes.set("label",resolutionValue);
|
||||
resolutionRes.set("value",resolutionValue);
|
||||
minorResolutionArr.put(resolutionRes);
|
||||
}
|
||||
}
|
||||
resObject.set("minorResolutionArr",minorResolutionArr);
|
||||
//子码流-视频帧率
|
||||
JSONArray minorFrameRatesArr = new JSONArray();
|
||||
JSONObject minorFrameRatesObj1 = new JSONObject();
|
||||
minorFrameRatesObj1.set("label","1");
|
||||
minorFrameRatesObj1.set("value","65537");
|
||||
minorFrameRatesArr.put(minorFrameRatesObj1);
|
||||
JSONObject minorFrameRatesObj2 = new JSONObject();
|
||||
minorFrameRatesObj2.set("label","5");
|
||||
minorFrameRatesObj2.set("value","65541");
|
||||
minorFrameRatesArr.put(minorFrameRatesObj2);
|
||||
JSONObject minorFrameRatesObj3 = new JSONObject();
|
||||
minorFrameRatesObj3.set("label","10");
|
||||
minorFrameRatesObj3.set("value","65546");
|
||||
minorFrameRatesArr.put(minorFrameRatesObj3);
|
||||
JSONObject minorFrameRatesObj4 = new JSONObject();
|
||||
minorFrameRatesObj4.set("label","15");
|
||||
minorFrameRatesObj4.set("value","65551");
|
||||
minorFrameRatesArr.put(minorFrameRatesObj4);
|
||||
JSONObject minorFrameRatesObj5 = new JSONObject();
|
||||
minorFrameRatesObj5.set("label","20");
|
||||
minorFrameRatesObj5.set("value","65556");
|
||||
minorFrameRatesArr.put(minorFrameRatesObj5);
|
||||
JSONObject minorFrameRatesObj6 = new JSONObject();
|
||||
minorFrameRatesObj6.set("label","25");
|
||||
minorFrameRatesObj6.set("value","65561");
|
||||
minorFrameRatesArr.put(minorFrameRatesObj6);
|
||||
resObject.set("minorFrameRatesArr",minorFrameRatesArr);
|
||||
//子码流-码率类型
|
||||
JSONArray minorBitrateTypeArr = new JSONArray();
|
||||
JSONObject minorBitrateTypeObj1 = new JSONObject();
|
||||
minorBitrateTypeObj1.set("label","定码率");
|
||||
minorBitrateTypeObj1.set("value","cbr");
|
||||
minorBitrateTypeArr.put(minorBitrateTypeObj1);
|
||||
JSONObject minorBitrateTypeObj2 = new JSONObject();
|
||||
minorBitrateTypeObj2.set("label","变码率");
|
||||
minorBitrateTypeObj2.set("value","vbr");
|
||||
minorBitrateTypeArr.put(minorBitrateTypeObj2);
|
||||
resObject.set("minorBitrateTypeArr",minorBitrateTypeArr);
|
||||
//子码流-图像质量
|
||||
JSONArray minorQualityArr = new JSONArray();
|
||||
JSONObject minorQualityObj1 = new JSONObject();
|
||||
minorQualityObj1.set("label","低");
|
||||
minorQualityObj1.set("value","1");
|
||||
minorQualityArr.put(minorQualityObj1);
|
||||
JSONObject minorQualityObj2 = new JSONObject();
|
||||
minorQualityObj2.set("label","中");
|
||||
minorQualityObj2.set("value","3");
|
||||
minorQualityArr.put(minorQualityObj2);
|
||||
JSONObject minorQualityObj3 = new JSONObject();
|
||||
minorQualityObj3.set("label","高");
|
||||
minorQualityObj3.set("value","5");
|
||||
minorQualityArr.put(minorQualityObj3);
|
||||
resObject.set("minorQualityArr",minorQualityArr);
|
||||
//子码流-码率上限
|
||||
JSONArray minorBitrateArr = new JSONArray();
|
||||
JSONObject minorBitrateObj1 = new JSONObject();
|
||||
minorBitrateObj1.set("label","64");
|
||||
minorBitrateObj1.set("value","64");
|
||||
minorBitrateArr.put(minorBitrateObj1);
|
||||
JSONObject minorBitrateObj2 = new JSONObject();
|
||||
minorBitrateObj2.set("label","96");
|
||||
minorBitrateObj2.set("value","96");
|
||||
minorBitrateArr.put(minorBitrateObj2);
|
||||
JSONObject minorBitrateObj3 = new JSONObject();
|
||||
minorBitrateObj3.set("label","128");
|
||||
minorBitrateObj3.set("value","128");
|
||||
minorBitrateArr.put(minorBitrateObj3);
|
||||
JSONObject minorBitrateObj4 = new JSONObject();
|
||||
minorBitrateObj4.set("label","192");
|
||||
minorBitrateObj4.set("value","192");
|
||||
minorBitrateArr.put(minorBitrateObj4);
|
||||
JSONObject minorBitrateObj5 = new JSONObject();
|
||||
minorBitrateObj5.set("label","256");
|
||||
minorBitrateObj5.set("value","256");
|
||||
minorBitrateArr.put(minorBitrateObj5);
|
||||
JSONObject minorBitrateObj6 = new JSONObject();
|
||||
minorBitrateObj6.set("label","384");
|
||||
minorBitrateObj6.set("value","384");
|
||||
minorBitrateArr.put(minorBitrateObj6);
|
||||
JSONObject minorBitrateObj7 = new JSONObject();
|
||||
minorBitrateObj7.set("label","512");
|
||||
minorBitrateObj7.set("value","512");
|
||||
minorBitrateArr.put(minorBitrateObj7);
|
||||
resObject.set("minorBitrateArr",minorBitrateArr);
|
||||
//子码流-视频编码
|
||||
JSONArray minorEncodeTypeArr = new JSONArray();
|
||||
JSONObject minorEncodeTypeObj1 = new JSONObject();
|
||||
minorEncodeTypeObj1.set("label","H264");
|
||||
minorEncodeTypeObj1.set("value","H264");
|
||||
minorEncodeTypeArr.put(minorEncodeTypeObj1);
|
||||
JSONObject minorEncodeTypeObj2 = new JSONObject();
|
||||
minorEncodeTypeObj2.set("label","H265");
|
||||
minorEncodeTypeObj2.set("value","H265");
|
||||
minorEncodeTypeArr.put(minorEncodeTypeObj2);
|
||||
resObject.set("minorEncodeTypeArr",minorEncodeTypeArr);
|
||||
}else{
|
||||
JSONObject videoCapability = (JSONObject)responseData.get("video_capability");
|
||||
JSONObject mainCapability = (JSONObject)videoCapability.get("main");
|
||||
JSONArray encodeTypes = mainCapability.getJSONArray("encode_types");
|
||||
|
|
@ -933,6 +1445,9 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
if("65537".equals(value)){
|
||||
json.set("label","1");
|
||||
}
|
||||
if("65541".equals(value)){
|
||||
json.set("label","5");
|
||||
}
|
||||
if("65546".equals(value)){
|
||||
json.set("label","10");
|
||||
}
|
||||
|
|
@ -942,6 +1457,9 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
if("65556".equals(value)){
|
||||
json.set("label","20");
|
||||
}
|
||||
if("65561".equals(value)){
|
||||
json.set("label","25");
|
||||
}
|
||||
json.set("value",value);
|
||||
mainFrameRatesArr.put(json);
|
||||
}
|
||||
|
|
@ -1085,7 +1603,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
minorQualityArr.put(json);
|
||||
}
|
||||
resObject.set("minorQualityArr",minorQualityArr);
|
||||
|
||||
}
|
||||
return Result.OK(resObject);
|
||||
}else{
|
||||
String errorMsg = "";
|
||||
|
|
@ -1123,6 +1641,17 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
@Override
|
||||
public Result setVideoParams(Map<String,Object> map){
|
||||
String id = map.get("deviceIndex").toString();
|
||||
CameraInfo cameraInfo = new CameraInfo();
|
||||
cameraInfo.setDeviceIndex(id);
|
||||
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
|
||||
String parentId = cameraInfo.getParentId();
|
||||
String main = "main";
|
||||
String minor = "minor";
|
||||
if(!parentId.equals("0")){
|
||||
id = parentId;
|
||||
main = "chn"+cameraInfo.getChannel()+"_main";
|
||||
minor = "chn"+cameraInfo.getChannel()+"_minor";
|
||||
}
|
||||
Map<String,Object> mainMap = (Map<String,Object>)map.get("main");
|
||||
Map<String,Object> minorMap = (Map<String,Object>)map.get("minor");
|
||||
StringBuffer sb = new StringBuffer();
|
||||
|
|
@ -1131,7 +1660,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
sb.append("\"param\"").append(":").append("{");
|
||||
sb.append("\"method\"").append(":").append("\"set\"").append(",");
|
||||
sb.append("\"video\"").append(":").append("{");
|
||||
sb.append("\"main\"").append(":").append("{");
|
||||
sb.append("\"").append(main).append("\"").append(":").append("{");
|
||||
//类属性+类值
|
||||
StringBuffer mainSb = new StringBuffer();
|
||||
Set<String> mainKeys = mainMap.keySet();
|
||||
|
|
@ -1146,7 +1675,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
}
|
||||
sb.append(mainStr);
|
||||
sb.append("},");
|
||||
sb.append("\"minor\"").append(":").append("{");
|
||||
sb.append("\"").append(minor).append("\"").append(":").append("{");
|
||||
//类属性+类值
|
||||
StringBuffer minorSb = new StringBuffer();
|
||||
Set<String> minorKeys = minorMap.keySet();
|
||||
|
|
@ -1172,7 +1701,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
JSONObject responseData = (JSONObject)result.get("responseData");
|
||||
String errorCode = responseData.getStr("error_code");
|
||||
if("0".equals(errorCode)){
|
||||
return Result.OK();
|
||||
return Result.OK("设置成功");
|
||||
}else{
|
||||
String errorMsg = "";
|
||||
try{
|
||||
|
|
@ -1229,7 +1758,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
JSONObject responseData = (JSONObject)result.get("responseData");
|
||||
String errorCode = responseData.getStr("error_code");
|
||||
if("0".equals(errorCode)){
|
||||
return Result.OK();
|
||||
return Result.OK("恢复成功");
|
||||
}else{
|
||||
String errorMsg = "";
|
||||
try{
|
||||
|
|
@ -1905,7 +2434,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
JSONObject responseData = (JSONObject)result.get("responseData");
|
||||
String errorCode = responseData.getStr("error_code");
|
||||
if("0".equals(errorCode)){
|
||||
return Result.OK();
|
||||
return Result.OK("设置成功");
|
||||
}else{
|
||||
String errorMsg = "";
|
||||
try{
|
||||
|
|
@ -2226,7 +2755,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
JSONObject responseData = (JSONObject)result.get("responseData");
|
||||
String errorCode = responseData.getStr("error_code");
|
||||
if("0".equals(errorCode)){
|
||||
return Result.OK();
|
||||
return Result.OK("设置成功");
|
||||
}else{
|
||||
String errorMsg = "";
|
||||
try{
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ public enum ApiEnum {
|
|||
QUERY_ALARM_LOG("/tums/logManager/v2/queryAlarmLog","查询告警日志列表"),
|
||||
QUERY_UNREAD_ALARM_MSG("/tums/logManager/v2/queryUnreadAlarmMsg","查询未读告警日志列表"),
|
||||
IPC_GET_IPC_CAPABILITY("/tums/deviceManager/v1/getIpcCapability","获取ipc能力集"),
|
||||
GET_DEVICE_DETAILS("/tums/deviceManager/v2/getDeviceDetails","获取设备详情信息"),
|
||||
IPC_PASSTHROUGH("/tums/devConfig/v1/passthrough","设备配置信息"),
|
||||
|
||||
IPC_ADD_PREVIEW_CHN("/tums/preview/v1/addPreviewChn","添加预览通道"),
|
||||
|
|
|
|||
|
|
@ -333,6 +333,20 @@ public class TumsApi {
|
|||
return jsonResponse;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设备详情信息
|
||||
* @param jsonRequest
|
||||
* @return
|
||||
*/
|
||||
public String getDeviceDetails(String jsonRequest){
|
||||
this.createTumsClient();
|
||||
log.info("getDeviceDetails:request:{}",jsonRequest);
|
||||
String jsonResponse = tumsClient.request(jsonRequest, ApiEnum.GET_DEVICE_DETAILS.getValue());
|
||||
log.info("getDeviceDetails:response:{}",jsonResponse);
|
||||
return jsonResponse;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 设备配置信息
|
||||
* @param jsonRequest
|
||||
|
|
|
|||
|
|
@ -181,16 +181,15 @@ spring:
|
|||
datasource:
|
||||
master:
|
||||
url: jdbc:mysql://192.168.2.199:3306/nu_devops?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
|
||||
# url: jdbc:mysql://localhost:3306/nursing_unit_001?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
|
||||
username: nu_sys
|
||||
password: nu_sys
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
#管理
|
||||
# ope:
|
||||
# url: jdbc:mysql://192.168.2.199:3306/nursing_unit?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
|
||||
# username: nu_sys
|
||||
# password: nu_sys
|
||||
# driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
ope:
|
||||
url: jdbc:mysql://192.168.2.199:3306/nursing_unit?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
|
||||
username: nu_sys
|
||||
password: nu_sys
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
#redis 配置
|
||||
redis:
|
||||
database: 0
|
||||
|
|
@ -378,7 +377,7 @@ downloadkey: hP2K9Z!WLuj"M#8,
|
|||
# MQTT 配置
|
||||
mqtt:
|
||||
broker-url: tcp://121.36.88.64:11001
|
||||
client-id: mqtt-devops
|
||||
client-id: mqtt-devops-
|
||||
username: admin
|
||||
password: admin@123..
|
||||
clean-session: true
|
||||
|
|
|
|||
|
|
@ -369,7 +369,7 @@ downloadkey: hP2K9Z!WLuj"M#8,
|
|||
# MQTT 配置
|
||||
mqtt:
|
||||
broker-url: tcp://121.36.88.64:11001
|
||||
client-id: mqtt-devops
|
||||
client-id: mqtt-devops-
|
||||
username: admin
|
||||
password: admin@123..
|
||||
clean-session: true
|
||||
|
|
|
|||
Loading…
Reference in New Issue