From ac05a76efe11b481e4b9e186b27a7e25ca19af9b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?=
<7507756+jiang_yuqi@user.noreply.gitee.com>
Date: Thu, 28 Sep 2023 00:36:22 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-common/pom.xml | 5 +
.../common/utils/file/MultipartFileUtils.java | 21 +
.../src/api/project/aiBoxProjectConfig.js | 44 ++
ruoyi-ui/src/api/project/aiBoxProjectData.js | 44 ++
.../project/aiBoxProjectConfig/index.vue | 407 ++++++++++++++++
.../views/project/aiBoxProjectData/index.vue | 417 ++++++++++++++++
.../DevAiProjectConfigController.java | 104 ++++
.../DevAiProjectDataController.java | 104 ++++
.../jh/project/domain/DevAiProjectConfig.java | 182 +++++++
.../jh/project/domain/DevAiProjectData.java | 447 ++++++++++++++++++
.../project/domain/vo/DevAiProjectDataVO.java | 295 ++++++++++++
.../mapper/DevAiProjectConfigMapper.java | 61 +++
.../mapper/DevAiProjectDataMapper.java | 61 +++
.../service/IDevAiProjectConfigService.java | 61 +++
.../service/IDevAiProjectDataService.java | 70 +++
.../impl/DevAiProjectConfigServiceImpl.java | 98 ++++
.../impl/DevAiProjectDataServiceImpl.java | 188 ++++++++
.../yanzhu/jh/publics/AIBoxController.java | 47 ++
.../project/DevAiProjectConfigMapper.xml | 121 +++++
.../mapper/project/DevAiProjectDataMapper.xml | 176 +++++++
20 files changed, 2953 insertions(+)
create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MultipartFileUtils.java
create mode 100644 ruoyi-ui/src/api/project/aiBoxProjectConfig.js
create mode 100644 ruoyi-ui/src/api/project/aiBoxProjectData.js
create mode 100644 ruoyi-ui/src/views/project/aiBoxProjectConfig/index.vue
create mode 100644 ruoyi-ui/src/views/project/aiBoxProjectData/index.vue
create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/DevAiProjectConfigController.java
create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/DevAiProjectDataController.java
create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/DevAiProjectConfig.java
create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/DevAiProjectData.java
create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/DevAiProjectDataVO.java
create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/DevAiProjectConfigMapper.java
create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/DevAiProjectDataMapper.java
create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/IDevAiProjectConfigService.java
create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/IDevAiProjectDataService.java
create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/DevAiProjectConfigServiceImpl.java
create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/DevAiProjectDataServiceImpl.java
create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/publics/AIBoxController.java
create mode 100644 yanzhu-jh/src/main/resources/mapper/project/DevAiProjectConfigMapper.xml
create mode 100644 yanzhu-jh/src/main/resources/mapper/project/DevAiProjectDataMapper.xml
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index 3cf0f998..ddce0f76 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -29,6 +29,11 @@
spring-web
+
+ org.springframework
+ spring-test
+
+
org.springframework.boot
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MultipartFileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MultipartFileUtils.java
new file mode 100644
index 00000000..bb47374f
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MultipartFileUtils.java
@@ -0,0 +1,21 @@
+package com.ruoyi.common.utils.file;
+
+import org.springframework.mock.web.MockMultipartFile;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.Base64;
+
+/**
+ * JiangYuQi
+ */
+public class MultipartFileUtils {
+
+ public static MultipartFile base64ToMultipartFile(String base64) throws IOException {
+ String[] parts = base64.split(",");
+ String contentType = parts[0].split(";")[0].split(":")[1];
+ byte[] bytes = Base64.getDecoder().decode(parts[1]);
+ return new MockMultipartFile("file", "file", contentType, bytes);
+ }
+
+}
diff --git a/ruoyi-ui/src/api/project/aiBoxProjectConfig.js b/ruoyi-ui/src/api/project/aiBoxProjectConfig.js
new file mode 100644
index 00000000..922ca1fc
--- /dev/null
+++ b/ruoyi-ui/src/api/project/aiBoxProjectConfig.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询设备配置列表
+export function listAiBoxProjectConfig(query) {
+ return request({
+ url: '/project/aiBoxProjectConfig/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询设备配置详细
+export function getAiBoxProjectConfig(id) {
+ return request({
+ url: '/project/aiBoxProjectConfig/' + id,
+ method: 'get'
+ })
+}
+
+// 新增设备配置
+export function addAiBoxProjectConfig(data) {
+ return request({
+ url: '/project/aiBoxProjectConfig',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改设备配置
+export function updateAiBoxProjectConfig(data) {
+ return request({
+ url: '/project/aiBoxProjectConfig',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除设备配置
+export function delAiBoxProjectConfig(id) {
+ return request({
+ url: '/project/aiBoxProjectConfig/' + id,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/api/project/aiBoxProjectData.js b/ruoyi-ui/src/api/project/aiBoxProjectData.js
new file mode 100644
index 00000000..0b283c58
--- /dev/null
+++ b/ruoyi-ui/src/api/project/aiBoxProjectData.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询设备数据列表
+export function listAiBoxProjectData(query) {
+ return request({
+ url: '/project/aiBoxProjectData/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询设备数据详细
+export function getAiBoxProjectData(id) {
+ return request({
+ url: '/project/aiBoxProjectData/' + id,
+ method: 'get'
+ })
+}
+
+// 新增设备数据
+export function addAiBoxProjectData(data) {
+ return request({
+ url: '/project/aiBoxProjectData',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改设备数据
+export function updateAiBoxProjectData(data) {
+ return request({
+ url: '/project/aiBoxProjectData',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除设备数据
+export function delAiBoxProjectData(id) {
+ return request({
+ url: '/project/aiBoxProjectData/' + id,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/views/project/aiBoxProjectConfig/index.vue b/ruoyi-ui/src/views/project/aiBoxProjectConfig/index.vue
new file mode 100644
index 00000000..173fdff8
--- /dev/null
+++ b/ruoyi-ui/src/views/project/aiBoxProjectConfig/index.vue
@@ -0,0 +1,407 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/project/aiBoxProjectData/index.vue b/ruoyi-ui/src/views/project/aiBoxProjectData/index.vue
new file mode 100644
index 00000000..3ac86848
--- /dev/null
+++ b/ruoyi-ui/src/views/project/aiBoxProjectData/index.vue
@@ -0,0 +1,417 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.timestamp, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/DevAiProjectConfigController.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/DevAiProjectConfigController.java
new file mode 100644
index 00000000..b1d357c6
--- /dev/null
+++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/DevAiProjectConfigController.java
@@ -0,0 +1,104 @@
+package com.yanzhu.jh.project.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.yanzhu.jh.project.domain.DevAiProjectConfig;
+import com.yanzhu.jh.project.service.IDevAiProjectConfigService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 设备配置Controller
+ *
+ * @author JiangYuQi
+ * @date 2023-09-27
+ */
+@RestController
+@RequestMapping("/project/aiBoxProjectConfig")
+public class DevAiProjectConfigController extends BaseController
+{
+ @Autowired
+ private IDevAiProjectConfigService devAiProjectConfigService;
+
+ /**
+ * 查询设备配置列表
+ */
+ @PreAuthorize("@ss.hasPermi('project:aiBoxProjectConfig:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(DevAiProjectConfig devAiProjectConfig)
+ {
+ startPage();
+ List list = devAiProjectConfigService.selectDevAiProjectConfigList(devAiProjectConfig);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出设备配置列表
+ */
+ @PreAuthorize("@ss.hasPermi('project:aiBoxProjectConfig:export')")
+ @Log(title = "设备配置", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, DevAiProjectConfig devAiProjectConfig)
+ {
+ List list = devAiProjectConfigService.selectDevAiProjectConfigList(devAiProjectConfig);
+ ExcelUtil util = new ExcelUtil(DevAiProjectConfig.class);
+ util.exportExcel(response, list, "设备配置数据");
+ }
+
+ /**
+ * 获取设备配置详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('project:aiBoxProjectConfig:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(devAiProjectConfigService.selectDevAiProjectConfigById(id));
+ }
+
+ /**
+ * 新增设备配置
+ */
+ @PreAuthorize("@ss.hasPermi('project:aiBoxProjectConfig:add')")
+ @Log(title = "设备配置", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody DevAiProjectConfig devAiProjectConfig)
+ {
+ return toAjax(devAiProjectConfigService.insertDevAiProjectConfig(devAiProjectConfig));
+ }
+
+ /**
+ * 修改设备配置
+ */
+ @PreAuthorize("@ss.hasPermi('project:aiBoxProjectConfig:edit')")
+ @Log(title = "设备配置", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody DevAiProjectConfig devAiProjectConfig)
+ {
+ return toAjax(devAiProjectConfigService.updateDevAiProjectConfig(devAiProjectConfig));
+ }
+
+ /**
+ * 删除设备配置
+ */
+ @PreAuthorize("@ss.hasPermi('project:aiBoxProjectConfig:remove')")
+ @Log(title = "设备配置", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(devAiProjectConfigService.deleteDevAiProjectConfigByIds(ids));
+ }
+}
diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/DevAiProjectDataController.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/DevAiProjectDataController.java
new file mode 100644
index 00000000..b3fc3ad7
--- /dev/null
+++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/DevAiProjectDataController.java
@@ -0,0 +1,104 @@
+package com.yanzhu.jh.project.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.yanzhu.jh.project.domain.DevAiProjectData;
+import com.yanzhu.jh.project.service.IDevAiProjectDataService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 设备数据Controller
+ *
+ * @author JiangYuQi
+ * @date 2023-09-27
+ */
+@RestController
+@RequestMapping("/project/aiBoxProjectData")
+public class DevAiProjectDataController extends BaseController
+{
+ @Autowired
+ private IDevAiProjectDataService devAiProjectDataService;
+
+ /**
+ * 查询设备数据列表
+ */
+ @PreAuthorize("@ss.hasPermi('project:aiBoxProjectData:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(DevAiProjectData devAiProjectData)
+ {
+ startPage();
+ List list = devAiProjectDataService.selectDevAiProjectDataList(devAiProjectData);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出设备数据列表
+ */
+ @PreAuthorize("@ss.hasPermi('project:aiBoxProjectData:export')")
+ @Log(title = "设备数据", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, DevAiProjectData devAiProjectData)
+ {
+ List list = devAiProjectDataService.selectDevAiProjectDataList(devAiProjectData);
+ ExcelUtil util = new ExcelUtil(DevAiProjectData.class);
+ util.exportExcel(response, list, "设备数据数据");
+ }
+
+ /**
+ * 获取设备数据详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('project:aiBoxProjectData:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(devAiProjectDataService.selectDevAiProjectDataById(id));
+ }
+
+ /**
+ * 新增设备数据
+ */
+ @PreAuthorize("@ss.hasPermi('project:aiBoxProjectData:add')")
+ @Log(title = "设备数据", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody DevAiProjectData devAiProjectData)
+ {
+ return toAjax(devAiProjectDataService.insertDevAiProjectData(devAiProjectData));
+ }
+
+ /**
+ * 修改设备数据
+ */
+ @PreAuthorize("@ss.hasPermi('project:aiBoxProjectData:edit')")
+ @Log(title = "设备数据", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody DevAiProjectData devAiProjectData)
+ {
+ return toAjax(devAiProjectDataService.updateDevAiProjectData(devAiProjectData));
+ }
+
+ /**
+ * 删除设备数据
+ */
+ @PreAuthorize("@ss.hasPermi('project:aiBoxProjectData:remove')")
+ @Log(title = "设备数据", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(devAiProjectDataService.deleteDevAiProjectDataByIds(ids));
+ }
+}
diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/DevAiProjectConfig.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/DevAiProjectConfig.java
new file mode 100644
index 00000000..064d37a7
--- /dev/null
+++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/DevAiProjectConfig.java
@@ -0,0 +1,182 @@
+package com.yanzhu.jh.project.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 设备配置对象 dev_ai_project_config
+ *
+ * @author JiangYuQi
+ * @date 2023-09-27
+ */
+public class DevAiProjectConfig extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long id;
+
+ /** 项目主键 */
+ @Excel(name = "项目主键")
+ private Long projectId;
+
+ /** 单位主键 */
+ @Excel(name = "单位主键")
+ private Long deptId;
+
+ /** 通道号 */
+ @Excel(name = "通道号")
+ private Long channelId;
+
+ /** 通道名称 */
+ @Excel(name = "通道名称")
+ private String channelName;
+
+ /** 相机名称 */
+ @Excel(name = "相机名称")
+ private String ipcName;
+
+ /** 设备名称 */
+ @Excel(name = "设备名称")
+ private String deviceName;
+
+ /** 设备序列号 */
+ @Excel(name = "设备序列号")
+ private String serialNumber;
+
+ /** 厂商名称 */
+ @Excel(name = "厂商名称")
+ private String manufacturer;
+
+ /** 数据状态 */
+ @Excel(name = "数据状态")
+ private String isDel;
+
+ /** 是否重要 */
+ @Excel(name = "是否重要")
+ private String isImportance;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setProjectId(Long projectId)
+ {
+ this.projectId = projectId;
+ }
+
+ public Long getProjectId()
+ {
+ return projectId;
+ }
+ public void setDeptId(Long deptId)
+ {
+ this.deptId = deptId;
+ }
+
+ public Long getDeptId()
+ {
+ return deptId;
+ }
+ public void setChannelId(Long channelId)
+ {
+ this.channelId = channelId;
+ }
+
+ public Long getChannelId()
+ {
+ return channelId;
+ }
+ public void setChannelName(String channelName)
+ {
+ this.channelName = channelName;
+ }
+
+ public String getChannelName()
+ {
+ return channelName;
+ }
+ public void setIpcName(String ipcName)
+ {
+ this.ipcName = ipcName;
+ }
+
+ public String getIpcName()
+ {
+ return ipcName;
+ }
+ public void setDeviceName(String deviceName)
+ {
+ this.deviceName = deviceName;
+ }
+
+ public String getDeviceName()
+ {
+ return deviceName;
+ }
+ public void setSerialNumber(String serialNumber)
+ {
+ this.serialNumber = serialNumber;
+ }
+
+ public String getSerialNumber()
+ {
+ return serialNumber;
+ }
+ public void setManufacturer(String manufacturer)
+ {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturer()
+ {
+ return manufacturer;
+ }
+ public void setIsDel(String isDel)
+ {
+ this.isDel = isDel;
+ }
+
+ public String getIsDel()
+ {
+ return isDel;
+ }
+ public void setIsImportance(String isImportance)
+ {
+ this.isImportance = isImportance;
+ }
+
+ public String getIsImportance()
+ {
+ return isImportance;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("projectId", getProjectId())
+ .append("deptId", getDeptId())
+ .append("channelId", getChannelId())
+ .append("channelName", getChannelName())
+ .append("ipcName", getIpcName())
+ .append("deviceName", getDeviceName())
+ .append("serialNumber", getSerialNumber())
+ .append("manufacturer", getManufacturer())
+ .append("isDel", getIsDel())
+ .append("isImportance", getIsImportance())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("remark", getRemark())
+ .toString();
+ }
+}
diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/DevAiProjectData.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/DevAiProjectData.java
new file mode 100644
index 00000000..80c51b50
--- /dev/null
+++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/DevAiProjectData.java
@@ -0,0 +1,447 @@
+package com.yanzhu.jh.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 设备数据对象 dev_ai_project_data
+ *
+ * @author JiangYuQi
+ * @date 2023-09-27
+ */
+public class DevAiProjectData extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long id;
+
+ /** 项目主键 */
+ @Excel(name = "项目主键")
+ private Long projectId;
+
+ /** 部门主键 */
+ @Excel(name = "部门主键")
+ private Long deptId;
+
+ /** 设备ID */
+ @Excel(name = "设备ID")
+ private Long deviceId;
+
+ /** 设备名称 */
+ @Excel(name = "设备名称")
+ private String deviceName;
+
+ /** 设备网口 0 IP 地址 */
+ @Excel(name = "设备网口 0 IP 地址")
+ private String deviceAddr0;
+
+ /** 设备网口 1 IP 地址 */
+ @Excel(name = "设备网口 1 IP 地址")
+ private String deviceAddr1;
+
+ /** 设备的序列号 */
+ @Excel(name = "设备的序列号")
+ private String serialNumber;
+
+ /** 相机的序列号 */
+ @Excel(name = "相机的序列号")
+ private String ipcSerialNum;
+
+ /** 相机的 IP 地址 */
+ @Excel(name = "相机的 IP 地址")
+ private String ipcAddr;
+
+ /** 行为分析图片地址 */
+ @Excel(name = "行为分析图片地址")
+ private String imageUrl;
+
+ /** 通道号,用来唯一标识任务 ID */
+ @Excel(name = "通道号,用来唯一标识任务 ID")
+ private Long channelId;
+
+ /** 通道名称 */
+ @Excel(name = "通道名称")
+ private String channelName;
+
+ /** 报警类型 */
+ @Excel(name = "报警类型")
+ private Long alarmType;
+
+ /** 告警 ID */
+ @Excel(name = "告警 ID")
+ private Long alarmId;
+
+ /** 上报间隔 */
+ @Excel(name = "上报间隔")
+ private String reportRate;
+
+ /** 采集时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date timestamp;
+
+ /** 左上角 X 坐标 */
+ @Excel(name = "左上角 X 坐标")
+ private String leftTopX;
+
+ /** 左上角 Y 坐标 */
+ @Excel(name = "左上角 Y 坐标")
+ private String leftTopY;
+
+ /** 右下角 X 坐标 */
+ @Excel(name = "右下角 X 坐标")
+ private String rightBtmX;
+
+ /** 右下角 Y 坐标 */
+ @Excel(name = "右下角 Y 坐标")
+ private String rightBtmY;
+
+ /** 当前告警区域人数 */
+ @Excel(name = "当前告警区域人数")
+ private Long personNum;
+
+ /** 绊线进入人数数量 */
+ @Excel(name = "绊线进入人数数量")
+ private Long inNum;
+
+ /** 绊线离开人数数量 */
+ @Excel(name = "绊线离开人数数量")
+ private Long outNum;
+
+ /** 车牌号 */
+ @Excel(name = "车牌号")
+ private Long plateNo;
+
+ /** ValueType 为 1 时,代表明火检测;ValueType 为 2 时,代表烟雾检测; */
+ @Excel(name = "ValueType 为 1 时,代表明火检测;ValueType 为 2 时,代表烟雾检测;")
+ private String valueType;
+
+ /** 告警短视频的地址 */
+ @Excel(name = "告警短视频的地址")
+ private String alarmVideourl;
+
+ /** 告警短视频的名称 */
+ @Excel(name = "告警短视频的名称")
+ private String alarmVideoName;
+
+ /** 人脸比对结果 */
+ @Excel(name = "人脸比对结果")
+ private String compareResult;
+
+ /** 数据状态 */
+ @Excel(name = "数据状态")
+ private String isDel;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setProjectId(Long projectId)
+ {
+ this.projectId = projectId;
+ }
+
+ public Long getProjectId()
+ {
+ return projectId;
+ }
+ public void setDeptId(Long deptId)
+ {
+ this.deptId = deptId;
+ }
+
+ public Long getDeptId()
+ {
+ return deptId;
+ }
+ public void setDeviceId(Long deviceId)
+ {
+ this.deviceId = deviceId;
+ }
+
+ public Long getDeviceId()
+ {
+ return deviceId;
+ }
+ public void setDeviceName(String deviceName)
+ {
+ this.deviceName = deviceName;
+ }
+
+ public String getDeviceName()
+ {
+ return deviceName;
+ }
+ public void setDeviceAddr0(String deviceAddr0)
+ {
+ this.deviceAddr0 = deviceAddr0;
+ }
+
+ public String getDeviceAddr0()
+ {
+ return deviceAddr0;
+ }
+ public void setDeviceAddr1(String deviceAddr1)
+ {
+ this.deviceAddr1 = deviceAddr1;
+ }
+
+ public String getDeviceAddr1()
+ {
+ return deviceAddr1;
+ }
+ public void setSerialNumber(String serialNumber)
+ {
+ this.serialNumber = serialNumber;
+ }
+
+ public String getSerialNumber()
+ {
+ return serialNumber;
+ }
+ public void setIpcSerialNum(String ipcSerialNum)
+ {
+ this.ipcSerialNum = ipcSerialNum;
+ }
+
+ public String getIpcSerialNum()
+ {
+ return ipcSerialNum;
+ }
+ public void setIpcAddr(String ipcAddr)
+ {
+ this.ipcAddr = ipcAddr;
+ }
+
+ public String getIpcAddr()
+ {
+ return ipcAddr;
+ }
+ public void setImageUrl(String imageUrl)
+ {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getImageUrl()
+ {
+ return imageUrl;
+ }
+ public void setChannelId(Long channelId)
+ {
+ this.channelId = channelId;
+ }
+
+ public Long getChannelId()
+ {
+ return channelId;
+ }
+ public void setChannelName(String channelName)
+ {
+ this.channelName = channelName;
+ }
+
+ public String getChannelName()
+ {
+ return channelName;
+ }
+ public void setAlarmType(Long alarmType)
+ {
+ this.alarmType = alarmType;
+ }
+
+ public Long getAlarmType()
+ {
+ return alarmType;
+ }
+ public void setAlarmId(Long alarmId)
+ {
+ this.alarmId = alarmId;
+ }
+
+ public Long getAlarmId()
+ {
+ return alarmId;
+ }
+ public void setReportRate(String reportRate)
+ {
+ this.reportRate = reportRate;
+ }
+
+ public String getReportRate()
+ {
+ return reportRate;
+ }
+ public void setTimestamp(Date timestamp)
+ {
+ this.timestamp = timestamp;
+ }
+
+ public Date getTimestamp()
+ {
+ return timestamp;
+ }
+ public void setLeftTopX(String leftTopX)
+ {
+ this.leftTopX = leftTopX;
+ }
+
+ public String getLeftTopX()
+ {
+ return leftTopX;
+ }
+ public void setLeftTopY(String leftTopY)
+ {
+ this.leftTopY = leftTopY;
+ }
+
+ public String getLeftTopY()
+ {
+ return leftTopY;
+ }
+ public void setRightBtmX(String rightBtmX)
+ {
+ this.rightBtmX = rightBtmX;
+ }
+
+ public String getRightBtmX()
+ {
+ return rightBtmX;
+ }
+ public void setRightBtmY(String rightBtmY)
+ {
+ this.rightBtmY = rightBtmY;
+ }
+
+ public String getRightBtmY()
+ {
+ return rightBtmY;
+ }
+ public void setPersonNum(Long personNum)
+ {
+ this.personNum = personNum;
+ }
+
+ public Long getPersonNum()
+ {
+ return personNum;
+ }
+ public void setInNum(Long inNum)
+ {
+ this.inNum = inNum;
+ }
+
+ public Long getInNum()
+ {
+ return inNum;
+ }
+ public void setOutNum(Long outNum)
+ {
+ this.outNum = outNum;
+ }
+
+ public Long getOutNum()
+ {
+ return outNum;
+ }
+ public void setPlateNo(Long plateNo)
+ {
+ this.plateNo = plateNo;
+ }
+
+ public Long getPlateNo()
+ {
+ return plateNo;
+ }
+ public void setValueType(String valueType)
+ {
+ this.valueType = valueType;
+ }
+
+ public String getValueType()
+ {
+ return valueType;
+ }
+ public void setAlarmVideourl(String alarmVideourl)
+ {
+ this.alarmVideourl = alarmVideourl;
+ }
+
+ public String getAlarmVideourl()
+ {
+ return alarmVideourl;
+ }
+ public void setAlarmVideoName(String alarmVideoName)
+ {
+ this.alarmVideoName = alarmVideoName;
+ }
+
+ public String getAlarmVideoName()
+ {
+ return alarmVideoName;
+ }
+ public void setCompareResult(String compareResult)
+ {
+ this.compareResult = compareResult;
+ }
+
+ public String getCompareResult()
+ {
+ return compareResult;
+ }
+ public void setIsDel(String isDel)
+ {
+ this.isDel = isDel;
+ }
+
+ public String getIsDel()
+ {
+ return isDel;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("projectId", getProjectId())
+ .append("deptId", getDeptId())
+ .append("deviceId", getDeviceId())
+ .append("deviceName", getDeviceName())
+ .append("deviceAddr0", getDeviceAddr0())
+ .append("deviceAddr1", getDeviceAddr1())
+ .append("serialNumber", getSerialNumber())
+ .append("ipcSerialNum", getIpcSerialNum())
+ .append("ipcAddr", getIpcAddr())
+ .append("imageUrl", getImageUrl())
+ .append("channelId", getChannelId())
+ .append("channelName", getChannelName())
+ .append("alarmType", getAlarmType())
+ .append("alarmId", getAlarmId())
+ .append("reportRate", getReportRate())
+ .append("timestamp", getTimestamp())
+ .append("leftTopX", getLeftTopX())
+ .append("leftTopY", getLeftTopY())
+ .append("rightBtmX", getRightBtmX())
+ .append("rightBtmY", getRightBtmY())
+ .append("personNum", getPersonNum())
+ .append("inNum", getInNum())
+ .append("outNum", getOutNum())
+ .append("plateNo", getPlateNo())
+ .append("valueType", getValueType())
+ .append("alarmVideourl", getAlarmVideourl())
+ .append("alarmVideoName", getAlarmVideoName())
+ .append("compareResult", getCompareResult())
+ .append("createTime", getCreateTime())
+ .append("isDel", getIsDel())
+ .toString();
+ }
+}
diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/DevAiProjectDataVO.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/DevAiProjectDataVO.java
new file mode 100644
index 00000000..0e4560d8
--- /dev/null
+++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/DevAiProjectDataVO.java
@@ -0,0 +1,295 @@
+package com.yanzhu.jh.project.domain.vo;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Map;
+
+public class DevAiProjectDataVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** 设备ID */
+ private Long DeviceId;
+
+ /** 设备名称 */
+ private String DeviceName;
+
+ /** 设备网口 0 IP 地址 */
+ private String DeviceAddr0;
+
+ /** 设备网口 1 IP 地址 */
+ private String DeviceAddr1;
+
+ /** 设备的序列号 */
+ private String SerialNumber;
+
+ /** 相机的序列号 */
+ private String IPCSerialNum;
+
+ /** 相机的 IP 地址 */
+ private String IPCAddr;
+
+ /** 通道号,用来唯一标识任务 ID */
+ private Long ChannelId;
+
+ /** 通道名称 */
+ private String ChannelName;
+
+ /** 报警类型 */
+ private Long AlarmType;
+
+ /** 告警 ID */
+ private Long AlarmId;
+
+ /** 上报间隔 */
+ private String ReportRate;
+
+ /** 采集时间 */
+ private Long Timestamp;
+
+ /** 左上角 X 坐标 */
+ private String LeftTopX;
+
+ /** 左上角 Y 坐标 */
+ private String LeftTopY;
+
+ /** 右下角 X 坐标 */
+ private String RightBtmX;
+
+ /** 右下角 Y 坐标 */
+ private String RightBtmY;
+
+ /** 当前告警区域人数 */
+ private Long PersonNum;
+
+ /** 绊线进入人数数量 */
+ private Long InNum;
+
+ /** 绊线离开人数数量 */
+ private Long OutNum;
+
+ /** 车牌号 */
+ private Long PlateNo;
+
+ /** ValueType 为 1 时,代表明火检测;ValueType 为 2 时,代表烟雾检测; */
+ private String ValueType;
+
+ /** 告警短视频的地址 */
+ private String AlarmVideourl;
+
+ /** 告警短视频的名称 */
+ private String AlarmVideoName;
+
+ /** 人脸比对结果 */
+ private String CompareResult;
+
+ private Map BigImage;
+
+ public Long getDeviceId() {
+ return DeviceId;
+ }
+
+ public void setDeviceId(Long deviceId) {
+ DeviceId = deviceId;
+ }
+
+ public String getDeviceName() {
+ return DeviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ DeviceName = deviceName;
+ }
+
+ public String getDeviceAddr0() {
+ return DeviceAddr0;
+ }
+
+ public void setDeviceAddr0(String deviceAddr0) {
+ DeviceAddr0 = deviceAddr0;
+ }
+
+ public String getDeviceAddr1() {
+ return DeviceAddr1;
+ }
+
+ public void setDeviceAddr1(String deviceAddr1) {
+ DeviceAddr1 = deviceAddr1;
+ }
+
+ public String getSerialNumber() {
+ return SerialNumber;
+ }
+
+ public void setSerialNumber(String serialNumber) {
+ SerialNumber = serialNumber;
+ }
+
+ public String getIPCSerialNum() {
+ return IPCSerialNum;
+ }
+
+ public void setIPCSerialNum(String IPCSerialNum) {
+ this.IPCSerialNum = IPCSerialNum;
+ }
+
+ public String getIPCAddr() {
+ return IPCAddr;
+ }
+
+ public void setIPCAddr(String IPCAddr) {
+ this.IPCAddr = IPCAddr;
+ }
+
+ public Long getChannelId() {
+ return ChannelId;
+ }
+
+ public void setChannelId(Long channelId) {
+ ChannelId = channelId;
+ }
+
+ public String getChannelName() {
+ return ChannelName;
+ }
+
+ public void setChannelName(String channelName) {
+ ChannelName = channelName;
+ }
+
+ public Long getAlarmType() {
+ return AlarmType;
+ }
+
+ public void setAlarmType(Long alarmType) {
+ AlarmType = alarmType;
+ }
+
+ public Long getAlarmId() {
+ return AlarmId;
+ }
+
+ public void setAlarmId(Long alarmId) {
+ AlarmId = alarmId;
+ }
+
+ public String getReportRate() {
+ return ReportRate;
+ }
+
+ public void setReportRate(String reportRate) {
+ ReportRate = reportRate;
+ }
+
+ public Long getTimestamp() {
+ return Timestamp;
+ }
+
+ public void setTimestamp(Long timestamp) {
+ Timestamp = timestamp;
+ }
+
+ public String getLeftTopX() {
+ return LeftTopX;
+ }
+
+ public void setLeftTopX(String leftTopX) {
+ LeftTopX = leftTopX;
+ }
+
+ public String getLeftTopY() {
+ return LeftTopY;
+ }
+
+ public void setLeftTopY(String leftTopY) {
+ LeftTopY = leftTopY;
+ }
+
+ public String getRightBtmX() {
+ return RightBtmX;
+ }
+
+ public void setRightBtmX(String rightBtmX) {
+ RightBtmX = rightBtmX;
+ }
+
+ public String getRightBtmY() {
+ return RightBtmY;
+ }
+
+ public void setRightBtmY(String rightBtmY) {
+ RightBtmY = rightBtmY;
+ }
+
+ public Long getPersonNum() {
+ return PersonNum;
+ }
+
+ public void setPersonNum(Long personNum) {
+ PersonNum = personNum;
+ }
+
+ public Long getInNum() {
+ return InNum;
+ }
+
+ public void setInNum(Long inNum) {
+ InNum = inNum;
+ }
+
+ public Long getOutNum() {
+ return OutNum;
+ }
+
+ public void setOutNum(Long outNum) {
+ OutNum = outNum;
+ }
+
+ public Long getPlateNo() {
+ return PlateNo;
+ }
+
+ public void setPlateNo(Long plateNo) {
+ PlateNo = plateNo;
+ }
+
+ public String getValueType() {
+ return ValueType;
+ }
+
+ public void setValueType(String valueType) {
+ ValueType = valueType;
+ }
+
+ public String getAlarmVideourl() {
+ return AlarmVideourl;
+ }
+
+ public void setAlarmVideourl(String alarmVideourl) {
+ AlarmVideourl = alarmVideourl;
+ }
+
+ public String getAlarmVideoName() {
+ return AlarmVideoName;
+ }
+
+ public void setAlarmVideoName(String alarmVideoName) {
+ AlarmVideoName = alarmVideoName;
+ }
+
+ public String getCompareResult() {
+ return CompareResult;
+ }
+
+ public void setCompareResult(String compareResult) {
+ CompareResult = compareResult;
+ }
+
+ public Map getBigImage() {
+ return BigImage;
+ }
+
+ public void setBigImage(Map bigImage) {
+ BigImage = bigImage;
+ }
+}
diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/DevAiProjectConfigMapper.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/DevAiProjectConfigMapper.java
new file mode 100644
index 00000000..a02bf608
--- /dev/null
+++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/DevAiProjectConfigMapper.java
@@ -0,0 +1,61 @@
+package com.yanzhu.jh.project.mapper;
+
+import java.util.List;
+import com.yanzhu.jh.project.domain.DevAiProjectConfig;
+
+/**
+ * 设备配置Mapper接口
+ *
+ * @author JiangYuQi
+ * @date 2023-09-27
+ */
+public interface DevAiProjectConfigMapper
+{
+ /**
+ * 查询设备配置
+ *
+ * @param id 设备配置主键
+ * @return 设备配置
+ */
+ public DevAiProjectConfig selectDevAiProjectConfigById(Long id);
+
+ /**
+ * 查询设备配置列表
+ *
+ * @param devAiProjectConfig 设备配置
+ * @return 设备配置集合
+ */
+ public List selectDevAiProjectConfigList(DevAiProjectConfig devAiProjectConfig);
+
+ /**
+ * 新增设备配置
+ *
+ * @param devAiProjectConfig 设备配置
+ * @return 结果
+ */
+ public int insertDevAiProjectConfig(DevAiProjectConfig devAiProjectConfig);
+
+ /**
+ * 修改设备配置
+ *
+ * @param devAiProjectConfig 设备配置
+ * @return 结果
+ */
+ public int updateDevAiProjectConfig(DevAiProjectConfig devAiProjectConfig);
+
+ /**
+ * 删除设备配置
+ *
+ * @param id 设备配置主键
+ * @return 结果
+ */
+ public int deleteDevAiProjectConfigById(Long id);
+
+ /**
+ * 批量删除设备配置
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteDevAiProjectConfigByIds(Long[] ids);
+}
diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/DevAiProjectDataMapper.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/DevAiProjectDataMapper.java
new file mode 100644
index 00000000..58d7d53a
--- /dev/null
+++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/mapper/DevAiProjectDataMapper.java
@@ -0,0 +1,61 @@
+package com.yanzhu.jh.project.mapper;
+
+import java.util.List;
+import com.yanzhu.jh.project.domain.DevAiProjectData;
+
+/**
+ * 设备数据Mapper接口
+ *
+ * @author JiangYuQi
+ * @date 2023-09-27
+ */
+public interface DevAiProjectDataMapper
+{
+ /**
+ * 查询设备数据
+ *
+ * @param id 设备数据主键
+ * @return 设备数据
+ */
+ public DevAiProjectData selectDevAiProjectDataById(Long id);
+
+ /**
+ * 查询设备数据列表
+ *
+ * @param devAiProjectData 设备数据
+ * @return 设备数据集合
+ */
+ public List selectDevAiProjectDataList(DevAiProjectData devAiProjectData);
+
+ /**
+ * 新增设备数据
+ *
+ * @param devAiProjectData 设备数据
+ * @return 结果
+ */
+ public int insertDevAiProjectData(DevAiProjectData devAiProjectData);
+
+ /**
+ * 修改设备数据
+ *
+ * @param devAiProjectData 设备数据
+ * @return 结果
+ */
+ public int updateDevAiProjectData(DevAiProjectData devAiProjectData);
+
+ /**
+ * 删除设备数据
+ *
+ * @param id 设备数据主键
+ * @return 结果
+ */
+ public int deleteDevAiProjectDataById(Long id);
+
+ /**
+ * 批量删除设备数据
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteDevAiProjectDataByIds(Long[] ids);
+}
diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/IDevAiProjectConfigService.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/IDevAiProjectConfigService.java
new file mode 100644
index 00000000..ee02c45e
--- /dev/null
+++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/IDevAiProjectConfigService.java
@@ -0,0 +1,61 @@
+package com.yanzhu.jh.project.service;
+
+import java.util.List;
+import com.yanzhu.jh.project.domain.DevAiProjectConfig;
+
+/**
+ * 设备配置Service接口
+ *
+ * @author JiangYuQi
+ * @date 2023-09-27
+ */
+public interface IDevAiProjectConfigService
+{
+ /**
+ * 查询设备配置
+ *
+ * @param id 设备配置主键
+ * @return 设备配置
+ */
+ public DevAiProjectConfig selectDevAiProjectConfigById(Long id);
+
+ /**
+ * 查询设备配置列表
+ *
+ * @param devAiProjectConfig 设备配置
+ * @return 设备配置集合
+ */
+ public List selectDevAiProjectConfigList(DevAiProjectConfig devAiProjectConfig);
+
+ /**
+ * 新增设备配置
+ *
+ * @param devAiProjectConfig 设备配置
+ * @return 结果
+ */
+ public int insertDevAiProjectConfig(DevAiProjectConfig devAiProjectConfig);
+
+ /**
+ * 修改设备配置
+ *
+ * @param devAiProjectConfig 设备配置
+ * @return 结果
+ */
+ public int updateDevAiProjectConfig(DevAiProjectConfig devAiProjectConfig);
+
+ /**
+ * 批量删除设备配置
+ *
+ * @param ids 需要删除的设备配置主键集合
+ * @return 结果
+ */
+ public int deleteDevAiProjectConfigByIds(Long[] ids);
+
+ /**
+ * 删除设备配置信息
+ *
+ * @param id 设备配置主键
+ * @return 结果
+ */
+ public int deleteDevAiProjectConfigById(Long id);
+}
diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/IDevAiProjectDataService.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/IDevAiProjectDataService.java
new file mode 100644
index 00000000..287e216b
--- /dev/null
+++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/IDevAiProjectDataService.java
@@ -0,0 +1,70 @@
+package com.yanzhu.jh.project.service;
+
+import java.util.List;
+import com.yanzhu.jh.project.domain.DevAiProjectData;
+import com.yanzhu.jh.project.domain.vo.DevAiProjectDataVO;
+
+/**
+ * 设备数据Service接口
+ *
+ * @author JiangYuQi
+ * @date 2023-09-27
+ */
+public interface IDevAiProjectDataService
+{
+ /**
+ * 查询设备数据
+ *
+ * @param id 设备数据主键
+ * @return 设备数据
+ */
+ public DevAiProjectData selectDevAiProjectDataById(Long id);
+
+ /**
+ * 查询设备数据列表
+ *
+ * @param devAiProjectData 设备数据
+ * @return 设备数据集合
+ */
+ public List selectDevAiProjectDataList(DevAiProjectData devAiProjectData);
+
+ /**
+ * 新增设备数据
+ *
+ * @param devAiProjectData 设备数据
+ * @return 结果
+ */
+ public int insertDevAiProjectData(DevAiProjectData devAiProjectData);
+
+ /**
+ * 新增设备数据
+ *
+ * @param devAiProjectDataVO 设备数据
+ * @return 结果
+ */
+ public void insertHttpDevAiProjectData(DevAiProjectDataVO devAiProjectDataVO);
+
+ /**
+ * 修改设备数据
+ *
+ * @param devAiProjectData 设备数据
+ * @return 结果
+ */
+ public int updateDevAiProjectData(DevAiProjectData devAiProjectData);
+
+ /**
+ * 批量删除设备数据
+ *
+ * @param ids 需要删除的设备数据主键集合
+ * @return 结果
+ */
+ public int deleteDevAiProjectDataByIds(Long[] ids);
+
+ /**
+ * 删除设备数据信息
+ *
+ * @param id 设备数据主键
+ * @return 结果
+ */
+ public int deleteDevAiProjectDataById(Long id);
+}
diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/DevAiProjectConfigServiceImpl.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/DevAiProjectConfigServiceImpl.java
new file mode 100644
index 00000000..43c9ad3b
--- /dev/null
+++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/DevAiProjectConfigServiceImpl.java
@@ -0,0 +1,98 @@
+package com.yanzhu.jh.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.yanzhu.jh.project.mapper.DevAiProjectConfigMapper;
+import com.yanzhu.jh.project.domain.DevAiProjectConfig;
+import com.yanzhu.jh.project.service.IDevAiProjectConfigService;
+import com.ruoyi.common.utils.SecurityUtils;
+/**
+ * 设备配置Service业务层处理
+ *
+ * @author JiangYuQi
+ * @date 2023-09-27
+ */
+@Service
+public class DevAiProjectConfigServiceImpl implements IDevAiProjectConfigService
+{
+ @Autowired
+ private DevAiProjectConfigMapper devAiProjectConfigMapper;
+
+ /**
+ * 查询设备配置
+ *
+ * @param id 设备配置主键
+ * @return 设备配置
+ */
+ @Override
+ public DevAiProjectConfig selectDevAiProjectConfigById(Long id)
+ {
+ return devAiProjectConfigMapper.selectDevAiProjectConfigById(id);
+ }
+
+ /**
+ * 查询设备配置列表
+ *
+ * @param devAiProjectConfig 设备配置
+ * @return 设备配置
+ */
+ @Override
+ public List selectDevAiProjectConfigList(DevAiProjectConfig devAiProjectConfig)
+ {
+ return devAiProjectConfigMapper.selectDevAiProjectConfigList(devAiProjectConfig);
+ }
+
+ /**
+ * 新增设备配置
+ *
+ * @param devAiProjectConfig 设备配置
+ * @return 结果
+ */
+ @Override
+ public int insertDevAiProjectConfig(DevAiProjectConfig devAiProjectConfig)
+ {
+ devAiProjectConfig.setCreateBy(SecurityUtils.getUsername());
+ devAiProjectConfig.setCreateTime(DateUtils.getNowDate());
+ return devAiProjectConfigMapper.insertDevAiProjectConfig(devAiProjectConfig);
+ }
+
+ /**
+ * 修改设备配置
+ *
+ * @param devAiProjectConfig 设备配置
+ * @return 结果
+ */
+ @Override
+ public int updateDevAiProjectConfig(DevAiProjectConfig devAiProjectConfig)
+ {
+ devAiProjectConfig.setUpdateBy(SecurityUtils.getUsername());
+ devAiProjectConfig.setUpdateTime(DateUtils.getNowDate());
+ return devAiProjectConfigMapper.updateDevAiProjectConfig(devAiProjectConfig);
+ }
+
+ /**
+ * 批量删除设备配置
+ *
+ * @param ids 需要删除的设备配置主键
+ * @return 结果
+ */
+ @Override
+ public int deleteDevAiProjectConfigByIds(Long[] ids)
+ {
+ return devAiProjectConfigMapper.deleteDevAiProjectConfigByIds(ids);
+ }
+
+ /**
+ * 删除设备配置信息
+ *
+ * @param id 设备配置主键
+ * @return 结果
+ */
+ @Override
+ public int deleteDevAiProjectConfigById(Long id)
+ {
+ return devAiProjectConfigMapper.deleteDevAiProjectConfigById(id);
+ }
+}
diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/DevAiProjectDataServiceImpl.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/DevAiProjectDataServiceImpl.java
new file mode 100644
index 00000000..82fa34e1
--- /dev/null
+++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/DevAiProjectDataServiceImpl.java
@@ -0,0 +1,188 @@
+package com.yanzhu.jh.project.service.impl;
+
+import java.util.Date;
+import java.util.List;
+
+import com.ruoyi.common.config.RuoYiConfig;
+import com.ruoyi.common.enums.PublicStateEnum;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.file.FileUploadUtils;
+import com.ruoyi.common.utils.file.MultipartFileUtils;
+import com.yanzhu.jh.project.domain.vo.DevAiProjectDataVO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.yanzhu.jh.project.mapper.DevAiProjectDataMapper;
+import com.yanzhu.jh.project.domain.DevAiProjectData;
+import com.yanzhu.jh.project.service.IDevAiProjectDataService;
+import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 设备数据Service业务层处理
+ *
+ * @author JiangYuQi
+ * @date 2023-09-27
+ */
+@Service
+public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
+{
+ private static final Logger logger = LoggerFactory.getLogger("DevAiProjectDataServiceImpl");
+
+ @Autowired
+ private DevAiProjectDataMapper devAiProjectDataMapper;
+
+ /**
+ * 查询设备数据
+ *
+ * @param id 设备数据主键
+ * @return 设备数据
+ */
+ @Override
+ public DevAiProjectData selectDevAiProjectDataById(Long id)
+ {
+ return devAiProjectDataMapper.selectDevAiProjectDataById(id);
+ }
+
+ /**
+ * 查询设备数据列表
+ *
+ * @param devAiProjectData 设备数据
+ * @return 设备数据
+ */
+ @Override
+ public List selectDevAiProjectDataList(DevAiProjectData devAiProjectData)
+ {
+ return devAiProjectDataMapper.selectDevAiProjectDataList(devAiProjectData);
+ }
+
+ /**
+ * 新增设备数据
+ *
+ * @param devAiProjectData 设备数据
+ * @return 结果
+ */
+ @Override
+ public int insertDevAiProjectData(DevAiProjectData devAiProjectData)
+ {
+ devAiProjectData.setCreateTime(DateUtils.getNowDate());
+ return devAiProjectDataMapper.insertDevAiProjectData(devAiProjectData);
+ }
+
+ /**
+ * 新增设备数据
+ *
+ * @param devAiProjectDataVO 设备数据
+ * @return 结果
+ */
+ @Override
+ public void insertHttpDevAiProjectData(DevAiProjectDataVO devAiProjectDataVO)
+ {
+ logger.info("上报消息解析成功!!开始转换实体!!!");
+ DevAiProjectData devAiProjectData = new DevAiProjectData();
+ devAiProjectData.setDeviceId(devAiProjectDataVO.getDeviceId());
+ /** 设备名称 */
+ devAiProjectData.setDeviceName(devAiProjectDataVO.getDeviceName());
+ /** 设备网口 0 IP 地址 */
+ devAiProjectData.setDeviceAddr0(devAiProjectDataVO.getDeviceAddr0());
+ /** 设备网口 1 IP 地址 */
+ devAiProjectData.setDeviceAddr1(devAiProjectDataVO.getDeviceAddr1());
+ /** 设备的序列号 */
+ devAiProjectData.setSerialNumber(devAiProjectDataVO.getSerialNumber());
+ /** 相机的序列号 */
+ devAiProjectData.setIpcSerialNum(devAiProjectDataVO.getIPCSerialNum());
+ /** 相机的 IP 地址 */
+ devAiProjectData.setIpcAddr(devAiProjectDataVO.getIPCAddr());
+ /** 通道号,用来唯一标识任务 ID */
+ devAiProjectData.setChannelId(devAiProjectDataVO.getChannelId());
+ /** 通道名称 */
+ devAiProjectData.setChannelName(devAiProjectDataVO.getChannelName());
+ /** 报警类型 */
+ devAiProjectData.setAlarmType(devAiProjectDataVO.getAlarmType());
+ /** 告警 ID */
+ devAiProjectData.setAlarmId(devAiProjectDataVO.getAlarmId());
+ /** 上报间隔 */
+ devAiProjectData.setReportRate(devAiProjectDataVO.getReportRate());
+ /** 采集时间 */
+ devAiProjectData.setTimestamp(new Date(devAiProjectDataVO.getTimestamp()*1000));
+ /** 左上角 X 坐标 */
+ devAiProjectData.setLeftTopX(devAiProjectDataVO.getLeftTopX());
+ /** 左上角 Y 坐标 */
+ devAiProjectData.setLeftTopY(devAiProjectDataVO.getLeftTopY());
+ /** 右下角 X 坐标 */
+ devAiProjectData.setRightBtmX(devAiProjectDataVO.getRightBtmX());
+ /** 右下角 Y 坐标 */
+ devAiProjectData.setRightBtmY(devAiProjectDataVO.getRightBtmY());
+ /** 当前告警区域人数 */
+ devAiProjectData.setPersonNum(devAiProjectDataVO.getPersonNum());
+ /** 绊线进入人数数量 */
+ devAiProjectData.setInNum(devAiProjectDataVO.getInNum());
+ /** 绊线离开人数数量 */
+ devAiProjectData.setOutNum(devAiProjectDataVO.getOutNum());
+ /** 车牌号 */
+ devAiProjectData.setPlateNo(devAiProjectDataVO.getPlateNo());
+ /** ValueType 为 1 时,代表明火检测;ValueType 为 2 时,代表烟雾检测; */
+ devAiProjectData.setValueType(devAiProjectDataVO.getValueType());
+ /** 告警短视频的地址 */
+ devAiProjectData.setAlarmVideourl(devAiProjectDataVO.getAlarmVideourl());
+ /** 告警短视频的名称 */
+ devAiProjectData.setAlarmVideoName(devAiProjectDataVO.getAlarmVideoName());
+ /** 人脸比对结果 */
+ devAiProjectData.setCompareResult(devAiProjectDataVO.getCompareResult());
+ logger.info("实体转换成功!!Base64开始转换图片!!!");
+ String objImg64 = devAiProjectDataVO.getBigImage().get("Image").toString();
+ try {
+ MultipartFile file = MultipartFileUtils.base64ToMultipartFile(objImg64);
+ // 上传文件路径
+ String filePath = RuoYiConfig.getUploadPath();
+ // 上传并返回新文件名称
+ String profileFile = FileUploadUtils.upload(filePath, file);
+ devAiProjectData.setImageUrl(profileFile);
+ logger.info("Base64上传图片成功!!!");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ devAiProjectData.setCreateTime(DateUtils.getNowDate());
+ devAiProjectData.setIsDel(PublicStateEnum.OK.getCode());
+ logger.info("新增AI设备数据成功");
+ devAiProjectDataMapper.insertDevAiProjectData(devAiProjectData);
+ }
+
+ /**
+ * 修改设备数据
+ *
+ * @param devAiProjectData 设备数据
+ * @return 结果
+ */
+ @Override
+ public int updateDevAiProjectData(DevAiProjectData devAiProjectData)
+ {
+ return devAiProjectDataMapper.updateDevAiProjectData(devAiProjectData);
+ }
+
+ /**
+ * 批量删除设备数据
+ *
+ * @param ids 需要删除的设备数据主键
+ * @return 结果
+ */
+ @Override
+ public int deleteDevAiProjectDataByIds(Long[] ids)
+ {
+ return devAiProjectDataMapper.deleteDevAiProjectDataByIds(ids);
+ }
+
+ /**
+ * 删除设备数据信息
+ *
+ * @param id 设备数据主键
+ * @return 结果
+ */
+ @Override
+ public int deleteDevAiProjectDataById(Long id)
+ {
+ return devAiProjectDataMapper.deleteDevAiProjectDataById(id);
+ }
+
+}
diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/publics/AIBoxController.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/publics/AIBoxController.java
new file mode 100644
index 00000000..d3cd5e17
--- /dev/null
+++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/publics/AIBoxController.java
@@ -0,0 +1,47 @@
+package com.yanzhu.jh.publics;
+
+import com.ruoyi.common.core.controller.BaseController;
+import com.yanzhu.jh.project.domain.DevAiProjectData;
+import com.yanzhu.jh.project.domain.vo.DevAiProjectDataVO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * AIBoxController
+ * 智能盒子
+ * @author JiangYuQi
+ * @date 2023-07-29
+ */
+@RestController
+@RequestMapping("/publics/aiBox")
+public class AIBoxController extends BaseController {
+
+ private static final Logger logger = LoggerFactory.getLogger("AIBoxController");
+
+ /**
+ * 获取部门列表
+ */
+ @PostMapping("/v1/push")
+ public void list(@RequestBody Map dataMap)
+ {
+ try{
+ List devAiProjectDataVOs = (List)dataMap.get("BehaviorResults");
+ if(devAiProjectDataVOs!=null && devAiProjectDataVOs.size()>0){
+ DevAiProjectDataVO devAiProjectDataVO = devAiProjectDataVOs.get(0);
+
+ }
+ }catch (Exception e){
+ logger.info("AiBox解析参数失败!!!");
+ e.printStackTrace();
+ }
+
+ }
+
+}
diff --git a/yanzhu-jh/src/main/resources/mapper/project/DevAiProjectConfigMapper.xml b/yanzhu-jh/src/main/resources/mapper/project/DevAiProjectConfigMapper.xml
new file mode 100644
index 00000000..55f010f1
--- /dev/null
+++ b/yanzhu-jh/src/main/resources/mapper/project/DevAiProjectConfigMapper.xml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, project_id, dept_id, channel_id, channel_name, ipc_name, device_name, serial_number, manufacturer, is_del, is_importance, create_by, create_time, update_by, update_time, remark from dev_ai_project_config
+
+
+
+
+
+
+
+ insert into dev_ai_project_config
+
+ project_id,
+ dept_id,
+ channel_id,
+ channel_name,
+ ipc_name,
+ device_name,
+ serial_number,
+ manufacturer,
+ is_del,
+ is_importance,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ remark,
+
+
+ #{projectId},
+ #{deptId},
+ #{channelId},
+ #{channelName},
+ #{ipcName},
+ #{deviceName},
+ #{serialNumber},
+ #{manufacturer},
+ #{isDel},
+ #{isImportance},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+ #{remark},
+
+
+
+
+ update dev_ai_project_config
+
+ project_id = #{projectId},
+ dept_id = #{deptId},
+ channel_id = #{channelId},
+ channel_name = #{channelName},
+ ipc_name = #{ipcName},
+ device_name = #{deviceName},
+ serial_number = #{serialNumber},
+ manufacturer = #{manufacturer},
+ is_del = #{isDel},
+ is_importance = #{isImportance},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ remark = #{remark},
+
+ where id = #{id}
+
+
+
+ delete from dev_ai_project_config where id = #{id}
+
+
+
+ delete from dev_ai_project_config where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/yanzhu-jh/src/main/resources/mapper/project/DevAiProjectDataMapper.xml b/yanzhu-jh/src/main/resources/mapper/project/DevAiProjectDataMapper.xml
new file mode 100644
index 00000000..b6b91451
--- /dev/null
+++ b/yanzhu-jh/src/main/resources/mapper/project/DevAiProjectDataMapper.xml
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, project_id, dept_id, device_id, device_name, device_addr0, device_addr1, serial_number, ipc_serial_num, ipc_addr, image_url, channel_id, channel_name, alarm_type, alarm_id, report_rate, timestamp, left_top_x, left_top_y, right_btm_x, right_btm_y, person_num, in_num, out_num, plate_no, value_type, alarm_videoURL, alarm_video_name, compare_result, create_time, is_del from dev_ai_project_data
+
+
+
+
+
+
+
+ insert into dev_ai_project_data
+
+ project_id,
+ dept_id,
+ device_id,
+ device_name,
+ device_addr0,
+ device_addr1,
+ serial_number,
+ ipc_serial_num,
+ ipc_addr,
+ image_url,
+ channel_id,
+ channel_name,
+ alarm_type,
+ alarm_id,
+ report_rate,
+ timestamp,
+ left_top_x,
+ left_top_y,
+ right_btm_x,
+ right_btm_y,
+ person_num,
+ in_num,
+ out_num,
+ plate_no,
+ value_type,
+ alarm_videoURL,
+ alarm_video_name,
+ compare_result,
+ create_time,
+ is_del,
+
+
+ #{projectId},
+ #{deptId},
+ #{deviceId},
+ #{deviceName},
+ #{deviceAddr0},
+ #{deviceAddr1},
+ #{serialNumber},
+ #{ipcSerialNum},
+ #{ipcAddr},
+ #{imageUrl},
+ #{channelId},
+ #{channelName},
+ #{alarmType},
+ #{alarmId},
+ #{reportRate},
+ #{timestamp},
+ #{leftTopX},
+ #{leftTopY},
+ #{rightBtmX},
+ #{rightBtmY},
+ #{personNum},
+ #{inNum},
+ #{outNum},
+ #{plateNo},
+ #{valueType},
+ #{alarmVideourl},
+ #{alarmVideoName},
+ #{compareResult},
+ #{createTime},
+ #{isDel},
+
+
+
+
+ update dev_ai_project_data
+
+ project_id = #{projectId},
+ dept_id = #{deptId},
+ device_id = #{deviceId},
+ device_name = #{deviceName},
+ device_addr0 = #{deviceAddr0},
+ device_addr1 = #{deviceAddr1},
+ serial_number = #{serialNumber},
+ ipc_serial_num = #{ipcSerialNum},
+ ipc_addr = #{ipcAddr},
+ image_url = #{imageUrl},
+ channel_id = #{channelId},
+ channel_name = #{channelName},
+ alarm_type = #{alarmType},
+ alarm_id = #{alarmId},
+ report_rate = #{reportRate},
+ timestamp = #{timestamp},
+ left_top_x = #{leftTopX},
+ left_top_y = #{leftTopY},
+ right_btm_x = #{rightBtmX},
+ right_btm_y = #{rightBtmY},
+ person_num = #{personNum},
+ in_num = #{inNum},
+ out_num = #{outNum},
+ plate_no = #{plateNo},
+ value_type = #{valueType},
+ alarm_videoURL = #{alarmVideourl},
+ alarm_video_name = #{alarmVideoName},
+ compare_result = #{compareResult},
+ create_time = #{createTime},
+ is_del = #{isDel},
+
+ where id = #{id}
+
+
+
+ delete from dev_ai_project_data where id = #{id}
+
+
+
+ delete from dev_ai_project_data where id in
+
+ #{id}
+
+
+
\ No newline at end of file