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 @@ + + + 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