haungxing
9 months ago
15 changed files with 712 additions and 11 deletions
@ -0,0 +1,31 @@
|
||||
package com.hnac.hzinfo.inspect.task.dto; |
||||
|
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
import javax.validation.constraints.NotNull; |
||||
import java.io.Serializable; |
||||
|
||||
@Data |
||||
@EqualsAndHashCode |
||||
public class RobotTaskVideoDTO implements Serializable { |
||||
|
||||
/** |
||||
* 巡检任务ID |
||||
*/ |
||||
@NotNull |
||||
private Long taskId; |
||||
|
||||
/** |
||||
* 巡检机器人ID |
||||
*/ |
||||
@NotNull |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 视频记录类型 1为开始 2为结束 |
||||
*/ |
||||
@NotNull |
||||
private Integer recordType; |
||||
|
||||
} |
@ -0,0 +1,21 @@
|
||||
package com.hnac.hzinfo.inspect.hikVideo.constants; |
||||
|
||||
|
||||
public interface HikApiConstants { |
||||
|
||||
/** |
||||
* 开始手动录像 89ca6c11cc0f40bd89b9653bb4398bc1 |
||||
*/ |
||||
String MANUAL_RECORD_START = "/api/video/v1/manualRecord/start"; |
||||
|
||||
/** |
||||
* 停止手动录像 |
||||
*/ |
||||
String MANUAL_RECORD_STOP = "/api/video/v1/manualRecord/stop"; |
||||
|
||||
/** |
||||
* 获取监控点回放取流URL |
||||
*/ |
||||
String PLAY_BACK_URLS = "/api/video/v2/cameras/playbackURLs"; |
||||
|
||||
} |
@ -0,0 +1,23 @@
|
||||
package com.hnac.hzinfo.inspect.hikVideo.controller; |
||||
|
||||
import com.hnac.hzinfo.inspect.hikVideo.service.IHikApiService; |
||||
import lombok.AllArgsConstructor; |
||||
import org.springblade.core.tool.api.R; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RequestParam; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
@RestController |
||||
@AllArgsConstructor |
||||
@RequestMapping("/hik/api") |
||||
public class HikVideoController { |
||||
|
||||
private final IHikApiService hikApiService; |
||||
|
||||
@GetMapping("/manualCapture") |
||||
public R<String> manualCapture(@RequestParam String pointCode) { |
||||
return R.data(hikApiService.manualCapture(pointCode)); |
||||
} |
||||
|
||||
} |
@ -0,0 +1 @@
|
||||
## 海康威视Api调用 |
@ -0,0 +1,62 @@
|
||||
package com.hnac.hzinfo.inspect.hikVideo.request; |
||||
|
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
@Data |
||||
@EqualsAndHashCode |
||||
public class PlaybackRequest implements Serializable { |
||||
|
||||
/** |
||||
* 监控点唯一标识,[分页获取监控点资源]@[软件产品-综合安防管理平台-API列表-视频应用服务-视频资源#分页获取监控点资源]接口获取返回参数cameraIndexCode |
||||
*/ |
||||
private String cameraIndexCode; |
||||
|
||||
/** |
||||
* 存储类型,0:中心存储 1:设备存储 默认为中心存储 |
||||
*/ |
||||
private String recordLocation = "1"; |
||||
|
||||
/** |
||||
* 取流协议(应用层协议), “hik”:HIK私有协议,使用视频SDK进行播放时, |
||||
* 传入此类型; “rtsp”:RTSP协议;“rtmp”:RTMP协议;“hls”:HLS协议“hls”:HLS协议(HLS协议只支持海康SDK协议、EHOME协议、ONVIF协议接入的设备;只支持H264视频编码和AAC音频编码;云存储版本要求v2.2.4及以上的2.x版本,或v3.0.5及以上的3.x版本;ISC版本要求v1.2.0版本及以上,需在运管中心-视频联网共享中切换成启动平台外置VOD)。 |
||||
* 参数不填,默认为HIK协议 |
||||
*/ |
||||
private String protocol = "httpflv"; |
||||
|
||||
/** |
||||
* 传输协议(传输层协议)0:UDP 1:TCP 默认为tcp,在protocol设置为rtsp或者rtmp时有效 注:EHOME设备回放只支持TCP传输 GB28181 2011及以前版本只支持UDP传输 |
||||
*/ |
||||
private Integer transmode = 1; |
||||
|
||||
/** |
||||
* 开始查询时间(IOS8601格式:yyyy-MM-dd'T'HH:mm:ss.SSSXXX) 例如北京时间: 2017-06-14T00:00:00.000+08:00,参考[附录BISO8601时间格式说明]@[软件产品-综合安防管理平台-附录#附录BISO8601时间格式说明] |
||||
*/ |
||||
private String beginTime; |
||||
|
||||
/** |
||||
* 结束查询时间,开始时间和结束时间相差不超过三天; (IOS8601格式:yyyy-MM-dd'T'HH:mm:ss.SSSXXX)例如北京时间: 2017-06-15T00:00:00.000+08:00,参考[附录BISO8601时间格式说明]@[软件产品-综合安防管理平台-附录#附录BISO8601时间格式说明] |
||||
*/ |
||||
private String endTime; |
||||
|
||||
/** |
||||
* 分页查询id,上一次查询返回的uuid,用于继续查询剩余片段,默认为空字符串。当存储类型为设备存储时,该字段生效,中心存储会一次性返回全部片段。 |
||||
*/ |
||||
private String uuid; |
||||
|
||||
/** |
||||
* 扩展内容,格式:key=value, 调用方根据其播放控件支持的解码格式选择相应的封装类型; 支持的内容详见[附录F expand扩展内容说明]@[软件产品-综合安防管理平台-附录-附录F expand扩展内容说明] |
||||
*/ |
||||
private String expand; |
||||
/** |
||||
* 输出码流转封装格式,“ps”:PS封装格式、“rtp”:RTP封装协议。当protocol=rtsp时生效,且不传值时默认为RTP封装协议 |
||||
*/ |
||||
private String streamform; |
||||
|
||||
/** |
||||
* 查询录像的锁定类型,0-查询全部录像;1-查询未锁定录像;2-查询已锁定录像,不传默认值为0。通过[录像锁定与解锁]@[软件产品-综合安防管理平台-API列表-视频应用服务-视频能力#查询预置点信息#录像锁定与解锁]接口来进行录像锁定与解锁。 |
||||
*/ |
||||
private Integer lockType; |
||||
} |
@ -0,0 +1,32 @@
|
||||
package com.hnac.hzinfo.inspect.hikVideo.request; |
||||
|
||||
|
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
@Data |
||||
@EqualsAndHashCode |
||||
public class RecordStartRequest implements Serializable { |
||||
|
||||
/** |
||||
* 监控点唯一标识, |
||||
* [分页获取监控点资源]@[软件产品-综合安防管理平台-API列表-视频应用服务-视频资源#分页获取监控点资源] |
||||
* 接口获取返回参数cameraIndexCode |
||||
*/ |
||||
private String cameraIndexCode; |
||||
|
||||
/** |
||||
* 录像类型: 范围:0-65535, |
||||
* 参考[附录A.31 录像类型]@[软件产品-综合安防管理平台-附录-附录A 数据字典#附录A.31 录像类型], |
||||
* 中心存储必填,设备存储不填 |
||||
*/ |
||||
private Integer recordType; |
||||
|
||||
/** |
||||
* 下发的存储类型。0-中心存储 1-设备存储。如果不传入,默认为0-中心存储 |
||||
*/ |
||||
private Integer type = 1; |
||||
|
||||
} |
@ -0,0 +1,32 @@
|
||||
package com.hnac.hzinfo.inspect.hikVideo.request; |
||||
|
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
@Data |
||||
@EqualsAndHashCode |
||||
public class RecordStopRequest implements Serializable { |
||||
|
||||
/** |
||||
* 监控点唯一标识, |
||||
* [分页获取监控点资源]@[软件产品-综合安防管理平台-API列表-视频应用服务-视频资源#分页获取监控点资源]接口 |
||||
* 获取返回参数cameraIndexCode |
||||
*/ |
||||
private String cameraIndexCode; |
||||
|
||||
/** |
||||
* 手动录像编号, |
||||
* 从[开始手动录像]@[软件产品-综合安防管理平台-API列表-视频应用服务-视频能力#开始手动录像]接口 |
||||
* 获取返回参数taskID,由于一个监控点同种存储类型同一时间只能进行一个手动录像任务, |
||||
* taskID不传入时,根据监控点编号和存储类型停止手动录像。 |
||||
*/ |
||||
private String taskID; |
||||
|
||||
/** |
||||
* 下发的存储类型,0-中心存储 1-设备存储 如果不传入,默认为0-中心存储 |
||||
*/ |
||||
private Integer type = 1; |
||||
|
||||
} |
@ -0,0 +1,8 @@
|
||||
package com.hnac.hzinfo.inspect.hikVideo.service; |
||||
|
||||
|
||||
public interface IHikApiService { |
||||
|
||||
String manualCapture(String pointCode); |
||||
|
||||
} |
@ -0,0 +1,25 @@
|
||||
package com.hnac.hzinfo.inspect.hikVideo.service.impl; |
||||
|
||||
import com.hnac.hzinfo.inspect.hikVideo.service.IHikApiService; |
||||
import com.hnac.hzinfo.inspect.utils.HiKUtil; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
@Service |
||||
@Slf4j |
||||
@AllArgsConstructor |
||||
public class HikApiServiceImpl implements IHikApiService { |
||||
|
||||
/** |
||||
* 从摄像头截图 |
||||
* @param pointCode cameraIndexCode |
||||
* @return 视频云图片minio地址 |
||||
*/ |
||||
@Override |
||||
public String manualCapture(String pointCode) { |
||||
String picUrl = HiKUtil.manualCapture(pointCode); |
||||
log.info("摄像头截图地址为:{}",picUrl); |
||||
return picUrl; |
||||
} |
||||
} |
@ -0,0 +1,11 @@
|
||||
package com.hnac.hzinfo.inspect.task.service; |
||||
|
||||
import com.hnac.hzinfo.inspect.task.dto.RobotTaskVideoDTO; |
||||
|
||||
public interface IRobotTaskVideoService { |
||||
|
||||
void recordVideo(RobotTaskVideoDTO req); |
||||
|
||||
String recordVideoByPointCode(String pointCode); |
||||
|
||||
} |
@ -0,0 +1,136 @@
|
||||
package com.hnac.hzinfo.inspect.task.service.impl; |
||||
|
||||
import com.alibaba.fastjson.JSON; |
||||
import com.alibaba.fastjson.JSONObject; |
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||
import com.hnac.hzinfo.inspect.ai.entity.CameraInfoEntity; |
||||
import com.hnac.hzinfo.inspect.ai.entity.RobotEntity; |
||||
import com.hnac.hzinfo.inspect.ai.service.ICameraInfoService; |
||||
import com.hnac.hzinfo.inspect.ai.service.IRobotService; |
||||
import com.hnac.hzinfo.inspect.hikVideo.constants.HikApiConstants; |
||||
import com.hnac.hzinfo.inspect.hikVideo.request.PlaybackRequest; |
||||
import com.hnac.hzinfo.inspect.hikVideo.request.RecordStartRequest; |
||||
import com.hnac.hzinfo.inspect.hikVideo.request.RecordStopRequest; |
||||
import com.hnac.hzinfo.inspect.task.dto.RobotTaskVideoDTO; |
||||
import com.hnac.hzinfo.inspect.task.entity.TaskEntity; |
||||
import com.hnac.hzinfo.inspect.task.service.IRobotTaskVideoService; |
||||
import com.hnac.hzinfo.inspect.task.service.ITaskService; |
||||
import com.hnac.hzinfo.inspect.utils.HiKUtil; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.log.exception.ServiceException; |
||||
import org.springblade.core.log.logger.BladeLogger; |
||||
import org.springblade.core.tool.utils.Func; |
||||
import org.springblade.core.tool.utils.StringUtil; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.time.LocalDateTime; |
||||
import java.time.ZoneOffset; |
||||
import java.time.format.DateTimeFormatter; |
||||
import java.util.Optional; |
||||
|
||||
@AllArgsConstructor |
||||
@Service |
||||
@Slf4j |
||||
public class RobotTaskVideoServiceImpl implements IRobotTaskVideoService { |
||||
|
||||
private final IRobotService robotService; |
||||
private final ICameraInfoService cameraInfoService; |
||||
private final ITaskService taskService; |
||||
private final BladeLogger bladeLogger; |
||||
|
||||
@Override |
||||
public void recordVideo(RobotTaskVideoDTO req) { |
||||
RobotEntity robot = robotService.getOne(Wrappers.<RobotEntity>lambdaQuery().eq(RobotEntity::getUserId, req.getUserId())); |
||||
TaskEntity task = taskService.getById(req.getTaskId()); |
||||
Func.toLongList(",",robot.getCameraId()).forEach(cameraId -> { |
||||
CameraInfoEntity cameraInfo = cameraInfoService.getById(cameraId); |
||||
// cameraInfo.setPointCode("ceea3ef00de54062aa23583bc6112e98");
|
||||
if(Func.isNotEmpty(cameraInfo) && Func.isNotEmpty(cameraInfo.getPointCode())) { |
||||
if(req.getRecordType() == 1) { |
||||
// 调用海康接口开启录制视频
|
||||
RecordStartRequest startRequest = new RecordStartRequest(); |
||||
startRequest.setCameraIndexCode(cameraInfo.getPointCode()); |
||||
try { |
||||
bladeLogger.info("recordVideo:manualRecord:start:param", JSON.toJSONString(startRequest)); |
||||
String startResult = HiKUtil.sendApi(HikApiConstants.MANUAL_RECORD_START, startRequest); |
||||
bladeLogger.info("recordVideo:manualRecord:start:result", startResult); |
||||
task.setHikVideoTaskId(JSONObject.parseObject(startResult).getString("taskID")); |
||||
} |
||||
catch(ServiceException e) { |
||||
log.info("摄像头手动任务已开启需先结束再开启视频录制任务"); |
||||
RecordStopRequest stopRequest = new RecordStopRequest(); |
||||
stopRequest.setCameraIndexCode(cameraInfo.getPointCode()); |
||||
HiKUtil.sendApi(HikApiConstants.MANUAL_RECORD_STOP, stopRequest); |
||||
String startResult = HiKUtil.sendApi(HikApiConstants.MANUAL_RECORD_START, startRequest); |
||||
task.setHikVideoTaskId(JSONObject.parseObject(startResult).getString("taskID")); |
||||
} |
||||
// 设置巡检任务视频录制开始时间
|
||||
if(Func.isEmpty(task.getVideoStartTime())) { |
||||
task.setVideoStartTime(LocalDateTime.now()); |
||||
} |
||||
} |
||||
else if(req.getRecordType() == 2) { |
||||
// 调用海康接口结束录制视频
|
||||
RecordStopRequest stopRequest = new RecordStopRequest(); |
||||
stopRequest.setCameraIndexCode(cameraInfo.getPointCode()); |
||||
//request.setTaskID(task.getHikVideoTaskId());
|
||||
bladeLogger.info("recordVideo:manualRecord:stop:param", JSON.toJSONString(stopRequest)); |
||||
String stopResult = HiKUtil.sendApi(HikApiConstants.MANUAL_RECORD_STOP, stopRequest); |
||||
bladeLogger.info("recordVideo:manualRecord:stop:result", stopResult); |
||||
task.setVideoEndTime(LocalDateTime.now()); |
||||
// 调用视频回放接口获取URL地址
|
||||
PlaybackRequest playbackRequest = new PlaybackRequest(); |
||||
playbackRequest.setCameraIndexCode(cameraInfo.getPointCode()); |
||||
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); |
||||
playbackRequest.setBeginTime(task.getVideoStartTime().atZone(ZoneOffset.ofHours(8)).format(dtf)); |
||||
playbackRequest.setEndTime(task.getVideoEndTime().atZone(ZoneOffset.ofHours(8)).format(dtf)); |
||||
bladeLogger.info("recordVideo:manualRecord:playBack:param", JSON.toJSONString(playbackRequest)); |
||||
String playBackResult = HiKUtil.sendApi(HikApiConstants.PLAY_BACK_URLS, playbackRequest); |
||||
bladeLogger.info("recordVideo:manualRecord:playBack:result", playBackResult); |
||||
String url = JSONObject.parseObject(playBackResult).getString("url"); |
||||
if(StringUtil.isNotBlank(url)) { |
||||
task.setVideoUrl(Optional.ofNullable(task.getVideoUrl()).filter(StringUtil::isNotBlank).map(u -> url).orElse(url)); |
||||
} |
||||
} |
||||
taskService.updateById(task); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
@Override |
||||
public String recordVideoByPointCode(String pointCode) { |
||||
// 调用海康接口开启录制视频
|
||||
RecordStartRequest request = new RecordStartRequest(); |
||||
request.setCameraIndexCode(pointCode); |
||||
try { |
||||
HiKUtil.sendApi(HikApiConstants.MANUAL_RECORD_START, request); |
||||
} |
||||
catch(ServiceException e) { |
||||
RecordStopRequest stopRequest = new RecordStopRequest(); |
||||
stopRequest.setCameraIndexCode(pointCode); |
||||
HiKUtil.sendApi(HikApiConstants.MANUAL_RECORD_STOP, stopRequest); |
||||
HiKUtil.sendApi(HikApiConstants.MANUAL_RECORD_START, request); |
||||
} |
||||
// 设置巡检任务视频录制开始时间
|
||||
LocalDateTime beginTime = LocalDateTime.now(); |
||||
try { |
||||
Thread.sleep(3*60*1000); |
||||
} catch (InterruptedException e) { |
||||
throw new RuntimeException(e); |
||||
} |
||||
// 调用海康接口结束录制视频
|
||||
RecordStopRequest stopRequest = new RecordStopRequest(); |
||||
stopRequest.setCameraIndexCode(pointCode); |
||||
HiKUtil.sendApi(HikApiConstants.MANUAL_RECORD_STOP, stopRequest); |
||||
LocalDateTime EndTime = LocalDateTime.now(); |
||||
// 调用视频回放接口获取URL地址
|
||||
PlaybackRequest playbackRequest = new PlaybackRequest(); |
||||
playbackRequest.setCameraIndexCode(pointCode); |
||||
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); |
||||
playbackRequest.setBeginTime(beginTime.atZone(ZoneOffset.ofHours(8)).format(dtf)); |
||||
playbackRequest.setEndTime(EndTime.atZone(ZoneOffset.ofHours(8)).format(dtf)); |
||||
String result = HiKUtil.sendApi(HikApiConstants.PLAY_BACK_URLS, playbackRequest); |
||||
return JSONObject.parseObject(result).getString("url"); |
||||
} |
||||
} |
@ -0,0 +1,228 @@
|
||||
-- 巡检摄像头管理添加设备编号 |
||||
alter table `hz_st_camera_info` add column `em_code` varchar(50) default null comment '设备编号'; |
||||
-- 巡检情况对象记录异常告警 |
||||
alter table `hz_st_ex_event_record` add column `abnormal_condition` varchar(255) default null comment '异常告警'; |
||||
|
||||
alter table `hz_st_ex_task` add column `video_start_time` datetime default null comment '视频录制开始时间'; |
||||
alter table `hz_st_ex_task` add column `video_end_time` datetime default null comment '视频录制开始时间'; |
||||
alter table `hz_st_ex_task` add column `video_url` varchar(255) default null comment '手动录制视频地址'; |
||||
alter table `hz_st_ex_task` add column `hik_video_task_id` varchar(50) default null comment '海康录制视频任务ID'; |
||||
|
||||
-- 巡检计划模板表 |
||||
CREATE TABLE `hz_st_re_plan_template` ( |
||||
`ID` bigint(64) NOT NULL COMMENT 'ID', |
||||
`CODE` varchar(18) DEFAULT NULL COMMENT '计划编码', |
||||
`NAME` varchar(128) DEFAULT NULL COMMENT '计划名称', |
||||
`START_TIME` date DEFAULT NULL COMMENT '计划开始时间', |
||||
`END_TIME` date DEFAULT NULL COMMENT '计划结束时间', |
||||
`TYPE` char(1) DEFAULT NULL COMMENT '计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式', |
||||
`METHOD` char(1) DEFAULT '0' COMMENT '派发方式:0 抢占模式 1 并发模式', |
||||
`CYCLE` char(1) DEFAULT NULL COMMENT '计划周期 0: 从不 1:每天 2:每月 3:每季度 5:每年 4:每周', |
||||
`APPROVER` bigint(20) DEFAULT NULL COMMENT '审批人', |
||||
`APPROVE_TIME` datetime DEFAULT NULL COMMENT '审批时间 ', |
||||
`FROM_SOURCE` char(2) DEFAULT NULL COMMENT '计划来源 1巡检 2点检', |
||||
`CREATE_USER` bigint(64) DEFAULT NULL COMMENT '创建人', |
||||
`CREATE_DEPT` bigint(64) DEFAULT NULL COMMENT '创建部门', |
||||
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间', |
||||
`UPDATE_USER` bigint(64) DEFAULT NULL COMMENT '修改人', |
||||
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '修改时间', |
||||
`STATUS` int(2) DEFAULT '6' COMMENT '计划状态 0:待审核-->1:已审核-->2:派发中-->3:暂停-->4:结束-->5审核不通过-->6待提交', |
||||
`IS_DELETED` int(2) NOT NULL DEFAULT '0' COMMENT '是否已删除', |
||||
`TENANT_ID` varchar(12) DEFAULT '000000' COMMENT '租户', |
||||
`TASK_FLG` tinyint(4) DEFAULT '0' COMMENT '是否立即生产任务 1-是 0-否', |
||||
`ROUTE_DATA` text COMMENT '巡检路线数据', |
||||
`ROUTE_ID` bigint(20) DEFAULT NULL COMMENT '巡检路线ID字段', |
||||
`ROUTE_NAME` varchar(255) DEFAULT NULL COMMENT '路线名称', |
||||
`START_REMIND` int(11) DEFAULT NULL COMMENT '开始前提醒(分钟)', |
||||
`END_REMIND` int(11) DEFAULT NULL COMMENT '结束前提醒(分钟)', |
||||
`TASK_TIMES_A_DAY` int(11) DEFAULT NULL COMMENT '一天任务次数', |
||||
`EXEC_TIME_JSON` text COMMENT '任务执行时间json数据', |
||||
`AI_CHECK_ITEMS` varchar(255) DEFAULT NULL COMMENT '开始任务时AI检测项 来自数据字段表: beginCheckType 多个检测项直接通过隔开', |
||||
`AUTO_VIDEO` varchar(255) DEFAULT '0' COMMENT '巡检类型标识: 0普通巡检 1视频自动巡检 2机器人巡检', |
||||
`PLAN_TYPE` varchar(20) DEFAULT 'common' COMMENT '计划类型 common常规任务 temporary临时任务', |
||||
`TASK_CONTENT` text COMMENT '临时任务的巡检任务内容', |
||||
`message_template_id` bigint(20) DEFAULT NULL COMMENT '消息模板ID', |
||||
`ENABLE` tinyint(2) DEFAULT NULL COMMENT '是否启用', |
||||
PRIMARY KEY (`ID`) USING BTREE |
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='巡检计划模板表(专供演示数据使用)'; |
||||
|
||||
-- 巡检任务模板表 |
||||
CREATE TABLE `hz_st_ex_task_template` ( |
||||
`ID` bigint(20) NOT NULL COMMENT 'ID', |
||||
`PLAN_ID` bigint(20) DEFAULT NULL COMMENT '计划ID', |
||||
`TYPE` char(1) DEFAULT NULL COMMENT '计划模式 0 人员 1岗位 2机构 3自由模式 4 自由人模式', |
||||
`PLAN_NAME` varchar(128) DEFAULT NULL COMMENT '计划名称', |
||||
`BATCH_NUMBER` varchar(20) DEFAULT NULL COMMENT '任务批次号', |
||||
`CYCLE` char(1) DEFAULT NULL COMMENT '计划周期 0: 从不 1:每天 2:每月 3:每季度 5:每年 4:每周', |
||||
`METHOD` char(1) DEFAULT '0' COMMENT '派发方式:0 抢占模式 1 并发模式', |
||||
`PLAN_START_TIME` datetime DEFAULT NULL COMMENT '任务计划开始时间', |
||||
`PLAN_END_TIME` datetime DEFAULT NULL COMMENT '任务计划结束时间', |
||||
`START_TIME` datetime DEFAULT NULL COMMENT '任务实际开始时间', |
||||
`END_TIME` datetime DEFAULT NULL COMMENT '任务实际结束时间', |
||||
`KEEP_ON_RECORD` char(1) DEFAULT '0' COMMENT '巡检报备 0 未报备 1已报备', |
||||
`CREATE_USER` bigint(64) DEFAULT NULL COMMENT '创建人', |
||||
`CREATE_DEPT` bigint(64) DEFAULT NULL COMMENT '创建部门', |
||||
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间', |
||||
`UPDATE_USER` bigint(64) DEFAULT NULL COMMENT '修改人', |
||||
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '修改时间', |
||||
`STATUS` int(2) DEFAULT '0' COMMENT '任务状态 0未开始 1进行中 2暂停 3已完成 4未完成', |
||||
`IS_DELETED` int(2) NOT NULL DEFAULT '0' COMMENT '是否已删除', |
||||
`TENANT_ID` varchar(12) DEFAULT '000000' COMMENT '租户', |
||||
`AUTO_VIDEO` varchar(255) DEFAULT '0' COMMENT '巡检类型标识: 0普通巡检 1 视频自动巡检 2机器人巡检', |
||||
`TASK_CONTENT` text COMMENT '临时任务的巡检任务内容', |
||||
`PLAN_TYPE` varchar(20) DEFAULT 'common' COMMENT '计划类型common常规任务temporary临时任务', |
||||
`START_REMIND_FLAG` tinyint(1) DEFAULT '0' COMMENT '任务开始前 是否发送提醒短信 标识', |
||||
`END_REMIND_FLAG` tinyint(1) DEFAULT '0' COMMENT '任务结束前 是否发送提醒短信 标识', |
||||
`START_REMIND_TIME` datetime DEFAULT NULL COMMENT '开始前提醒时间', |
||||
`END_REMIND_TIME` datetime DEFAULT NULL COMMENT '结束前提醒时间', |
||||
`DUTY_ID` bigint(20) DEFAULT NULL COMMENT '值班ID', |
||||
`message_template_id` bigint(20) DEFAULT NULL COMMENT '消息模板ID', |
||||
`push_status` bigint(1) DEFAULT NULL COMMENT '推送状态', |
||||
`ENABLE` tinyint(2) DEFAULT NULL COMMENT '是否启用', |
||||
PRIMARY KEY (`ID`) USING BTREE |
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='巡检任务模板表(专供演示数据使用)'; |
||||
|
||||
-- 巡检任务对象模板表 |
||||
CREATE TABLE `hz_st_ex_object_template` ( |
||||
`ID` bigint(64) NOT NULL, |
||||
`TASK_ID` bigint(20) NOT NULL COMMENT '任务ID', |
||||
`OBJECT_ID` bigint(20) NOT NULL COMMENT '对象ID', |
||||
`CODE` varchar(18) DEFAULT NULL COMMENT '对象编码', |
||||
`NAME` varchar(128) DEFAULT NULL COMMENT '对象名称', |
||||
`ADDRESS` varchar(128) DEFAULT NULL COMMENT '地理位置', |
||||
`LGTD` decimal(13,10) DEFAULT NULL COMMENT '经度(东经)', |
||||
`LTTD` decimal(12,10) DEFAULT NULL COMMENT '纬度(北纬)', |
||||
`DUPLICATE_RECORD` char(1) DEFAULT '0' COMMENT '是否重复记录 0 不允许 1允许', |
||||
`CREATE_USER` bigint(64) DEFAULT NULL COMMENT '创建人', |
||||
`CREATE_DEPT` bigint(64) DEFAULT NULL COMMENT '创建部门', |
||||
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间', |
||||
`UPDATE_USER` bigint(64) DEFAULT NULL COMMENT '修改人', |
||||
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '修改时间', |
||||
`STATUS` int(2) DEFAULT '0' COMMENT '状态', |
||||
`IS_DELETED` int(2) NOT NULL DEFAULT '0' COMMENT '是否已删除', |
||||
`TENANT_ID` varchar(12) DEFAULT '000000' COMMENT '租户', |
||||
`ENABLE` tinyint(2) DEFAULT NULL COMMENT '是否启用', |
||||
PRIMARY KEY (`ID`) USING BTREE, |
||||
KEY `idx_task_id` (`TASK_ID`) USING BTREE |
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='巡检任务对象模板表(专供演示数据使用)'; |
||||
|
||||
-- 巡检任务对象项目模板表 |
||||
CREATE TABLE `hz_st_ex_object_project_template` ( |
||||
`ID` bigint(64) NOT NULL, |
||||
`TASK_ID` bigint(64) NOT NULL COMMENT '任务ID', |
||||
`OBJECT_ID` bigint(64) NOT NULL COMMENT '对象ID', |
||||
`PROJECT_ID` bigint(64) NOT NULL COMMENT '项目ID', |
||||
`CODE` varchar(18) DEFAULT NULL COMMENT '目标编码', |
||||
`NAME` varchar(128) DEFAULT NULL COMMENT '目标名称', |
||||
`DESCRIPTION` varchar(512) DEFAULT NULL COMMENT '目标描述', |
||||
`CREATE_USER` bigint(64) DEFAULT NULL COMMENT '创建人', |
||||
`CREATE_DEPT` bigint(64) DEFAULT NULL COMMENT '创建部门', |
||||
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间', |
||||
`UPDATE_USER` bigint(64) DEFAULT NULL COMMENT '修改人', |
||||
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '修改时间', |
||||
`STATUS` int(2) DEFAULT '0' COMMENT '状态', |
||||
`IS_DELETED` int(2) NOT NULL DEFAULT '0' COMMENT '是否已删除', |
||||
`TENANT_ID` varchar(12) DEFAULT '000000' COMMENT '租户', |
||||
`ENABLE` tinyint(2) DEFAULT NULL COMMENT '是否启用', |
||||
PRIMARY KEY (`ID`) USING BTREE, |
||||
KEY `idx_task_id` (`TASK_ID`) USING BTREE |
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='巡检任务对象项目模板表(专供演示数据使用)'; |
||||
|
||||
CREATE TABLE `hz_st_ex_object_project_content_template` ( |
||||
`ID` bigint(64) NOT NULL, |
||||
`TASK_ID` bigint(20) NOT NULL COMMENT '任务ID', |
||||
`OBJECT_ID` bigint(20) NOT NULL COMMENT '对象ID', |
||||
`PROJECT_ID` bigint(20) NOT NULL COMMENT '项目ID', |
||||
`CONTENT_ID` bigint(20) NOT NULL COMMENT '内容ID', |
||||
`CODE` varchar(18) DEFAULT NULL COMMENT '内容编码 由系统自动生成自动生成', |
||||
`NAME` varchar(128) DEFAULT NULL COMMENT '内容名称', |
||||
`AVAILABLE` char(1) DEFAULT '1' COMMENT '完成标识 0 不可用 1 可用', |
||||
`DESCRIPTION` varchar(512) DEFAULT NULL COMMENT '内容描述', |
||||
`CHECK_TYPE` char(2) DEFAULT NULL COMMENT '检测类型', |
||||
`RECORD_TYPE` char(1) DEFAULT NULL COMMENT '记录类型', |
||||
`CHECK_TYPE_SON` varchar(256) DEFAULT NULL COMMENT '存字典表key 检测类型子类 子类的子类通过-隔开例如:1-12', |
||||
`CREATE_USER` bigint(64) DEFAULT NULL COMMENT '创建人', |
||||
`CREATE_DEPT` bigint(64) DEFAULT NULL COMMENT '创建部门', |
||||
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间', |
||||
`UPDATE_USER` bigint(64) DEFAULT NULL COMMENT '修改人', |
||||
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '修改时间', |
||||
`STATUS` int(2) DEFAULT '0' COMMENT '状态', |
||||
`IS_DELETED` int(2) NOT NULL DEFAULT '0' COMMENT '是否已删除', |
||||
`TENANT_ID` varchar(12) DEFAULT '000000' COMMENT '租户', |
||||
`CLOCK_ID` bigint(20) DEFAULT NULL COMMENT '表针识别 表盘ID', |
||||
`CAMERA_ID` bigint(20) DEFAULT NULL COMMENT '视频巡检摄像机ID', |
||||
`CAMERA_ADDR` varchar(128) DEFAULT NULL COMMENT '开关/灯/表盘在摄像机可视面二维坐标位置 例如:2 1 表示第三行第二列 行列均从0开始记录 默认 0 0 如果有多张图则:0 0 1( 最后一位表示所在图片 最后一位1表示第二张图) 默认0 0 0', |
||||
`OTHER_PARAM` varchar(1024) DEFAULT NULL COMMENT '其他参数 例如多联断路器内断路器的个数', |
||||
`CHECK_VAL` varchar(512) DEFAULT NULL COMMENT '校验值 用来判断当前值是否正确:枚举数据通过 “ ”隔开 区间通过~隔开', |
||||
`DICT_TYPE` varchar(255) DEFAULT NULL COMMENT '记值方式为选择时选择值', |
||||
`ENABLE` tinyint(2) DEFAULT NULL COMMENT '是否启用', |
||||
PRIMARY KEY (`ID`) USING BTREE, |
||||
KEY `idx_task_id` (`TASK_ID`) USING BTREE |
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='巡检任务对象项目内容模板表(专供演示数据使用)'; |
||||
|
||||
-- 巡检情况列模板表 |
||||
CREATE TABLE `hz_st_ex_event_template` ( |
||||
`ID` bigint(20) NOT NULL COMMENT 'ID', |
||||
`TASK_ID` bigint(20) DEFAULT NULL COMMENT '任务ID', |
||||
`OBJECT_ID` bigint(20) DEFAULT NULL COMMENT '对象ID', |
||||
`PROJECT_ID` bigint(20) DEFAULT NULL COMMENT '项目ID', |
||||
`USER_ID` bigint(20) DEFAULT NULL COMMENT '事件登记人', |
||||
`CODE` varchar(18) DEFAULT NULL COMMENT '事件编号', |
||||
`TITLE` varchar(128) DEFAULT NULL COMMENT '事件标题', |
||||
`DESCRIPTION` varchar(1024) DEFAULT NULL COMMENT '事件描述', |
||||
`IS_PROBLEM` char(1) DEFAULT '0' COMMENT '是否问题 0:否 1 是 默认0', |
||||
`TYPE_BIG` char(10) DEFAULT NULL COMMENT '问题类型(大)', |
||||
`TYPE_SMALL` char(10) DEFAULT NULL COMMENT '问题类型(小)', |
||||
`LGTD` decimal(13,10) DEFAULT NULL COMMENT '经度(东经)', |
||||
`LTTD` decimal(12,10) DEFAULT NULL COMMENT '纬度(北纬)', |
||||
`ADDRESS` varchar(256) DEFAULT NULL COMMENT '事件地点', |
||||
`PROCESS_DEFINITION_ID` varchar(64) DEFAULT NULL COMMENT '流程定义id', |
||||
`PROCESS_INSTANCE_ID` varchar(64) DEFAULT NULL COMMENT '流程实例id', |
||||
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间', |
||||
`CREATE_USER` bigint(64) DEFAULT NULL, |
||||
`CREATE_DEPT` bigint(64) DEFAULT NULL COMMENT '创建部门', |
||||
`UPDATE_USER` bigint(64) DEFAULT NULL COMMENT '修改人', |
||||
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '修改时间', |
||||
`STATUS` int(2) DEFAULT '0' COMMENT '状态', |
||||
`IS_DELETED` int(2) NOT NULL DEFAULT '0' COMMENT '是否已删除', |
||||
`TENANT_ID` varchar(12) DEFAULT NULL COMMENT '租户', |
||||
`ENABLE` tinyint(2) DEFAULT NULL COMMENT '是否启用', |
||||
PRIMARY KEY (`ID`) USING BTREE, |
||||
KEY `idx_task_id` (`TASK_ID`) USING BTREE |
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='巡检情况列模板表(专供演示数据使用)'; |
||||
|
||||
-- 巡检情况记录模板表 |
||||
CREATE TABLE `hz_st_ex_event_record_template` ( |
||||
`ID` bigint(64) NOT NULL, |
||||
`EVENT_ID` bigint(20) NOT NULL COMMENT '事件ID', |
||||
`OBJECT_ID` bigint(20) NOT NULL COMMENT '对象ID', |
||||
`PROJECT_ID` bigint(20) NOT NULL COMMENT '项目ID', |
||||
`CONTENT_ID` bigint(20) NOT NULL COMMENT '内容ID', |
||||
`CURRENT_STATUS` char(1) DEFAULT '1' COMMENT '内容当前状态 0 异常 1 正常 ', |
||||
`CURRENT_VALUE` varchar(512) DEFAULT NULL COMMENT '内容当前值', |
||||
`CURRENT_DESC` varchar(512) DEFAULT NULL COMMENT '内容当前描述', |
||||
`CODE` varchar(18) DEFAULT NULL COMMENT '内容编码:由系统自动生成自动生成', |
||||
`NAME` varchar(128) DEFAULT NULL COMMENT '内容名称', |
||||
`DESCRIPTION` varchar(512) DEFAULT NULL COMMENT '内容描述', |
||||
`RECORD_TYPE` char(1) DEFAULT NULL COMMENT '记录类型 0 不记录 1仅选择 2仅记值 3选择并记值', |
||||
`CHECK_TYPE` char(2) DEFAULT NULL COMMENT '检测类型 原来数据字典 暂时设计只支持99个类型', |
||||
`CREATE_USER` bigint(64) DEFAULT NULL COMMENT '创建人', |
||||
`CREATE_DEPT` bigint(64) DEFAULT NULL COMMENT '创建部门', |
||||
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间', |
||||
`UPDATE_USER` bigint(64) DEFAULT NULL COMMENT '修改人', |
||||
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '修改时间', |
||||
`STATUS` int(2) DEFAULT NULL COMMENT '状态', |
||||
`IS_DELETED` int(2) NOT NULL DEFAULT '0' COMMENT '是否已删除', |
||||
`TENANT_ID` varchar(12) DEFAULT '000000' COMMENT '租户', |
||||
`CHECK_TYPE_SON` varchar(256) DEFAULT NULL COMMENT '存字典表key 检测类型子类 子类的子类通过-隔开例如:1-12', |
||||
`FILE_URL` varchar(512) DEFAULT NULL COMMENT '文件地址', |
||||
`CAMERA_ADDR` varchar(256) DEFAULT NULL COMMENT '开关/灯/表盘在摄像机可视面二维坐标位置 例如:2 1 表示第三行第二列 行列均从0开始记录 默认 0 0 如果有多张图则:0 0 1( 最后一位表示所在图片 最后一位1表示第二张图) 默认0 0 0', |
||||
`OTHER_PARAM` varchar(1024) DEFAULT NULL COMMENT '其他参数 例如多联断路器内断路器的', |
||||
`CHECK_VAL` varchar(512) DEFAULT NULL COMMENT '校验值 用来判断当前值是否正确:枚举数据通过 隔开 区间通过 隔开', |
||||
`DICT_TYPE` varchar(255) DEFAULT NULL COMMENT '记值方式为选择时选择值', |
||||
`ENABLE` tinyint(2) DEFAULT NULL COMMENT '是否启用', |
||||
PRIMARY KEY (`ID`) USING BTREE, |
||||
KEY `idx_event_id` (`EVENT_ID`) USING BTREE, |
||||
KEY `idx_is_deleted_tenant_id` (`IS_DELETED`,`TENANT_ID`) USING BTREE |
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='巡检情况记录模板表(专供演示数据使用)'; |
||||
|
Loading…
Reference in new issue