[录制计划] 修复关联通道
parent
c2ad767d89
commit
812ddd3bbc
|
@ -20,6 +20,7 @@ public class CatalogData {
|
||||||
private Device device;
|
private Device device;
|
||||||
private String errorMsg;
|
private String errorMsg;
|
||||||
private Set<String> redisKeysForChannel = new HashSet<>();
|
private Set<String> redisKeysForChannel = new HashSet<>();
|
||||||
|
private Set<String> errorChannel = new HashSet<>();
|
||||||
private Set<String> redisKeysForRegion = new HashSet<>();
|
private Set<String> redisKeysForRegion = new HashSet<>();
|
||||||
private Set<String> redisKeysForGroup = new HashSet<>();
|
private Set<String> redisKeysForGroup = new HashSet<>();
|
||||||
|
|
||||||
|
|
|
@ -93,8 +93,10 @@ public interface DeviceChannelMapper {
|
||||||
@SelectProvider(type = DeviceChannelProvider.class, method = "queryChannelsByDeviceDbId")
|
@SelectProvider(type = DeviceChannelProvider.class, method = "queryChannelsByDeviceDbId")
|
||||||
List<DeviceChannel> queryChannelsByDeviceDbId(@Param("deviceDbId") int deviceDbId);
|
List<DeviceChannel> queryChannelsByDeviceDbId(@Param("deviceDbId") int deviceDbId);
|
||||||
|
|
||||||
@Select("select id from wvp_device_channel where device_db_id in " +
|
@Select(value = {" <script> " +
|
||||||
" <foreach item='item' index='index' collection='deviceDbIds' open='(' separator=',' close=')'> #{item} </foreach> </if>")
|
"select id from wvp_device_channel where device_db_id in " +
|
||||||
|
" <foreach item='item' index='index' collection='deviceDbIds' open='(' separator=',' close=')'> #{item} </foreach>" +
|
||||||
|
" </script>"})
|
||||||
List<Integer> queryChaneIdListByDeviceDbIds(List<Integer> deviceDbIds);
|
List<Integer> queryChaneIdListByDeviceDbIds(List<Integer> deviceDbIds);
|
||||||
|
|
||||||
@Delete("DELETE FROM wvp_device_channel WHERE device_db_id=#{deviceId}")
|
@Delete("DELETE FROM wvp_device_channel WHERE device_db_id=#{deviceId}")
|
||||||
|
|
|
@ -283,7 +283,7 @@ public class CatalogDataManager implements CommandLineRunner {
|
||||||
if (catalogData == null) {
|
if (catalogData == null) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return catalogData.getRedisKeysForChannel().size();
|
return catalogData.getRedisKeysForChannel().size() + catalogData.getErrorChannel().size();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int sumNum(String deviceId, int sn) {
|
public int sumNum(String deviceId, int sn) {
|
||||||
|
|
|
@ -2,10 +2,8 @@ package com.genersoft.iot.vmp.service.impl;
|
||||||
|
|
||||||
import com.genersoft.iot.vmp.conf.exception.ControllerException;
|
import com.genersoft.iot.vmp.conf.exception.ControllerException;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel;
|
import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.PlatformChannel;
|
|
||||||
import com.genersoft.iot.vmp.gb28181.dao.CommonGBChannelMapper;
|
import com.genersoft.iot.vmp.gb28181.dao.CommonGBChannelMapper;
|
||||||
import com.genersoft.iot.vmp.service.IRecordPlanService;
|
import com.genersoft.iot.vmp.service.IRecordPlanService;
|
||||||
import com.genersoft.iot.vmp.service.bean.CloudRecordItem;
|
|
||||||
import com.genersoft.iot.vmp.service.bean.RecordPlan;
|
import com.genersoft.iot.vmp.service.bean.RecordPlan;
|
||||||
import com.genersoft.iot.vmp.service.bean.RecordPlanItem;
|
import com.genersoft.iot.vmp.service.bean.RecordPlanItem;
|
||||||
import com.genersoft.iot.vmp.storager.dao.RecordPlanMapper;
|
import com.genersoft.iot.vmp.storager.dao.RecordPlanMapper;
|
||||||
|
@ -99,8 +97,11 @@ public class RecordPlanServiceImpl implements IRecordPlanService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void link(List<Integer> channelIds, Integer planId) {
|
public void link(List<Integer> channelIds, Integer planId) {
|
||||||
|
if (channelIds == null || channelIds.isEmpty()) {
|
||||||
|
log.info("[录制计划] 关联/移除关联时, 通道编号必须存在");
|
||||||
|
throw new ControllerException(ErrorCode.ERROR100.getCode(), "通道编号必须存在");
|
||||||
|
}
|
||||||
if (planId == null) {
|
if (planId == null) {
|
||||||
log.info("[录制计划] 移除通道关联的计划");
|
|
||||||
channelMapper.removeRecordPlan(channelIds);
|
channelMapper.removeRecordPlan(channelIds);
|
||||||
}else {
|
}else {
|
||||||
channelMapper.addRecordPlan(channelIds, planId);
|
channelMapper.addRecordPlan(channelIds, planId);
|
||||||
|
|
|
@ -3,7 +3,6 @@ package com.genersoft.iot.vmp.vmanager.recordPlan;
|
||||||
import com.genersoft.iot.vmp.conf.exception.ControllerException;
|
import com.genersoft.iot.vmp.conf.exception.ControllerException;
|
||||||
import com.genersoft.iot.vmp.conf.security.JwtUtils;
|
import com.genersoft.iot.vmp.conf.security.JwtUtils;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel;
|
import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.PlatformChannel;
|
|
||||||
import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
|
import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
|
||||||
import com.genersoft.iot.vmp.service.IRecordPlanService;
|
import com.genersoft.iot.vmp.service.IRecordPlanService;
|
||||||
import com.genersoft.iot.vmp.service.bean.RecordPlan;
|
import com.genersoft.iot.vmp.service.bean.RecordPlan;
|
||||||
|
@ -50,25 +49,27 @@ public class RecordPlanController {
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@PostMapping("/link")
|
@PostMapping("/link")
|
||||||
@Operation(summary = "通道关联录制计划", security = @SecurityRequirement(name = JwtUtils.HEADER))
|
@Operation(summary = "通道关联录制计划", security = @SecurityRequirement(name = JwtUtils.HEADER))
|
||||||
@Parameter(name = "param", description = "通道关联录制计划", required = false)
|
@Parameter(name = "param", description = "通道关联录制计划", required = true)
|
||||||
public void link(@RequestBody RecordPlanParam param) {
|
public void link(@RequestBody RecordPlanParam param) {
|
||||||
if (param.getChannelIds() == null && param.getDeviceDbIds() == null) {
|
if (param.getAllLink() != null) {
|
||||||
throw new ControllerException(ErrorCode.ERROR100.getCode(), "通道ID和国标设备ID不可都为NULL");
|
if (param.getAllLink()) {
|
||||||
}
|
|
||||||
if (param.getAll() != null) {
|
|
||||||
if (param.getAll()) {
|
|
||||||
recordPlanService.linkAll(param.getPlanId());
|
recordPlanService.linkAll(param.getPlanId());
|
||||||
}else {
|
}else {
|
||||||
recordPlanService.cleanAll(param.getPlanId());
|
recordPlanService.cleanAll(param.getPlanId());
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (param.getChannelIds() == null && param.getDeviceDbIds() == null) {
|
||||||
|
throw new ControllerException(ErrorCode.ERROR100.getCode(), "通道ID和国标设备ID不可都为NULL");
|
||||||
|
}
|
||||||
|
|
||||||
List<Integer> channelIds = new ArrayList<>();
|
List<Integer> channelIds = new ArrayList<>();
|
||||||
if (param.getChannelIds() != null) {
|
if (param.getChannelIds() != null) {
|
||||||
channelIds.addAll(param.getChannelIds());
|
channelIds.addAll(param.getChannelIds());
|
||||||
}else {
|
}else {
|
||||||
List<Integer> chanelIdList = deviceChannelService.queryChaneIdListByDeviceDbIds(param.getDeviceDbIds());
|
List<Integer> chanelIdList = deviceChannelService.queryChaneIdListByDeviceDbIds(param.getDeviceDbIds());
|
||||||
if (chanelIdList == null || chanelIdList.isEmpty()) {
|
if (chanelIdList != null && !chanelIdList.isEmpty()) {
|
||||||
channelIds = chanelIdList;
|
channelIds = chanelIdList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
package com.genersoft.iot.vmp.vmanager.recordPlan.bean;
|
package com.genersoft.iot.vmp.vmanager.recordPlan.bean;
|
||||||
|
|
||||||
import com.genersoft.iot.vmp.service.bean.RecordPlan;
|
|
||||||
import com.genersoft.iot.vmp.service.bean.RecordPlanItem;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
@ -18,7 +16,7 @@ public class RecordPlanParam {
|
||||||
private List<Integer> deviceDbIds;
|
private List<Integer> deviceDbIds;
|
||||||
|
|
||||||
@Schema(description = "全部关联/全部取消关联")
|
@Schema(description = "全部关联/全部取消关联")
|
||||||
private Boolean all;
|
private Boolean allLink;
|
||||||
|
|
||||||
@Schema(description = "录制计划ID, ID为空是删除关联的计划")
|
@Schema(description = "录制计划ID, ID为空是删除关联的计划")
|
||||||
private Integer planId;
|
private Integer planId;
|
||||||
|
|
|
@ -116,17 +116,19 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
created() {
|
created() {},
|
||||||
this.initData();
|
|
||||||
},
|
|
||||||
destroyed() {},
|
destroyed() {},
|
||||||
methods: {
|
methods: {
|
||||||
openDialog(planId, closeCallback) {
|
openDialog(planId, closeCallback) {
|
||||||
this.planId = planId
|
this.planId = planId
|
||||||
this.showDialog = true
|
this.showDialog = true
|
||||||
this.closeCallback = closeCallback
|
this.closeCallback = closeCallback
|
||||||
|
this.initData()
|
||||||
},
|
},
|
||||||
initData: function () {
|
initData: function () {
|
||||||
|
this.currentPage= 1;
|
||||||
|
this.count= 15;
|
||||||
|
this.total= 0;
|
||||||
this.getChannelList();
|
this.getChannelList();
|
||||||
},
|
},
|
||||||
currentChange: function (val) {
|
currentChange: function (val) {
|
||||||
|
@ -168,6 +170,36 @@ export default {
|
||||||
handleSelectionChange: function (val){
|
handleSelectionChange: function (val){
|
||||||
this.multipleSelection = val;
|
this.multipleSelection = val;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
linkPlan: function (data){
|
||||||
|
this.loading = true
|
||||||
|
return this.$axios({
|
||||||
|
method: 'post',
|
||||||
|
url: `/api/record/plan/link`,
|
||||||
|
data: data
|
||||||
|
}).then((res)=> {
|
||||||
|
if (res.data.code === 0) {
|
||||||
|
this.$message.success({
|
||||||
|
showClose: true,
|
||||||
|
message: "保存成功"
|
||||||
|
})
|
||||||
|
this.getChannelList()
|
||||||
|
}else {
|
||||||
|
this.$message.error({
|
||||||
|
showClose: true,
|
||||||
|
message: res.data.msg
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.loading = false
|
||||||
|
}).catch((error)=> {
|
||||||
|
this.$message.error({
|
||||||
|
showClose: true,
|
||||||
|
message: error
|
||||||
|
})
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
add: function (row) {
|
add: function (row) {
|
||||||
let channels = []
|
let channels = []
|
||||||
for (let i = 0; i < this.multipleSelection.length; i++) {
|
for (let i = 0; i < this.multipleSelection.length; i++) {
|
||||||
|
@ -180,41 +212,10 @@ export default {
|
||||||
})
|
})
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.loading = true
|
|
||||||
this.linkPlan({
|
this.linkPlan({
|
||||||
planId: this.planId,
|
planId: this.planId,
|
||||||
channelIds: channels
|
channelIds: channels
|
||||||
}).cache
|
})
|
||||||
|
|
||||||
|
|
||||||
this.$axios({
|
|
||||||
method: 'post',
|
|
||||||
url: `/api/record/plan/link`,
|
|
||||||
data: {
|
|
||||||
planId: this.planId,
|
|
||||||
channelIds: channels
|
|
||||||
}
|
|
||||||
}).then((res)=> {
|
|
||||||
if (res.data.code === 0) {
|
|
||||||
this.$message.success({
|
|
||||||
showClose: true,
|
|
||||||
message: "保存成功"
|
|
||||||
})
|
|
||||||
this.getChannelList()
|
|
||||||
}else {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: res.data.msg
|
|
||||||
})
|
|
||||||
}
|
|
||||||
this.loading = false
|
|
||||||
}).catch((error)=> {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: error
|
|
||||||
})
|
|
||||||
this.loading = false
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
addAll: function (row) {
|
addAll: function (row) {
|
||||||
this.$confirm("确定全部添加?", '提示', {
|
this.$confirm("确定全部添加?", '提示', {
|
||||||
|
@ -223,36 +224,11 @@ export default {
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.loading = true
|
this.linkPlan({
|
||||||
this.$axios({
|
planId: this.planId,
|
||||||
method: 'post',
|
allLink: true
|
||||||
url: `/api/record/plan/link`,
|
})
|
||||||
data: {
|
}).catch(() => {
|
||||||
planId: this.planId,
|
|
||||||
all: true
|
|
||||||
}
|
|
||||||
}).then((res)=> {
|
|
||||||
if (res.data.code === 0) {
|
|
||||||
this.$message.success({
|
|
||||||
showClose: true,
|
|
||||||
message: "保存成功"
|
|
||||||
})
|
|
||||||
this.getChannelList()
|
|
||||||
}else {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: res.data.msg
|
|
||||||
})
|
|
||||||
}
|
|
||||||
this.loading = false
|
|
||||||
}).catch((error)=> {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: error
|
|
||||||
})
|
|
||||||
this.loading = false
|
|
||||||
});
|
|
||||||
}).catch(() => {
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -262,34 +238,10 @@ export default {
|
||||||
for (let i = 0; i < rows.length; i++) {
|
for (let i = 0; i < rows.length; i++) {
|
||||||
deviceIds.push(rows[i].id)
|
deviceIds.push(rows[i].id)
|
||||||
}
|
}
|
||||||
this.$axios({
|
this.linkPlan({
|
||||||
method: 'post',
|
planId: this.planId,
|
||||||
url: `/api/record/plan/link`,
|
deviceDbIds: deviceIds
|
||||||
data: {
|
})
|
||||||
planId: this.planId,
|
|
||||||
deviceDbIds: deviceIds
|
|
||||||
}
|
|
||||||
}).then((res)=> {
|
|
||||||
if (res.data.code === 0) {
|
|
||||||
this.$message.success({
|
|
||||||
showClose: true,
|
|
||||||
message: "保存成功"
|
|
||||||
})
|
|
||||||
this.getChannelList()
|
|
||||||
}else {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: res.data.msg
|
|
||||||
})
|
|
||||||
}
|
|
||||||
this.loading = false
|
|
||||||
}).catch((error)=> {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: error
|
|
||||||
})
|
|
||||||
this.loading = false
|
|
||||||
});
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -299,33 +251,9 @@ export default {
|
||||||
for (let i = 0; i < rows.length; i++) {
|
for (let i = 0; i < rows.length; i++) {
|
||||||
deviceIds.push(rows[i].id)
|
deviceIds.push(rows[i].id)
|
||||||
}
|
}
|
||||||
this.$axios({
|
this.linkPlan({
|
||||||
method: 'post',
|
deviceDbIds: deviceIds
|
||||||
url: `/api/record/plan/link`,
|
})
|
||||||
data: {
|
|
||||||
deviceDbIds: deviceIds
|
|
||||||
}
|
|
||||||
}).then((res)=> {
|
|
||||||
if (res.data.code === 0) {
|
|
||||||
this.$message.success({
|
|
||||||
showClose: true,
|
|
||||||
message: "保存成功"
|
|
||||||
})
|
|
||||||
this.getChannelList()
|
|
||||||
}else {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: res.data.msg
|
|
||||||
})
|
|
||||||
}
|
|
||||||
this.loading = false
|
|
||||||
}).catch((error)=> {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: error
|
|
||||||
})
|
|
||||||
this.loading = false
|
|
||||||
});
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
remove: function (row) {
|
remove: function (row) {
|
||||||
|
@ -340,36 +268,10 @@ export default {
|
||||||
})
|
})
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.loading = true
|
|
||||||
|
|
||||||
this.$axios({
|
this.linkPlan({
|
||||||
method: 'delete',
|
channelIds: channels
|
||||||
url: `/api/platform/channel/remove`,
|
})
|
||||||
data: {
|
|
||||||
platformId: this.platformId,
|
|
||||||
channelIds: channels
|
|
||||||
}
|
|
||||||
}).then((res)=> {
|
|
||||||
if (res.data.code === 0) {
|
|
||||||
this.$message.success({
|
|
||||||
showClose: true,
|
|
||||||
message: "保存成功"
|
|
||||||
})
|
|
||||||
this.getChannelList()
|
|
||||||
}else {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: res.data.msg
|
|
||||||
})
|
|
||||||
}
|
|
||||||
this.loading = false
|
|
||||||
}).catch((error)=> {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: error
|
|
||||||
})
|
|
||||||
this.loading = false
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
removeAll: function (row) {
|
removeAll: function (row) {
|
||||||
|
|
||||||
|
@ -379,62 +281,11 @@ export default {
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.loading = true
|
this.linkPlan({
|
||||||
this.$axios({
|
planId: this.planId,
|
||||||
method: 'delete',
|
allLink: false
|
||||||
url: `/api/platform/channel/remove`,
|
|
||||||
data: {
|
|
||||||
platformId: this.platformId,
|
|
||||||
all: true
|
|
||||||
}
|
|
||||||
}).then((res)=> {
|
|
||||||
if (res.data.code === 0) {
|
|
||||||
this.$message.success({
|
|
||||||
showClose: true,
|
|
||||||
message: "保存成功"
|
|
||||||
})
|
|
||||||
this.getChannelList()
|
|
||||||
}else {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: res.data.msg
|
|
||||||
})
|
|
||||||
}
|
|
||||||
this.loading = false
|
|
||||||
}).catch((error)=> {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: error
|
|
||||||
})
|
|
||||||
this.loading = false
|
|
||||||
});
|
|
||||||
}).catch(() => {
|
|
||||||
});
|
|
||||||
|
|
||||||
},
|
|
||||||
saveCustom: function (row) {
|
|
||||||
this.$axios({
|
|
||||||
method: 'post',
|
|
||||||
url: `/api/platform/channel/custom/update`,
|
|
||||||
data: row
|
|
||||||
}).then((res)=> {
|
|
||||||
if (res.data.code === 0) {
|
|
||||||
this.$message.success({
|
|
||||||
showClose: true,
|
|
||||||
message: "保存成功"
|
|
||||||
})
|
|
||||||
this.initData()
|
|
||||||
}else {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: res.data.msg
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}).catch((error)=> {
|
|
||||||
this.$message.error({
|
|
||||||
showClose: true,
|
|
||||||
message: error
|
|
||||||
})
|
})
|
||||||
|
}).catch(() => {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
search: function () {
|
search: function () {
|
||||||
|
|
Loading…
Reference in New Issue