添加通道编号构建页面

This commit is contained in:
648540858
2024-07-12 17:52:05 +08:00
parent 0853d7e842
commit cb403689b4
17 changed files with 1374 additions and 183 deletions

View File

@@ -1,8 +1,9 @@
package com.genersoft.iot.vmp.conf;
import com.genersoft.iot.vmp.common.CivilCodePo;
import com.genersoft.iot.vmp.utils.CivilCodeUtil;
import com.genersoft.iot.vmp.gb28181.bean.Region;
import lombok.extern.slf4j.Slf4j;
import org.ehcache.impl.internal.concurrent.ConcurrentHashMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Configuration;
@@ -18,6 +19,7 @@ import java.io.InputStreamReader;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 启动时读取行政区划表
@@ -31,6 +33,8 @@ public class CivilCodeFileConf implements CommandLineRunner {
@Lazy
private UserSetting userSetting;
private final Map<String, CivilCodePo> civilCodeMap= new ConcurrentHashMap<>();
@Override
public void run(String... args) throws Exception {
if (ObjectUtils.isEmpty(userSetting.getCivilCodeFile())) {
@@ -59,7 +63,6 @@ public class CivilCodeFileConf implements CommandLineRunner {
BufferedReader inputStreamReader = new BufferedReader(new InputStreamReader(inputStream));
int index = -1;
String line;
List<CivilCodePo> civilCodePoList = new ArrayList<>();
while ((line = inputStreamReader.readLine()) != null) {
index ++;
if (index == 0) {
@@ -67,15 +70,28 @@ public class CivilCodeFileConf implements CommandLineRunner {
}
String[] infoArray = line.split(",");
CivilCodePo civilCodePo = CivilCodePo.getInstance(infoArray);
civilCodePoList.add(civilCodePo);
civilCodeMap.put(civilCodePo.getCode(), civilCodePo);
}
CivilCodeUtil.INSTANCE.add(civilCodePoList);
inputStreamReader.close();
inputStream.close();
if (civilCodePoList.isEmpty()) {
if (civilCodeMap.isEmpty()) {
log.warn("[行政区划] 文件内容为空,可能造成目录刷新结果不完整");
}else {
log.info("[行政区划] 加载成功,共加载数据{}条", civilCodePoList.size());
log.info("[行政区划] 加载成功,共加载数据{}条", civilCodeMap.size());
}
}
public List<Region> getAllChild(String parent) {
List<Region> result = new ArrayList<>();
for (String key : civilCodeMap.keySet()) {
if (parent == null) {
if (ObjectUtils.isEmpty(civilCodeMap.get(key).getParentCode().trim())) {
result.add(Region.getInstance(key, civilCodeMap.get(key).getName(), civilCodeMap.get(key).getParentCode()));
}
}else if (civilCodeMap.get(key).getParentCode().equals(parent)) {
result.add(Region.getInstance(key, civilCodeMap.get(key).getName(), civilCodeMap.get(key).getParentCode()));
}
}
return result;
}
}

View File

@@ -0,0 +1,58 @@
package com.genersoft.iot.vmp.gb28181.bean;
import org.jetbrains.annotations.NotNull;
public class DeviceType implements Comparable<DeviceType>{
/**
* 编号
*/
private String name;
/**
* 名称
*/
private String code;
/**
* 归属名称
*/
private String ownerName;
public static DeviceType getInstance(DeviceTypeEnum typeEnum) {
DeviceType deviceType = new DeviceType();
deviceType.setName(typeEnum.getName());
deviceType.setCode(typeEnum.getCode());
deviceType.setOwnerName(typeEnum.getOwnerName());
return deviceType;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getOwnerName() {
return ownerName;
}
public void setOwnerName(String ownerName) {
this.ownerName = ownerName;
}
@Override
public int compareTo(@NotNull DeviceType deviceType) {
return Integer.compare(Integer.parseInt(this.code), Integer.parseInt(deviceType.getCode()));
}
}

View File

@@ -0,0 +1,98 @@
package com.genersoft.iot.vmp.gb28181.bean;
/**
* 收录行业编码
*/
public enum DeviceTypeEnum {
DVR("111", "DVR编码", "前端主设备"),
VIDEO_SERVER("112", "视频服务器编码", "前端主设备"),
ENCODER("113", "编码器编码", "前端主设备"),
DECODER("114", "解码器编码", "前端主设备"),
VIDEO_SWITCHING_MATRIX("115", "视频切换矩阵编码", "前端主设备"),
AUDIO_SWITCHING_MATRIX("116", "音频切换矩阵编码", "前端主设备"),
ALARM_CONTROLLER("117", "报警控制器编码", "前端主设备"),
NVR("118", "网络视频录像机NVR编码", "前端主设备"),
RESERVE("119", "预留", "前端主设备"),
ONLINE_VIDEO_IMAGE_INFORMATION_ACQUISITION_SYSTEM("120", "在线视频图像信息采集系统编码", "前端主设备"),
VIDEO_CHECKPOINT("121", "视频卡口编码", "前端主设备"),
MULTI_CAMERA_DEVICE("122", "多目设备编码", "前端主设备"),
PARKING_LOT_ENTRANCE_AND_EXIT_CONTROL_EQUIPMENT("123", "停车场出入口控制设备编码", "前端主设备"),
PERSONNEL_ACCESS_CONTROL_EQUIPMENT("124", "人员出入口控制设备编码", "前端主设备"),
SECURITY_INSPECTION_EQUIPMENT("125", "安检设备编码", "前端主设备"),
HVR("130", "混合硬盘录像机HVR编码", "前端主设备"),
CAMERA("131", "摄像机编码", "前端外围设备"),
IPC("132", "网络摄像机IPC/在线视频图像信息采集设备编码", "前端外围设备"),
MONITOR("133", "显示器编码", "前端外围设备"),
ALARM_INPUT_DEVICE("134", "报警输入设备编码(如红外、烟感、门禁等报警设备)", "前端外围设备"),
ALARM_OUTPUT_DEVICE("135", "报警输出设备编码(如警灯、警铃等设备)", "前端外围设备"),
VOICE_INPUT_DEVICE("136", "语音输入设备编码", "前端外围设备"),
VOICE_OUTPUT_DEVICE("137", "语音输出设备", "前端外围设备"),
MOBILE_TRANSMISSION_EQUIPMENT("138", "移动传输设备编码", "前端外围设备"),
OTHER_PERIPHERAL_DEVICES("139", "其他外围设备编码", "前端外围设备"),
ALARM_OUTPUT_DEVICE2("140", "报警输出设备编码(如继电器或触发器控制的设备)", "前端外围设备"),
BARRIER_GATE("141", "道闸(控制车辆通行)", "前端外围设备"),
SMART_DOOR("142", "智能门(控制人员通行)", "前端外围设备"),
VOUCHER_RECOGNITION_UNIT("143", "凭证识别单元", "前端外围设备"),
CENTRAL_SIGNALING_CONTROL_SERVER("200", "中心信令控制服务器编码", "平台设备"),
WEB_APPLICATION_SERVER("201", "Web应用服务器编码", "平台设备"),
PROXY_SERVER("203", "代理服务器编码", "平台设备"),
SECURITY_SERVER("204", "安全服务器编码", "平台设备"),
ALARM_SERVER("205", "报警服务器编码", "平台设备"),
DATABASE_SERVER("206", "数据库服务器编码", "平台设备"),
GIS_SERVER("207", "GIS服务器编码", "平台设备"),
MANAGER_SERVER("208", "管理服务器编码", "平台设备"),
ACCESS_GATEWAY("209", "接入网关编码", "平台设备"),
MEDIA_STORAGE_SERVER("210", "媒体存储服务器编码", "平台设备"),
SIGNALING_SECURITY_ROUTING_GATEWAY("211", "信令安全路由网关编码", "平台设备"),
BUSINESS_GROUP("215", "业务分组编码", "平台设备"),
VIRTUAL_ORGANIZATION("216", "虚拟组织编码", "平台设备"),
CENTRAL_USER("300", "中心用户", "中心用户"),
END_USER("400", "终端用户", "终端用户"),
VIDEO_IMAGE_INFORMATION_SYNTHESIS("500", "视频图像信息综合应用平台", "平台外接服务器"),
VIDEO_IMAGE_INFORMATION_OPERATION_AND_MAINTENANCE_MANAGEMENT("501", "视频图像信息运维管理平台", "平台外接服务器"),
VIDEO_IMAGE_ANALYSIS("502", "视频图像分析系统", "平台外接服务器"),
VIDEO_IMAGE_INFORMATION_DATABASE("503", "视频图像信息数据库", "平台外接服务器"),
VIDEO_IMAGE_ANALYSIS_EQUIPMENT("505", "视频图像分析设备", "平台外接服务器"),
;
/**
* 编号
*/
private final String name;
/**
* 名称
*/
private String code;
/**
* 归属名称
*/
private String ownerName;
DeviceTypeEnum(String code, String name, String ownerName) {
this.name = name;
this.code = code;
this.ownerName = ownerName;
}
public String getName() {
return name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getOwnerName() {
return ownerName;
}
public void setOwnerName(String ownerName) {
this.ownerName = ownerName;
}
}

View File

@@ -0,0 +1,59 @@
package com.genersoft.iot.vmp.gb28181.bean;
import org.jetbrains.annotations.NotNull;
public class IndustryCodeType implements Comparable<IndustryCodeType>{
/**
* 接入类型码
*/
private String name;
/**
* 名称
*/
private String code;
/**
* 备注
*/
private String notes;
public static IndustryCodeType getInstance(IndustryCodeTypeEnum typeEnum) {
IndustryCodeType industryCodeType = new IndustryCodeType();
industryCodeType.setName(typeEnum.getName());
industryCodeType.setCode(typeEnum.getCode());
industryCodeType.setNotes(typeEnum.getNotes());
return industryCodeType;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getNotes() {
return notes;
}
public void setNotes(String notes) {
this.notes = notes;
}
@Override
public int compareTo(@NotNull IndustryCodeType industryCodeType) {
return Integer.compare(Integer.parseInt(this.code), Integer.parseInt(industryCodeType.getCode()));
}
}

View File

@@ -0,0 +1,55 @@
package com.genersoft.iot.vmp.gb28181.bean;
import lombok.Getter;
/**
* 收录行业编码
*/
public enum IndustryCodeTypeEnum {
SOCIAL_SECURITY_ROAD("00", "社会治安路面接入", "包括城市路面、商业街、公共区域、重点区域"),
SOCIAL_SECURITY_COMMUNITY("01", "社会治安社区接入", "包括社区、楼宇、网吧等"),
SOCIAL_SECURITY__INTERNAL("02", "社会治安内部接入 ", "包括公安办公楼、留置室等"),
SOCIAL_SECURITY_OTHER("03", "社会治安其他接入", ""),
TRAFFIC_ROAD("04", "交通路面接入 ", "包括城市主要干道、国道、高速交通状况监视"),
TRAFFIC_BAYONET("05", "交通卡口接入", "包括交叉路口、“电子警察”、关口、收费站等"),
TRAFFIC_INTERNAL("06", "交通内部接入", "包括交管办公楼等"),
TRAFFIC_OTHER("07", "交通其他接入", ""),
CITY_MANAGEMENT("08", "城市管理接入", ""),
HEALTH_ENVIRONMENTAL_PROTECTION("09", "卫生环保接入", ""),
COMMODITY_INSPECTION_CUSTOMHOUSE("10", "商检海关接入", ""),
EDUCATION_SECTOR("11", "教育部门接入", ""),
CIVIL_AVIATION("12", "民航接入", ""),
RAILWAY("13", "铁路接入", ""),
SHIPPING("14", "航运接入", ""),
AGRICULTURE_FORESTRY_ANIMAL_HUSBANDRY_FISHING("40", "农、林、牧、渔业接入", ""),
MINING("41", "采矿业接入", ""),
MANUFACTURING_INDUSTRY("42", "制造业接入", ""),
ELECTRICITY_HEAT_GAS_AND_WATER_PRODUCTION_AND_SUPPLY("43", "电力、热力、燃气及水生产和供应业接入", ""),
CONSTRUCTION("44", "建筑业接入", ""),
WHOLESALE_AND_RETAIL("45", "批发和零售业接入", ""),
;
/**
* 接入类型码
*/
@Getter
private String name;
/**
* 名称
*/
@Getter
private String code;
/**
* 备注
*/
@Getter
private String notes;
IndustryCodeTypeEnum(String code, String name, String notes) {
this.name = name;
this.code = code;
this.notes = notes;
}
}

View File

@@ -0,0 +1,45 @@
package com.genersoft.iot.vmp.gb28181.bean;
import org.jetbrains.annotations.NotNull;
public class NetworkIdentificationType implements Comparable<NetworkIdentificationType>{
/**
* 接入类型码
*/
private String name;
/**
* 名称
*/
private String code;
public static NetworkIdentificationType getInstance(NetworkIdentificationTypeEnum typeEnum) {
NetworkIdentificationType industryCodeType = new NetworkIdentificationType();
industryCodeType.setName(typeEnum.getName());
industryCodeType.setCode(typeEnum.getCode());
return industryCodeType;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@Override
public int compareTo(@NotNull NetworkIdentificationType networkIdentificationType) {
return Integer.compare(Integer.parseInt(this.code), Integer.parseInt(networkIdentificationType.getCode()));
}
}

View File

@@ -0,0 +1,51 @@
package com.genersoft.iot.vmp.gb28181.bean;
/**
* 收录行业编码
*/
public enum NetworkIdentificationTypeEnum {
PUBLIC_SECURITY_VIDEO_TRANSMISSION_NETWORK("0", "公安视频传输网"),
PUBLIC_SECURITY_VIDEO_TRANSMISSION_NETWORK2("1", "公安视频传输网"),
INDUSTRY_SPECIFIC_NETWORK("2", "行业专网"),
POLITICAL_AND_LEGAL_INFORMATION_NETWORK("3", "政法信息网"),
PUBLIC_SECURITY_MOBILE_INFORMATION_NETWORK("4", "公安移动信息网"),
PUBLIC_SECURITY_INFORMATION_NETWORK("5", "公安信息网"),
ELECTRONIC_GOVERNMENT_EXTRANET("6", "电子政务外网"),
PUBLIC_NETWORKS_SUCH_AS_THE_INTERNET("7", "互联网等公共网络"),
Dedicated_Line("8", "专线"),
RESERVE("9", "预留"),
;
/**
* 接入类型码
*/
private String name;
/**
* 名称
*/
private String code;
NetworkIdentificationTypeEnum(String code, String name) {
this.name = name;
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}

View File

@@ -0,0 +1,64 @@
package com.genersoft.iot.vmp.gb28181.bean;
import com.genersoft.iot.vmp.utils.DateUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.jetbrains.annotations.NotNull;
/**
* 区域
*/
@Data
@Schema(description = "区域")
public class Region implements Comparable<Region>{
/**
* 数据库自增ID
*/
@Schema(description = "数据库自增ID")
private int commonRegionId;
/**
* 区域国标编号
*/
@Schema(description = "区域国标编号")
private String commonRegionDeviceId;
/**
* 区域名称
*/
@Schema(description = "区域名称")
private String commonRegionName;
/**
* 父区域国标ID
*/
@Schema(description = "父区域国标ID")
private String commonRegionParentId;
/**
* 创建时间
*/
@Schema(description = "创建时间")
private String commonRegionCreateTime;
/**
* 更新时间
*/
@Schema(description = "更新时间")
private String commonRegionUpdateTime;
public static Region getInstance(String commonRegionDeviceId, String commonRegionName, String commonRegionParentId) {
Region region = new Region();
region.setCommonRegionDeviceId(commonRegionDeviceId);
region.setCommonRegionName(commonRegionName);
region.setCommonRegionParentId(commonRegionParentId);
region.setCommonRegionCreateTime(DateUtil.getNow());
region.setCommonRegionUpdateTime(DateUtil.getNow());
return region;
}
@Override
public int compareTo(@NotNull Region region) {
return Integer.compare(Integer.parseInt(this.commonRegionDeviceId), Integer.parseInt(region.getCommonRegionDeviceId()));
}
}

View File

@@ -2,6 +2,9 @@ package com.genersoft.iot.vmp.gb28181.controller;
import com.genersoft.iot.vmp.conf.security.JwtUtils;
import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel;
import com.genersoft.iot.vmp.gb28181.bean.DeviceType;
import com.genersoft.iot.vmp.gb28181.bean.IndustryCodeType;
import com.genersoft.iot.vmp.gb28181.bean.NetworkIdentificationType;
import com.genersoft.iot.vmp.gb28181.service.IGbChannelService;
import com.genersoft.iot.vmp.media.service.IMediaServerService;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
@@ -16,6 +19,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Tag(name = "全局通道管理")
@Controller
@@ -40,4 +45,25 @@ public class CommonChannelController {
public CommonGBChannel getOne(int id){
return channelService.getOne(id);
}
@Operation(summary = "获取行业编码列表", security = @SecurityRequirement(name = JwtUtils.HEADER))
@ResponseBody
@GetMapping("/industry/list")
public List<IndustryCodeType> getIndustryCodeList(){
return channelService.getIndustryCodeList();
}
@Operation(summary = "获取编码列表", security = @SecurityRequirement(name = JwtUtils.HEADER))
@ResponseBody
@GetMapping("/type/list")
public List<DeviceType> getDeviceTypeList(){
return channelService.getDeviceTypeList();
}
@Operation(summary = "获取编码列表", security = @SecurityRequirement(name = JwtUtils.HEADER))
@ResponseBody
@GetMapping("/network/identification/list")
public List<NetworkIdentificationType> getNetworkIdentificationTypeList(){
return channelService.getNetworkIdentificationTypeList();
}
}

View File

@@ -0,0 +1,111 @@
package com.genersoft.iot.vmp.gb28181.controller;
import com.genersoft.iot.vmp.conf.exception.ControllerException;
import com.genersoft.iot.vmp.gb28181.bean.Region;
import com.genersoft.iot.vmp.gb28181.service.IRegionService;
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
import com.github.pagehelper.PageInfo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Tag(name = "区域管理")
@RestController
@RequestMapping("/api/region")
public class RegionController {
private final static Logger logger = LoggerFactory.getLogger(RegionController.class);
@Autowired
private IRegionService regionService;
@Operation(summary = "添加区域")
@Parameter(name = "region", description = "Region", required = true)
@ResponseBody
@PostMapping("/add")
public void add(@RequestBody Region region){
regionService.add(region);
}
@Operation(summary = "查询区域")
@Parameter(name = "query", description = "要搜索的内容", required = true)
@Parameter(name = "page", description = "当前页", required = true)
@Parameter(name = "count", description = "每页查询数量", required = true)
@ResponseBody
@GetMapping("/list")
public PageInfo<Region> query(
@RequestParam(required = false) String query,
@RequestParam(required = true) int page,
@RequestParam(required = true) int count
){
return regionService.query(query, page, count);
}
@Operation(summary = "更新区域")
@Parameter(name = "region", description = "Region", required = true)
@ResponseBody
@PostMapping("/update")
public void update(@RequestBody Region region){
regionService.update(region);
}
@Operation(summary = "删除区域")
@Parameter(name = "regionDeviceId", description = "区域编码", required = true)
@ResponseBody
@GetMapping("/delete")
public void delete(String regionDeviceId){
assert regionDeviceId != null;
boolean result = regionService.deleteByDeviceId(regionDeviceId);
if (!result) {
throw new ControllerException(ErrorCode.ERROR100.getCode(), "移除失败");
}
}
@Operation(summary = "分页区域子节点")
@Parameter(name = "regionParentId", description = "行政区划父节点编号", required = true)
@Parameter(name = "page", description = "当前页", required = true)
@Parameter(name = "count", description = "每页查询数量", required = true)
@ResponseBody
@GetMapping("/child/list")
public PageInfo<Region> queryChildRegionList(
@RequestParam(required = true) String regionParentId,
@RequestParam(required = true) int page,
@RequestParam(required = true) int count
){
if (ObjectUtils.isEmpty(regionParentId.trim())) {
regionParentId = null;
}
return regionService.queryChildRegionList(regionParentId, page, count);
}
@Operation(summary = "根据区域Id查询区域")
@Parameter(name = "regionDeviceId", description = "行政区划节点编号", required = true)
@ResponseBody
@GetMapping("/one")
public Region queryRegionByDeviceId(
@RequestParam(required = true) String regionDeviceId
){
if (ObjectUtils.isEmpty(regionDeviceId.trim())) {
throw new ControllerException(ErrorCode.ERROR400);
}
return regionService.queryRegionByDeviceId(regionDeviceId);
}
@Operation(summary = "获取所属的行政区划下的行政区划")
@Parameter(name = "parent", description = "所属的行政区划", required = false)
@ResponseBody
@GetMapping("/base/child/list")
public List<Region> getAllChild(@RequestParam(required = false) String parent){
if (ObjectUtils.isEmpty(parent.trim())) {
parent = null;
}
return regionService.getAllChild(parent);
}
}

View File

@@ -0,0 +1,17 @@
package com.genersoft.iot.vmp.gb28181.dao;
import com.genersoft.iot.vmp.gb28181.bean.Region;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface RegionMapper {
void add(Region region);
List<Region> query(String query);
List<Region> getChildren(String regionParentId);
Region queryRegion(int id);
}

View File

@@ -1,6 +1,9 @@
package com.genersoft.iot.vmp.gb28181.service;
import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel;
import com.genersoft.iot.vmp.gb28181.bean.DeviceType;
import com.genersoft.iot.vmp.gb28181.bean.IndustryCodeType;
import com.genersoft.iot.vmp.gb28181.bean.NetworkIdentificationType;
import java.util.List;
@@ -29,4 +32,10 @@ public interface IGbChannelService {
List<CommonGBChannel> queryByPlatformId(Integer platformId);
CommonGBChannel getOne(int id);
List<IndustryCodeType> getIndustryCodeList();
List<DeviceType> getDeviceTypeList();
List<NetworkIdentificationType> getNetworkIdentificationTypeList();
}

View File

@@ -0,0 +1,33 @@
package com.genersoft.iot.vmp.gb28181.service;
import com.genersoft.iot.vmp.gb28181.bean.Region;
import com.github.pagehelper.PageInfo;
import java.util.List;
public interface IRegionService {
void add(Region region);
boolean deleteByDeviceId(String regionDeviceId);
/**
* 查询区划列表
*/
PageInfo<Region> query(String query, int page, int count);
/**
* 查询子区划列表
*/
PageInfo<Region> queryChildRegionList(String regionParentId, int page, int count);
/**
* 更新区域
*/
void update(Region region);
List<Region> getAllChild(String parent);
Region queryRegionByDeviceId(String regionDeviceId);
}

View File

@@ -1,6 +1,6 @@
package com.genersoft.iot.vmp.gb28181.service.impl;
import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.gb28181.dao.CommonGBChannelMapper;
import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
@@ -10,6 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Slf4j
@@ -232,4 +234,37 @@ public class GbChannelServiceImpl implements IGbChannelService {
public CommonGBChannel getOne(int id) {
return commonGBChannelMapper.queryById(id);
}
@Override
public List<IndustryCodeType> getIndustryCodeList() {
IndustryCodeTypeEnum[] values = IndustryCodeTypeEnum.values();
List<IndustryCodeType> result = new ArrayList<>(values.length);
for (IndustryCodeTypeEnum value : values) {
result.add(IndustryCodeType.getInstance(value));
}
Collections.sort(result);
return result;
}
@Override
public List<DeviceType> getDeviceTypeList() {
DeviceTypeEnum[] values = DeviceTypeEnum.values();
List<DeviceType> result = new ArrayList<>(values.length);
for (DeviceTypeEnum value : values) {
result.add(DeviceType.getInstance(value));
}
Collections.sort(result);
return result;
}
@Override
public List<NetworkIdentificationType> getNetworkIdentificationTypeList() {
NetworkIdentificationTypeEnum[] values = NetworkIdentificationTypeEnum.values();
List<NetworkIdentificationType> result = new ArrayList<>(values.length);
for (NetworkIdentificationTypeEnum value : values) {
result.add(NetworkIdentificationType.getInstance(value));
}
Collections.sort(result);
return result;
}
}

View File

@@ -0,0 +1,87 @@
package com.genersoft.iot.vmp.gb28181.service.impl;
import com.genersoft.iot.vmp.conf.CivilCodeFileConf;
import com.genersoft.iot.vmp.gb28181.bean.Region;
import com.genersoft.iot.vmp.gb28181.dao.RegionMapper;
import com.genersoft.iot.vmp.gb28181.service.IRegionService;
import com.genersoft.iot.vmp.utils.DateUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import java.util.Collections;
import java.util.List;
/**
* 区域管理类
*/
@Service
public class RegionServiceImpl implements IRegionService {
@Autowired
private RegionMapper regionMapper;
@Autowired
private GbChannelServiceImpl gbChannelService;
@Autowired
private CivilCodeFileConf civilCodeFileConf;
@Override
public void add(Region region) {
assert region.getCommonRegionName() != null;
assert region.getCommonRegionDeviceId() != null;
if (ObjectUtils.isEmpty(region.getCommonRegionParentId().trim())) {
region.setCommonRegionParentId(null);
}
region.setCommonRegionCreateTime(DateUtil.getNow());
region.setCommonRegionUpdateTime(DateUtil.getNow());
regionMapper.add(region);
}
@Override
@Transactional
public boolean deleteByDeviceId(String regionDeviceId) {
return true;
}
@Override
public PageInfo<Region> query(String query, int page, int count) {
PageHelper.startPage(page, count);
List<Region> regionList = regionMapper.query(query);
return new PageInfo<>(regionList);
}
@Override
public PageInfo<Region> queryChildRegionList(String regionParentId, int page, int count) {
assert regionParentId != null;
PageHelper.startPage(page, count);
List<Region> all = regionMapper.getChildren(regionParentId);
return new PageInfo<>(all);
}
@Override
@Transactional
public void update(Region region) {
}
@Override
public List<Region> getAllChild(String parent) {
List<Region> allChild = civilCodeFileConf.getAllChild(parent);
Collections.sort(allChild);
return allChild;
}
@Override
public Region queryRegionByDeviceId(String regionDeviceId) {
return null;
}
}