diff --git a/ruoyi-system/src/main/java/com/ruoyi/sensor/service/impl/SensorDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/sensor/service/impl/SensorDataServiceImpl.java new file mode 100644 index 00000000..94268c8e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/sensor/service/impl/SensorDataServiceImpl.java @@ -0,0 +1,88 @@ +package com.ruoyi.sensor.service.impl; + +import com.ruoyi.board.domain.AlertPlan; +import com.ruoyi.board.domain.BoardInfo; +import com.ruoyi.board.domain.PresetContent; +import com.ruoyi.board.domain.ReleaseRecord; +import com.ruoyi.board.domain.enums.AlertPlanType; +import com.ruoyi.board.service.IAlertPlanService; +import com.ruoyi.board.service.IBoardInfoService; +import com.ruoyi.board.service.IPresetContentService; +import com.ruoyi.board.service.IReleaseRecordService; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.protocol.sansi.SanSiProtocol; +import com.ruoyi.sensor.domain.PerceptionParams; +import com.ruoyi.sensor.domain.WarningStatusInfo; +import com.ruoyi.sensor.merchants.MerchantsHttp; +import com.ruoyi.sensor.service.ISensorDataService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; + +@Service +public class SensorDataServiceImpl implements ISensorDataService { + + private static final Logger log = LoggerFactory.getLogger(SensorDataServiceImpl.class); + @Autowired + private IBoardInfoService boardInfoService; + @Autowired + private IAlertPlanService alertPlanService; + @Autowired + private IPresetContentService presetContentService; + @Autowired + private IReleaseRecordService releaseRecordService; + + @Override + public void perceptionParamsHandler(PerceptionParams params) { + int planTypeByName = AlertPlanType.getPlanTypeByName(params.getPerceptionType()); + // 找到符合计划的预警 + AlertPlan oneByTypeAndValue = alertPlanService.getOneByTypeAndValue(planTypeByName, params.getPerceptionValue()); + if (null == oneByTypeAndValue) { + log.error("找不到预警计划"); + return; + } + // 情报板设备信息 + BoardInfo oneByIP = boardInfoService.getOneByIP(params.getBoardIp()); + if (null == oneByIP) { + log.error("找不到情报板信息"); + return; + } + // 预置发布的信息 + PresetContent oneByContentAndBoardSize = presetContentService.getOneByContentAndBoardSize(oneByTypeAndValue.getDisplayContent(), oneByIP.getBoardSize(), planTypeByName); + if (null == oneByContentAndBoardSize) { + log.error("找不到预置发布的信息"); + return; + } + + // 获取同类型最新的一条发布记录 + ReleaseRecord oneLatestByBoardId = releaseRecordService.getOneLatestByBoardId(oneByIP.getBoardIp(), 1); + if (null == oneLatestByBoardId) { + // 说明之前没有发布记录 + } + +// todo 发布 + boolean sanSiProtocol = new SanSiProtocol().publishContent(oneByIP, oneByContentAndBoardSize); + // 经过主动发布之后就变成预置信息 + // 发布之后记录发布内容 ReleaseRecord + ReleaseRecord releaseRecord = new ReleaseRecord(); + releaseRecord.setBoardId(oneByIP.getId()); + releaseRecord.setPresetContentId(oneByContentAndBoardSize.getId()); + releaseRecord.setCreateTime(new Date()); + releaseRecord.setCreatedBy(SecurityUtils.getUserId().intValue()); + releaseRecordService.save(releaseRecord); + // 记录完了之后就需要向对方发送日志记录 + WarningStatusInfo statusInfo = new WarningStatusInfo(); + statusInfo.setStatus(""); + statusInfo.setInfoBoardIP(oneByIP.getBoardIp()); + statusInfo.setWarningType(params.getPerceptionType()); + statusInfo.setWarningMessage(oneByContentAndBoardSize.getContent()); + statusInfo.setWarningValue(params.getPerceptionValue()); + statusInfo.setCurrentWarningLevel(oneByTypeAndValue.getLevel()); + statusInfo.setTriggerTime(new Date()); + // 开始发送状态记录 + MerchantsHttp.sendWarning(new WarningStatusInfo()); + } +} diff --git a/ruoyi-ui/.env.development b/ruoyi-ui/.env.development index 18b2a3ed..ef77b7ba 100644 --- a/ruoyi-ui/.env.development +++ b/ruoyi-ui/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VUE_APP_TITLE = 若依管理系统 +VUE_APP_TITLE = 瓷器活发布系统 # 开发环境配置 ENV = 'development' diff --git a/ruoyi-ui/.env.production b/ruoyi-ui/.env.production index cb064ec8..7287fd29 100644 --- a/ruoyi-ui/.env.production +++ b/ruoyi-ui/.env.production @@ -1,5 +1,5 @@ # 页面标题 -VUE_APP_TITLE = 若依管理系统 +VUE_APP_TITLE = 瓷器活发布系统 # 生产环境配置 ENV = 'production' diff --git a/ruoyi-ui/src/api/board/content.js b/ruoyi-ui/src/api/board/content.js new file mode 100644 index 00000000..2365ad66 --- /dev/null +++ b/ruoyi-ui/src/api/board/content.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询预置信息及模版列表 +export function listContent(query) { + return request({ + url: '/board/content/list', + method: 'get', + params: query + }) +} + +// 查询预置信息及模版详细 +export function getContent(id) { + return request({ + url: '/board/content/' + id, + method: 'get' + }) +} + +// 新增预置信息及模版 +export function addContent(data) { + return request({ + url: '/board/content', + method: 'post', + data: data + }) +} + +// 修改预置信息及模版 +export function updateContent(data) { + return request({ + url: '/board/content', + method: 'put', + data: data + }) +} + +// 删除预置信息及模版 +export function delContent(id) { + return request({ + url: '/board/content/' + id, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/board/info.js b/ruoyi-ui/src/api/board/info.js new file mode 100644 index 00000000..35afdedc --- /dev/null +++ b/ruoyi-ui/src/api/board/info.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询情报板信息列表 +export function listInfo(query) { + return request({ + url: '/board/info/list', + method: 'get', + params: query + }) +} + +// 查询情报板信息详细 +export function getInfo(id) { + return request({ + url: '/board/info/' + id, + method: 'get' + }) +} + +// 新增情报板信息 +export function addInfo(data) { + return request({ + url: '/board/info', + method: 'post', + data: data + }) +} + +// 修改情报板信息 +export function updateInfo(data) { + return request({ + url: '/board/info', + method: 'put', + data: data + }) +} + +// 删除情报板信息 +export function delInfo(id) { + return request({ + url: '/board/info/' + id, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/board/plan.js b/ruoyi-ui/src/api/board/plan.js new file mode 100644 index 00000000..2a9e9e0b --- /dev/null +++ b/ruoyi-ui/src/api/board/plan.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询警报计划列表 +export function listPlan(query) { + return request({ + url: '/board/plan/list', + method: 'get', + params: query + }) +} + +// 查询警报计划详细 +export function getPlan(id) { + return request({ + url: '/board/plan/' + id, + method: 'get' + }) +} + +// 新增警报计划 +export function addPlan(data) { + return request({ + url: '/board/plan', + method: 'post', + data: data + }) +} + +// 修改警报计划 +export function updatePlan(data) { + return request({ + url: '/board/plan', + method: 'put', + data: data + }) +} + +// 删除警报计划 +export function delPlan(id) { + return request({ + url: '/board/plan/' + id, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/assets/images/profile.jpg b/ruoyi-ui/src/assets/images/profile.jpg index b3a940b2..a32c4463 100644 Binary files a/ruoyi-ui/src/assets/images/profile.jpg and b/ruoyi-ui/src/assets/images/profile.jpg differ diff --git a/ruoyi-ui/src/assets/images/profile_back.jpg b/ruoyi-ui/src/assets/images/profile_back.jpg new file mode 100644 index 00000000..b3a940b2 Binary files /dev/null and b/ruoyi-ui/src/assets/images/profile_back.jpg differ diff --git a/ruoyi-ui/src/layout/components/Navbar.vue b/ruoyi-ui/src/layout/components/Navbar.vue index 5c5a2489..77d7c00e 100644 --- a/ruoyi-ui/src/layout/components/Navbar.vue +++ b/ruoyi-ui/src/layout/components/Navbar.vue @@ -9,14 +9,6 @@