[录制计划] 修复关联通道
This commit is contained in:
@@ -20,6 +20,7 @@ public class CatalogData {
|
||||
private Device device;
|
||||
private String errorMsg;
|
||||
private Set<String> redisKeysForChannel = new HashSet<>();
|
||||
private Set<String> errorChannel = new HashSet<>();
|
||||
private Set<String> redisKeysForRegion = new HashSet<>();
|
||||
private Set<String> redisKeysForGroup = new HashSet<>();
|
||||
|
||||
|
||||
@@ -93,8 +93,10 @@ public interface DeviceChannelMapper {
|
||||
@SelectProvider(type = DeviceChannelProvider.class, method = "queryChannelsByDeviceDbId")
|
||||
List<DeviceChannel> queryChannelsByDeviceDbId(@Param("deviceDbId") int deviceDbId);
|
||||
|
||||
@Select("select id from wvp_device_channel where device_db_id in " +
|
||||
" <foreach item='item' index='index' collection='deviceDbIds' open='(' separator=',' close=')'> #{item} </foreach> </if>")
|
||||
@Select(value = {" <script> " +
|
||||
"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);
|
||||
|
||||
@Delete("DELETE FROM wvp_device_channel WHERE device_db_id=#{deviceId}")
|
||||
|
||||
@@ -283,7 +283,7 @@ public class CatalogDataManager implements CommandLineRunner {
|
||||
if (catalogData == null) {
|
||||
return 0;
|
||||
}
|
||||
return catalogData.getRedisKeysForChannel().size();
|
||||
return catalogData.getRedisKeysForChannel().size() + catalogData.getErrorChannel().size();
|
||||
}
|
||||
|
||||
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.gb28181.bean.CommonGBChannel;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.PlatformChannel;
|
||||
import com.genersoft.iot.vmp.gb28181.dao.CommonGBChannelMapper;
|
||||
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.RecordPlanItem;
|
||||
import com.genersoft.iot.vmp.storager.dao.RecordPlanMapper;
|
||||
@@ -99,8 +97,11 @@ public class RecordPlanServiceImpl implements IRecordPlanService {
|
||||
|
||||
@Override
|
||||
public void link(List<Integer> channelIds, Integer planId) {
|
||||
if (channelIds == null || channelIds.isEmpty()) {
|
||||
log.info("[录制计划] 关联/移除关联时, 通道编号必须存在");
|
||||
throw new ControllerException(ErrorCode.ERROR100.getCode(), "通道编号必须存在");
|
||||
}
|
||||
if (planId == null) {
|
||||
log.info("[录制计划] 移除通道关联的计划");
|
||||
channelMapper.removeRecordPlan(channelIds);
|
||||
}else {
|
||||
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.security.JwtUtils;
|
||||
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.service.IRecordPlanService;
|
||||
import com.genersoft.iot.vmp.service.bean.RecordPlan;
|
||||
@@ -50,25 +49,27 @@ public class RecordPlanController {
|
||||
@ResponseBody
|
||||
@PostMapping("/link")
|
||||
@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) {
|
||||
if (param.getChannelIds() == null && param.getDeviceDbIds() == null) {
|
||||
throw new ControllerException(ErrorCode.ERROR100.getCode(), "通道ID和国标设备ID不可都为NULL");
|
||||
}
|
||||
if (param.getAll() != null) {
|
||||
if (param.getAll()) {
|
||||
if (param.getAllLink() != null) {
|
||||
if (param.getAllLink()) {
|
||||
recordPlanService.linkAll(param.getPlanId());
|
||||
}else {
|
||||
recordPlanService.cleanAll(param.getPlanId());
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (param.getChannelIds() == null && param.getDeviceDbIds() == null) {
|
||||
throw new ControllerException(ErrorCode.ERROR100.getCode(), "通道ID和国标设备ID不可都为NULL");
|
||||
}
|
||||
|
||||
List<Integer> channelIds = new ArrayList<>();
|
||||
if (param.getChannelIds() != null) {
|
||||
channelIds.addAll(param.getChannelIds());
|
||||
}else {
|
||||
List<Integer> chanelIdList = deviceChannelService.queryChaneIdListByDeviceDbIds(param.getDeviceDbIds());
|
||||
if (chanelIdList == null || chanelIdList.isEmpty()) {
|
||||
if (chanelIdList != null && !chanelIdList.isEmpty()) {
|
||||
channelIds = chanelIdList;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
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 lombok.Data;
|
||||
|
||||
@@ -18,7 +16,7 @@ public class RecordPlanParam {
|
||||
private List<Integer> deviceDbIds;
|
||||
|
||||
@Schema(description = "全部关联/全部取消关联")
|
||||
private Boolean all;
|
||||
private Boolean allLink;
|
||||
|
||||
@Schema(description = "录制计划ID, ID为空是删除关联的计划")
|
||||
private Integer planId;
|
||||
|
||||
Reference in New Issue
Block a user